You are on page 1of 7

- ZDNet.de - http://www.zdnet.

de -

Rainbow Tables: Windows-Passwörter nicht mehr sicher
von Christoph H. Hochstätter am 11. Januar 2011, 16:51 Uhr

Mit bis zu einigen Terabyte großen Regenbogen-Tabellen aus dem Internet lassen sich Kennwörter von Windows knacken. Hackern reichen etwa 10 GByte Daten, um die Sicherheit zu gefährden. ZDNet erläutert, wie das funktioniert. Mit guten Rainbow-Tabellen [1] (PDF) lassen sich Passwörter mit relativ geringem Rechenaufwand knacken, die mittels eines Hashwertes ohne Salt [2] gespeichert und verglichen werden. Gefährdet durch einen solchen Angriff sind beispielsweise Windows-Rechner inklusive Active-DirectoryDomänen. Davon geht eine konkrete Gefahr aus, da solche Tabellen im Internet von jedermann heruntergeladen werden können, der weiß, wie man Google [3] benutzt. Das Prinzip beruht auf relativ großen Datenbanken in der Größenordnung von einigen Terabyte. Noch vor wenigen Jahren wäre es für Privatpersonen nicht denkbar, mit solchen Datenmengen zu arbeiten. Heute kostet eine Festplatte mit 2 TByte nur noch etwa 80 Euro. Durch die Datenbank lässt sich der Rechenaufwand gegenüber einem Brute-Force-Angriff [4] erheblich reduzieren. Oft dauert der Entschlüsselungsvorgang nur wenige Minuten. Geht man einmal davon aus, dass Benutzer nur bestimmte Zeichen für ihre Passwörter verwenden, etwa Groß- und Kleinbuchstaben, Zahlen sowie einige Sonderzeichen, kommt man auf etwa 70 Zeichen. Bei einer Passwortlänge von maximal sechs Zeichen ergeben sich 706 = 117,6 Milliarden Möglichkeiten für verschiedene Passwörter. Obwohl die Menge der Zeichen beschränkt ist, darf man einen Angriff mittels Rainbow-Tabellen nicht mit einem Wörterbuchangriff verwechseln. Bei letzterem geht man davon aus, dass die Nutzer nur Wörter verwenden, die tatsächlich existieren, etwa geheim. Bei einer Rainbow-Attacke können beliebige Zeichenfolgen verwendet werden, beispielsweise q1$J.v. Eine Möglichkeit wäre es, eine vollenumerierte Datenbank zusammenzustellen, das heißt alle möglichen Kombinationen von Klartextpasswort und 128-Bit-Hashwert zu speichern. Diese Datenbank hätte eine Größe von 2,35 TByte. Wer in Besitz einer solchen Datenbank ist, könnte jedes Windows-Passwort bis einschließlich sechs Zeichen knacken. Ist das Passwort jedoch länger als sechs Zeichen, dann steigt die Größe der Datenbank überproportional an. Bei acht Zeichen benötigt man bereits 12.583 TByte beziehungsweise 12,29 PByte (Petabyte). Das ist mit typischem Heimequipment nicht mehr zu machen. Eine andere Möglichkeit, ein Passwort zu knacken, wäre ein Brute-Force-Angriff. Er scheitert jedoch in der Regel daran, dass man nicht genug Rechenleistung hat. Ein Angriff mit einer vollenumerierten Datenbank ist mit acht Zeichen nicht zu machen, weil die Datenbank zu groß ist.

1

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 BruteForce-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 [5], 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 [6] 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. Um gute Erfolge mit Rainbow-Tabellen zu erzielen, braucht man nicht unbedingt gigantische Datenbanken. Die nachfolgende Tabelle gibt einen Überblick über die notwendige Datenbankgröße bei Vollenumeration und bei der Verwendung von “perfekten Rainbow-Tabellen”, die keine Kollisionen beinhalten. Ferner wird in der Tabelle der Sonderfall betrachtet, wenn das Password nicht case-sensitive ist. Dadurch verringert sich die Datenbankgröße erheblich. Das ist etwa bei der LM-Authentifizierung [7] unter Windows der Fall, die Rückwärtskompatibilität zum Microsoft [8]-LANManager sicherstellt. Moderne Windows-Version nutzen die bessere NTLM- [5] oder NTLMv2-Authentifizierung [9] und

2

speichern keine LM-Hashwerte. Die Hashwerte bei NTLM und NTLMv2 sind identisch.

Größe von vollenumerierten Datenbanken und Rainbow-Tabellen im Vergleich RainbowDatenbankgröße Passwortlänge Vollenumeration (MD5, NTLM) 6 Zeichen 7 Zeichen 8 Zeichen 9 Zeichen 10 Zeichen 2,35 TByte 172,27 TByte 12,29 PByte 896,03 PByte 63,70 EByte Datenbankgröße Vollenumeration (LM) 148,68 GByte 6,68 TByte 306,64 TByte 13,73 PByte 628,06 PByte Tabellen Kettenlänge 10.000 (MD5, NTLM) 134,64 MByte 10,74 GByte 859,02 GByte 66,06 TByte 5,02 PByte

RainbowTabellen Kettenlänge 10.000 (LM) 8,30 MByte 426,28 MByte 20,93 GByte 1,01 TByte 49,47 TByte

In der Praxis gibt es keine perfekten Rainbow-Tabellen. Sie enthalten Kollisionen und Merges. Daher sind sie meist größer. Außerdem lässt sich nicht jedes Passwort knacken. Tabellen, die man im Internet herunterladen kann, besitzen eine Erfolgswahrscheinlichkeit zwischen 50 und 90 Prozent. Ferner decken die meisten Tabellen nicht alle Passwörter ab. ZDNet macht einen Test mit Tabellen, die Passwörter mit maximal sieben Zeichen knacken können. Erlaubte Zeichen sind Kleinbuchstaben, Zahlen und Sonderzeichen. Passwörter, die Großbuchstaben enthalten können mit diesen Tabellen nicht entschlüsselt werden. Die Tabellengröße beträgt 11,43 GByte. Das erste Passwort führt relativ schnell zum Erfolg. Nach einer Minute und 42 Sekunden steht das richtige Passwort in Klartext auf dem Bildschirm. 81 Sekunden werden alleine für das Einlesen der Tabellen benötigt. Ein zweites Passwort wird mit den Tabellen nicht gefunden. Nach über neun Minuten meldet das Knackprogramm, dass es aufgibt.

3

Mit einer 11 GByte großen Rainbow-Tabelle lassen sich Passwörter bis zu sieben Zeichen innerhalb weniger Minuten mit hoher Wahrscheinlichkeit knacken. Restriktion bei der verwendeten Tabelle ist jedoch, dass keine Großbuchstaben vorkommen dürfen. Als Hardware wurde ein Lenovo [10]-T60-Notebook mit Core-2-Duo-CPU und 2,33 GHz Taktfrequenz verwendet. Der Test wurde auf nur einem Core durchgeführt. Bei Nutzung von zwei Threads verringert sich die Zeit für das Knacken des ersten Passworts um neun Sekunden. Will man nur einen Hashwert knacken, spielt die CPU-Zeit eine untergeordnete Rolle, hat man hingegen eine ganze Liste von Hashwerten, etwa aus einer Active-Directory-Datenbank, bringt ein schneller Rechner mit vielen Cores Vorteile. Die Erstellung von Rainbow-Tabellen ist eine aufwändige Angelegenheit. Sie werden meist mittels Distributed-Computing-Projekten mit tausenden von Rechnern in jahrelanger Arbeit ermittelt. Durch ständige Verbesserung steigt die Erfolgswahrscheinlichkeit stark an. Man findet beispielsweise “Hobbyisten-Projekte” im Internet. Die von ZDNet genutzten Tabellen stammen aus so einem Projekt. Es ist davon auszugehen, dass Regierungen und Geheimdienste über wesentlich bessere und umfangreichere Tabellen verfügen. Ferner findet man “kommerzielle” Dienste im Internet, die gegen Bezahlung einen Hashwert in ein Klartextpasswort umwandeln. In Windows reicht der Hashwert eines Passwortes in der Regel aus, um in ein System einzudringen.

4

Es ist gar nicht notwendig, das Klartextpasswort zu ermitteln. Dazu sind jedoch recht komplexe Tools, etwa das Metasploit-Framework [11], erforderlich. Wie das funktioniert, beschreibt der Artikel “Pass-the-Hash-Angriffe: So knacken Hacker Firmenserver [12]“. Das Herunterladen von RainbowTabellen und Anwenden von Knackprogrammen, die es auch mit grafischer Oberfläche gibt, ist hingegen sehr einfach. Der genannte Artikel erläutert ebenfalls, wie man an Hashwerte von Passwörtern kommt. Ein Administrator liest etwa von einem Domain-Controller die Hashwerte der Passwörter aller Nutzer einfach aus. Mitarbeiter von Firmen können beispielsweise auf ihrem Arbeitsplatzrechner einen Share einrichten, um Kollegen dorthin zu locken, indem sie etwa MP3-Files oder Filme dort anbieten. Mit speziellen Tools lassen sich die Passwort-Hashwerte aus dem Speicher holen. Auch wenn die frei verfügbaren Rainbow-Tabellen aus dem Internet nicht alle Passwörter ermitteln können, ist die Erfolgsrate sehr hoch, wenn man beispielsweise die gesamte Hashwertliste einer Active-Directory-Domäne besitzt. Das ist vor allem unter dem Gesichtspunkt interessant, dass Nutzer oftmals dieselben Passwörter für ihr Firmen-Account und andere Dienste im Internet benutzen. So kann man versuchen, in private E-Mail-Konten, Facebook [13]-Accounts oder Homebanking-Systeme einzudringen. Die meisten anderen Betriebssysteme bieten einen besseren Schutz. Unixoide Betriebssysteme wie Linux [14] nutzen in der Regel einen Salt. Das verhindert die Nutzung von allgemeinen RainbowTabellen. Rainbow-Tabellen müssten für jeden Rechner einzeln erstellt werden. Da das ein aufwändiger Prozess ist, für den auch Distributed-Computing-Projekte mehrere Jahre brauchen, bietet ein Salt einen guten Schutz. Ein anderer Einsatz von Rainbow-Tabellen ist das Entschlüsseln von Handy-Gesprächen im GSM-Standard. Der Forscher Karsten Nohl konnte in wenigen Monaten eine 2 TByte große Tabelle erstellen [15], mit der sich die schwach verschlüsselten Gespräche abhören lassen. So ist man sicher vor Rainbow-Angriffen Die beste Möglichkeit, sich gegen Rainbow-Angriffe zu schützen, ist ein langes Passwort. Am besten verwendet man einen Satz anstelle eines Wortes, etwa Ich_esse_gerne_Kaese_123. Das kann man sich leicht merken. Wenig empfehlenswert sind Passwörter wie Ott0_h0lt.r0te$Rosen. Das Ersetzen des Buchstaben “O” durch die Zahl “0″ führt oft dazu, dass man sich dass Passwort nicht merken kann. Nimmt man einen langen Satz, ist man gegen Wörterbuchattacken ebenfalls gut geschützt. Ferner sollte man nur ein Sonderzeichen nutzen. Der Unterstrich ist fast immer erlaubt. Viele andere Sonderzeichen machen in bestimmten Fällen Probleme. Umlaute sollte man wegen der Zeichensatzproblematik generell vermeiden. Schwierigkeiten mit Umlauten gibt es auch, wenn man aus dem Internetcafé seine E-Mails abrufen möchte und feststellt, dass dort keine deutsche Tastatur vorhanden ist. Das Nutzung einer Ziffernfolge wie 123 dient in erster Linie dazu, eventuelle Passwortrichtlinien zu befolgen, etwa wenn Ziffern und Sonderzeichen gefordert werden. Die Phrase Ich_esse_gerne_Kaese bietet auch ohne _123 durch ihre Länge einen sehr guten Schutz gegen alle bekannten Angriffe. Wer sein Passwort regelmäßig ändern muss, sollte darüber nachdenken, zunächst eine Ziffernfolge wie 001 zu nutzen. Läuft das Passwort ab, kann man auf 002 und so weiter wechseln. Das sehen Administratoren zwar nicht gerne, aber schützt vor vergessenen Passwörtern.

5

Mittels Rainbow-Tabellen und Knackprogrammen, die man im Internet herunterladen kann, lassen sich Windows-Passwörter mit einer Länge von bis zu etwa zehn Zeichen von jedermann mit normalen Heimequipment mit hoher Wahrscheinlichkeit knacken. Das ist selbst mit leistungsschwachen Rechnern meist nur ein Frage von Minuten. Die meiste Zeit benötigt man für Disk-I/O, weil die Tabellen in der Regel größer als der Hauptspeicher sind. Das Prinzip beruht auf großen Datenbanken, die dafür sorgen, dass im Gegensatz zu einem BruteForce-Angriff viel weniger Rechenleistung benötigt wird. Anstelle, alles selber zu berechnen, lässt sich ein Großteil in der im Voraus generierten Rainbow-Tabelle nachschlagen. Man spricht von einem “Time-Memory-Tradeoff”. Das Erstellen solcher Rainbow-Tabellen ist ein rechen- und zeitintensiver Prozess. Rainbow-Tabellen werden meist in Distributed-Computing-Projekten mit mehreren tausend Teilnehmern erstellt. Bis brauchbare Tabellen mit über 50 Prozent Erfolgswahrscheinlichkeit für Passwörter mit bis zu zehn Zeichen entstehen, vergehen meist einige Jahre. Sind die Rainbow-Tabellen erst einmal in Umlauf, ist es mit der Sicherheit von Systemen, die gegen Rainbow-Tabellen anfällig sind, jedoch vorbei. Das ist beispielsweise bei Windows der Fall. Wer in ein Land einreist, das gerne Laptops von Wirtschaftsunternehmen unter dem Vorwand der Terrorismusbekämpfung konfisziert, sollte sich darüber im Klaren sein, dass Regierungen und Geheimdienste über weitaus bessere Rainbow-Tabellen und mehr Computing-Power verfügen. Wer seine Festplatte nicht komplett verschlüsselt, muss bei Verlust damit rechnen, dass nicht nur der Inhalt ausgelesen wird, sondern auch das eigene Passwort geknackt wird. Damit kann man versuchen, online in Konten des Benutzers einzudringen.

Artikel von ZDNet.de: http://www.zdnet.de URL zum Artikel: http://www.zdnet.de/41544658/rainbow-tables-windows-passwoerter-nichtmehr-sicher/ URLs in this post: [1] Rainbow-Tabellen: http://lasecwww.epfl.ch/pub/lasec/doc/Oech03.pdf [2] Salt: http://de.wikipedia.org/wiki/Salt_(Kryptologie) [3] Google: http://www.zdnet.de/unternehmen/google/ [4] Brute-Force-Angriff: http://de.wikipedia.org/wiki/Brute-Force-Methode [5] NTLM-Algorithmus: http://en.wikipedia.org/wiki/NTLM [6] injektiv: http://de.wikipedia.org/wiki/Injektivit%C3%A4t [7] LM-Authentifizierung: http://en.wikipedia.org/wiki/LM_hash [8] Microsoft: http://www.zdnet.de/unternehmen/microsoft/ [9] NTLMv2-Authentifizierung: http://en.wikipedia.org/wiki/NTLM#NTLMv2 [10] Lenovo: http://www.zdnet.de/unternehmen/lenovo/ [11] Metasploit-Framework: http://de.wikipedia.org/wiki/Metasploit [12] Pass-the-Hash-Angriffe: So knacken Hacker Firmenserver: http://www.zdnet.de /sicherheit_in_der_praxis_pass_the_hash_angriffe_so_knacken_hacker_firmenserver_story39001543-41528251-1.htm [13] Facebook: http://www.zdnet.de/unternehmen/facebook/ [14] Linux: http://www.zdnet.de/themen/linux/ [15] erstellen: http://www.zdnet.de /news/wirtschaft_sicherheit_security_26c3_deutscher_hacker_knackt_gsm_verschluesselung_story39001024-41525048-1.htm Klicken Sie hier um den Druck zu starten.

6

NetMediaInteractive GmbH © Copyright 2013. All rights reserved. Part of NetMediaEurope

7