Salted Password Hashing
Das Salted Password Hashing verhindert, dass zwei gleiche Passwörter auf den gleichen Hashwert abgebildet werden. Das erschwert es Angreifern, Rainbow-Table-Angriffe durchzuführen.
Wie funktioniert es?
- Ein zufälliger, einzigartiger
Saltwird generiert - Der
Saltwird zum Passwort hinzugefügt:hash(Salt + Passwort) - Sowohl der
Hashals auch derSaltwerden gespeichert
Warum ist das sicherer?
- Rainbow Tables werden unwirksam: Selbst wenn zwei Benutzer dasselbe Passwort haben, erzeugen unterschiedliche Salts unterschiedliche Hashwerte
- Jeder Hash ist einzigartig: Ein Angreifer kann keine vorkalkulierten Tabellen verwenden
- Brute-Force wird erschwert: Jeder Versuch muss mit dem spezifischen Salt durchgeführt werden
Beispiel
Passwort: "meinPasswort123"
Salt: "a3f9b2c1"
Hash: hash("a3f9b2c1" + "meinPasswort123")
Gespeichert wird: Salt:Hash → a3f9b2c1:5f4dcc3b5aa765d61d8327deb882cf99
Best Practices
- Verwende kryptographisch sichere Zufallszahlengeneratoren für den Salt
- Jeder Salt sollte mindestens 16 Bytes lang sein
- Moderne Algorithmen wie
bcrypt,scryptoderArgon2integrieren Salting automatisch