Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Kriptografiye Giriş – 2

Merhaba,
Uzun bir aradan sonra Kriptografiye Giriş yazısının ikinci kısmıyla karşınızdayım. Bir önceki yazıyı okumak için buraya tıklayabilirsiniz.
Bu yazıda Kriptografi biliminin temel konseptlerinden olan şifreleme(encryption) ve doğrulama(authentication) süreçlerinden bahsedeceğim.

1. Şifreleme (Encryption)

Şifreleme, Kriptografi bilimiyle ulaşılmak istenen önemli hedeflerden biridir. Şimdi ilk ve en temel senaryomuzu modelleyelim.

Senaryolarımızın olmazsa olmaz üçlüsü: Alice, Bob ve Eve. Bu modelde birbirleriyle iletişim kurmak isteyen Alice ve Bob’un yanı sıra bu iletişimin gerçekleştiği güvenli olmadığı varsayılan iletişim kanalını dinleyebilen Eve karşımızda. Alice ve Bob’un amacı ise Eve’e karşın birbirleriyle iletişim kurmak. Yazı boyunca bu süreçte Eve’in olası saldırılarına karşın Alice ve Bob’un amaçlarına ulaşmak için kullanacağı çözümleri görmüş olacaksınız.Bu amaca ulaşmak adına ilk olarak, Alice ve Bob daha önceden anlaştıkları şifreleme anahtarını (Ke) kullanıyorlar. Bu anahtar üzerinde nasıl anlaşıkları yani anahtar değişimi aslında ayrı bir yazı konusu olacak kadar önemli; fakat bu senaryoda anahtarı birbirlerine mail attıklarını varsayalım. Alice göndermek istediği mesajları(m) önce bu bu anahtar(Ke) ve bir şifreleme fonksiyonu (E) kullanarak şifreledikten sonra gönderiyor. Bob başka bir fonksiyona(D) anahtar(Ke) ve kendisine ulaşan şifreli mesajı(c) vererek orjinal mesajı(m) elde ediyor. İletişim kanalını her zaman dinleyen Eve, anahtara sahip olmadığından elde ettiği şifreli mesajı çözemiyor. Burada basit bir şekilde modellediğimiz senaryoyu mail alıp gönderirken kullandığımız gibi bilginin depolanması aşamasında da kullanıyoruz. Burda söz konusu, bilginin fiziksel ortamının değişmesi değil de bilginin zamanın farklı anlarını arasında taşınmasıdır. Bu durumda Alice ve Bob zamanın farklı dilimlerini temsil ediyor.

Kerckhoffs İlkesi

Yukarıda bahsettiğimiz Alice ve Bob’un güvenli iletişim kurmasını sağlayan şifreleme düzeni, kullandıkları şifreleme fonksiyonun gizliliğine değil de kullandıkları şifreleme anahtarının gizliliğine dayanmalıdır. Kerckhoffs İlkesi şifreleme sisteminin ya da düzeninin güvenliği, kullanılan anahtarının gizliliğine dayanması ilkesidir.
Bu ilkenin arkasında mantıklı sebepleri maddeleyecek olursak,

  • Algoritmalar yazılım ya da donanımlar üzerine konuşlandırıldığından değiştirilmeleri zordur.
  • Aynı algorimanın uzun süre kullanılması daha kullanışlı ve pratiktir. Günümüzde karşımıza çıkan çoğu protokolun bu şekilde kullanılması gibi.
  • Bir anahtarın gizli tutulması, bir algoritmanın gizli tutulmasından çok daha kolay ve ucuzdur.

Algoritmaların herkese açık hale getirilmesinin avantajları ise,

  • Saldırganların olası ataklarının diğer insanlar tarafından önceden fark edilebilmesi ve hatanın giderilebilmesi
  • Potansiyel güvenlik açığının vereceği zarar, algoritma gizliliğinin katacağı ekstra güvenlikten çok daha fazla olacağından gizli protokellere güvenmemeliyiz.

2. Doğrulama (Authentication)

Alice ve Bob, modellediğimiz ilk senaryoda birbirlerine gönderdikleri mesajları şifreleyerek Eve için okunamaz, anlaşılamaz hale getirmişlerdi. Bu işlem ikili arasındaki iletişimin gerçekleşmesindeki bir problemi çözmüş oldu fakat hala problemlerimiz var. Eve’in hala bu iletişimi sekteye uğratacak sinsi planları mevcut. İletişim kanalını üzerindeki hakimiyetini bildiğimiz Eve, mesajı değiştirmeye ya da yok etmeye kalkışabilir. Eve’in bu denemeleri yapabilmesi için iletişimin gerçekleştiği kanal üzerinde daha fazla yetki ve kontrole sahip olması gerekiyor fakat bu imkansız bir durum olmadığından göz önünde bulundurulması gereken bir mesele olarak karşımızı çıkıyor. Bob’a ulaşan bir mesajın, sadece ve sadece Alice tarafından oluşturulduğuna Bob nasıl ikna olacak? Eğer bu doğrulanma sağlanamaz ise, Bob’a gelen mesajın hiç bir önemi kalmayacaktır. Bu problemi çözmek için doğrulama (authentication) sürecini tanımak ve uygulamak durumundayız. Şifreleme (encryption) kısmında da bahsettiğimiz gibi bu kez Alice ve Bob’un bildiği bir doğrulama anahtarı(Ka) kullanacağız. Bir mesajın nasıl doğrulanacağını basit bir şekilde modelleyelim.

Alice göndermek istediği bir mesaji öncelikle doğrulama anahtarıyla(Ka) birlikle bir fonksiyona(H) sokarak mesaj doğrulama kodunu(message authentication code – MAC) elde ediyor(a). Mesajını ve elde ettiği MAC’i Bob’a gönderiyor. Bob kendisine gelen mesajı tıpkı Alice’in yaptığı gibi önce doğrulama anahtarıyla MAC fonksiyonuna(H) veriyor. Oluşan kodu kendisine gelen MAC ile karşılaştırıp doğrulamayı sağlayabiliyor. Eve’in muhtemel bir mesajı değiştirme çabası(m’), eşleşmeyen MACler sayesinde ortaya çıkmış olacaktır. Burda MAC fonksiyonun farklı girdiler için aynı kodlar oluşturmamasına dikkat edilmelidir. Eve’in doğrulama anahtarını bilmediğini varsayalım. İletişim kanalını dinleyebilen Eve, mesaj ve ona karşılık gelen geçerli MAC ikilisine sahip olabilir. Bu durumda Eve’in yapabileceği bir şey daha var. Eve mesajları biriktirip Bob’a daha sonra gönderebilir ya da mesajların geliş sırasını bozabilir. Bu ihtimaller hala Alice ve Bob’un yazının başında ifade ettiğim iletişim amacının önüne geçebilir. Şimdiki problemimizi sadece doğrulama (authentication) süreciyle çözemeyiz. Mesajın silinmesi ya da ardışık mesaj sırasının bozulması hala problem teşkil ediyor. Bu yüzden doğrulama işleminin yanı sıra mesaj numaralandırma işlemi de yapmamız gerekiyor. Bu işlemi her bir mesajın ardışık olarak numaralandığı bir işlem olarak tanımlayabiliriz. Alice’in gönderdiği mesaj bir mesaj numarası içerirse, Bob’un Eve tarafından kandırılması daha da zorlaşacaktır. Eve’in eski mesajları göndermesi ya da mesaj sırasını bozma girişimi Bob’un mesaj numaralarını takibiyle etkisiz kalacaktır. Bir sonraki yazıda Açık Anahtar Şifrelemesi, Dijital İmza, şifrelemeye karşın yapılan saldırılardan bahsedeceğim.

İyi Günler.

About Furkan BUYRUKOĞLU

Orta Doğu Teknik Üniversitesi - Bilgisayar Mühendisliği

Follow Me