Parola Saklama — Kullanıcı Tablosu Sızdı, Şimdi Ne Olacak?
Önce şunu oku: Spring Security Filter Chain
30 saniyede özet
Parola şifrelenmez, hash'lenir. Tuzsuz hızlı bir hash aynı parolaları ele verir ve hazır tablolara yenilir; tuz bunu durdurur ama tahmini ucuz bırakır. bcrypt gibi yavaş bir hash ile sızmış parolaları kayıtta reddetmek birlikte çalışır.
Bir baharatçı tariflerini kavanozların üstüne yazıyor; dükkâna giren herkes okuyabiliyor. Sonra hepsini toz hâline getiriyor. Ama aynı karışımın iki kavanozu birebir aynı görünüyor ve bilinen karışımların bir listesi bakar bakmaz eşleşiyor.
-
Bayt: Parolaları düz yazmıyoruz, SHA-256 ile saklıyoruz. Güvendeyiz, değil mi?
-
Sen: Kullanıcı tablosu sızdı. Saldırgan dört hesabın parolasını birkaç dakikada buldu.
-
Bayt: Ayşe ile Mehmet'in hash'i birebir aynı! İkisi de 123456 kullanıyormuş.
-
Bayt: Her kavanoza ayrı bir tutam ekleyip yavaş öğütmemiz gerekiyormuş.
Şifreleme değil, hash
Şifrelenen bir şey anahtarla geri açılır; anahtar sızarsa hepsi açılır. Parola ise hash’lenir: geri çözülemez. Girişte yazılan parola aynı yolla hash’lenir ve kayıtlı hash’le karşılaştırılır.
Ama her hash parola için uygun değildir. SHA-256 hızlıdır ve tuz yoksa aynı parola her zaman aynı hash’i üretir.
Kafam karıştı, daha basit anlat
Parola geri açılmaz; girişte yeniden hash’lenip karşılaştırılır.
Parolalar veritabanında neden düz metin olarak saklanmaz?
Parola şifrelemek ile hash'lemek arasındaki fark nedir?
Tuz ve yavaşlık
Parolalar tuzlu SHA-256 ile saklanıyor. Can'ın parolası Qwerty123, sızmış listelerde var. Saldırgan onu bulabilir mi? Cevabı göster
Bulabilir. Tuz hazır tabloları işe yaramaz kılar ve aynı parolaları farklı gösterir. Ama SHA-256 hızlıdır; saldırgan yaygın parolaları Can’ın tuzuyla tek tek, ucuza dener.
Adım adım oku
- Tarif kavanozun üstünde: herkes okur.
- Toz yap: ama aynı karışım, aynı toz.
- Her kavanoza ayrı tutam, yavaş öğüt.
- Tuzla, yavaş öğüt; bilinen karışımı reddet.
tuzHer kullanıcı için rastgele üretilip parolaya eklenen değer. Aynı parolaların aynı hash'i üretmesini ve hazır tabloların işe yaramasını engeller.Sözlükte gör →, her kullanıcı için rastgele üretilip parolaya eklenen değerdir. Aynı parolalar artık aynı görünmez ve hazır tablolar işe yaramaz.
parola hash'iParolanın geri çözülemeyen, kasıtlı yavaş ve tuzlu bir özetini saklamak. Girişte yazılan parola aynı yolla hash'lenip karşılaştırılır.Sözlükte gör → için bcrypt, scrypt ya da Argon2 gibi kasıtlı yavaş algoritmalar kullanılır. Her tahmin pahalıdır; ama 123456 gibi bir parola listenin başındadır ve yine bulunur. Bu yüzden sızmış parolalar kayıtta reddedilir.
Kafam karıştı, daha basit anlat
Tuz tabloları durdurur. Yavaş hash tahmini pahalı yapar. Zayıf parolayı ise kayıtta reddet.
Tuzsuz SHA-256'da iki kullanıcının hash'i birebir aynı. Bu ne anlatır?
SHA-256 tuzlu olsa bile parola için neden yeterli değildir?
Kendin gör
Kullanıcı tablosu sızdı
Tohum 575108- Ayşe · sızmış listelerdeki bir parola
- Mehmet · sızmış listelerdeki bir parola
- Zeynep · sızmış listelerdeki bir parola
- Can · sızmış listelerdeki bir parola
- Elif · uzun, benzersiz parola
- Deniz · uzun, benzersiz parola
Risk altındaki hesap: 0
Şu an ne oldu?
SHA-256, tuzsuz
Saldırgan sızan tabloyu inceliyor.
Görevler0/3
İki kullanıcının aynı parolayı kullandığı tablodan anlaşılsınaçık
İpucu
Tuz yok.
bcrypt kullan, yine de bir hesap risk altında kalsınaçık
İpucu
Zayıf parolalara izin ver.
Hiçbir hesap tahminle açılmasınaçık
İpucu
Yavaş hash ve sızmış parola kontrolü birlikte.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. Tuzsuz SHA-256: dört yaygın parola hazır tablolarda anında bulundu, Ayşe ile Mehmet’in hash’i aynı.
- “Tuzlu SHA-256” seç. İkizler gizlendi; ama dört parola yine ucuza tahmin edilir.
- “bcrypt” seç. Her tahmin pahalı; dört yaygın parola yine risk altında.
- Sızmış parola kontrolünü aç. bcrypt ile birlikte hiçbir hesap tahminle açılmıyor.
Tuz (salt) neyi engeller?
bcrypt kullanılıyor. Kullanıcının parolası 123456. Güvende mi?
Tuzaklar
Giriş denemelerini sınırlamamak. Saldırganın hash’e hiç ihtiyacı yoktur; yaygın parolaları canlı giriş ekranında da dener. Hatalı denemeleri sınırla ve izle.
Algoritmayı değiştirememek. Hash’in başına {bcrypt} gibi bir önek yazan bir encoder, eski ve yeni algoritmaların yan yana çalışmasını sağlar. Kullanıcı giriş yaptığında parolası yeni algoritmayla yeniden hash’lenir.
Karmaşıklık kurallarına güvenmek. “Bir büyük harf, bir rakam” kuralı Qwerty123 gibi tahmin edilebilir kalıplar doğurur. Uzunluk ve sızıntı kontrolü daha etkilidir.
Kafam karıştı, daha basit anlat
Denemeleri sınırla, algoritmayı değiştirilebilir tut, uzunluğa ve sızıntı kontrolüne güven.
Spring Security'de PasswordEncoderFactories.createDelegatingPasswordEncoder() ne sağlar?
Derinleş · Mobil bankacılık: parola saklama ve geçiş 4 dosya · ~56 satır · ilk okumada atlayabilirsin
Kendini sına
Parolalar şifrelenip saklanmalıdır.
Eski hash'ler SHA-256, yenileri bcrypt olacak. Kullanıcılar parolalarını yeniden girmeden nasıl geçilir?
Aklında kalacak üç şey
- 1 Parola şifrelenmez, hash'lenir: geri çözülemez, girişte yeniden hesaplanıp karşılaştırılır.
- 2 Tuz aynı parolaların aynı görünmesini ve hazır tabloları durdurur. Yavaş bir hash her tahmini pahalı yapar.
- 3 Yavaş hash zayıf parolayı güçlü yapmaz. Sızmış listelerdeki parolalar kayıtta reddedilir.
4 kart sonraki derste seni bekliyor