İçeriğe geç
Yeni yazı çıkınca e-posta · 4.812 abone 190 rehber · 78 ipucu · 58 komut RSS GitHub LinkedIn İletişim
Ara Ctrl K Bültene katıl
Tüm arşiv · 190 rehber →
Tüm araçlar · 75 üreteç →
Güvenlik & Entra ID

Parola hashleme nedir? Parolalar neden şifrelenmez, hashlenir

Tek yönlü özet, tuz, yavaş algoritmalar ve gökkuşağı tablosu; bir sızıntının gerçekte ne kadar zarar verdiğini belirleyen ayrıntılar.

Mustafa Çelik 25 Ağustos 2026 · 4 dk okuma

Bir veritabanı sızdığında ortaya çıkan tablo hemen hemen her zaman aynıdır: kullanıcı adları ve yanlarında uzun karakter dizileri. O dizilerin nasıl üretildiği, sızıntının birkaç saatlik mi yoksa yıllarca sürecek bir sorun mu olduğunu belirler.

Şifreleme değil, özet

Şifreleme geri döndürülebilir: anahtarla açarsınız. Parolalar için bu istenmez — çünkü anahtar da bir yerde durmak zorundadır ve sunucuyu ele geçiren onu da alır.

Bunun yerine tek yönlü özet kullanılır. Parola bir fonksiyondan geçirilir, sabit uzunlukta bir çıktı üretir ve o çıktıdan parolaya geri dönülemez.

Doğrulama şöyle işler: kullanıcı parolayı girer, aynı işlemden geçirilir, saklanan değerle karşılaştırılır. Sunucu parolanın kendisini hiç bilmez.

Bu, “parolamı unuttum” akışının neden parolanızı gönderemediğini de açıklar. Size eski parolayı yollayan bir sistem, onu düz metin ya da çözülebilir biçimde saklıyor demektir — ve bu tek başına ciddi bir uyarı işaretidir.

Hızlı özet fonksiyonları parola için yanlış

SHA-256 gibi genel amaçlı özet fonksiyonları hızlı olmak üzere tasarlanmıştır. Dosya bütünlüğü için doğru tercih, parola için felakettir.

Modern bir grafik işlemcisi saniyede milyarlarca SHA-256 hesaplayabilir. Saldırgan sızdırılmış tabloyu alır, yaygın parolaları tek tek dener ve büyük bölümünü kısa sürede bulur.

Parola için tasarlanmış algoritmalar bilerek yavaş ve bellek yoğundur: bcrypt, scrypt ve bugünün önerilen seçeneği Argon2. Yavaşlık ayarlanabilir; donanım hızlandıkça maliyet parametresi artırılır.

Bellek yoğunluğu ayrıca önemlidir: grafik işlemcileri çok sayıda paralel çekirdeğe sahiptir ama bellek bandı sınırlıdır. Bellek isteyen bir algoritma bu avantajı kırar.

Genel amaçlı özetleri hesaplamak ve aralarındaki farkı görmek için hash hesaplayıcı aracına bakabilirsiniz.

Tuz: aynı parola, farklı çıktı

Tuz (salt), her parolaya eklenen rastgele bir değerdir ve özetle birlikte saklanır. Gizli değildir; amacı gizlilik değil.

Tuz olmadan aynı parolayı kullanan iki kullanıcı aynı özete sahip olur. Saldırgan bunu görür ve tek bir kırma işlemiyle ikisini birden çözer. Ayrıca önceden hesaplanmış devasa tablolar — gökkuşağı tabloları — doğrudan işe yarar.

Tuz eklendiğinde her kullanıcının özeti benzersizleşir. Önceden hesaplanmış tablolar değersizleşir ve saldırganın her parolayı ayrı ayrı denemesi gerekir.

Modern kütüphaneler tuzu otomatik üretir ve özet dizesinin içine gömer. Elle tuz yönetmeye çalışmak, hata yapılan yerdir.

Biber ve tekrar sayısı

Bazı sistemler bir de biber (pepper) kullanır: tüm parolalara eklenen, veritabanında değil uygulama yapılandırmasında ya da donanım güvenlik modülünde saklanan gizli bir değer.

Faydası şudur: yalnızca veritabanı sızarsa özetler yine de kırılamaz, çünkü biber orada değildir. Tuzun aksine biber gizlidir.

Algoritmanın maliyet parametresi de düzenli gözden geçirilmelidir. Beş yıl önce yeterli olan tekrar sayısı bugün zayıftır; kullanıcı bir sonraki girişinde parolası yeni parametreyle yeniden özetlenebilir.

Sızıntı olduğunda

Özetlenmiş parolalar sızdığında “kırılamaz” demek yanlıştır. Zayıf ve yaygın parolalar, iyi bir algoritmayla bile bulunur — çünkü saldırgan tüm olasılıkları değil, en olası birkaç milyonu dener.

Bu yüzden sızıntı sonrası yanıt her zaman aynıdır: parolaları sıfırlamak, oturumları geçersiz kılmak ve MFA’yı zorunlu kılmak. Olayın ilk saatinde yapılacaklar olay müdahalesi: ilk saat rehberinde.

Bir adresin bilinen sızıntılarda geçip geçmediğini sızıntı kontrolü aracıyla denetleyebilirsiniz.

Zamanlama sızıntısı

Kırılması gereken bir ayrıntı daha var: doğrulama işleminin ne kadar sürdüğü de bilgi verir.

Bir sistem, olmayan bir kullanıcı için hemen “hatalı” derken, var olan bir kullanıcı için özet hesaplayıp yanıt veriyorsa, aradaki süre farkı hangi hesapların gerçek olduğunu ele verir. Saldırgan önce geçerli kullanıcı listesini çıkarır, sonra yalnızca onlara yoğunlaşır.

Aynı sorun hata mesajlarında da görülür: “kullanıcı bulunamadı” ile “parola hatalı” ayrı mesajlar olduğunda liste doğrudan verilmiş olur.

İki önlem standarttır: her iki durumda da aynı genel mesajı döndürmek, ve kullanıcı bulunamadığında da sahte bir özet hesaplayarak süreyi eşitlemek.

Aynı mantık imza karşılaştırmasında da geçerlidir — bu yüzden karşılaştırmalar sabit sürede yapılır; örneği webhook imza doğrulayıcı aracında.

Kullanıcı tarafı

Teknik önlemler, yeniden kullanılan bir parolayı kurtaramaz. Başka bir sitede sızan parola sizin sisteminizde de denenir — bu saldırıya kimlik bilgisi doldurma denir ve son derece yaygındır.

Uzunluk karmaşıklıktan değerlidir: rastgele dört kelime, sekiz karakterlik simgeli bir paroladan güçlüdür ve hatırlanabilir. Üretmek için parola üreteci, politika eşiklerini seçmek için kilitleme politikası aracı var.

Kısaca

Parolalar şifrelenmez, tek yönlü özetlenir. Doğru kurulum üç parçadır: parola için tasarlanmış yavaş bir algoritma, kullanıcı başına rastgele tuz ve düzenli gözden geçirilen maliyet parametresi. Üçü varsa bir sızıntı yönetilebilir; yoksa sızıntı, tüm hesapların anında ele geçmesi demektir.

Mustafa Çelik

Altyapı ve Operasyon Müdürü, İstanbul. 25 yıldır BT altyapısı, sistem yönetimi ve ağ altyapısıyla uğraşıyor; öğrendiklerini bu blogda üretim ortamında denenmiş rehberlere çeviriyor.

Hakkımda

Bu rehber işinize yaradıysa, sonrakini kaçırmayın.

Yeni yazı yayınlandığında tek e-posta. Takvim yok, dilediğiniz an çıkabilirsiniz.

Bülten sağlayıcısı henüz bağlanmadı. Bağlanana kadar e-posta ile yazabilirsiniz ya da RSS akışını takip edebilirsiniz.