Rainbow Table: Unterschied zwischen den Versionen
Zeile 4: | Zeile 4: | ||
== Funktionsweise == | == Funktionsweise == | ||
Für Rainbow Tables werden zur Speicherung Ketten aus Passwörtern und deren Hashwerten verwendet. Das erste Passwort wird mit der gewählten Hashfunktion gehasht und der sich ergebende Hashwert wird in eine Reduktionsfunktion gegeben. Diese Reduktionsfunktion bildet den Hashwert wieder auf ein je nach Implementierung im besten Fall sinnvolles mögliches Passwort ab. Das Ergebnis wird ebenfalls wieder gehasht und der Vorgang wiederholt sich n mal zur erstellung der Kette. Am Ende wird nur Wert und der letzte der Kette gepsichert, um im Vergleich zur normalen Lookup-Table den Speicherverbrauch gering zu halten. | |||
[[Datei:Rainbow Table.png|mini]] | [[Datei:Rainbow Table.png|mini]] | ||
Version vom 16. Juni 2019, 10:34 Uhr
Die Rainbow Table (engl. für Regenbogentabelle) ist eine von Philippe Oechslin entwickelte Datenstruktur, die eine schnelle, speichereffiziente Suche nach der ursprünglichen Zeichenfolge (in der Regel ein Passwort) für einen gegebenen Hashwert ermöglicht.1
Überblick
Voraussetzung zur Nutzung des Verfahrens ist, dass kein Salt bei der Berechnung des Hashwerts für das gesuchte Passwort verwendet wurde. Wie es früher, kritischerweise, oft bei Webseiten der Fall war, die das Passwort nur MD5 gehasht in ihrer Datenbank gespeichert haben oder wie die Verschlüsselung der Windows Passwörter früher (Siehe auch Ophcrack).
Funktionsweise
Für Rainbow Tables werden zur Speicherung Ketten aus Passwörtern und deren Hashwerten verwendet. Das erste Passwort wird mit der gewählten Hashfunktion gehasht und der sich ergebende Hashwert wird in eine Reduktionsfunktion gegeben. Diese Reduktionsfunktion bildet den Hashwert wieder auf ein je nach Implementierung im besten Fall sinnvolles mögliches Passwort ab. Das Ergebnis wird ebenfalls wieder gehasht und der Vorgang wiederholt sich n mal zur erstellung der Kette. Am Ende wird nur Wert und der letzte der Kette gepsichert, um im Vergleich zur normalen Lookup-Table den Speicherverbrauch gering zu halten.
Gegenmaßnahmen
Folgende Gegenmaßnahmen1, können bis auf die Länge des Passworts nur von dem Programmier getroffen werden:
- Langes Kennwort
- Salt (String, welcher mit an das Passwort vor der Ermittelung des Hashes angefügt wird und mit in der Datenbank gespeichet wird)
- Mehrere Iterationen der Hashfunktion
- Pepper (Geheimer String, der wie ein Salt genutzt wird, welcher in dem Quellcode der Anwendung steht aber nicht in der Datenbank)