In den letzten Tagen habe ich recht viele Beiträge über die Sicherheit von Passwörtern gelesen. Eines der Hauptprobleme, die wir haben, ist, dass die wenigsten Menschen überhaupt eine Ahnung davon haben, wie jemand vorgeht, der ein Passwort knacken möchte. Mit diesem Beitrag möchte ich ein wenig Klarheit schaffen. Sicherlich langweile ich den ein oder anderen Leser, aber ich hoffe, dass ich dennoch den ein oder anderen richtigen Adressaten erreiche.
Vernünftiger Umgang mit Passwörtern
Ich möchte hier gar nicht auf die Grundlagen im Umgang mit Passwörtern eingehen. Es sollte dem gesunden Menschverstand klar sein, dass die bereitwillige Weitergabe von Passwörtern, z.b. vom privaten Twitter-Passwort, bei Diensten mit nicht näher bekanntem Betreiber ein Risiko darstellt, da dieser die Passwörter speichern und missbrauchen kann. Aus dem gleichen Grund sollte klar sein, dass man niemals das gleiche Passwort bei mehreren Diensten verwenden sollte, da sonst ein einzelner unseriöser Betreiber unter vielen gleich das Passwort für alle anderen Dienste kennt.
Böse Falle: Leicht zu merkende Passwörter
Von solchen – eigentlich klaren, aber dennoch oft missachteten – Problemen abgesehen wählen viele Menschen weiterhin recht leichte Passwörter, da sie nunmal besser zu merken sind. Fragt man diese Nutzer nun, wieso sie z.B. ein Passwort aus „Beliebiger Vorname“ + „Geburtsdatum“ verwenden, so kommen oft Antworten wie „Wie soll der denn erraten, dass meine Tante 17. Grades Dörte heißt und im Jahr 74 geboren wurde? Niemand kann darauf kommen, dass ich als Passwort doerte74 verwende!“ Nett gedacht, aber leider nicht weit genug. In den seltensten Fällen (oder zumindest meist in den ungefährlichsten) ist der böse Hacker der Busenkumpel, der sich lediglich einen Spaß erlaubt, weil er das Passwort „Name der Frau“ + „Geburtsjahr des Kindes“ erraten hat.
Bruteforce – Rohe Gewalt
Denn im Normalfall bzw. zumindest im gefährlichen Fall ist es ein Unbekannter. Bei einigermaßen sicheren Systemen greifen sie auf simple Bruteforce-Mechanismen zurück, sprich: Sie arbeiten mit roher Gewalt. Ein Programm prüft vollautomatisch verschiedenste Zeichenkombinationen und irgendwann meldet es einen Erfolg. Nun ist der wichtige Faktor das „irgendwann“. Um diesen zu minimieren verwenden fachkundige Hacker Listen mit typischen Begriffen. Es gibt unzählige Listen typischer Passwortbegriffe, z.B. Vornamen, Tiernamen und ähnliches. Machen wir einfach eine Rechnung auf: Der Hacker besitzt eine Liste mit 10000 typischen Begriffen und kombiniert diese zusätzlich mit einem max. 8-stelligen Datum.
Eine Beispielrechnung
Was haben wir? 10000 typische Begriffe, macht 10000 Möglichkeiten +1 wenn es keinen Begriff gibt. 31 Tage von 01 bis 31 zzgl. 1-9 plus keine Angabe, also 41. 12 Monate von 01 bis 12 zzgl. 1-9 und keine Angabe, macht 22. Dann nehmen wir noch die Jahreszahlen von 1800 bis 2009, macht 209 plus 100 Zweistellige (00-99) und 10 Einstellige (0-9), also 319. Damit muss unser Freund Feind 10001*41*22*319=2877667738 Kombinationen testen. Schafft er 100 in der Sekunde, dann braucht er 333 Tage, um das Passwort zu ermitteln.
Nicht blenden lassen!
Jetzt kommt natürlich der Einwand, dass 333 Tage ja wohl schon deutlich zu lange seien. Nur würden 333 Tage ja bedeuten, dass er wirklich alle Möglichkeiten testen müsste, also nicht vorher zum Ergebnis kommt. Ist das Datum z.B. auf jeden Fall 8-stellig + Begriff würde er schon mit maximal 90 Tagen auskommen. Dazu muss man sagen, dass die Listen so aufgebaut sind, dass ein Begriff je wahrscheinlicher er ist auch umso früher getestet wird. Macht sich der Hacker sogar die Mühe zunächst etwas über sein Opfer zu recherchieren, so kann er z.B. einige Namen nach vorne setzen, die Jahreszahlen einschränken und die Namensliste stärker auf den Kulturkreis zuschneiden.
Nicht auf die Dienste verlassen
Klar, im Idealfall sollte jeder Dienst nach 100 falschen Anfragen in einer Sekunde die Pforten schließen… aber macht das jeder Dienst? Darauf sollte man sich nicht verlassen… und erfolgt eine solche Überprüfung nicht, kann der Hacker bei entsprechender Hardware auf beiden Seiten auch mehr als 100 Abfragen die Sekunde schicken – und kennt damit das Passwort, ehe der Dienstbetreiber überhaupt eine Ahnung hat, wieso er gerade in seinen Logfiles eine Lastspitze feststellt.
Wenn er einmal drin ist…
Nehmen wir nun mal an, unser Hacker hat über einige soziale Netzwerke ein paar Namen gefunden und ist so in einen Forenaccount mit „Name der Frau“ + „Jahreszahl“ gekommen. Dort findet er in den Nutzereinstellungen weitere Daten, wie z.B. die Mailadresse. Mit zusätzlich gewonnenen Informationen und der nun bekannten Mailadresse gelangt er letztlich in den Mailaccount – und hat damit die freie Auswahl gewonnen. „Passwort vergessen?“ – „Geben Sie bitte Ihre Email-Adresse an und wir senden Ihnen ein neues Passwort.“ Zack, ist er im nächsten Account. Etwas heftiger? Zweimal kam ich in die dumme Situation beim jeweiligen Support ein neues Root-Passwort zu erfragen. In einem Fall wurde richtig reagiert: Ich wurde auf die im Account angegebene Telefonnr. zurückgerufen und erhielt mein neues Passwort. Im anderen Fall habe ich lediglich ein paar Daten durchgegeben (Geburtsjahr etc.) und erhielt ein funkelnagelneues Root-Passwort per Mail. Mr. Hacker hätte sich die Hände gerieben.
Beispielrechnung mit einem kryptischen Passwort
Nun rechnen wir einfach mal mit einem kryptischen Passwort, also einem Passwort, dass eine beliebe Zeichenkombination enthält ohne das darin ein Name oder ein anderer Begriff vorkommt. Sagen wir z.B. w4igHvT3. Wörterbücher über beliebte Passwörter helfen hier nicht mehr, d.h. der Angreifer muss alle Kombinationen ausprobieren. Nehmen wir als Zeichenbasis das heutige lateinische Alphabet, 26 Klein- und 26 Großbuchstaben. Macht 52. Hinzu kommen die Zahlen von 0-9, also haben wir schon 62 mögliche Zeichen. Man könnte noch Sonderzeichen wie unsere Umlaute oder .+-_%$§ etc. hinzunehmen um die Zahl der Möglichkeiten noch massiv zu erhöhen. Schaden kann es nicht, aber für unsere Rechnung sollen die 62 möglichen Zeichen reichen. Nun nehmen wir ein 8-stelliges Passwort aus diesen 62 Zeichen (man beachte: im Beispiel mit den „Standardpasswörtern“ konnte alleine das Datum 8 Zeichen lang sein) und rechnen einmal durch: 628=218340105584896. Bei 1000 (also Faktor 10 zum obigen Beispiel!) Versuchen je Sekunde braucht der Hacker immer noch bis zu 6924 Jahre. Auch wenn er hier ebenso nicht alle Möglichkeiten testen muss, so ist dies doch ein deutlicher unterschied zu den 333 Tagen bei nichtoptimierter Vorgehensweise mit Listen bei nur 100 Versuchen pro Sekunde. Mal davon abgesehen, dass wir voraussetzen, dass der Hacker die genaue Zeichenzahl (8) kennt.
Man muss sich nicht alles merken…
Der Sicherheitsvorteil sollte also auf der Hand liegen. Natürlich kommt wieder ein Einwand: Wie soll ich mir denn dutzende unterschiedliche Passwörter dieser Art merken? Da habe ich hier bereits ein praktisches Freeware-Tool vorgestellt. Einfach auf einen USB-Stick packen und man muss sich nur ein „fieses“ Passwort merken… auf alle anderen kann man darüber zugreifen. Und wenn man dann mal den USB-Stick verliert, so war das Passwort ja hoffentlich kryptisch genug, um zu Hause in aller Seelenruhe die Passwortdatei vom Backup(!) zu öffnen und dann die Passwörter bei den verschiedenen Diensten zu ändern. Kostet nur etwas Schweiß, dafür kann man aber in Ruhe schlafen.
Also, liebe schatzi1978-Passwortnutzer… überlegt es euch, es geht um eure Sicherheit!
Kopfgrafik: Ausschnitt des Bildes „Burgwächter Schloss mit Schlüssel“ von Sebastian Hartlaub. Lizenz siehe Wikipedia.