Salt (Kryptologie)

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche
Redundanz Die Artikel Salt (Kryptologie) und Salted Hash überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst nach vollständiger Abarbeitung der Redundanz. Siehe-auch-Löscher 18:02, 25. Sep. 2008 (CEST)

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.

[Bearbeiten] Anwendungen

Protokolle, die Salt benutzen, sind beispielsweise SSL und CipherSaber. Forensoftware wie phpBB benutzt ebenfalls Zufalls-Salts aus den obengenannten Gründen, besonders um Rainbowtable-Angriffe abzuwehren, falls bei einem Einbruch in die Serverinfrastruktur die Datenbank mit den User-Logins widerrechtlich kopiert wird, um sich Zugang zu den Benutzerbereichen oder gar dem Adminfrontend zu verschaffen. Durch die Verwendung von Salts wird hier erreicht, dass bei besonders in diesem Bereich oftmals anzutreffenden zu kurzen oder einfachen Passwörter vorgefertigte Rainbowtables wertlos sind, sowie zufällig gleiche Passwörter nicht in gleichen Hashwerten resultieren.

[Bearbeiten] 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.

[Bearbeiten] Siehe auch

Persönliche Werkzeuge
Buch erstellen