Rainbow Table
Eine Rainbow Table ist eine vorberechnete Struktur, mit der wahrscheinliche Eingaben zu ungesalzenen Passwort-Hashes nachgeschlagen werden.
Definition
Eine Rainbow Table ist eine vorberechnete Datenstruktur, um viele mögliche Hashwerte wieder Kandidateneingaben zuzuordnen, meist Passwörtern. Statt nach einem Datenbankleck erst Vermutungen zu hashen, bereitet ein Angreifer Ketten aus Hashes und Reduktionsfunktionen vor und speichert genug Informationen, um später wahrscheinliche Treffer zu rekonstruieren.
Rainbow Tables sind vor allem gegen schnelle, ungesalzene Hashes menschlich gewählter Passwörter nützlich. Sie sind keine magische Entschlüsselung: Sie decken nur den Eingaberaum und Algorithmus ab, für die sie gebaut wurden.
Funktionsweise
Klassische Nachschlagetabellen speichern viele direkte Passwort-Hash-Paare. Rainbow Tables sparen Speicher, indem sie Kettenendpunkte speichern: Ein Hash wird zu einer neuen Kandidateneingabe reduziert, erneut gehasht und mit wechselnden Reduktionsfunktionen wiederholt. Beim Angriff wird der Zielhash durch mögliche Kettenpositionen geführt, bis ein passender Endpunkt gefunden wird.
Das ist ein Zeit-Speicher-Tausch. Nützliche Tabellen können teuer zu bauen sein, prüfen danach aber viele passende ungesalzene Hashes schnell.
Schutz
Ein eindeutiger zufälliger Salt pro Passwort macht eine vorberechnete Tabelle über viele Konten hinweg unbrauchbar, weil der Salt den gehashten Wert verändert. Langsame Passwort-Hashfunktionen wie Argon2id, bcrypt und PBKDF2 erhöhen zusätzlich die Kosten jedes Versuchs.
Salts machen schwache Passwörter nicht stark, und schnelle rohe Hashes wie MD5 oder SHA-1 sind selbst mit Salt schlechte Passwortspeicherverfahren. Speichern Sie Passwörter mit einer dedizierten Passwort-Hashfunktion und aktuellen Kostenparametern.
Ein eindeutiger zufälliger Salt macht vorberechnete Tabellen für ungesalzene Hashes kontoübergreifend unwirksam. Angreifer müssten für jeden Salt eigene Arbeit leisten.
Nein. Brute Force berechnet Versuche während des Angriffs; eine Rainbow Table verlagert einen großen Teil dieser Arbeit in eine Vorberechnungsphase.
Nein. Sie decken nur Algorithmen, Salts und Kandidatenräume ab, für die sie erstellt wurden. Lange zufällige Geheimnisse und gesalzene langsame Passwort-Hashes liegen außerhalb praktischer Tabellen.