Salting

Zur Erhöhung der Sicherheit, wird ein Klartext-Passwort um eine zufällige Zeichenfolge (Salt) ergänzt.

25. Jun 20252 min Lesezeit

Bevor heutzutage ein Passwort gespeichert wird, kommt ein spezieller Algorithmus zum Einsatz, der ein Klartext-Passwort in einen Hashwert umwandelt (verschlüsselt). Das Problem ist, sollten zwei oder mehr Nutzer dasselbe Passwort verwenden, dann ist auch der Hashwert identisch, was es Angreifern leichter machen kann diese Passwörter durch Probieren zu finden. Darüber hinaus liegen für viele Algorithmen bereits Rainbow-Tables vor, mit denen sich Passwörter und Hashwerte in Beziehung setzen lassen.

Hier setzt Salting an. Ein Passwort wird mit dieser Methode um eine zufällige Zeichenfolge (dem Salt) ergänzt, bevor es gehasht wird. Das Salt kann hierbei am Anfang des Passwortes oder am Ende stehen. So wird zum Beispiel aus dem Passwort “RoteRosen12!” das gesalzene Passwort “p2f5e9kRoteRosen12!” oder “RoteRosen12!p2f5e9k”.

Um das Verwenden einer Rainbow Table zu erschweren, würde es bereits ausreichen, wenn das Salt für alle Benutzer dasselbe wäre, da die Abbildung der Passwörter auf die Hashwerte eine andere ist. Sollten Angreifer jedoch an das Salt gelangen, so wären alle Benutzerkonten in Gefahr. Verhindern lässt sich das, indem jeder Benutzer bei der Kontoerstellung einen anderen, zufällig generierten Salt-Wert erhält. Dadurch unterscheiden sich alle Hashwerte voneinander, selbst wenn Nutzer dasselbe Passwort verwenden.

Das Salt ist nur dem Server bekannt und wird zusammen mit den übrigen Benutzerdaten in der Datenbank gespeichert. Angreifer könnten zwar weiterhin versuchen Passwörter systemmatisch durchzuprobieren, wenn ihnen ein Saltwert bekannt ist, müssten diesen Vorgang dann aber bei jedem Benutzer wiederholen, aufgrund der unterschiedlichen Salts.