Johannes Gorset'in belirttiği gibi , Matasano Security'den Thomas Ptacek'in yazısı, MD5, SHA1, SHA256 ve SHA512 gibi basit, genel amaçlı hashing fonksiyonlarının neden zayıf parola hashing seçenekleri olduğunu açıklıyor .
Neden? Çok hızlılar - modern bir bilgisayarla çekirdek başına saniyede en az 1.000.000 MD5 karması hesaplayabilirsiniz, bu nedenle insanların kullandığı çoğu parolaya karşı kaba kuvvet uygulanabilir. Ve bu, GPU tabanlı bir kırma sunucusu kümesinden çok daha az!
Anahtar esnetmeden tuzlama, sadece gökkuşağı tablosunu önceden hesaplayamayacağınız anlamına gelir, o özel tuz için onu özel olarak oluşturmanız gerekir. Ama işleri o kadar da zorlaştırmayacak.
Kullanıcı @Will diyor ki:
Herkes internet üzerinden hacklenebilecekmiş gibi bundan bahsediyor. Daha önce belirtildiği gibi, girişimlerin sınırlandırılması, İnternet üzerinden şifre kırmayı imkansız kılar ve karma ile hiçbir ilgisi yoktur.
Gerek yok. Görünüşe göre, LinkedIn durumunda , oturum açma DB tablosunu almak için yaygın SQL enjeksiyon güvenlik açığını kullandılar ve milyonlarca parolayı çevrimdışı olarak kırdılar.
Sonra çevrimdışı saldırı senaryosuna geri döner:
Veritabanının tamamı tehlikeye girdiğinde ve bir bilgisayar korsanı daha sonra md5 karma değerine karşı saniyede 100 milyon şifre denemesi gerçekleştirdiğinde güvenlik gerçekten devreye girer. SHA512 yaklaşık 10.000 kat daha yavaştır.
Hayır, SHA512 , MD5'ten 10000 kat daha yavaş değildir - yalnızca iki katı kadar sürer. Crypt / SHA512 , diğer taraftan, onun BCrypt meslektaşı gibi, gerçekleştirdiği, bu çok farklı bir canavar anahtar germe , yerleşik rasgele tuz ile çok farklı bir karma üreten ve bilgi işlem için çok fazla olarak 500 ve 999999 kez arasında bir şey alacak (germe ayarlanabilir).
SHA512 => aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
Crypt/SHA512 => $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21
Yani PHP için seçim Crypt / Blowfish (BCrypt), Crypt / SHA256 veya Crypt / SHA512'dir. Veya en azından Crypt / MD5 (PHK). Bkz. Www.php.net/manual/en/function.crypt.php