Sinnvolle Passwort-Richtlinien
Passwörter sind allgegenwärtig, aber unbeliebt. Welche Vorschriften sollte man Nutzerinnen und Nutzern machen? Was ist ein gutes Passwort? Bei vielen IT-Systemen gibt es hier Verbesserungspotenzial.
Mit Passwort-Richtlinien versuchen Webseiten, Benutzerinnen und Benutzer zu zwingen, sichere Passwörter zu verwenden. Meist gibt es Vorgaben zu den zu verwendenden Zeichen und der Länge. Die Erwartung ist, dass Passwörter, die die Richtlinien erfüllen, schwerer zu erraten sind bzw. bei systematischem Durchprobieren aller Möglichkeiten erst später gefunden werden.
Anforderungen an die Sicherheit sind hier – zumindest auf den ersten Blick – in Konflikt mit guter Benutzbarkeit. Sichere Passwörter wie „fuKnTrdg2$bq“ kann man sich schlecht merken und es ist mühsam, sie einzugeben – vor allem auf Smartphones oder TV-Fernbedienungen.
Dieser vermeintliche Konflikt zwischen Sicherheit und Benutzbarkeit lässt sich allerdings mit technischen Mechanismen auflösen.
Herkömmlicher Ansatz: Komplexität und Länge
Um die Stärke verschiedener Richtlinien zu vergleichen, ermittelt man, wie viele Passwörter es mindestens gibt, die eine bestimmte Richtlinie erfüllen. Dazu zählt man zunächst ab, wie viele verschiedene Zeichen es pro Stelle im Passwort gibt. Sieht eine Richtlinie zum Beispiel vor, dass ein Passwort Buchstaben, Ziffern und gängige Sonderzeichen enthalten muss, kommt man bei 26 Kleinbuchstaben, 26 Großbuchstaben, 10 Ziffern und 10 Sonderzeichen zusammengerechnet auf 72 verschiedene Zeichen.
Die Anzahl der Passwörter, die es bei dieser Richtlinie mindestens gibt, erhält man durch Potenzieren der Anzahl der möglichen Zeichen mit der geforderten Länge. Bei einer Mindestlänge von acht Stellen gibt es 728 = 722 Billionen Passwörter (die aus acht Zeichen bestehen).
Auf den ersten Blick erscheint die Forderung nach Sonderzeichen sinnvoll: Bei einer vergleichbaren Passwort-Richtlinie, die keine Sonderzeichen fordert, wäre die Anzahl der möglichen Passwörter mit der Mindestlänge kleiner. Es gäbe dann nur 628 = 218 Billionen Passwörter.
Ein starkes Passwort muss aber nicht nicht unbedingt Sonderzeichen enthalten. Die Anzahl der möglichen Passwörter hängt nämlich viel stärker von der Anzahl der Stellen ab als von der Anzahl der möglichen Zeichen. Wenn die gerade betrachtete Passwort-Richtlinie ohne Sonderzeichen eine Mindestlänge von neun Zeichen vorgäbe, würde sich der Möglichkeitenraum auf 629 = 13 Billiarden vergrößern – eine Steigerung um den Faktor 19 im Vergleich zur ursprünglichen Passwort-Richtlinie.
Fazit: Anstelle Buchstaben des Passworts durch Sonderzeichen zu ersetzen, sollte das Passwort lieber um einen Buchstaben verlängert werden. Das Vorschreiben von Sonderzeichen – und übrigens auch von Ziffern – bringt nur geringe Sicherheitsgewinne. Sinnvoller ist es, eine etwas höhere Mindestlänge vorzuschreiben und dafür auch Passwörter, die nur aus Buchstaben bestehen, zuzulassen. Solche Passwörter lassen sich deutlich einfacher verwenden.
Diese Überlegungen gelten allerdings nur, wenn Nutzerinnen und Nutzer zufällige Passwörter erzeugen. Dies ist in der Realität allerdings häufig nicht der Fall. Im nächsten Abschnitt wird erläutert, wie diese Einschränkung adressiert wird.
Passwortqualität sinnvoller messen
Die im vorigen Abschnitt vorgestellte Anzahl möglicher Passwörter ist in der Praxis verbreitet, da sie leicht zu implementieren ist. Die Größe des Möglichkeitenraums ist allerdings kein gutes Maß für die Passwortqualität. Die Überlegungen im vorigen Abschnitt basieren nämlich auf der Annahme, dass Passwörter zufällig generiert werden.
Nicht aussagekräftig ist die Größe des Möglichkeitenraums vor allem bei Passwörtern, die anhand von Wörtern oder Zahlenkombinationen wie Geburtsdaten erzeugt werden. So erfüllt das Passwort „Password123!“ zwar die Anforderungen vieler Passwort-Richtlinien, ist aber nicht besonders sicher.
Typische Verhaltensmuster, die Menschen bei der Erzeugung von Passwörtern zeigen, sind in Werkzeugen zum systematischen Erraten von Passwörtern, etwa hashcat, bereits hinterlegt. Durch Wörterbücher und Regelsätze werden Passwörter, die von Menschen erzeugt worden sind, daher oft viel schneller erraten als die Berechnungen im vorherigen Abschnitt erwarten lassen.
Ein besseres Maß für die Passwortqualität ist daher die Anzahl der zu erwartenden Rateversuche, wenn menschliche Verhaltensmuster berücksichtigt werden. Solche Maße werden in Forschungsarbeiten anhand großer Passwort-Datensätze entwickelt.
Ein bekannte Ansatz ist zxcvbn, der als Open-Source-Software (GitHub) verfügbar ist und anstelle einer herkömmlichen Passwort-Richtline zur Überprüfung von nutzergenerierten Passwörtern verwendet werden kann.
Die Funktionsweise von zxcvbn lässt sich online in einem Demonstrator nachvollziehen.
Gemäß zxcvbn hat das Passwort „Password123!“ auf einer Skala von 1 bis 4 die Stärke 1 von 4, ist also sehr schwach. Das eingangs gezeigte Passwort „fuKnTrdg2$bq“ hat hingegen die Stärke 4 von 4. Diese maximale Stärke hat aber auch das Passwort „treefivewindchair“, das deutlich einfacher einzugeben ist.
Passwort-Richtlinien sollten daher keine Passwörter ablehnen, die Wörter aus dem Wörterbuch enthalten. Im Gegenteil: Nutzerinnen und Nutzer sollten dazu ermutigt werden, Passwörter zu erzeugen, die aus mehreren zufälligen Wörtern bestehen:

Fazit: Es ist nicht sinnvoll, zu fordern, dass Passwörter möglichst viele unterschiedliche Zeichen enthalten müssen, jedoch keine Wörter. Stattdessen sollten Passwörter daraufhin überprüft werden, ob die zu erwartende Anzahl von Rateversuchen ausreichend groß ist.
Schutz vor Password Leaks
Neben Wörterbüchern kommen bei Angriffen auf Passwörter auch Listen von Passwörtern zum Einsatz, die bei früheren Angriffen auf IT-Systeme publik wurden – sogenannte „Password Leaks“. Daher sollte verhindert werden, dass Nutzerinnen und Nutzer ein Passwort wählen, das in einem Passwort Leak enthalten ist.
Zur automatischen Überprüfung von Passwörtern kann man auf das Angebot von haveibeenpwned.com zurückgreifen. Dort gibt es zum einen Datenbanken mit Passwort Leaks („Pwned Passwords“). Diese Datenbanken haben einen Umfang von mehreren Gigabyte und werden regelmäßig aktualisiert. Daher haben die Betreiber von haveibeenpwned.com auch eine Möglichkeit vorgesehen, einzelne Passwörter zu überprüfen, ohne dass sie diese erfahren.
Dazu kommt ein „Range Search“-Verfahren zum Einsatz, das Vertraulichkeit gewährleistet: Anstelle das zu überprüfende Passwort an haveibeenpwned.com zu übermitteln, bildet man zunächst den SHA-1-Hashwert des zu überprüfenden Passworts. Von diesem Hashwert sendet man die ersten fünf Stellen an haveibeenpwned.com. Als Antwort erhält man eine Liste der Hashwerte aller geleakten Passwörter, die mit den übermittelten fünf Stellen beginnen. Findet man den Hashwert des zu überprüfenden Passworts in dieser Liste, kommt das Passwort in einem der Password Leaks vor und sollte nicht verwendet werden.
Die Range-Search-Schnittstelle wird über HTTPS-Anfragen angesprochen. Für das Passwort „Password123!“ (Hashwert: 49efef5f70d47adc2db2eb397fbef5f7bc560e29) wird beispielsweise folgende URL abgerufen:
http://api.pwnedpasswords.com/range/49efe
In der Antwort findet sich unter tausenden von Zeilen auch folgende Zeile:
F5F70D47ADC2DB2EB397FBEF5F7BC560E29:10257
Diese Zeile enthält den hinteren Teil des Hashwerts des zu überprüfenden Passworts. Der Wert hinter dem Doppelpunkt bedeutet, dass das zugehörige Passwort mehr als 10.000 mal in Password Leaks vorkam. Unabhängig von der Höhe dieses Wertes sollte das Passwort daher abgelehnt werden.
Fazit: Passwörter sollten daraufhin überprüft werden, ob sie in Password Leaks vorkommen.
Literatur
- zxcvbn: Low-Budget Password Strength Estimation. In: USENIX Security Symposium 2016: 157-173.