Eine Rainbow Table ist eine vorberechnete Tabelle, mit der sich Hashes von Passwörtern nachschlagen lassen. Statt bei einem Angriff zu rechnen, schlägt der Angreifer nach.
- Rainbow Table
Eine vorberechnete Tabelle, mit der sich Hashes von Passwörtern nachschlagen lassen.
Beispiel: „Ohne Salt hätte eine Rainbow Table die Hälfte der gestohlenen Passwörter sofort preisgegeben.“Auch: Regenbogentabelle. Der Name beschreibt das Verfahren, mit dem die Tabelle Platz spart, indem sie Ketten aus Hashwerten speichert statt aller Einzelwerte.
Abgrenzung zum Brute-Force-Angriff: Dort wird während des Angriffs gerechnet. Hier wurde vorher gerechnet, und der Angriff selbst ist nur noch ein Nachschlagen.
Wie eine Rainbow Table arbeitet
Sie tauscht Rechenzeit gegen Speicherplatz. Wer alle Passwörter bis zu einer gewissen Länge einmal durch die Hash-Funktion schickt und das Ergebnis aufhebt, muss das nie wieder tun; jeder erbeutete Hash ist dann eine Suchanfrage. Damit die Tabelle handhabbar bleibt, speichert sie statt aller Paare nur Ketten, aus denen sich die Zwischenschritte wieder herstellen lassen.
Warum ein Salt sie wertlos macht
Weil jedes Passwort damit zu einem anderen Hash führt. Ein Salt ist ein zufälliger Zusatz, der vor dem Hashen an das Passwort gehängt und im Klartext mitgespeichert wird. Zwei Nutzer mit demselben Passwort bekommen dadurch verschiedene Hashes, und eine vorberechnete Tabelle passt zu keinem von beiden. Der Angreifer müsste für jeden einzelnen Eintrag eine eigene Tabelle bauen, und damit ist der ganze Vorteil dahin.
Welche Rolle Rainbow Tables heute noch spielen
Eine kleinere, als ihr Bekanntheitsgrad vermuten lässt. Gegen eine Datenbank, die nach heutigem Stand gesalzen und mit einem langsamen Verfahren gehasht wurde, richten sie nichts aus. Gefährlich werden sie bei Altbeständen: Datenbanken aus den Jahren, in denen MD5 ohne Salt üblich war, lassen sich damit in Minuten aufschlüsseln. Genau solche Bestände tauchen in den großen Sammlungen gestohlener Zugangsdaten auf, mit denen Credential Stuffing betrieben wird.