IPSec

Özetleme (Hashing) ve Veri Doğrulaması Nedir?

veri özetleme nedir

Hashing Nedir? Neye Yarar?

Özetleme işlemi (hashing) IPsec sisteminde verinin doğrulanması için kullanılır. Böylece gelen veri için bütünlük (integrity) kontrolü yapılır. Alıcıya orijinal verinin değişmeden gelip geldiği anlaşılır. Veri, orijinal değilse dikkate alınmaz.

Hashing Nasıl Çalışır?

Hasing algoritmaları orijinal veriyi küçültür. Örneğin MD5 algoritması, orijinal veriler ne kadar uzun olursa olsun 128 bit’e indirger. Veri küçüldüğü için özeti çıkmış olur. Bundan dolayı hashing algoritmalarına özetleme algoritmaları denir.

  • Hashing = Özetleme İşlemi
  • Hash Data = Özet Veri

Aşağıda mod 10 işlemi ile yapılan bir özetlemeye örnek verilmiştir. Mod 10 bir sayıyı 10’a bölüp kalanını yazmak demektir. 49 39 329 112 82 522 72 94 34 64 121 541 verisi aşağıdaki gibi özetlenir.

hashing ornek

Mod 10 işlemine tabi tutulan sayılarda sonucun aynı çıktığı durumlar vardır. Bu durumda örneğin ilk satır için 49, 39 ve 329 sayıları 9’a özetlenmiş olur. Diğer satırlarda da benzer işlem yapılır. Sonucu olan aynı sayılar silindiği için 12 adet sayı, 4 adete dönüşmüştür.

  • Orijinal Veri: 49 39 329 112 82 522 72 94 34 64 121 541 =>(29 adet karakter)
  • Hash Veri: 9 2 4 1 =>(4 adet karakter)

Dolayısıyla veri boyutu da küçülmüş ve özetleme yapılmış olur. Bu örnekte mod 10 işlemi kullanılmıştır. Her bir hash algoritması kendine özgü bir yöntemle özetleme yapar. Bu yöntem de algoritmanın gücünü belirler. Örneğin MD5 yöntemi, SHA’ya göre çok daha zayıf bir algoritma kullanır.

MD5 veya herhangi bir özetleme (hashing) algoritması tek yönlü (One Way Function) çalışır. Hash’ten tekrar açık veri (plain text) elde edilemez. Yani karmaşık ve anlamsız olan özet veri tersine işlemle çözülemez. Fakat son dönemlerde “Dictionary attack” gibi gelişmiş saldırı yöntemleriyle çözme işlemi başarılabiliyor. Bu yüzden zayıf olan MD5 yerine SHA gibi daha güçlü hash algoritmalarının tercih edilmesi doğru olur.

Hashing Nerelerde Kullanılır?

Hash işleminin çok farklı yerlerde kullanımları vardır. Aşağıda sadece bazılarından bahsedeceğim. Örnekler tamamen olayı anlamanız için verilmiştir.

Örnek 1 – Username ve Pasword Kontrolü:

Diyelim ki bir web sitesine kayıt oluyoruz. Burada yazdığımız password’ün veritabanında açık olarak durmaması gerekir. Çünkü veri tabanına ulaşabilen kötü niyetli kişiler şifreyi ele geçirebilir. Şifrenin özetlenerek veri tabanına kaydedilmesi gerekir.

  • Orijinal Şifre: 12345 -> MD5 -> Özet Şifre: 827ccb0eea8a706c4c34a16891f84e7b

Login ekranından giriş yaparken girilen password hashleniyor ve daha önce veri tabanına kaydedilen özet şifre ile karşılaştırılıyor. Aynıysa giriş izni veriliyor.

Bu mantığa göre çalışan bir web sitesi düşünelim. Şifremi unuttum seçeneğine tıkladığınızda şifreniz size açık bir şekilde gelmez. Çünkü şifreniz aslında sistemde okunabilir halde yoktur. Sadece hash hali vardır. Bu da geri çevrilemez olduğundan şifre tamamen gizlenmiş olur. Şifrenizi unuttuğunuzda sistem sizden yeni şifre üretmenizi ister. Yeni şifre sisteme gönderildiğinde hemen özetlenir ve tekrar veri tabanına kaydedilir.

Örnek 2 – Telif Hakları için Orijinallik Kontrolü:

Bir kitap yazdınız ve kitabınızın çalınmasını istemiyorsunuz. Kitabınızı yayınlamadan önce tamamını hashleyip telif haklarını koruyan bir şirkete veya akredite otoriteye yolluyorsunuz. Böylece şirket kitabınızı okuyamıyor bile. Daha sonra başka birisi kitabınızı kopyalıyor ve yayınlıyor. Siz “bu kitabın sahibi benim” dediğinizde bunu ispatlamanız isteniyor. Siz çakma kitabı hashleyip ispat için şirkete gönderiyorsunuz. Şirket karşılaştırıp “evet yıllar önce bu kitabın hashini ben kaydetmiştim” dediğinde ispatlamış oluyorsunuz.

Veya youtube, videoların orijinalliğini kontrol ederken hashlarinin karşılaştırmasını yapar. Koca koca videoların karşılaştırmasını yapmaz. Bu da hız demektir. Dolayısyla büyük donanımsal kaynaklardan tasarruf edilmiş olur.

Örnek 3 – Veri Doğrulamada Bütünlük Kontrolü:

IPsec’te ise verinin yolda değişip değişmediğinin kontrolünde kullanılır. Verinin yanında hash hali de gönderilir. Alıcı taraf gelen veriyi hashler. Bunu, göndericinin hashi ile karşılaştırır. Aynıysa veri doğru şekilde ulaşmıştır. Farklıysa yolda veri kaybı yaşanmış veya kötü niyetli kişilerce değiştirilmiş olabilir. Bundan dolayı veri kabul edilmez ve çöpe atılır.

veri dogrulaması ornek

Yukarıdaki örnekte Ali, “abc” verisini MD5 ile hashliyor. Orijinal veriyi hash veri ile birlikte Mehmet’e gönderiyor. Mehmet gelen veriyi MD5 ile hashliyor. Mehmet’in hashi ile karşılaştırıyor. Bu şekilde doğrulama yapıyor.

Veri boyutu düşük de olsa çok yüksek de olsa hash veri belirli bir sınırdadır. Veri kısa ise boşluklar padding gibi bir yöntemle doldurulur. Bir kelimenin hash boyutu ile koca bir kitabın hash boyutu aynıdır. Bunu test etmek için online md5 hash generator veya online SHA hash generator şeklinde arama yaparak çıkan web sitelerinde denemeler yapabilirsiniz.

Özetleme (Hashing) ve Veri Doğrulaması Nedir?” üzerine 2 yorum

  1. Anlatım o kadar güzel ki yanlış bildiklerimi doğrularla düzelttim, çok teşekkürler emeğinize sağlık

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir