Araç hakkında
Parolalar neden SHA-256 ile değil, yavaş bir fonksiyonla saklanır?
SHA-256 gibi genel hash fonksiyonları hızlı olacak şekilde tasarlanmıştır; tek bir ekran kartı saniyede milyarlarca SHA-256 hesaplayabilir. Veritabanı sızdığında saldırgan her aday parolayı bu hızla deneyebilir. Parola hashleme fonksiyonları ise ayarlanabilir bir maliyetle bilinçli olarak yavaştır ve her parolaya ayrı rastgele salt ekler; böylece aynı parolalar farklı hash üretir ve önceden hesaplanmış tablolar işe yaramaz.
Argon2id ve parametreleri
Argon2, 2015’te Parola Hashleme Yarışması’nı (PHC) kazandı. Argon2id türü ilk geçişte veri bağımsız (Argon2i), sonraki geçişlerde veri bağımlı (Argon2d) bellek erişimi kullanarak hem yan kanal hem GPU saldırılarına karşı denge sağlar. RFC 9106 parola saklama için bu türü önerir.
| Parametre | Değer | Anlamı |
|---|---|---|
| m | 19 456 KiB | Her hesaplamada ayrılan bellek. Saldırganın paralel deneme sayısını belleğe bağlar. |
| t | 2 | Bellek üzerindeki geçiş sayısı. |
| p | 1 | Paralel şerit sayısı. |
| salt | 16 bayt | Her hash için yeni, rastgele. |
| çıktı | 32 bayt | Hash uzunluğu. |
Bu değerler OWASP’ın önerdiği minimum yapılandırmalardan biridir. Bellek artırılabiliyorsa, aynı güvenlik için tur sayısı azaltılabilir (ör. m = 46 MiB, t = 1).
Çıktı biçimi
$argon2id$v=19$m=19456,t=2,p=1$<salt>$<hash>Dize sürüm, parametre, salt ve hash’i birlikte taşır. Parametreleri ileride artırdığınızda eski hash’ler kendi parametreleriyle doğrulanmaya devam eder; kullanıcı bir sonraki girişinde yeni parametrelerle yeniden hash’lenebilir.
Sık sorulan sorular
Hesaplama neden birkaç saniye sürüyor?
Argon2 kasıtlı olarak bellek ve zaman harcar. Tarayıcıda JavaScript ile çalıştığı için yerel kütüphanelerden daha yavaştır; sunucuda aynı parametreler genellikle 50–100 ms sürer.
Pepper eklemeli miyim?
Pepper, veritabanı dışında (ör. ortam değişkeni veya HSM) tutulan ek bir gizli değerdir ve yalnız veritabanı sızdığında koruma ekler. Bu araç pepper kullanmaz; gerekiyorsa uygulama kodunuzda HMAC ile eklenmelidir.