Rainbow Tables: Windows-Passwörter nicht mehr sicher

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.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

3 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

3 Tagen ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

3 Tagen ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

3 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

3 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

4 Tagen ago