İkinci yazımızın devamı olarak hazırladığım bu blog devam niteliğindedir. Kriptoloji kavramını irdelemeye başlayacağız.
Kriptografi
Özünde veriyi şifrelemektir. Bizler için bazı sistematik ve yönetsel veriler 3. şahısların eline geçmesini istemeyiz. Fakat network ( ağ ) tüm dünyaya açıktır. Bizlerin verileri kablolu ve kablosuz yollardan, routerlardan geçmektedir. Bu yollara yapılan saldırılar başarılı olma ihtimaline karşı bizim bu bilgileri şifrelememiz gerekmektedir. Bu şifrelenmiş data yolda iken 3. kişi erişebilse dahi elinde şifrelenmiş, anlamsız paket veya paketler olacaktır. Bunu çözmek isteyen kişi ise çözmek için key ( anahtar ) adındaki aslında bizim dosyamızı şifreleyen sanal nesneye ihtiyaç duyar.
Siber güvenlik, kriptoloji olmadan bahsedilemeyecek bir daldır. Sİber güvenliğin altı temel hedefinden bahsetmiştik. Kriptografi bu altı hedefe de hizmet etmektedir. Bu sebeple kriptoloji siber güvenlik için çok temel fakat uzmanlaşması da zor bir konudur. Bu sebeple siber güvenlik uzmanları kriptoloji konusunda en azından bilinç sahibi olması zorunludur.
Sezar Şifreleme
Metindeki her harfin, üç harf sonraki ile değiştirilmesidir .Sezar’ ın bu basit şifrelemesinin amacı taşınan habere ulaşmak isteyen 3. kişilerin bir anlam verememesidir. Mesela ” Ahmet ” girdisini sezar yönetmiyle şifrelerseniz ” Djöğv ” gibi bir sonuca ulaşırsınız. Alıcı da her harfi, üç harf önceki harfle değiştirerek sonuca ulaşabilir. Bu yöntem 28 tane anahtara sahiptir. Halihazırda alfabe 29 karakterden oluşmaktadır. Bu yönü zayıf olduğunu gösterir fakat milattan öncesi için güzel bir düşüncedir.
Simetrik Şifreleme
Bu yöntemde bir özel anahtar seçilir ve bu anahtar ile hem şifrelenir hem çözülür. Burada farklı şifreleme algoritmaları vardır. Algoritmanın belirlenip keyin üretimesi gerekmektedir.
AVANTAJLARI
- Key uzayı günümüzde çok fazladır ve bu da çözümünün çok zor olduğunu göstermektedir. Brute-force saldırılarına karşı dayanıklıdır.
- Diğer popüler yöntemlere göre hızlıdır.
- Düşük güç tüketir.
DEZAVANTAJLARI
- Key dağıtımı zordur. Çünkü karşı tarafın da şifrelenmiş datayı okuyabilmesi için keye ihtiyacı var ve bunu ağdan göndermemiz de ayrı bir risk faktörüdür.
- Key yönetimi zordur. Çünkü her iletişim kanalımız için bir key gerekmektedir ve bu yönetim gerekliliği sağlar.
- Kimlik doğrulama sistemini sağlayamaz. Çünkü key şahsi değildir.
Aslında hız, düşük kaynak ve güvenlik konusunda kuvvetlidir. Fakat key yönetim ve dağıtımı güvenlik konusunda sorun yaratmaktadır.
AES ve DES Anahtar Uzayı
AES Algoritması
128 ve 256 bit uzunluğunda bloklara bölerek elinizdeki keye göre şifreleme yapar. Büyük bir key uzayına sahiptir. Eğer bir key örneği verirsek ” 2b7e151628aed2a6abf7158809cf4f3c ” olarak örnek verebiliriz. Bu örnekte 32 hexadecimal karakter mevcuttur. Her hexadecimal karakter 4 bit olduğunu düşünürsek 32*4 ile 128 bit sonucuna ulaşabilirsiniz.
AES algoritması çok büyük bir key uzayına sahiptir. Aşağıda key uzayının matematiksel karşılığını görebilirsiniz.
AES algoritması 256 bit ile de çalışabilmektedir. Öyle ki 2 üzeri 128 evrendeki tüm atomların sayısı olduğu tahmin edilmektedir.
DES Algoritması
Yukarıdaki ifade DES algoritmasındaki key uzayını bize göstermektedir. Günümüzde bu şifreleme algoritması önemini yitirmiştir.
VERNAM Şifreleme
Teorik olarak kırılması imkansıza yakın olması onu güvenlik konusunda cazip kılmaktadır. Yöntemi her karakteri başka herhangi bir karakterin ASCII değeri ( yaratılan key ) ile XOR ederek şifrelemesidir. Rasgelelik onu güvenli kılar fakat her key yalnızca bir kez kullanılması ( one-time pad )gerekmektedir.
One-Time Pad Neden Çok Kullanılmaz?
En büyük sebebi her karakteri kendi başına rastgele şifrelediği için keyin çok yer kaplamasıdır. Aynı zamanda key yönetimi de çok zordur.
Blok ve Akış Şifreleme
Akış Şifreleme ( Stream Ciphers )
Metin ve anahtar arasında karakterlerin eşlenip sırayla XOR yapılarak şifrelenmesidir.
Blok şifrelemenin aksine bir bir sınırı yoktur. Taşma durumu olmaz. Vernam şifreleme örnek verilebilir.
Blok Şifreleme
Metinin alanının 128 veya 256 bite bölünüp sonrasında oluşan blokların kullanılacak algoritmaya, key belirlenip şifrelenmesi işlemidir. Mesela metniniz 100 bit ise ve siz 128 bit ile şifrelemek isterseniz yaşayacağınız sorun şu ki bir blok bile etmiyor. Bu eksik tamamlanır. Buna dolgulama denir. AES ve DES algoritmaları örnek verilebilir.
ECB (Electronic CodeBook) Modu
Biz 128 bit ile şifreleriz fakat dosya örneğin 3 mb değerinde olsun. Bu durumda bir ihtimal her bloğu bağımsız ve ayrı ayrı şifrelemektir. Bilgi sızıntısına neden olabilir.
Sayaç Modu
Blok şifrelemi akış şifreleme gibi şifreler. Ayırdığı her blok başka bir biçimde şifrelendiği için daha karmaşık bir şifreleme olmuş oluyor.
Asimetrik Şifreleme
Doğuş amacı key yönetimi ve dağıtımının zor oluşudur. Kişinin herkese açık bir public key ve sadece kendisinde olan private keye sahiptir. Aşağıdaki Ahmet kişi Ayşeye mesajını Ayşe’ nin public keyi ile şifrelemiştir. Burada bu şifrelenmiş yazıyı açık anahtar açamaz. Ayşe’nin açık anahtarıyla şifrelenen dosya sadece Ayşe’ nin gizli keyi ile açılabilir. Bu sayede kişi key yönetimi ve dağıtımında zorlanmaz. Bu yöntem yoğun matematik içermektedir. Özellikle asal sayılar ve logaritmik işlemleri barındıran algoritmalar mevcuttur.
Fakat key yönetiminde yüzde yüz sağlamlık olmadığını bütünlük probleminden görürüz. Eğer araya giren 3. kişi sizin göndereceğiniz public keyi kendi public keyi ile değiştirip iletişim kuracağınız 2. kişiye gönderimini sağlarsa sadece 3. şahıs o metni okuyabilir.
RSA algoritması popüler asimetrik şifreleme algoritmalarındandır.
Sayısal İmza Üretme Ve Doğrulama
Burada da asimetrik şifreleme kullanmaktayız. Kişi kendi private keyini kullarak hexadecimal bir ifade şifreleme algoritmasına eklemiş oluyor. Alıcı ise bu gelen mesajın kimden geldiğini dogrulamak için gönderen kişinin public keyini kullanarak kimden geldiğini sorgulayabilir.
Yukarıdaki örnekte Alice kendi özel keyi ile mesajı imzaladı ve Bob, Alice’ nin açık anahtarını kullanarak imzayı doğrular.