Kriptografi Hash'ler
Bir hashing algoritması, düz metinden karılmış metin oluşturan tek yönlü bir işlevdir. Nispeten küçük bir hash özeti veya imzası büyük bir veri bloğunun bütünlüğünü gösterebileceğinden genellikle veri doğrulama için kullanılır. Hash'ler ayrıca hassas bilgilerin açık metin olarak saklanmasına gerek kalmaması için de kullanılabilir. Bir parolanın özetini saklayarak, parolanın kendisini saklamadan doğru parolanın girilip girilmediğini kontrol edebilirsiniz. Bir veri ihlali durumunda yalnızca hash'ler sızdırılır ve saldırganın diğer hizmetlerle denemek için şifrelere erişimi yoktur.
İki ana karıştırma algoritması ailesi kullanılır: MD5 ve SHA. MD5 128 bitlik bir hash değeri üretir ve veri bütünlüğünü doğrulamak için hala sıklıkla kullanılır. Algoritma teknik olarak kriptografik olarak kırılmıştır, ancak hala kullanıldığını görebilirsiniz. SHA algoritma ailesi SHA-1, SHA-2 ve SHA-3'ten oluşur:
- SHA-1: 160 bit, MD5'e benzer, NSA tarafından tasarlanmıştır, artık kriptografik kullanım için tasvip edilmemektedir
- SHA-2: SHA-256 ve SHA-512, blok boyutunu gösteren sayı ile çok yaygındır, NSA tarafından tasarlanmıştır
- SHA-3: NSA tarafından tasarlanmamıştır, yaygın olarak benimsenmemiştir, SHA-2 ile benzer numaralandırma şeması (SHA3-256, vb.)
Parola karmalarına karşı sözlük tabanlı saldırılar oldukça yaygındır. Genellikle sözlükteki her kelime için bir hash üreten ve daha sonra bu hash'i ele geçirilen makinede depolananla karşılaştıran bir yazılım kullanılır. Bununla mücadele etmenin bir yolu tuzlama veya her parolaya rastgele bitler eklemektir. Tuzlama yapılırken bitler hash ile birlikte saklanır. Bu, sözlük tabanlı bir saldırıyı, tüm olası hash'lerin depolanmış bir tablosunu (gökkuşağı tablosu) kullanmak yerine, tuzun ne olduğuna bağlı olarak hash'leri aktif olarak üretmeye zorlar. Parolanın karmaşıklığına bağlı olarak saldırıları anlık olmaktan çıkarıp günlere hatta yıllara yayabilir.
Hash'lere yönelik saldırılarla mücadele etmenin daha da iyi bir yolu gizli bir tuz veya biber kullanmaktır. Biber, parolaya eklenen ancak elde edilen hash ile birlikte saklanmayan rastgele bir değerdir. Rastgele değer, donanım Güvenlik Modülü gibi ayrı bir ortamda saklanabilir.
Önceki Ders: Kriptografi Matematiksel Temel
Sonraki Ders: Simetrik Şifreleme
Yorumlar
Yorum Gönder