it-swarm-tr.com

Karma şifreler nasıl güvenli bir şekilde oluşturulur?

Şifreleri veritabanımda saklamadan önce karma yaparsam, herkes tarafından kurtarılmasını önlemek için yeterli mi?

Bunun sadece veritabanından doğrudan almakla ilgili olduğunu ve uygulamanın giriş sayfasını bruteforcing, istemcideki keylogger ve tabii ki rubberhose cryptanalysis (ya da bugünlerde buna " Chocolate Cryptanalysis ") demeliyiz.

Elbette ki herhangi bir karma şekli bu saldırıları engellemeyecektir.

850
AviD

bcrypt'in GPU'larda daha yavaş olduğu söylenir, bu da kaba zorlamayı yavaşlatır. Ancak, sürekli gelişen bilgisayar donanımı ile, sadece belirli bir donanımda belirli bir karma algoritmanın uygulanmasının zorluğuna güvenmemeliyiz.

Aksine, bazı karma işlevlerinin desteklediği "değişken iş/maliyet faktörü" (bazen "yuvarlar" olarak da adlandırılır) kullanarak karma değerinin kaba kuvvetlendirilmesi maliyetini keyfi olarak artırabilirsiniz. Bunlar arasında bcrypt ve SHA-512 bulunmaktadır.

Glibc'nin crypt() işlevi, bazı karma algoritmalar için mermilerin belirlenmesine izin verir. Örneğin, SHA-512 için bir 100000 Maliyet faktörü, karma üretimini (ve dolayısıyla kaba zorlama) bcrypt için maliyet faktörüne 08 Göre yaklaşık 4 kat daha yavaş yapar. Bu, hashcat gibi bir karma çözme programı kullanılarak onaylanabilir.

Bir noktada şifrenizin karma ve tuzlarının çalınacağını ve saldırganların onları güçlendirmek için ASIC donanım kullanacağını varsayarsanız, iş faktörünü hala onlar için çok maliyetli hale getirmek için artırırsınız, normal kullanıcı kimlik doğrulaması ile sunucunuzun CPU'sunu aşırı yüklemez.

Bununla birlikte, uzun ve rastgele parolaların önemi geçerlidir.

Detaylar hakkında bir blog yazısı yazdım.

0
Michael Franzl