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.
Die Einnahmen klettern auf fast 95 Milliarden Dollar. Allerdings belastet der Steuerstreit mit der EU…
Neue Over-Headset-Kopfhörer von Baseus bieten Raumklang-Audio und unterdrücken Störgeräusche um rund 96 Prozent.
Das stärkste Wachstum verbucht die Cloud-Sparte. Microsoft verpasst bei der Umsatzprognose für das laufende Quartal…
Ein Coil-on-Module-Package integriert Chip und Antenne, was den Kartenkörper fast vollständig recycelbar machen soll.
Mindestens eine Anfälligkeit erlaubt das Einschleusen von Schadcode. Außerdem erweitern die Entwickler den Support für…
Zum 30. Juni 2028 soll das 2G-Netz komplett abgeschaltet werden und den Weg für schnellere…