Wenn jemandem das Passwort geleakt wird, stellt man sich das als einmaligen Unfall vor: Ein Dienst hatte einen schlechten Tag, es stand in der Zeitung, du hast das Passwort geändert, Sache erledigt. Sie ist nicht erledigt. Der Tag des Leaks ist das Ende von gar nichts: Er ist der erste Tag an einem Fließband, das Jahre laufen wird – und auf dem du nie unter deinem Namen auftauchst. Es lohnt sich, die ganze Geschichte zu erzählen, denn kaum jemand sieht sie.
Schritt eins: Jemand zieht die Datenbank ab
Der Anfang hat nichts Spektakuläres. Jemand findet eine SQL-Injection, ein offenes Backup, ein Admin-Panel mit den Standard-Zugangsdaten. Und nimmt eine Tabelle mit.
Diese Tabelle enthält, wenn du Glück hast, deine E-Mail-Adresse und einen Hash deines Passworts. Wenn du weniger Glück hast, enthält sie deine E-Mail-Adresse und dein Passwort. Im Klartext. Genau so, wie du es getippt hast.
2009 Zweiunddreißig Millionen Passwörter im Klartext
Im Dezember 2009 wurde RockYou, eine Firma für Social-Media-Widgets, Opfer einer SQL-Injection. Abgeflossen sind rund 32 Millionen Passwörter, und es gab keinen Hash zu knacken: Die Firma speicherte sie im Klartext.
Für RockYou war das eine Katastrophe, für alle anderen ein Geschenk. Zum ersten Mal existierte ein riesiger Bestand echter Passwörter, getippt von Leuten, die nicht wussten, dass sie jemand lesen würde. Keine Studie: das Ding selbst.
Aus der Datei wurde rockyou.txt, bis heute das Referenzwörterbuch, mit dem
Angriffe getestet werden. Ihr Wert liegt nicht darin, dass dein Passwort drinsteht:
Sie enthält, wie Menschen Passwörter bauen. Ein Name und eine Jahreszahl, das
Wort und die 123, das ! am Ende. RockYou hat keine 32 Millionen Geheimnisse
geleakt. Geleakt wurde das Muster. Und Muster laufen nicht ab.
Schritt zwei: Geknackt wird, was geht – in aller Ruhe
Hier versagt die Intuition. Wenn jemand dein Passwort auf der Login-Maske eines Dienstes erraten will, macht der Dienst dicht: drei Versuche, ein CAPTCHA, eine Sperre. Gegen einen Server ist Raten langsam und laut.
Gegen eine Hash-Datei, die schon auf der eigenen Platte liegt, gibt es keinen Server. Da sagt niemand mehr Nein. Getestet wird lokal, mit GPUs, ohne Versuchslimit und mit aller Zeit der Welt. Hat der Dienst schlecht gehasht – schneller Algorithmus, kein Salt –, ist der Unterschied zum Klartext eine Frage der Bequemlichkeit, nicht der Sicherheit.
Und getestet wird nicht wahllos: zuerst rockyou.txt, dann davon abgeleitete
Regeln. Ersetze a durch @. Häng eine Jahreszahl an. Jeder Trick, den du für
raffiniert gehalten hast, steht seit über einem Jahrzehnt in einer
Konfigurationsdatei.
Daraus wird ein Teil des Dumps zu lesbaren Passwörtern. Der Rest – das Lange, das Zufällige, das in keinem Wörterbuch steht – bleibt Rauschen. Das ist die Linie, die der Passwort-Checker zieht: Er hält dir keine Standpauke, er sagt dir, auf welcher Seite du landest.
Schritt drei: Es wird abgeglichen – und da wirst du Geld wert
Ein einzelner Dump bringt wenig. Wertvoll ist die Aggregation: zehn Leaks von
verschiedenen Seiten nehmen, über die E-Mail-Adresse abgleichen und die Paare
E-Mail:Passwort behalten, die schon im Klartext vorliegen. Das Ergebnis heißt
Combolist, und das ist niemandes Datenbank mehr. Das ist eine Liste von Menschen.
2013 Das Inventar kommt ans Licht
Im Dezember 2013 startete Troy Hunt Have I Been Pwned: eine öffentliche Datenbank mit E-Mail-Adressen aus Leaks, damit jeder nachfragen konnte, ob er dabei ist. Der Grundgedanke ist einfach und unbequem: Wenn die Angreifer das Inventar schon haben, schützt es niemanden, es den Opfern vorzuenthalten. Jahre später kam Pwned Passwords dazu, das dasselbe mit Passwörtern macht und die Abfrage erlaubt, ohne sie zu senden: Man schickt ein Fragment des Hashes, und der Server gibt eine Ladung Kandidaten zurück, ohne zu wissen, welcher deiner war.
2017 Das NIST hört auf, Sonderzeichen zu verlangen, und fängt an, Listen zu verlangen
Als das NIST die SP 800-63B veröffentlichte, warf es fast die gesamte Formular-Orthodoxie über Bord und setzte an ihre Stelle eine Anforderung, mit der wenige gerechnet hatten: Beim Festlegen eines Passworts muss das System es gegen eine Liste bekannter kompromittierter Werte prüfen und es ablehnen, wenn es darin auftaucht.
Das ist ein Theoriewechsel, kein Detail. Die Frage ist nicht mehr, ob dein Passwort stark aussieht, sondern ob es schon veröffentlicht ist. Deshalb tut der Generator das einzig Vernünftige: Er holt es von einem Ort, an dem es nie war.
2019 Der Leak, der schon ein Aufguss anderer Leaks war
Im Januar 2019 kursierte ein Paket, das als Collection #1 berühmt wurde. Hunt analysierte es und zählte, was drin war: rund 773 Millionen einzigartige E-Mail-Adressen und rund 21 Millionen einzigartige Passwörter im Klartext, aggregiert aus Tausenden Quellen.
Wichtig war nicht die Größe. Wichtig war, woher es kam: Zu großen Teilen war es der Aufguss früherer Leaks, schon geknackt und in ein bequemes Format gebracht – obwohl Hunt auch Material fand, das bis dahin nicht bei ihm erfasst war. Das Produkt war nicht der Einbruch. Das Produkt war das Inventar. Und so ein Inventar hat nur einen Zweck.
Credential Stuffing: Niemand greift dich an
Dich greift niemand an. Das ist der Teil, der schwer in den Kopf will.
Niemand setzt sich hin und denkt über dein Konto nach. Jemand nimmt eine Combolist mit Hunderten Millionen Zeilen, kippt sie in ein Tool, das sie gegen das Login-Formular einer Bank oder eines Mailanbieters durchprobiert, verteilt die Versuche auf viele IP-Adressen, um die Sperren nicht auszulösen, und wartet. Die allergrößte Mehrheit schlägt fehl. Egal: Sie kosten fast nichts.
Das ist Credential Stuffing, und es ist kein Raten. Es ist Nachsehen. Das Passwort haben sie schon; sie finden nur heraus, wo du es sonst noch benutzt hast.
Dein Passwort aus jenem Forum war nicht wichtig. Das Forum auch nicht. Wichtig ist, dass dieselbe Zeichenkette deine Mailbox öffnet, und deine Mailbox öffnet über „Passwort vergessen“ alles andere. Die Ursünde ist nicht, dass es schwach war: Sie ist, dass es dasselbe war. Ein dreißig Zeichen langes, zufälliges, perfektes Passwort, auf zwei Seiten wiederverwendet, ist so gut wie die schlechtere der beiden. Und wie die schlechtere hasht, kontrollierst du nicht.
Was daraus folgt
- Das geleakte Passwort zu ändern reicht nicht, wenn du es wiederholt hast. Dringend ist nicht die Seite, die in den Nachrichten war. Dringend sind die anderen.
- Ein Passwort pro Seite, und es soll dir egal sein, es zu vergessen. Wenn du dir all deine Passwörter merken kannst, hast du sehr wenige oder sehr schlechte.
- Der zweite Faktor reißt die Kette auseinander. Credential Stuffing probiert
E-Mail:Passwort. Reicht das nicht zum Einloggen, ist das Inventar nichts mehr wert.
Dein geleaktes Passwort liegt nicht in den Händen eines Feindes. Es liegt in einer Zeile einer Datei, zwischen Hunderten Millionen anderer, und wartet darauf, dass sich für jemanden ein weiterer Versuch auf einer weiteren Seite lohnt. Und was darüber entscheidet, ob das klappt, hast du vor Jahren entschieden – als du dasselbe Wort ein zweites Mal getippt hast.
Quellen: der RockYou-Leak (Dezember 2009) und die spätere Nutzung von
rockyou.txt als Angriffswörterbuch · Have I Been Pwned und Pwned Passwords von
Troy Hunt · NIST SP 800-63B, zur Prüfung von Passwörtern gegen Listen
kompromittierter Werte · Troy Hunts Analyse von Collection #1 (Januar 2019) und die
von ihm veröffentlichten Zahlen · Definition von Credential Stuffing bei OWASP.