Rainbow Table
Eine Rainbow Table ist eine vorberechnete Tabelle, die Martin Hellmans Ansatz zum Invertieren von Hashfunktionen verbessert und im Zeit-Raum-Kompromiss Speicher gegen Zeit tauscht, um Passwort-Hashes zu knacken.
Zweck
Reduziert den Speicherbedarf massiv über vorberechnete Hashketten und knackt ungesalzene Passwort-Hashes effizient im Zeit-Raum-Kompromiss.
Mechanismus
Vorab werden Hashketten berechnet: wiederholt hashen-und-reduzieren von einem Start- zu einem Endpunkt, wobei nur Endpunkte gespeichert werden. Zum Nachschlagen wird vom Ziel-Hash aus wiederholt reduzieren-und-hashen bis zum Endpunkt-Treffer, dann wird die Kette vom Startpunkt neu aufgebaut, um das Präimage zu finden. Salt erzwingt eine eigene Tabelle pro Nutzer und macht Vorberechnung unpraktikabel.
Anwendungsfälle
- Knacken ungesalzener LM/NTLM-Hashes
- Schulung zur Passwort-Hash-Sicherheit
- Ophcrack-Werkzeug
- Sicherheitsaudits
Beispiele
- Eingabe
MD5 without saltOutput8-character alphabetic password cracked in secondsSalt defeats rainbow tables
Häufige Fehler
- Storing password hashes without salt
- Unique per-user salt + slow hash