www.wikidata.de-de.nina.az
Die Rainbow Table engl fur Regenbogentabelle ist eine von Philippe Oechslin entwickelte Datenstruktur die eine schnelle speichereffiziente Suche nach der ursprunglichen Zeichenfolge in der Regel ein Passwort fur einen gegebenen Hashwert ermoglicht Die Suche uber eine Rainbow Table ist erheblich schneller als bei der Brute Force Methode allerdings ist der Speicherbedarf hoher Solch ein Kompromiss wird Time Memory Tradeoff genannt Vorausgesetzt wird eine Hashfunktion ohne Salt wie es z B bei den Passwortern fur fruhere Windows Versionen und bei vielen Routern der Fall ist Vergleichsweise umfangreiche Tabellen wurden fur LM Hashes und MD5 berechnet und stehen aus diversen Quellen zur Verfugung Verwendung finden Rainbow Tables bei der Wiederherstellung von Passwortern innerhalb der IT Forensik bei Penetrationstests und beim Passwortcracken Inhaltsverzeichnis 1 Uberblick 2 Funktionsweise 2 1 Reduktionsfunktion 2 2 Anwendung 2 3 Sinnvoller Mittelweg Rainbow Table 2 4 Perfekte und nicht perfekte Rainbow Tables 3 Gegenmassnahmen 3 1 Kennwortlange 3 2 Salts 3 3 Iterationen 3 4 Pepper Verfahren 4 WeblinksUberblick Bearbeiten nbsp Vereinfachte Rainbow Table mit 3 Iterationen Bei realistischen Rainbow Tables besteht eine Herausforderung darin Reduktionsfunktionen R1 Rk zu finden die fur gegebene Hashes moglichst sinnvolle Kennworter erzeugen Eine Rainbow Table ist eine kompakte Reprasentation von zusammenhangenden Passwortsequenzen sogenannten Ketten chains Jede dieser Ketten startet mit einem initialen Kennwort welches durch eine Hashfunktion geleitet wird Der resultierende Hash wird wiederum durch eine Reduktionsfunktion geleitet mit dem Ergebnis ein weiteres potentielles Klartextkennwort zu haben Dieser Prozess wird fur eine vorgegebene Anzahl wiederholt und schliesslich das erste Kennwort der Kette zusammen mit dem letzten Hashwert gespeichert Beim Erstellen der Tabelle ist darauf zu achten dass einerseits kein Kennwort welches in einer Kette vorkommt als Startkennwort verwendet wird Kollision dass aber andererseits alle moglichen Kennworter in der Tabelle vorkommen Die Tabellen werden nur einmalig erstellt und dienen dann als Nachschlagetabelle Um ein Kennwort herauszufinden wird ein zweistufiger Prozess benotigt Zunachst wird der Hash des gesuchten Kennworts so oft durch die Sequenz aus Reduktions und Hashfunktion gefuhrt bis der resultierende Hashwert in der Spalte der letzten Kettenglieder in irgendeiner Kette vorkommt die rechte Seite der Tabelle Damit hat man die Kette gefunden die den gegebenen Hash enthalt Man wendet nun ausgehend vom Startkennwort dieser Kette die Hash Reduktions Sequenz so oft an bis man den gegebenen Hashwert erhalt Das dem Hashwert vorausgehende Kennwort ist das gesuchte Kennwort Die Lange der Kette also die Anzahl der Iterationen zur Erstellung der Tabellen wirken sich auf die Grosse der Tabelle aus Je langer die Iterationen gewahlt werden desto kleiner ist die entstehende Tabelle Im einfachsten Fall ist die Anzahl der Iterationen gleich 1 sodass die Tabelle alle Kennwort Hash Paare enthalt Funktionsweise BearbeitenEine Hashfunktion ordnet einer Binarfolge beliebiger Lange eine Binarfolge fester Lange zu Bei der Hashfunktion MD5 betragt diese Ausgabelange 128 Bit oder 32 4 Bit Zeichen Zu einer zufalligen Zeichenkette mit der Lange n displaystyle n nbsp wird ein Hashwert berechnet Dieses Ergebnis der Hashfunktion mit Lange 32 wird durch eine Reduktionsfunktion R in eine neue Zeichenkette umgewandelt die wieder Lange n displaystyle n nbsp besitzt Weil die Hintereinanderausfuhrung von Hashfunktion und Reduktionsfunktion die Lange der Zeichenkette nicht andert konnen diese beiden Schritte beliebig oft abwechselnd wiederholt werden Die Folge der Zwischenergebnisse bildet am Ende eine Kette Chain Gespeichert werden Anfangs und Endwert dieser Kette Diese Schrittfolge wird ebenfalls x displaystyle x nbsp mal wiederholt und bildet eine universelle Rainbow Table Reduktionsfunktion Bearbeiten Die Reduktionsfunktion verkurzt einen Hashwert auf n displaystyle n nbsp Zeichen Jede dieser Reduktionen liefert z B durch MD5 eine neue eindeutige 128 bit Zeichenkette oder eine Kollision Als eine Kollision bezeichnet man dabei einen Hashwert der durch verschiedene Ausgangszeichenfolgen erzeugt werden kann Um Kollisionen zu vermeiden verwendet man verschiedene Reduktionsfunktionen die periodisch angewendet eine eindeutige Zuordnung der Eingangs Zeichenkette und des Ausgangshashes ermoglichen Dieses Verfahren stellt eine effizientere Methode fur n stellige Zeichenketten dar als beispielsweise ein Brute Force Angriff mit Schlusselsuche von a da bei letzterem viele Zeichenketten in Hashes umgewandelt werden die mit hoher Wahrscheinlichkeit niemals fallen bzw gewahlt werden Bei schlecht programmierten oder trivialen Reduktionsfunktionen treten nach wenigen Laufen Kollisionen auf die zu Wiederholungen der reduzierten Texte und somit auch der Hashes fuhren Solche internen Schleifen fuhren dann dazu dass der Algorithmus versagt Man berechnet muhsam Tausende von Elementen und nur einige wenige davon sind eindeutig unterscheidbar Anwendung Bearbeiten Gesucht wird in diesem Beispiel die Zeichenfolge deren MD5 Hashwert in der Hexadezimaldarstellung 97fae39bfd56c35b6c860aa468c258e0 entspricht Domino Der herkommliche Weg alle MD5 Hashes fur alle moglichen Variationen zu berechnen und diese zu vergleichen ist sehr rechenintensiv und muss bei neuen Suchlaufen wiederholt werden Sinnvoll ware es nun alle bereits berechneten Hashes in einer Datenbank zu speichern und bei erneuten Suchlaufen nur noch vergleichen zu mussen ob der gesuchte Hash schon bekannt ist Bei einer Suche uber 64 mogliche Zeichen A Za z0 9 die jede Stelle des Eingangstextes haben konnte ergeben sich bei 6 Stellen 64 6 displaystyle 64 6 nbsp Variationen Werden nun Text und Hash in einer Datenbank gespeichert so werden pro Paar 16 Byte fur den Hash und 6 Byte fur den Plaintext benotigt und somit fur die kompletten Daten etwa 1 4 Terabyte Diese Datenmengen lassen sich meistens nicht verarbeiten und mussen reduziert werden Sinnvoller Mittelweg Rainbow Table Bearbeiten Anstatt alle Werte samt Schlusseln zu speichern werden nur die anfangliche Zeichenkette und die letzte Zeichenkette einer n displaystyle n nbsp elementigen Kette gespeichert Auf diese Weise lassen sich n 1 displaystyle n 1 nbsp Hashes durch einen Start und Endwert reprasentieren und in vergleichsweise kurzer Zeit neu berechnen und damit der Eingabetext wiederfinden Bildet sich aus einem reduzierten Hash Plaintext ein Endwert so wird diese Kette vom Startwert aus neu berechnet bis sich der gegebene Hash ergibt der diesem vorausgehende Text ist der gesuchte Ursprungstext Bei einer Ketten Lange von n 10 000 displaystyle n 10 000 nbsp werden also nur 9 999 Hash Berechnungen gebraucht um den Ursprungstext zu einem Hash zu finden Die Wahrscheinlichkeit aus den reduzierten Hashes genau den gesuchten Eingangstext zu erhalten ist abhangig von der Gute der Reduktionsfunktion en und den Parametern bei der Erstellung der Rainbow Table da nur die reduzierten Hashes Plaintexts spater gefunden werden konnen Wenn die Reduktionsfunktion en beispielsweise nur auf Zahlen reduzieren kann der Plaintext Domino nicht gefunden werden Wenn die Reduktionsfunktion en auf sieben Stellen reduzieren von 32 dann werden 6 stellige Plaintexts nicht berechnet und auch hier kann Domino nicht gefunden werden Perfekte und nicht perfekte Rainbow Tables Bearbeiten In einer perfekten Rainbow Table befinden sich in den Ketten keine Passworter die doppelt vorkommen Somit hat eine perfekte Rainbow Table die geringste Anzahl von Ketten um alle Passworter darstellen zu konnen Jedoch steigt der Berechnungsaufwand an um die perfekte Rainbow Table zu erzeugen In nicht perfekten Rainbow Tables kommen redundante Passworter in den Ketten vor Sie sind schneller zu erzeugen nehmen jedoch mehr Speicherplatz ein als eine perfekte Rainbow Table Gegenmassnahmen BearbeitenPassworter werden vor dem Speichern mit einer kryptographischen Hashfunktion gehasht damit aus der Liste der gespeicherten Hashwerte nicht auf das Passwort geschlossen werden kann falls die Datei mit den Passwortern gestohlen wird Rainbow Tables machen aber genau das moglich Um die Passworter zu schutzen gibt es verschiedene Gegenmassnahmen die den Einsatz von Rainbow Tables weniger effizient machen sollen Kennwortlange Bearbeiten Die Grosse einer Rainbow Table steigt mit der Lange der Kennworter fur die sie generiert werden soll Je nach Hashtyp ist ab einer gewissen Kennwortlange die Berechnung einer Rainbow Table nicht mehr wirtschaftlich sowohl was die Dauer der Generierung Stromkosten als auch den Platzbedarf der Tabellen angeht Lange Kennworter entstehen z B bei der Verwendung von Satzen statt eines Wortes siehe Passphrase Salts Bearbeiten Eine weitere Methode die Generierung von Rainbow Tables unwirtschaftlich zu machen ist der Einsatz von Salt Dabei wird an das Passwort vor dem Hashen ein im Idealfall zufallig generierter Wert das Salt angehangt Das Salt wird zusammen mit dem Hashwert gespeichert um das Passwort spater uberprufen zu konnen es ist also kein Geheimnis Beispiel Passwort genau 6 Stellen nur Zahlen erlaubt 123456 Salt beliebige Kombination dreier Grossbuchstaben ABCGeshasht wird nun also nicht 123456 sondern 123456ABC Eine Rainbow Table genau fur dieses Salt zu erzeugen ist nicht wesentlich aufwandiger als ohne Salt da der hintere Teil des Passwortes das Salt ja bereits bekannt ist Die Tabelle musste also fur alle moglichen Kombinationen mit ABC am Ende erzeugt werden was naturlich genauso viele Eintrage sind wie ohne Salt am Ende Passwort Hash111111ABC hash 111111ABC 111112ABC hash 111112ABC 999999ABC hash 999999ABC Der eigentliche Clou liegt nun darin dass das Salt nicht immer gleich bleibt sondern bei jedem Passwort zufallig generiert wird Eine Rainbow Table fur das Salt ABC nutzt uns bei einem Salt von XYZ daher nichts Fur eben diesen musste nun erneut eine Rainbow Table erzeugt werden Damit wurde sich der Aufwand um die Zahl der moglichen Salts vervielfachen weil fur jedes mogliche Salt eine Rainbow Table erstellt werden musste Da nicht mehr eine Rainbow Table verwendet werden kann um alle Passworter zu finden wird diese Methode unwirtschaftlich bzw technisch nicht realisierbar Salts konnen aber kurze Passworter nicht schutzen sie erhohen nur den Aufwand beim Brute Forcen wenn mehrere vorliegen verhindern es aber keineswegs Iterationen Bearbeiten Der Aufwand kann weiter erhoht werden wenn ein Passwort nicht einfach sondern mehrfach gehasht wird ublich sind mehrere tausend Iterationen Erst Salts und Iterationen kombiniert ergeben Hashing Verfahren welches eine gewisse Resistenz gegen typische Angriffsmethoden aufweist Das Salt macht das Erstellen von Tabellen unwirtschaftlich oder gar unmoglich zusammen mit den Iterationen werden Brute Force Angriffe erheblich verlangsamt Eine erfolgreiche Implementierung ist z B MD5 crypt Das Verfahren basiert auf MD5 verwendet aber sowohl Salts in einer Lange von 12 bis 48 Bit sowie 1000 Iterationen Das Erstellen von Rainbow Tables fur dieses Verfahren ist aufgrund der Lange des Salts unter realen Bedingungen unwirtschaftlich und reines Bruteforcen ebenfalls Pepper Verfahren Bearbeiten Mit Pfeffern meint man das Kombinieren des Passwortes mit einer geheimen Zeichenfolge bevor man den Hash Wert berechnet Der Pfeffer Pepper ist geheim und wird nicht in der Datenbank gespeichert Stattdessen wird er an einem moglichst sicheren Ort hinterlegt der gleiche Pepper gilt fur alle Passworter Kennt der Angreifer diesen Code beispielsweise wenn er Kontrolle uber den Server erlangt so bringt der Pepper keinerlei Vorteile Hat der Angreifer aber nur Zugriff auf die Datenbank beispielsweise durch SQL Injection so erkennt er zwar die Hash Werte diese stammen aber nicht mehr von schwachen Passwortern Es sind Hash Werte von langen Kombinationen von Passwort und einem starken Pepper Kein Worterbuch enthalt je solche Passworter ein Worterbuchangriff ist darum sinnlos Weblinks BearbeitenPhilippe Oechslin Making a Faster Cryptanalytic Time Memory Trade Off In CRYPTO 2003 vol 2729 2003 S 617 630 epfl ch PDF 243 kB Vrizlynn L L Thing Hwei Ming Ying A novel time memory trade off method for password recovery In Digital Investigation Nr 6 2009 S 114 120 dfrws org PDF 361 kB Programm Live CD zur Nutzung von Rainbow Tables Verteiltes Rechenprojekt zur Erstellung von Rainbow Tables Rainbow Tables Datenbanken Ubersicht des Chaos Computer Club Eine Erklarung von Rainbow Tables fur Anfanger englisch Eine Facharbeit u a uber Aufbau und Funktionsweise von Rainbow Tables PDF 1 6 MB Karsten Nohl Kunterbuntes Schlusselraten von Worterbuchern und Regenbogen c t 15 2008 Abgerufen von https de wikipedia org w index php title Rainbow Table amp oldid 228650674