Şifreleme İhtiyacı
Günümüzde kullanılan farklı şifreleme teknolojilere bakmadan önce, kriptografinin temellerini anlamak önemlidir. Kriptografi, üçüncü şahısların arasındaki iletişimi güvence altına almak için tekniklerin uygulanması ve incelenmesidir. Tarihsel olarak kriptografi, şifreleme ile eşanlamlıydı. Amacı mesajları gizli tutmaktı. Günümüzde kriptografi başka sorumlulukları da içeriyor:
■ Gizlilik: Verileri şifrelemek ve gizlemek için şifreleme algoritmalarını kullanır
■ Veri bütünlüğü: Verilerin herhangi bir işlem sırasında değiştirilmemesini sağlamak için karmaşık algoritmalar kullanma
■ Kimlik Doğrulama: Alınan tüm mesajların gerçekten algılanan kaynaktan gönderilmesini sağlar.
Anahtar Değişimi ve Yönetimi
Anahtar yönetimi, anahtarların güvenli üretimi, doğrulanması, değişimi, depolanması ve imhasıyla ilgilidir. Güvenli anahtar yönetimi yöntemlerine sahip olmak son derece önemlidir. Anahtar değişimi ve yönetimi genellikle bir şifreleme sistemi tasarlamanın en zor kısmı olarak kabul edilir. Birçok şifreleme sistemi, anahtar yönetimindeki hatalar nedeniyle başarısız olmuştur ve tüm modern şifreleme algoritmaları, anahtar yönetim prosedürleri gerektirir. Herhangi bir anahtar yönetim sisteminin temel bileşenleri arasında otomatik ve rastgele anahtar üretimi, anahtar gücü doğrulaması, şifreli anahtar depolama, güvenli anahtar değişimi, kısa anahtar yaşam süreleri ve güvenliği ihlal edilmiş veya süresi dolmuş anahtarların iptali ve imhası bulunur.
3.3.Karma (Hash) Algoritmaları
Hashing, veri bütünlüğü güvencesi için kullanılan bir mekanizmadır. Hashing, hesaplaması nispeten kolay ancak tersine çevirmesi önemli ölçüde zor olan tek yönlü bir matematik fonksiyonuna dayanmaktadır. Şekil 3-1, karma işleminin nasıl gerçekleştirildiğini gösterir. Rastgele uzunluktaki veriler, karma işlevine girilir ve karma işlevinin sonucu, özet (digest) veya parmak izi (fingerprint) olarak bilinen sabit uzunluklu bir karma değeridir.
Şekil 3-1 Hash Fonksiyonu
Sık Kullanılan Hash Fonksiyonları
Karma işlevleri, verilerin bir iletişim hatası gibi yanlışlıkla değiştirilmemesini sağlarken faydalıdır. Karma oluşturma yanlışlıkla yapılan değişiklikleri tespit etmek için kullanılabilse de, kasıtlı değişikliklere karşı koruma sağlamak için kullanılamaz.
Hashing prosedüründe göndericiden benzersiz bir tanımlama bilgisi yoktur. Bu nedenle, karma oluşturma ortadaki adam saldırılarına karşı savunmasızdır ve iletilen verilere güvenlik sağlamaz. Aşağıdakiler en yaygın kullanılan üç kriptografik karma işlevidir:
Mesaj Özeti 5-Message Digest (MD5): MD5, verilen giriş verilerinden bir hash hesaplamayı kolaylaştıran, ancak yalnızca bir hash değeri verilen giriş verilerini hesaplamayı çok zorlaştıran tek yönlü bir işlevdir. MD5, 128 bitlik bir karma üretir ve artık kullanılmaması gereken eski bir algoritma olarak kabul edilmektedir.
Güvenli Karma Algoritma 1-Secure Hash Algorithm (SHA-1): SHA-1 uzunluğu 2 ^64 bit kadar bir mesaj alır ve 160 bitlik bir ileti özeti üretir. Algoritma, MD5’ten biraz daha yavaştır, ancak daha büyük mesaj özeti, onu kaba kuvvet saldırılarına ve ters çevirme saldırılarına karşı daha güvenli hale getirir. Artık eski olarak kabul ediliyor ve mümkün olduğunca bu algoritma da kullanılmamalıdır.
Güvenli Karma Algoritma 2 (SHA-2): SHA-2 algoritmaları, ABD hükümetinin belirli uygulamalarda kullanım için yasalarca gerektirdiği güvenli karma algoritmalardır. SHA-2 ailesi 224 bit, 256 bit, 384 bit ve 512 bit işlevleri içerir. Bir karma algoritma seçerken, şu anda en güvenli olan SHA-256 veya üstünü kullanın.
Hashing Kullanarak Kimlik Doğrulama
Gizli bir anahtar üzerinde anlaşmaya varan iki sistem, anahtarlı bir karma kullanarak aralarındaki iletişimin veri bütünlüğünü doğrulamak için bir karma işlevle birlikte anahtarı kullanabilir. Bir mesaj doğrulama kodu, mesaj verilerinin gizli anahtar ile birlikte bir karma algoritmadan geçirilmesiyle üretilir. Yalnızca gönderen ve alıcı gizli anahtarı bilir ve karma işlevin çıktısı artık mesaj verilerine ve gizli anahtara bağlıdır. Şekil 3-2, mesaj doğrulama kodunun nasıl oluşturulduğunu gösterir. Rastgele uzunluktaki veriler, bir gizli anahtarla birlikte karma işlevine girilir. Sonuç, verilere ve gizli anahtara bağlı olan sabit uzunluklu karmadır. Bu kimlik doğrulama türü, anahtarlı karma ileti kimlik doğrulama kodu- keyed-hash message authentication code (HMAC) olarak adlandırılır ve bütünlük güvencesine kimlik doğrulaması ekler.
HMAC işlevleri, MD5 (HMAC-MD5) veya SHA-1 (HMAC-SHA-1) ile kullanılabilir. Şekil 3-3, kriptografik kimlik doğrulamanın işleyişini göstermektedir. Gönderen Alice, mesajın geçiş sırasında değiştirilmediğinden emin olmak ister ve alıcı Bob’a mesajın kaynağını doğrulaması için bir yol sağlamak ister.
Alice, verileri ve gizli anahtarı karma algoritmaya girer ve sabit uzunlukta mesaj kimlik doğrulama kodunu veya parmak izini hesaplar. Bu kimliği doğrulanmış parmak izi daha sonra mesaja eklenir ve Bob’a gönderilir. Bob, parmak izini mesajdan kaldırır ve alınan mesajı, aynı hashing işlevinde girdi olarak gizli anahtarın kopyasıyla birlikte kullanır. Hesaplanan parmak izi, alınan parmak iziyle aynıysa, veri bütünlüğü doğrulanmıştır.
Ayrıca, mesajın kaynağı doğrulanır çünkü yalnızca Alice paylaşılan gizli anahtarın bir kopyasına sahiptir.
Cisco Cihazlarda Hashing
Cisco ürünleri, varlık kimlik doğrulaması, veri bütünlüğü ve veri özgünlük amaçları için hashing kullanır
■ IPsec ağ geçitleri ve istemciler paket bütünlüğünü ve orijinalliğini doğrulamak için karma algoritmalar kullanır.
■ Cisco IOS yönlendiricileri, yönlendirme protokolü güncelleştirmelerine kimlik doğrulama bilgileri eklemek için gizli anahtarlarla anahtarlı karma kullanır.
■ Cisco.com’dan indirebileceğiniz Cisco yazılım görüntüleri, müşterilerin indirilen görüntülerin bütünlüğünü kontrol edebilmesi için MD5 ve SHA-512 tabanlı sağlama toplamlarına sahiptir.
■Cisco cihaz yapılandırması sırasında verilen secret parolalar MD5 ile hashlenerek saklanır. MD5 yukarıda bahsedildiği gibi güvenli olmadığı için ilerideki bölümlerde bazı araçlarla nasıl kırıldığını göreceğiz.
Simetrik ve Asimetrik Şifreleme
Şifrelemeye Genel Bakış
Şifreleme, bir mesajı orijinal içeriğini gizleyecek şekilde gizleme sürecidir. Şifreleme ile, düz metin okunabilir mesaj, okunamayan, “gizlenmiş” mesaj olan şifreli metne dönüştürülür. Şifre çözme bu işlemi tersine çevirir. Şifreleme, gizliliği garanti etmek için kullanılır, böylece orijinal mesajı yalnızca yetkili kuruluşlar ve kişiler okuyabilir.
Şifreleme, farklı ağ katmanlarında aşağıdaki gizlilik özelliklerini sağlayabilir:
■ Eposta mesajlarını Pretty Good Privacy (PGP) ile şifreleme gibi uygulama katmanı verilerini şifreleme
■ Secure Sockets Layer (SSL) veya Transport Layer Security (TLS) gibi bir protokol kullanarak oturum katmanı verilerini şifreleme
■ IP güvenliği-security (IPsec) protokol paketinde sağlananlar gibi protokolleri kullanarak ağ katmanı verilerini şifreleme
■ Özel bağlantı şifreleme aygıtlarını kullanarak veri bağlantısı katmanı verilerini şifreleme
İyi bir kriptografik algoritma, yaygın kriptografik saldırılara direnecek şekilde tasarlanmıştır. Değişken anahtar uzunlukları ve ölçeklenebilirlik de iyi bir şifreleme algoritmasının istenen özellikleridir. Anahtar, şifreleme algoritmalarının bir mesajı şifrelemesi ve şifresini çözmesi için gerekli bir parametredir.
Anahtar, düz metin ve şifreli metin arasındaki bağlantıdır. Anahtar kullanımlarında farklılık gösteren iki sınıf şifreleme algoritması vardır:
■ Simetrik şifreleme algoritmaları: Verileri şifrelemek ve şifresini çözmek için aynı anahtarı kullanır
■ Asimetrik şifreleme algoritmaları: Verileri şifrelemek ve şifresini çözmek için farklı anahtarlar kullanır
Simetrik Şifreleme Algoritmaları
Daha kısa anahtar uzunluğu yürütme hızını artırdığı için simetrik veya gizli anahtar şifreleme en yaygın kullanılan şifreleme biçimidir. Simetrik şifreleme algoritmalarının tipik anahtar uzunluğu aralığı 40 ila 256 bittir. Şekil 3-4, simetrik şifreleme işleminin bir örneğini göstermektedir.
Şekil3-4 Simetrik Şifreleme
Bu örnekte, verileri gönderen tarafından şifrelemek ve alıcı tarafından verilerin şifresini çözmek için aynı anahtar kullanılır.
Simetrik şifreleme ile anahtar yönetimi zor olabilir. Şifreleme ve şifre çözme anahtarları aynıdır. Gönderici ve alıcı, herhangi bir şifreleme gerçekleşmeden önce güvenli bir kanal kullanarak simetrik, gizli anahtarı değiştirmelidir.
Aşağıdaki tablo, günümüzde kullanılan simetrik şifreleme algoritmalarının türlerinin ve bunların ilgili anahtar uzunluklarının bir özetini gösterir.
Simetrik Şifreleme Algoritması | Anahtar Uzunluğu (bit) |
DES | 56 |
3DES | 112 ve 168 |
AES | 128,192 ve 256 |
SEAL | 160 |
RC | RC2 (40 ve 64) RC4 (1’den 256’ya) RC5 (0’dan 2040’a) RC6 (128, 192 ve 256) |
DES, eski bir algoritma olarak kabul edilir ve kaba kuvvet saldırılarına karşı savunmasızdır. İyi analiz edilmiş algoritmanın kendisini değiştirmeden DES’in etkinliğini artırmanın bir yolu, aynı algoritmayı farklı anahtarlarla arka arkaya birkaç kez kullanmaktır. DES’i bir düz metin bloğuna arka arkaya üç kez uygulama tekniğine 3DES denir. 3DES’e yönelik kaba kuvvet saldırıları günümüzde olanaksız kabul edilmektedir. Temel algoritma sahada 35 yıldan fazla bir süredir iyi test edildiğinden çok güvenilir kabul edilmektedir. Birkaç yıl boyunca, DES’in nihayetinde kullanışlılığının sonuna geleceği kabul edildi. 1997’de AES girişimi duyuruldu. DES ve 3DES’in yerine AES seçildi, çünkü AES’nin anahtar uzunluğu DES’inkinden çok daha güçlü ve AES, benzer donanımlarda 3DES’ten daha hızlı çalışıyor.
Asimetrik Şifreleme Algoritmaları
Asimetrik şifreleme algoritmaları, verileri şifrelemek ve şifresini çözmek için bir anahtar çifti kullanır. Güvenli mesajlar, önceden paylaşılan bir anahtara sahip olmak zorunda kalmadan değiştirilebilir. Hiçbir tarafın paylaşılan bir anahtarı olmadığı için, çok uzun anahtar uzunlukları kullanılmalıdır. Bu algoritmalar yoğun kaynak gerektirir ve çalışması daha yavaştır. En yaygın olarak, anahtar çiftine sahip bir varlık, anahtarlardan birini (genel anahtar) paylaşır ve diğer anahtarı tam bir gizlilik içinde (özel anahtar) tutar. Özel anahtar, makul bir süre içinde genel anahtardan hesaplanamaz. Özel anahtarla şifrelenen verilerin şifresinin çözülmesi için ortak anahtar gerekir. Bunun tersi, genel anahtarla şifrelenen verilerin şifresinin çözülmesi için özel anahtar gerektirir. Asimetrik şifreleme, açık anahtar şifrelemesi olarak da bilinir. Asimetrik şifrelemenin olası bir senaryosu Şekil 3-5’te gösterilmiştir.
Bob’un bir genel / özel anahtar çifti oluşturduğunu hayal edin. Bob, özel anahtarı tamamen gizli tutar, ancak herkese açık olması için genel anahtarı yayınlar. Alice’in Bob’a özel olarak göndermek istediği bir mesajı vardır. Alice, gizliliği sağlamak için Bob’un açık anahtarını kullanarak mesajı şifrelerse, Bob mesajın şifresini çözmek için gerekli olan özel anahtara zaten sahiptir.
Şekil3-5 Asimetrik Şifreleme
Aşağıdaki tablo, günümüzde kullanılan asimetrik şifreleme algoritmalarının türlerinin ve bunların ilgili anahtar uzunluklarının bir özetini gösterir.
Asimetrik Şifreleme Algoritması | Anahtar Uzunluğu (bit) |
DH | 512, 1024, 2048, 3072, 4096 |
DSS ve DSA | 512–1024 |
RSA | 512–2048 |
El Gamal | 512–1024 |
Elliptical curve techniques | 160 |
Asimetrik şifreleme algoritmaları kullanan dört protokol şunlardır:
■ İnternet Anahtar Değişimi-Internet Key Exchange (IKE): IPsec VPN’lerin temel bir bileşenidir.
■ Güvenli Yuva Katmanı-Secure Sockets Layer (SSL): Artık IETF standardı TLS olarak uygulanmaktadır.
■ Güvenli Kabuk- Secure Shell (SSH): Ağ cihazlarına güvenli bir uzaktan erişim bağlantısı sağlar.
■ Pretty Good Privacy-Pretty Good Privacy (PGP): Kriptografik gizlilik ve kimlik doğrulama sağlayan bir bilgisayar programıdır.
Dijital İmzalar ve RSA Sertifikaları
Dijital imzalar, el yazısı imzalarla aynı işlevselliği sağlar. Spesifik olarak, şu temel güvenlik hizmetlerini sağlamak için kullanılan matematiksel bir tekniktir: bir kaynağın kimliğini doğrular, belirli bir tarafın söz konusu verileri gördüğünü ve imzaladığını kanıtlar; verilerin imzalandığı andan itibaren değişmediğini garanti eder ve veri alışverişinin gerçekleştiğini üçüncü bir tarafa kanıtlar.
Dijital imzalar genellikle kod imzalamada (indirilen dosyaların bütünlüğünü doğrulamak için) ve dijital sertifikalarda (bir kuruluşun veya bireyin kimliğini doğrulamak için) kullanılır. Dijital imzaların temel dört özelliği, (1) imzanın gerçek olması, (2) imzanın taklit edilemez olması, (3) imzanın yeniden kullanılamaması ve (4) imzalayanın daha sonra imzalamadığını iddia edememesidir.
Dijital sertifikalar, mesaj gönderen bir kullanıcının iddia ettikleri kişi olduğunu doğrulamak için kullanılır. Şekil 3-6, bir RSA dijital sertifika veya imzasının nasıl kullanıldığını gösterir. RSA, dijital imzaları oluşturmak ve doğrulamak için yaygın olarak kullanılan asimetrik bir algoritmadır. Bu senaryoda Bob, Alice ile bir siparişi onaylıyor. Adımlar aşağıdaki gibidir:
Şekil3-6 RSA Dijital İmzanın Kullanılması
- Bob, belgeyi ve tüm içeriğini benzersiz şekilde tanımlayan bir hash-karma özeti veya parmak izi oluşturur.
- Bob, karma özetini yalnızca imzalayanın özel anahtarıyla (yani Bob’un özel anahtarı) şifreler.
- İmza olarak bilinen şifrelenmiş karma belgeye eklenir.
- Alice, Bob’un genel anahtarını alır.
- Alice, Bob’un genel anahtarını kullanarak imzanın şifresini çözer. Bu adım, başlangıçta Bob tarafından hesaplanan hash-karma değerini ortaya çıkarır.
- Alice, alınan belgenin imzası olmadan bir karma değerini oluşturur ve bu karmayı Bob tarafından gönderilen şifresi çözülmüş imza özetiyle karşılaştırır. Karmalar eşleşiyorsa, belge orijinaldir.
Eşleşme, belgenin Bob tarafından imzalandığı ve imzalandığından beri değişmediği anlamına gelir.