İçeriğe geç

Argon2id Hash Oluşturucu

Parola Hashleme Yarışması (PHC) kazananı Argon2’nin önerilen türü; bellek-zor ve yan kanal saldırılarına dirençli.

RFC 9106

Parametreler: m = 19 456 KiB (19 MiB), t = 2, p = 1, 16 bayt rastgele salt, 32 bayt çıktı (OWASP önerisi).

Her çalıştırmada yeni bir salt kullanılır; aynı parola farklı hash üretir. Doğrulama için çıktının tamamını saklayın.

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.

ParametreDeğerAnlamı
m19 456 KiBHer hesaplamada ayrılan bellek. Saldırganın paralel deneme sayısını belleğe bağlar.
t2Bellek üzerindeki geçiş sayısı.
p1Paralel şerit sayısı.
salt16 baytHer hash için yeni, rastgele.
çıktı32 baytHash 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>
PHC dize biçimi. libsodium, argon2-cffi ve node-argon2 gibi kütüphaneler bu biçimi okuyabilir.

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.

Kaynaklar