- Dictionary Attack
-
Als einen Wörterbuchangriff (engl. dictionary attack, frz. attaque par dictionnaire) bezeichnet man die Methode der Kryptoanalyse, ein unbekanntes Passwort (oder Benutzernamen) mit Hilfe einer Passwörterliste (oft auch wordlist oder dictionary genannt) zu entschlüsseln.
Man verwendet diese Methode, wenn man davon ausgehen kann, dass das Passwort aus einer sinnvollen Zeichenkombination besteht. Dies ist, erfahrungsgemäß, meistens der Fall. Erfolgversprechend ist dieses Verfahren nur, wenn möglichst viele Passwörter schnell hintereinander ausprobiert werden können. Wörterbücher sind beliebte Dateien in Tauschbörsen wie eDonkey.
Inhaltsverzeichnis
Mögliche Angriffsziele
Dazu unterscheidet man aktive und passive Angriffsobjekte:
Ein aktives Angriffsobjekt ist eine Instanz, welche die Richtigkeit des Passwortes überprüft und den Zugriff erteilt oder verweigert. Dies ist beispielsweise beim Einloggen auf einer Webseite der Fall. Bei aktiven Angriffsobjekten sind die Möglichkeiten der Wörterbuchattacke stark begrenzt, da häufig nach einer gewissen Anzahl von Fehlversuchen jeder weitere Versuch unterbunden wird (ähnlich der PIN am Geldautomaten, die maximal drei Mal falsch eingegeben werden kann). Außerdem hinterlässt der Angreifer Spuren in den Protokolldateien des Servers.
Unter einem passiven Angriffsobjekt versteht man einen verschlüsselten Text. Hier wird das Passwort nicht durch eine Instanz überprüft. Das richtige Passwort führt aufgrund des verwendeten Verschlüsselungsverfahrens direkt zur Entschlüsselung des Textes. Der Angreifer kann hier erheblich mehr Passwörter in kürzerer Zeit ausprobieren. Die Geschwindigkeit hängt von der vom Angreifer verwendeten Soft- und Hardware sowie von dem verwendeten Verschlüsselungsalgorithmus ab. Schon auf gut ausgerüsteten Heimcomputern können ohne weiteres mehrere hundert Millionen Rechenoperationen pro Sekunde durchgeführt werden.[1] Der schnellste Supercomputer schafft sogar 1,026 Billiarden Rechenoperationen pro Sekunde (Stand März 2009).[2]
Der aktive Wortschatz einer Sprache liegt in der Regel bei 50.000 Wörtern. Somit können dutzende Sprachen innerhalb weniger Sekunden überprüft werden. Ein Passwort, welches nur aus ein oder zwei Wörtern besteht, ist daher bei der Verschlüsselung von Texten sehr unsicher.
Verfahren
Durch ein spezielles Programm werden die Einträge der Passwortliste als Benutzername oder Passwort durchprobiert. Möglich ist auch das Verwenden von zwei getrennten Listen für Benutzername und Passwort. Viel häufiger ist jedoch die Verwendung einer "Combo-List", einer kombinierten Liste aus Benutzername und Passwort solchen Formats:
Benutzername:Passwort
Vorteile
Besonders die typischen Passwörter (insbesondere Namen oder Geburtsdaten) sind mit dieser Methode leicht zu finden. Auch die Dauer der Ausführung, die üblicherweise aufgrund der geringeren Anzahl an zu testenden Passwörtern geringer ist als beispielsweise die der Brute-Force-Methode, spricht für die Verwendung dieser Methode.
Nachteile
Bei dieser Methode ist man sehr auf eine gute Passwörterliste angewiesen. Da naturgemäß selbst die beste Liste nicht alle möglichen Passwörter enthält, kann mit dieser Methode auch nicht jedes Passwort gefunden werden. Besonders klein ist die Chance, Passwörter, die aus sinnlosen Zeichenreihen bestehen, zu finden. Zusätzlich braucht die Passwörterliste Speicherplatz auf dem System, welches zur Passwortsuche eingesetzt wird. Insbesondere Listen mit Passwörtern, welche aus mehreren Wörtern zusammengesetzt sind, und mehrere Varianten der Passwörter bezüglich Groß-/Kleinschreibung enthalten, können die Kapazität heutiger (Stand: Januar 2008) Festplatten überschreiten, komprimierte Listen werden von den eingesetzten Programmen nur selten unterstützt.
Gegenmaßnahmen
Die effektivste Gegenmaßnahme ist, die Benutzer zur Verwendung von Sonderzeichen in ihren Passwörtern zu zwingen. Allerdings steigt dabei das Risiko, dass sie sich die Passwörter aufschreiben.
Zusätzlich sollte versucht werden, den Angreifer auszubremsen, so dass er möglichst lange braucht, um viele Passwörter durchzuprobieren. In der Regel wird dazu bei aktiven Angriffsobjekten nach der Eingabe eines falschen Passworts eine Warteschleife eingebaut. Hier muss der Programmierer allerdings darauf achten, dass der Angreifer nicht mehrere Anmeldeversuche parallel unternehmen oder Zugriff auf äquivalente passive Angriffsobjekte erhalten kann. Bei passiven Angriffsobjekten ist eine vergleichbare Verzögerung nur schwer zu erreichen.
Die Passwörter der Benutzer sollten nicht im Klartext gespeichert werden. In der Regel wird lediglich der Hash des Passworts gespeichert. Wenn es einem Angreifer gelingt, in den Besitz dieser Datei zu gelangen, kann er mit den dort abgelegten Hashs zunächst nichts anfangen. Er muss das oben unter „passiven Angriffsobjekte“ beschriebene Verfahren anwenden, indem er die Einträge eines Wörterbuchs einzeln hasht und das Ergebnis mit dem verschlüsselten Passwort vergleicht. Damit dafür keine fertigen Listen mit Hash-Wert → Originalwort benutzt werden können, wird in der Regel das Passwort vor dem Hashen um einen Zufallswert, den sogenannten „Salt“, erweitert. Der Zufallswert wird neben dem Hash abgespeichert.
Siehe auch
Einzelnachweise
Weblinks
Wikimedia Foundation.