Skip to content

Passwörter: Länge ist nicht alles (2)

Ein Brute-Force-Angriff - ein Durchprobieren sämtlicher Kombinationen - kann sich ziemlich in die Länge ziehen und sich ab einer bestimmten Passwortkomplexität nicht mehr rentieren. Dies habe ich im letzten Blogbeitrag gezeigt. In diesem erkläre ich, in welcher Form Passwörter in Computersystemen heutzutage gespeichert werden und demonstriere kurz, was ein Brute-Force-Angriff auf dem Prozessor einer Grafikkarte leisten kann.

Früher wurden Passwörter so abgespeichert, wie sie der Nutzer in das System eingegeben hat. Diese Klartextspeicherung hat allerdings einen riesigen Nachteil. Wenn sich ein Angreifer einmal Zugang zum System verschafft hat, kann er im schlimmsten Fall sämtliche Passwörter aller Nutzer einsehen und potentiell Missbrauchen.

Passwortspeicherung in heutigen Systemen

In heutigen Systemen werden Passwörter unter Verwendung von Hashfunktionen bei der Passwortspeicherung in Hashwerte umgerechnet. Hashfunktionen arbeiten prinzipbedingt nur in eine Richtung. Immer wenn ein Passwort von einem Nutzer eingegeben wird, findet diese Berechnung statt. Am Ende wird lediglich der gespeicherte Hashwert mit dem vom eingegebenen Passwort verglichen. Stimmen beide überein, hat der Nutzer das korrekte Passwort eingegeben. Hier ein Beispiel mit dem Passwort "26.09.2011", welches in die Hashfunktion SHA1 eingegeben wird.

heidi@julia:~$ echo -n "26.09.2011" | sha1sum
c29e802c6ccef536e588caf8f8a782d9aea06f80  -

Passwörter, die in dieser "geschredderten" Form gespeichert sind, können wegen des Einwegcharakters der Hashfunktion nur schwer missbraucht werden.

Schwach bleibt schwach

Bei einem bekannten Hashwert eines in Verwendung befindlichen Passworts, kann ebenfalls der Brute-Force-Angriff eingesetzt werden. Am besten sind diese Angriffe mithilfe von Streamprozessoren aus heutigen Grafikkarten durchzuführen. Wer beispielsweise eine aktuelle der Firma Nvidia besitzt, kann Cryptohaze Multiforcer einsetzen. Dieses Programm ist darauf spezialisiert, für einen gegebenen Hashwert den zugehörigen Eingabewert zu finden. Auf das aktuelle Beispiel angewendet, sieht die Bedienung wie folgt aus. Ich speichere den zu brechenden Hashwert und den einzusetzenden Zeichensatz in jeweils eine Datei. Im Anschluss starte ich das Programm und gebe ihm noch mit, dass es sich um einen Hashwert der SHA1-Hashfunktion handelt.

heidi@julia:~$ echo c29e802c6ccef536e588caf8f8a782d9aea06f80 > hash
heidi@julia:~$ echo "0123456789." > charset
heidi@julia:~$ ./Cryptohaze-Multiforcer -f hash -c charset -h SHA1

Während das Programm läuft merkt man sofort, dass der Lüfter der Grafikkarte seine Drehzahl hochfährt und ein Blick in das Nvidia-Steuerungsprogramm zeigt, dass die Temperaturen ein hohes Niveau erreicht haben. Weiter steigt der Energieverbrauch der Grafikkarte massiv an. Ich vermute, dass selbst bei heutigen 3D-Spielen nur selten eine so hohe Dauerbelastung vorkommt. Im Bildschirmfoto ist zu sehen, dass rund 150 Mio. Kombinationen pro Sekunde vom System bearbeitet werden. Verglichen mit den 30.000 aus dem letzten Blogbeitrag, ist das ein gewaltiger Unterschied und zeigt einmal mehr, dass Passwörter wohlüberlegt gewählt werden sollten. Nach weniger als einer Minute beendet sich das Programm und gibt die Lösung aus.

C29E802C6CCEF536E588CAF8F8A782D9AEA06F80:26.09.2011

Grenzen

Auch wenn das Finden der Lösung innerhalb einer Minute sehr eindrucksvoll erscheinen mag, muss eines bei der Bewertung dieses Ergebnisses beachtet werden. Der Zeichensatz war mit "0123456789." nur elf Stellen breit. Je breiter dieser wäre, um so länger hätte mein Rechner benötigt, um auf die Lösung zu kommen, da so erheblich mehr Kombinationen probiert werden müssten. Bei einem echten Angriff gegen Hashwerte von Passwörtern ist ein solch gearteter Angriff nicht sonderlich effizient, da prinzipiell von einem breiten Zeichensatz ausgegangen werden muss. Allerdings reicht er völlig aus, um z.B. alle Hashwerte, die aus einem Datum bestehen, zu brechen.

Diesen vertiefenden Beitrag rund um Brute-Force-Angriffe habe ich wegen der durchweg positiven Rückmeldungen zum letzten Artikel erstellt. Ich hoffe er hat durch das praktische Beispiel verdeutlicht, was mit geschickter Verwendung vorhandener Technologien trotz eines naiven Durchprobieransatzes alles erreicht werden kann.

Kommentare

Noch keine Kommentare

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.