- Salting
-
Salt (engl. „Salz“) bezeichnet in der Kryptographie eine zufällig gewählte Bitfolge, die mit einem gegebenen Klartext vor der Verwendung als Eingabe einer Hashfunktion konkateniert wird, um die Entropie der Eingabe zu erhöhen.
Die Verwendung eines Salts erhöht den Aufwand von Wörterbuch-und Brute-Force-Angriffen oder Angriffen unter Verwendung einer Rainbow Table auf die Chiffre deutlich. Wörterbuchangriffe werden erschwert, da nicht mehr in einer indizierten Liste von verschlüsselten Werten (Hashtabelle) der zugehörige entschlüsselte Wert nachgeschlagen werden kann, sondern für jeden Klartext hash(Klartext + Salt) == bekannter Hash überprüft werden muss, was viel Rechenzeit kostet. Weiterhin wird die Informationssicherheit der verwendeten Storage-Engine erhöht, da zwei identische Klartexte, zum Beispiel zwei zufällig gleich gewählte Passwörter unterschiedlicher Benutzer, mit einer sehr hohen Wahrscheinlichkeit zu verschiedenen Chiffren führen.
Anwendungen
Protokolle, die Salt benutzen, sind beispielsweise SSL und CipherSaber.
Schutz vor Angriffen mit einer Rainbow Table
Ein Salt erschwert oder verhindert außerdem die Verwendung einer Rainbow Table, um ein Passwort zu knacken. Durch die Konkatenation verlängert sich das Passwort. Eine Rainbow Table unterstützt aber nur Einträge bis zu einer gewissen Länge, die durch den angehängten Salt evtl. überschritten wird. Eine Rainbow Table müsste Einträge für alle ursprünglich unterstützten Passwörter in jeder Kombination mit den angehängten n Bit enthalten, das heißt die Anzahl der neuen Einträge ist 2n mal so groß wie zuvor. Aufgrund des Speicher- und Zeitaufwands unterstützen Rainbow Tables nur Passwörter mit einer gewissen Länge, wodurch ein mit einem Salt über diese Grenze hinaus verlängertes Passwort vor Angriffen mit Rainbow Tables sicher ist. Außerdem steigert ein nicht alphanumerischer Salt die Komplexität des Passworts, wenn dieses vorher ausschließlich alphanumerische Zeichen enthielt. Dies ist möglich, da es sich beim Salt um eine zufällige Bitfolge handelt, die außerdem auch nicht notwendigerweise genau 1, 2, 3, ... Byte lang sein muss. So waren die Salts in frühen Unix-Versionen 12 Bit lang. Auf diese Weise sind unter Umständen sogar sehr kurze Passwörter vor Angriffen mit Rainbow Tables geschützt, wenn der Salt zufällig ein vom Index der Rainbow Table nicht unterstütztes Sonderzeichen enthält.
Siehe auch
Wikimedia Foundation.