Einwegcodes per E-Mail zu versenden ist noch schlechter als Passwörter
(blog.danielh.cc)- In letzter Zeit haben viele Dienste die Anmeldung per 6-stelligem Code auf Basis von E-Mail oder Telefonnummer eingeführt
- Nach Eingabe von E-Mail-Adresse/Telefonnummer wird ein 6-stelliger Bestätigungscode versendet, der dann zur Anmeldung eingegeben wird
- Dieses Verfahren führt zu schwerwiegenden Schwachstellen bei der Kontosicherheit
- Ein Angreifer kann einfach die E-Mail-Adresse einer anderen Person in einen legitimen Dienst eingeben und so den Versand eines Bestätigungscodes auslösen
- Für Nutzer ist oft nicht leicht erkennbar, ob ein empfangener Bestätigungscode tatsächlich in einer legitimen Situation verwendet werden soll oder Teil eines Phishing-Versuchs ist
- Bestehende Schutzmechanismen gegen Phishing wie Password Manager sind dabei wirkungslos
- Diese Methode mit Bestätigungscodes wird in der Praxis weiterhin missbraucht
- Auch beim von Microsoft betriebenen Minecraft-Konto-Login wird ein ähnliches Verfahren verwendet
- In verschiedenen Online-Communities und Medien wie Reddit und YouTube wurden mehrere Fälle von Kontodiebstahl gemeldet
Fazit
Die E-Mail-Bestätigung mit 6-stelligem Code ist sicherheitstechnisch anfälliger als erwartet
- Im Vergleich zur herkömmlichen Passwort-Anmeldung steigt das Phishing-Risiko deutlich an
- Die Methode wurde zwar zur Verbesserung der Nutzererfahrung oder Sicherheit eingeführt, kann in der Praxis aber zu schlechteren Ergebnissen führen
3 Kommentare
Dem kann ich nicht wirklich zustimmen; es wirkt auf mich eher wie ein Trick, der nur unter sehr spezifischen Umständen funktioniert.
Wenn man Passkeys nutzt und dann das Gerät verliert, wäre das wohl echt ziemlich unangenehm...
Hacker-News-Kommentare
Das Angriffsmuster läuft ungefähr so ab
1) Der Nutzer registriert sich auf einer betrügerischen Website
2) Die Seite fordert ihn auf: „Wir haben einen Login-Code von der GOOD-Website per E-Mail gesendet, bitte gib ihn ein“
3) Die Betrugsseite startet beim GOOD-Dienst den Flow „mit Einmalcode per E-Mail einloggen“ für die E-Mail-Adresse des Nutzers
4) Die GOOD-Website sendet dem Nutzer den Login-Code per E-Mail
5) Der Nutzer vertraut der E-Mail, weil sie von GOOD kommt, und gibt den Code ein
6) Der Nutzer gibt den Code auf der Betrugsseite ein
7) Die Betrugsseite verwendet den Code, um sich bei der GOOD-Website als der Nutzer einzuloggen
Deshalb ist ein Authentifizierungsverfahren, bei dem „Einmalcodes per E-Mail gesendet werden“, sehr anfällig für Phishing-Angriffe
Die Methode „Link in der E-Mail anklicken“ ist etwas besser, weil es umständlicher und verdächtiger ist, wenn der Nutzer diesen Link in die Betrugsseite kopieren und dort einfügen müsste
Allerdings gibt es dann das Problem, dass plötzlich viele Nutzer gar nicht mehr einloggen können, wenn ein populärer E-Mail-Dienst solche Login-Mails oder Links selbst blockiert
Passkeys sind der richtigere Weg
Die Passkey-Unterstützung in Passwortmanagern wird immer besser
Selbst wenn man das Gerät mit den gespeicherten Passkeys verliert und dadurch alle Passkeys weg sind, bin ich überzeugt, dass es immer noch viel sicherer ist als das bisherige Passwortsystem
Lieber muss die Oma zur Bank gehen, um wieder Zugang zu ihrem Konto zu bekommen, als dass jemand ihr per Phishing das ganze Geld stiehlt
Das Problem bei Passkeys ist komplexer als nur „Wenn du das Gerät verlierst, verlierst du den Zugriff“ (je nach Setup gibt es auch dann Lösungen)
Das größte Problem ist Attestation
Dadurch können Dienste Nutzer aussperren, die Werkzeuge verwenden, welche die Freiheit der Nutzer erhöhen, etwa Open-Source-Authentifizierungslösungen
Passkeys oder Challenge-Response-Protokolle hätten ursprünglich eine gewaltige Verbesserung sein können, um Passwörter zu ersetzen
In der Realität wurden sie aber so gestaltet, dass sie vor allem die Herrschaft von Big Tech weiter festigen und die Freiheit der Nutzer einschränken
Zu der Aussage „Dann soll Oma eben zur Bank gehen, um ihr Konto wiederherzustellen“
Man sollte auch darüber nachdenken, was passiert, wenn jemand mit einer Waffe bedroht wird, das Konto entsperren muss und dann auch noch das ganze Geld geraubt wird
In dem Entwicklungsland, in dem ich lebe, ist Smartphone-Raub ein so großes Problem, dass selbst 2FA praktisch nicht realistisch ist
Ich habe einmal 2FA wiederherstellen müssen, und es war die Hölle
Mit Passwörtern war es überall lösbar, solange ich nur an Bitwarden kam
Ich habe einen Passkey bei github eingerichtet und bestätigt, dass er in Chrome gespeichert ist
Wenn ich mich bei github mit dem Passkey anmelden will, öffnet Chrome ein Popup und verlangt die PIN des Google Password Manager
Ich weiß nicht, welche PIN das ist, und finde auch keine Möglichkeit, sie zurückzusetzen
Weder im Google-Profil noch im Passwortmanager oder in den Sicherheitseinstellungen gibt es einen Hinweis auf diese PIN
Zur Meinung, es sei okay, wenn Oma zur Bank geht, um ihr Konto wiederherzustellen
Ich kann direkt zu einer Bank oder zum IT-Helpdesk einer Firma gehen, um mein Konto wiederherzustellen,
aber ich kann nicht einfach zur Zentrale von Google, Facebook oder Xitter gehen und dasselbe verlangen
Gerätegebundene Passkeys haben in solchen Fällen eine sehr hohe Fehlerwahrscheinlichkeit
Die meisten Nutzer bedenken solche Situationen nicht
Passkeys allein reichen nicht aus
Es geht darum, nicht dieselben Fehler wie früher zu wiederholen
Passwortmanager sollten der Standard sein, und dedizierte MFA sollte nur in wirklich außergewöhnlichen Fällen eingeführt werden, etwa für E-Mail-Konten oder Finanzkonten
Bei der MFA-Einrichtung sollte man meiner Meinung nach mindestens drei Methoden konfigurieren müssen und mindestens zwei davon nutzen können
Wenn fast alle Verfahren nicht unterstützt werden – gedruckte Codes, betriebssystemunabhängige Authenticator-Apps, Hardware-Keys wie YubiKey –, dann ist diese MFA meiner Meinung nach nichts wert
Ich bekomme viermal am Tag E-Mails mit Benachrichtigungen über Anfragen zum Zurücksetzen des Microsoft-Kontopassworts
Das sind E-Mails mit einer sechsstelligen Zahl, mit der die Kontowiederherstellung möglich ist
Das bedeutet am Ende, dass ein Angreifer jeden Tag viermal mit einer Wahrscheinlichkeit von eins zu einer Million versuchen kann, mein Konto zu übernehmen
Wenn man das gegen Tausende von Konten versucht, kann man sich jeden Tag gratis in einige Konten hineinwürfeln
Ich habe dazu sogar einen Sicherheitsbericht eingereicht, aber man hat die Reaktion verweigert mit der Begründung, mathematisch sei der Nachweis der Schwachstelle nicht ausreichend
Mir bleibt also nichts anderes übrig, als den Spam zu ertragen und zu hoffen, dass mein Konto nicht gekapert wird
Ich habe es gelöst, indem ich einen Login-Alias hinzugefügt habe
Beim Einloggen ist jetzt meine bisherige Konto-E-Mail-Adresse (die öffentliche E-Mail) gesperrt, und Login ist nur noch über einen nicht öffentlichen zufälligen Alias-String möglich
Seitdem gab es keinen einzigen externen Login-Versuch mehr
[So richtet man es ein: account.microsoft.com > Ihre Informationen > Anmeldeeinstellungen > E-Mail hinzufügen > Alias hinzufügen und als Standard festlegen > in den Anmeldeeinstellungen nur Alias zulassen auswählen]
Ich hatte dieselbe Erfahrung
Ich vermute, das ist vielleicht eine Nachwirkung davon, dass ich einmal Microsoft Teams benutzen musste
Wenn ein Angreifer diese Methode gegen 125.000 Konten einsetzt, bekommt er statistisch etwa ein Konto pro Tag
Wenn er kein bestimmtes Konto anvisiert, sondern es breit versucht, ist das gemessen am Zeitaufwand ziemlich effizient
Um dieses Problem zu lösen, sollte man statt eines festen Limits von vier Versuchen ein exponential backoff einführen, bei dem die Wartezeit nach jedem Fehlschlag steigt
Ich bekomme auf einem alten Instagram-Konto ebenfalls ständig ähnliche Nachrichten
„Probleme beim Einloggen? Klicke hier, um dein Passwort zu ändern!“
Dasselbe ist auch bei alten nutzlosen Konten passiert
Als ich mir die IP-Adressen der Login-Versuche ansah, kamen sie von verschiedenen ISPs weltweit, meist aus unterschiedlichen /16-Netzen
Wenn man sogar für solche „nutzlosen“ Konten ein Botnet einsetzt, macht mir das Sorgen, wie viel ernster es für Menschen sein muss, die tatsächlich gefährdet sind
Nachdem ich 2FA hinzugefügt hatte, war das Problem komplett gelöst
Ich weiß immer noch nicht, wie sie ursprünglich diesen Login-Flow mit dem sechsstelligen Code entdeckt haben, denn bei mir lief es immer so, dass ich nach Eingabe des Passworts sofort eingeloggt wurde
Trotzdem habe ich seit dem Hinzufügen von 2FA keinen weiteren Versuch mehr gesehen
Auch den 2FA-Code speichere ich im Passwortmanager
Ich bin jedenfalls zufrieden, dass sie Microsofts automatische sechsstellige „Passwörter“ (nicht einmal Buchstaben, nur Zahlen!) nicht mehr angreifen können
Am schlimmsten ist, dass solche Authentifizierungsverfahren die Gewohnheiten und Erwartungen der Nutzer noch weiter verschlechtern
Mit einem modernen Passwortmanager wie 1Password ist alles viel einfacher, sicherer und schneller als mit E-Mail-Token
Man muss nur bei der Ersteinrichtung und Verifizierung auf ein paar Geräten etwas aufpassen
So wie man nach einem Umzug die Türschlüssel kopiert, sollte man meiner Meinung nach erst beruhigt sein, wenn das im Passwortmanager gespeichert ist und auch die Synchronisierung auf anderen Geräten bestätigt wurde
Das können Menschen durchaus leisten
Man muss nichts von Verschlüsselung oder 2FA verstehen; es reicht, auf „neues Passwort erstellen“ zu klicken und das von der App gespeicherte Zufallspasswort zu verwenden
Bei Passkeys gilt dasselbe, nur dass man sie nicht im geräteinternen Speicher belassen sollte, sondern mit Blick auf Backup und Wiederherstellung verwenden muss
Ironischerweise funktioniert die alte Methode (E-Mail und Passwort eingeben) sogar besser
Weil der Passwortmanager sofort automatisch ausfüllt, ist es in der Praxis viel schneller
Passkeys könnten sogar noch schneller sein
Das frustriert mich auch, aber von den Nicht-IT-Leuten in meinem Umfeld scheinen rund 80 % bei Sicherheit völlig ahnungslos zu sein und einfach resigniert zu haben
Der einzige halbwegs erfolgreiche Ansatz war bisher, Zugangsdaten in ein kleines Notizheft zu schreiben und dafür zu sorgen, dass Passwörter zwingend Zahlen und Buchstaben enthalten
Ich verstehe das Problem dieses Flows
Nach meiner Erfahrung ist diese Einmalpasswort-Methode für die Nicht-IT-Leute in meinem Umfeld nach dem Passwort die vertrauteste Form der Authentifizierung
In der Kleinstadt, in der ich lebe, sind Passwortmanager oder Passkeys eher noch verwirrender, und selbst wenn man die Bedienung direkt vorführt, verstehen sie es einfach nicht
Das mentale Modell ist ihnen viel zu fremd, und die UX ist zu komplex, um es begreifen zu können
Bis etwas erscheint, das die breite Masse intuitiv versteht, werden Passwörter und diese „problematischen“ Einmalcodes wegen ihrer Einfachheit wohl weiter dominieren
Selbst wenn man ein ordentliches Passwort verwendet, läuft die Kontowiederherstellung bei „Passwort vergessen“ meist nach demselben Einmalcode-Muster ab
Am Ende kann sich also ein Angreifer, der einfach so tut, als hätte er das Passwort vergessen, über diesen Wiederherstellungs-Flow einloggen
Ich verwende für einen von mir entwickelten Dienst selbst ein Login per Einmalcode
Allerdings ist das kein sensibler Dienst, daher ist starke Authentifizierung dort nicht das Ziel
Ich nenne es selbst ICGAFAS („I Couldn't Give A Factor“ Auth System) und mache damit offen klar, dass mir Sicherheit dort von vornherein nicht besonders wichtig ist
E-Mail-basierte Authentifizierung bringt auch aus Sicht des Administrators zusätzlichen Aufwand mit sich, etwa rund um SMTP-Versand und Zustellung
Am Ende landet man in der Realität ohnehin bei einem 3rd-party-Relay-Dienst, wenn man nicht auf Blacklists geraten oder im Spamfilter hängen bleiben will
Es ist extrem nervig, dass die meisten Dienste dieses Einmalcode-Verfahren statt des bisherigen E-Mail+PW oder Social Login erzwingen
Ich will einfach mein 100 Zeichen langes Passwort verwenden dürfen
Du bist nicht die Zielgruppe
Du gehörst eher zu einer sehr ungewöhnlichen Minderheit
Langfristig muss man über Lösungen nachdenken, die mit der „Mehrheit“ funktionieren
Ich halte sehr lange Passwörter wie mit 100 Zeichen für bedeutungslos
Je nach tatsächlich verwendeter key length in der zugrunde liegenden Kryptografie wird die Länge ohnehin abgeschnitten
Ich habe im NIST-Dokument (NIST 800-63b section 5.1.2.1) nachgesehen, ob diese Art von Authentifizierung offiziell erlaubt ist
Wenn man sie als „Look-up Secret Authenticator“ betrachtet, gibt es kein besonderes Problem
Eigentlich war das für vorab ausgegebene Authentifizierungscodes gedacht, etwa Wiederherstellungscodes, aber hier missbraucht man es für einen in Echtzeit versendeten einzelnen Code
Ich halte diese Methode für phishinganfällig, aber ich bin mir nicht sicher, ob man eindeutig sagen kann, dass sie gefährlicher ist als klassische Nutzername/Passwort-Verfahren
Wenn man den Nutzer zum Beispiel auffordert, einen sechsstelligen Code einzugeben, der an seine E-Mail geschickt wurde, kann er ohnehin nicht erkennen, ob der Code „echt“ oder „gefälscht“ ist
Andererseits kann ein Angreifer auch mit einer nur scheinbar echten Seite wie bei einem Google-Konto Nutzer täuschen und Informationen abgreifen
Am Ende glaube ich, dass nur phishingresistente Authentifizierung wirklich die Zukunft ist
Ich musste mein gofundme-Konto löschen, weil ich heute plötzlich in so einen Authentifizierungszyklus geraten bin
Ich hatte das Konto jahrelang genutzt und auch gespendet, aber jetzt verlangen sie zwingend eine Telefonnummer und einen MFA-Code und bieten keine Möglichkeit, das abzulehnen
Also habe ich den ganzen Prozess noch durchgezogen und das Konto anschließend deaktiviert
Ich halte solche Authentifizierung in meinem Leben für unnötig; ich kann auch ohne gofundme leben
Ich suche gerade eine Wohnung, und bei der Zillow-App ist es genauso: Login nötig, und um empfangene Nachrichten zu lesen, wird jedes Mal wieder MFA verlangt
Nach einer Stunde läuft die Session ab
Ich habe diese Art von Authentifizierung wirklich satt
Was für eine komplett verrückte Welt
Ticketmaster macht etwas Ähnliches
Google-Voice-Nummern werden nicht akzeptiert, es wird ausschließlich eine mit der SIM verknüpfte Nummer verlangt
Meine SIM-Nummer ist aber nur ein oft wechselndes „Implementierungsdetail“, und trotzdem kann ich mich jetzt ohne diese Nummer nicht mehr in mein Konto einloggen
Im Ergebnis muss man also entweder auf solche Ticketkäufe verzichten oder bei jedem SIM-Wechsel eine Kontosperre riskieren
Google hat 2FA für mein Konto selbst aktiviert, und weil die im Konto hinterlegte Telefonnummer eine alte Nummer ist, bin ich jetzt komplett ausgesperrt
Wenn ein Dienst ohne jede Vorwarnung Passwort und zweite Authentifizierung ändert, kann man auf Reisen dauerhaft den Zugriff verlieren, wenn man das an das Konto gebundene Telefon nicht dabeihat
Die meisten Dienste betrachten die zweite Authentifizierung als sicherer als mein 20 Zeichen langes Zufallspasswort, das im lokalen Passwortmanager gespeichert ist
Dabei sind diese zweiten Faktoren oft nur Dinge wie unverschlüsselt per SMS übermittelt oder unverschlüsselt per E-Mail gesendet, also eher dürftig
Ich habe diesen Satz auch nach viermaligem Lesen nicht verstanden
Gemeint ist eine Erklärung wie: „Wenn der Angreifer die E-Mail-Adresse des Nutzers an einen legitimen Dienst sendet und einen sechsstelligen Code anfordert, kann der Nutzer nicht erkennen, ob dieser Code für einen echten Login gedacht ist“