Sehr viele schützenswerte Dinge werden in der EDV mit Passwörtern geschützt. Benutzerzugänge, kostenpflichtige Dienste, der Krypto-Container für sensible Daten, der Zugang zum Konto und Depot per Homebanking, der Zugang zu Internet-Diensten aller Art.
Passwörter werden eigentlich bereits seit Erfindung des persönlichen Computerzugangs verwendet. Und ebenso lange beschäftigen sich Leute damit, wie man an sie heran- oder an ihnen vorbeikommt.
Einer der Wege dazu besteht darin, sie durch systematisches Raten oder schlichtes Durchprobieren aller denkbaren Variationen („brute force attack“) herauszufinden. Das kann je nach verwendeter Passwortlänge Jahrtausende dauern. Zudem lassen viele Dienste nur eine begrenzte Zahl an falschen Anmeldeversuchen zu.
Passwörter werden aber immer irgendwo gespeichert. Meist (aber leider nicht immer) in verschlüsselter Form. Daher werden Hacker versuchen, sich diese Sammlung an verschlüsselten Passwörtern anzueignen, um sie dann auf einem Testsystem zu entschlüsseln.
So legen z.B. alle gängigen Betriebsysteme ihre Benutzerkontenpasswörter an einer bestimmten Stelle ab und verschlüsseln sie auf bestimmte Art und Weise. Weiß ein Hacker, welches Betriebssystem auf einem Zielrechner läuft, weiß er somit auch wo sich diese Passwörter befinden und wie sie verschlüsselt wurden.
Die Sicherheit verschlüsselter Informationen beruht allerdings darauf, dass niemand außer den legitimen Kommunikationspartnern den geheimen Schlüssel kennt. Doch kryptografische Verfahren kommen durch Fortschritte in der Kryptoanalyse zunehmend in Bedrängnis und die verwendeten Angriffe ermöglichen es, Schlüssel immer rascher zu errechnen.
Je nachdem wie ein Verschlüsselungsverfahren eingesetzt wird, lässt sich der geheime Schlüssel mit weiteren fundamentalen Angriffsmethoden deutlich rascher als mit Brute-Force-Angriffen finden. Diese Angriffe benötigen weniger Rechenzeit, müssen aber rechen- oder speicherplatzintensiver vorbereitet werden. Eine solche Angriffsvorbereitung ist das Anlegen eines Wörterbuchs zu einer bestimmten Nachricht, welches jedem Wert der verschlüsselten Nachricht den verwendeten Schlüssel zuordnet. Auf der Festplatte abgelegt wird das Wörterbuch als Schlüsselliste, deren Index den verschlüsselten Wert repräsentiert. Um mit ihr den geheimen Schlüssel zu finden, muss ein Angreifer das Zielsystem nur noch dazu bringen, die zur Liste passende Nachricht zu verschlüsseln. Dann kann er das Ergebnis als Listenindex verwenden. Diese Art von Hackerattacke wird daher Wörterbuchangriff genannt.
Das einmalige Generieren des Wörterbuchs benötigt allerdings in etwa so viel Rechenzeit wie ein Brute-Force-Angriff und ist daher nur sinnvoll, wenn sich der Aufwand durch viele damit durchgeführte weitere Angriffe amortisieren kann. Zudem verschlingt ein solches Wörterbuch enorme Mengen Speicherplatz, zum Beispiel 1536 Terabyte für 48-Bit-Schlüssel. Für 64-Bit-Schlüssel wäre bereits mehr Speicher nötig, als der Menschheit heute zur Verfügung steht. Wegen des hohen Platzverbrauchs sind Wörterbuchangriffe deshalb bei langen Schlüsseln sogar weniger praktikabel als Brute-Force.
Der Kryptograph Martin Hellman schlug daher erstmals 1980 einen praktikablen Kompromiss zwischen den beiden Extremen vor, der sich Zeitersparnis beim Angriff mit Platzverbrauch durch vorberechnete Daten erkauft. Als Begriff für solche Techniken hat sich “Time Memory Trade-Off” oder kurz TMTO eingebürgert. Ihnen liegt die Idee zu Grunde, das Wörterbuch nur teilweise oder komprimiert zu speichern und während der Schlüsselsuche die fehlenden Teile zu berechnen oder die Suche so oft leicht modifiziert zu wiederholen, bis ein Treffer im Wörterbuch erzielt wird.
Diese Verfahren wurde im Weiteren mehrfach optimiert, um Schwächen wie hohen Zeitverbrauch durch häufige Plattenzugriffe oder kryptografische Detailprobleme in den Griff zu bekommen. In der Fachwelt hat sich für die bereits erwähnten Wörterbücher zum Knacken verschlüsselter Codes der Begriff „Rainbow Table“ etabliert.
Seit ihrer Einführung sind TMTOs bereits erfolgreich gegen etliche Krypto-Algorithmen eingesetzt worden. Ein erstes Ziel waren die LM-Hashes von Windows-Passwörtern. Unabhängig von deren Länge speichert Windows ein lokales Nutzerkennwort in Blöcken zu sieben Zeichen, was zu der paradoxen Situation führt, dass ein Passwort mit zehn Zeichen unter Umständen schwächer ist als eines mit nur sieben Zeichen. Der Grund ist, dass der Hash über die letzten drei Zeichen sehr leicht zu knacken ist und der errechnete Klartext bereits Aufschluss über die ersten sieben Zeichen Passwortes geben kann.
(z.B. Hauptst*** statt Hauptstadt)
Ein frei verfügbares Tool, mit dem man TMTO-Verfahren auf dem eigenen Rechner ausprobieren kann, ist das quelloffene Ophcrack zu dem vorgenerierte Rainbow-Tables zum Teil kostenlos, zum Teil auch kostenpflichtig verfügbar sind.
Ophcrack-Projekt auf Sourceforge.net
Durch eine entsprechend aufwendigere Gestaltung der Verschlüsselung kann diese allerdings gegen TMTO-Angriffe gehärtet werden. Dazu wird die kryptografische Funktion oder ihr genauer Ablauf für jeden Einsatz verändert. Verschlüsseln zwei Benutzer die gleiche Nachricht mit demselben Schlüssel, sollten dann zwei unterschiedliche Ergebnisse herauskommen, so dass ein Rainbow-Table-Angriff fehlschlägt. Die Variation lässt sich beispielsweise dadurch erreichen, dass neben dem eingegebenen Schlüssel auch eine Benutzerkennung oder eine Geräte-ID als Parameter in die Verschlüsselung einfließt. Ein Angreifer müsste folglich für jeden Benutzer oder gar für jedes Gerät eine eigene Regenbogentabelle berechnen, was in der Regel deutlich aufwendiger ist als ein Brute-Force-Angriff.
Heisec.de: Kunterbuntes Schlüsselraten. Von Wörterbüchern und Regenbögen