Warum 2FA bei LastPass nutzlos war
Das letzte Jahr ging mit einer Schreckensmeldung für viele LastPass-Nutzer*innen zu ende: Angreifer*innen haben es geschafft, ein Datenbackup mit LastPass-Kundendaten zu stehlen, Teile davon sind unverschlüsselt. Die Angreifer*innen haben so die Möglichkeit, die Master-Passwörter der Kunden offline zu knacken.
Ein für viele schwer zu fassendes Problem ist die Wirkungslosigkeit der bei LastPass eingerichteten 2-Faktor-Authentifizierung – warum können die Angreifer*innen an meine Daten, obwohl ich 2FA aktiviert habe? Schuld daran ist die Sicherheitsarchitektur von LastPass und die Rolle, die das Master-Passwort bei der Verschlüsselung spielt.
Die LastPass-Sicherheitsarchitektur
Kurz gesagt: Alles dreht sich um das Master-Passwort. Das ist der eine Faktor bei LastPass, der wirklich für die Ende-zu-Ende-Verschlüsselung genutzt wird. Dabei ist zu bedenken, dass das Master-Passwort von den Nutzer*innen gewählt wird. Es ist also nie perfekt zufällig, sondern enthält Muster durch die menschliche Denkweise. Jetzt wird es technischer, wir kommen zum Key Stretching.
Bei der Verschlüsselung wird von dem Master-Passwort durch Key-Stretching ein Key abgeleitet, der für die Ende-zu-Ende-Verschlüsselung des Vaults genutzt wird. Bei LastPass kommt die Key-Stretching-Funktion PBKDF2 mit 100.100 Iterationen genutzt. Die Zahl der Iterationen sagt aus, wie oft die Verschlüsselungsfunktion auf das Ergebnis angewendet wird, um es weiter zu verschlüsseln.
Die Rolle der 2-Faktor-Authentifizierung (2FA)
Die 2-Faktor-Authentifizierung ist eine optionale Einstellung für alle Nutzerinnen, die zusätzlichen Schutz beim Zugriff auf die Cloud-Infrastruktur von LastPass bietet. Und genau hier liegt das Problem: 2FA ist nicht Teil der Ende-zu-Ende-Verschlüsselung, diese hängt allein an der Sicherheit des Master-Passworts. Das haben sich die Angreiferinnen zu Nutze gemacht.
Das Vorgehen der Angreifer*innen
In einem Blog-Artikel beleuchtet LastPass die genaueren Umstände, wie sich die Angreifer*innen Zugriff verschaffen konnten, dieser Artikel von Ars Technica fasst den Blog mit etwas einfacheren Worten zusammen.
Für uns reicht der Ausgang der Geschichte: die Angreifer*innen haben sich Zugang zur Cloud-Infrastruktur verschafft und dabei Schutzmechanismen der LastPass-Mitarbeiter*innen umgangen bzw. ausgenutzt. So konnten sie die verschlüsselten Vaults der Kund*innen stehlen und können jetzt daran arbeiten, diese zu entschlüsseln. Die 2FA-Methoden der individuellen Kund*innen ist dabei egal, das Master-Passwort ist die einzige Hürde.
Wie schon erwähnt, schützt 2FA nur den Zugriff auf die Cloud, ist aber kein Teil der Verschlüsselung. Die Angreifer*innen haben aber schon Zugriff auf die Cloud gehabt und konnten die Daten stehlen. Dabei haben die Angreifer*innen die 2FA eines Mitarbeiters umgangen (siehe Artikel oben), um an die Vaults auf der Cloud zu gelangen. Jetzt können Sie „offline“ daran arbeiten, die Vaults zu knacken, die individuellen 2FA-Mechanismen der Kund*innen sind so nutzlos.
Offline Brute-Force zur Entschlüsselung
Offline haben die Angreifer*innen die Möglichkeit, via Brute-Force Methode extrem viele Master Passwörter automatisiert durchzuprobieren. Das einzige Hindernis, oder besser gesagt der verlangsamende Faktor dabei ist die Key-Stretching-Funktion. Genau dafür wurde sie auch gemacht,allerdings müssen regelmäßig Anpassungen gemacht werden, um mit der immer besser werdenden Hardware der Angreifer*innen mitzuhalten. PBKDF2 mit 100.100 Iterationen ist leider stark veraltet, aktuell werden von der OWASP-Foundation 600.000 Iterationen bei PBKDF2 oder noch besser Argon2 als Standard empfohlen (LastPass hat seit dem 1.03.2023 auf 600.000 Iterationen erhöht). Argon2 ist eine neuere Key-Stretching-Funktion, die seit 2015 von Kryptologen standardisiert wurde.
Ein Beispiel für den Aufwand, den die Angreifer betreiben müssen: Bei einem 12-stelligen nutzergenerierten Master-Passwort geht man im Durchschnitt von 100 USD Kosten für die Angreifer*innen aus, dieses Passwort zu knacken.
Lösungsansätze, die das verhindern
Für diese Problematik gibt es verschiedene Lösungsansätze. 1Password hat neben dem Master-Passwort den „Secret-Key“ als zusätzlichen Faktor eingeführt. Das ist eine zufällig generierte Zeichenkette, die anders als das vom Menschen generierte Master-Passwort nicht einfach zu knacken ist. 1Password empfiehlt, den Secret Key auszudrucken, da man diesen beim Einrichten neuer Geräte benötigt und er nicht verloren gehen darf. Das erhöht zwar die Sicherheit, bringt aber neue Probleme: schlechtere User Experience, schlechtere Nutzerakzeptanz und ein erhöhtes Supportaufkommen.
Bei heylogin verzichten wir komplett auf ein von Nutzer*innen gewähltes Master Passwort. Stattdessen generieren wir den Key für die Ende-zu-Ende-Verschlüsselung direkt im Sicherheitschip des Smartphones der Nutzer*innen. Dieser Key nicht nur 256 bit sicher, sondern auch perfekt zufällig, er enthält keine menschlichen Muster.
Verschlüsselung mit 2FA und ohne Master-Passwort
Das führt uns zum großen Vorteil gegenüber der Sicherheitsarchitektur von LastPass oder der Variante von 1Password: diese Methode schließt die 2-Faktor-Sicherung mit in die Verschlüsselung ein. Der Sicherheitschip im Smartphone muss bei der Nutzung erst durch den/die Nutzer*in entsperrt werden. Das geschieht durch PIN, Face Unlock oder Fingerabdruck. Dabei ist die Anzahl falscher Versuche begrenzt, man kann also nicht unendlich viele PINs durchprobieren. Potentielle Angreifer*innen müssen also nicht nur das Smartphone klauen (1. Faktor), sondern auch den Sicherheitschip mit dem 2. Faktor entsperren. Das ist nicht nur an sich extrem schwer, der Angriff ist auch nicht so leicht skalierbar wie bei LastPass, da man sehr viele Smartphones klauen und knacken müsste.
Zum Abschluss lässt sich sagen, dass der Angriff auf LastPass mit modernerer Sicherheitsarchitektur/ moderneren Sicherheitsmaßnahmen zumindest abgeschwächt werden könnte, das Master-Passwort bleibt als Mechanismus mit menschlichen Mustern und Schwächen aber weiter das größte Problem. Bevor nicht 2FA ein Teil der eigentlichen Ende-zu-Ende-Verschlüsselung wird, kann dieser Angriff wieder passieren.