Die Idee hinter Rainbow-Tabellen ist recht einfach: Man sucht nach einer Möglichkeit, die Datenbank kleiner zu machen, was zu mehr Rechenaufwand führt, der aber nur einen Bruchteil eines Brute-Force-Angriffs beträgt.
Dazu wählt man ein zufälliges Anfangspasswort, zum Beispiel geheim. Dieses leitet man durch den gewünschten Hash-Algorithmus. Beim NTLM-Algorithmus, der in Windows genutzt wird, kommt dabei die Bytefolge C2AE1FE6E648846352453E816F2AEB93 heraus. Als nächstes generiert man aus diesem Hashwert mittels einer selbstgewählten Reduktionsfunktion wieder ein gültiges Klartextpasswort. Dabei könnte etwa 1qW!r5 herauskommen. Dieses Passwort steht in keinem Zusammenhang zum Ursprungspasswort geheim oder seinem Hashwert.
Nun wiederholt man diesen Schritt einige tausend Male. Am Ende könnte beispielsweise das Passwort Zt8b.$ und der zugehörige NTLM-Hashwert 1D87C55994D02F099F015109047D980D herauskommen. Bei 10.000 Wiederholungen erhält man auf diese Weise 10.000 Passwörter und ihre Hashwerte. Das nennt man eine Kette. In die Rainbow-Tabelle schreibt man aber nur das erste und das letze Passwort.
In jedem Schritt einer Kette verwendet man eine andere Reduktionsfunktion. Das ist notwendig, weil die Reduktionsfunktionen nicht injektiv beziehungsweise linkseindeutig sind. Zwei Hashes können dasselbe Klartextpasswort zum Ergebnis haben. Das bezeichnet man als „Kollision“.
Nähme man immer dieselbe Reduktionsfunktion, wären zwei oder mehr Ketten ab der Kollision identisch und damit redundant. Das wird „Merge“ genannt. Dadurch dass man für jeden Schritt eine eigene Reduktionsfunktion verwendet, kommt es nur zu einem Merge, wenn die Kollision an derselben Position in zwei Ketten auftritt. Es reicht aus, die Reduktionsfunktion in jedem Schritt geringfügig zu verändern.
Im Idealfall ganz ohne Kollisionen erhält man bei einer Passwortlänge von maximal sechs Zeichen eine Liste von 23,5 Millionen Passwörtern, die gerade einmal 134,6 MByte Speicher braucht. Diese Liste kann jeder nutzen, der aus einem bekannten Hashwert wieder ein Klartextpasswort machen möchte.
Dazu wendet der Hacker die letzte Reduktionsfunktion auf den Hashwert an. Dann erhält er ein Klartextpasswort, das er mit den Endpasswörtern in seiner Rainbow-Datenbank vergleicht. Führt das zum Erfolg, kann der das Anfangspasswort derselben Kette nutzen, um sie wieder aufzubauen.
Falls sich das gesuchte Passwort nicht in der Kette befindet, wendet der Angreifer auf den Hashwert die vorletzte Reduktionsfunktions an, bildet den Hash und nutzt anschließend die letzte Reduktionsfunktion. Dieses Passwort vergleicht er wiederum mit mit den Endpasswörtern. Bei einer Übereinstimmung hätte er das vorletzte Passwort in einer Kette gefunden. Dieses Verfahren wird solange wiederholt, bis die Ketten abgearbeitet wurden.
Neueste Kommentare
9 Kommentare zu Rainbow Tables: Windows-Passwörter nicht mehr sicher
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
Sehe ich auch so.
Zunächst einmal ist der Artikel recht informativ. Doch den Vorschlag einen Satz statt eines ordentlichen Passworts zu verwenden halte ich schon fast für kriminell!
Es mag sein das man hier mit rainbow-Tables nicht weit kommt. Aber hier helfen dann wieder Wörterbuch-Attacken weiter indem man einfach verschiedene Wörter innerhalb der Liste zusammensetzt. Auch hier gibt es Tools die das problemlos hinkriegen.
Die Aussage nur ein Sonderzeichen zu verwenden ist auch an fahrlässigkeit kaum zu überbieten, genau wie die Zeichenfolge 123 hinten dran zu hängen oder 001 oder was weiß ich.
Fast genauso schlimm ist die Aussage man sollte O´s nicht durch 0en ersetzen da man diese ja vergessen könnte… Leute, das ist nicht euer Ernst?!
Außerdem ist jeder User selber schuld der Passwörter unter einer Länge von 12 Zeichen verwendet.
Wie muss man sich das Durchprobieren der Passwörter denn vorstellen?
Da ich absoluter Laie auf diesem Gebiet bin, die Thematik aber hochinteressant finde, eine kurze Frage:
Wenn ein Angreifer nun eine Liste von Passwörtern zur Verfügung hat, die er durchprobieren möchte, wie geht er denn dann vor. Ich lese immer wieder von Programmen, die eine Anmeldung bei den zu knackenden Systemen vornehmen. Warum wird ein Angreifer denn nicht gezwungen, die Anmeldedaten ganz normal in die Eingabemaske einzugeben. Allein die Verzögerung, die bei der Anmeldung dann entsteht, sollte doch ein wirtschaftliches Durchprobieren der Passwörter unmöglich machen.
Verstehe ich das also richtig, dass es neben der normalen Anmeldung auch einen Weg „hintenherum“ gibt, auf dem sich ein Angreifer bei einem System einloggen kann? Trifft das auch auf Webserver zu?
AW: Wie muss man sich das Durchprobieren der Passwörter denn vorstellen?
An normalen Home-PCs und Laptops, also Geräte zu denen man physikalischen, tatsächlichen Zugriff hat, kann die Boot-Reihenfolge geändert werden. Dann wird eben von CD oder USB-Stick ein anderes Betriebssystem geladen und das greift auf den Hash-Speicher der Windowsinstallation zu.
Sie können ja mal den Versuch bei sich machen. Bei Sourceforge.net gibt es ein quelloffenes Programm, das hier o** … genannt wurde. Ich war erstaunt, wie fix das mit kurzen Passwörtern ging.
„Trügerische Sicherheit“ könnte man den Windows Passwortschutz nennen. Sicher, 5 min braucht das schon und somit ist man evtl. vor neugierigen Arbeitskollegen geschützt.
Genauso gefählich: Von öffentlichen Rechnern auf E-Mailkonten, Facebook, MySpace, … zuzugreifen. Danach sollte man gleich zu Hause das Passwort wechseln.
Naja
1) 6 zeichen lange passwoerter sind ohnehin ein Witz
2) Man kann Windows auch so einstellen dass nach einer Reihe erfolgloser Anmeldeversuche (etwa 3) der Zugriff fuer eine Zeit (zum Beispiel 30 Minuten) gesperrt ist. (Windows Policy). Damit waere man gegen so einen Angriff ziemlich sicher …
AW: Naja
Die Verzögerung nach drei Falscheingaben greift hier nicht. Man holt sich einfach mit einem Tool wie **dump oder o**crack die Hashwerte aus der SAM. Das klappt immer beim ersten Versuch. Danach verwendet man die Rainbow-Tabellen, um aus den Hashes das Passwort zu berechnen.
AW: AW: Naja
Danke fuer die Info. Das war mir nicht bekannt.
Wie ist die Moeglichkeit das ein 14 Zeichen langes Password mit Gross/Kleinschreibung plus Sonderzeichen und Zahlen mit rainbow tables ausgelesen wird?
AW: AW: AW: Naja
Na denn werde ich wohl mal den japanischen Zeichensatz installieren
Interessanter Artikel
Auch wenn ich nur 80% davon verstehe – interessanter, gut zu lesender Artikel – ich kannte die Methodik nicht und muss mir wohl jetz ein neues Passwort überlegen. :-)