Passwörter – Vorgaben, Angriffe, MFA und Praxis

Passwörter und insbesondere Passwort-Vorgaben sind ein spannendes Feld voller Konfliktpotential, gefährlichem Halbwissen und gefühlter Sicherheit. Neben Passwörtern an sich, ist auch das Thema Multi-Faktor-Authentifizierung ein naheliegender Diskussionspunkt. Zu beiden Themen möchten wir ein paar Einblicke und Empfehlungen aus Sicht eines Angreifers geben, die vielleicht beim nächsten Review der Passwort-Richtlinie behilflich sein können.

Es gibt je nach Standard noch weitere Empfehlungen, die aber für die hier vorgenommene Betrachtung nicht mehr relevant sind. Grundlegend sollten Passwörter natürlich immer geheim, sicher, schwer zu erraten und gut zu merken sein – Ha!

Existiert das Konto nicht, so gibt Microsoft einem Angreifer diese Information preis (1) – was übrigens nicht den üblichen Empfehlungen für Logins entspricht. Ist der Benutzername korrekt, fragt Microsoft zuerst nach dem Passwort (2). Wird dies falsch „geraten“, so lehnt Microsoft den Login ab (3). Stimmt das Kennwort, dann kommt die Aufforderung zur MFA-Eingabe (4). An dieser Stelle weiß der Angreifer zumindest, dass er eine aktuell gültige Kombination aus Benutzername und Passwort besitzt, welche er an weiteren Diensten der Firma – oder ggf. vor Ort mal ausprobieren kann.

Plakativ gesagt bedeutet das, dass ein Passwort aus 8 Zeichen (Groß-/Kleinschreibung), was als MD5-Hash in einer Datenbank gespeichert wurde, innerhalb von 4 Minuten per Brute-Force-Angriff auf jeden Fall erraten werden kann. Bei PBKDF-gehashten Passwörtern der gleichen Komplexität, dauert ein solcher Angriff 11.033 Minuten, also etwa 183 Stunden – was knapp 7 ½ Tagen entspricht. Verlängern wir nur das Kennwort um 4 Zeichen und bleiben bei Groß-/Kleinschreibung, dauert ein Angriff auf ein MD5-gehashtes Passwort 32.573.084 Minuten, also etwa 542.884 Stunden – umgerechnet 22.610 Tage; Knapp 62 Jahre.

Wird statt der Länge nun die Komplexität hochgesetzt, ergibt sich zur Berechnung aller Hashes der Werteraums eines 8-Zeichen langen Passworts mit Zahlen eine Dauer von 18 Minuten, mit Zahlen und Sonderzeichen von 114 Minuten – also nicht mal zwei Stunden. In Windows-Umgebungen werden in der Regel die Hashverfahren NTLMv2 und MSCacheV2 verwendet. Das achtstellige Passwort eines lokalen Windows 10 Benutzers, was im NTLMv2-Format gespeichert ist, lässt sich demnach auch in einer guten Stunde berechnen – mit maximaler Komplexität dauert die Berechnung aller möglichen Werte immerhin knapp einen Tag.

Die Moral von der Geschicht‘: Hohe Komplexitätsanforderungen lohnen sich mit Blick auf Brute-Force-Angriffe gegen die Passwort-Hashs nicht! Der in diesem Zusammenhang oft gelesene Satz: „Länge bringt mehr als Komplexität“ spiegelt genau diesen Sachverhalt wider. Selbst für Passwörter, die mit einem aktuell, als sicher geltenden Hashverfahren wie PBKDF2 gespeichert werden, lassen sich bei 8 Zeichen länge mit maximaler Komplexität in etwa 196 Tagen, also einem guten halben Jahr, alle möglichen Varianten berechnen. Die Verlängerung des Passworts auf 12 Zeichen Groß-/Kleinschreibung würde diese Zeit auf über 153.482 Jahre verlängern. Taucht ein gehasht gespeichertes Passwort beispielsweise einer Liste der Top-Million-Passworte auf, dann ist es – unabhängig vom Hash-Algorithmus – in unter einer Sekunde erraten.