Einige Webdienste bieten 2-Faktor-Authentifizierung (2FA) als Alternative zum einfachen Login mit Username/Passwort an. Die Webseite USB-Dongle Authentication bietet eine Übersicht zu Webdiensten, die OTP und U2F für den sicheren Login unterstützen.

Bei der Zwei-Faktor-Authentifizierung muss man als ersten Faktor in der Regel ein Wissen nach­weisen (Passwort oder PIN) und als zweiten Faktor den Besitz eines kleinen Gerätes (ein OTP Generator, SecurityStick oder TAN-Generator) oder einer Chip­karte wie bei Bankaccounts. Das Verfahren ist durch Nutzung von EC- und Kredit­karten bekannt. Im Internet verwendet man statt Chip­karte oft One-Time-Passwörter (OTP) oder SecuritySticks (U2F, WebAuthn).

Wenn ein Angreifer durch Phishing, Video­über­wachung oder mit einem Keylogger den User­namen und das Passwort für einen Account erbeutet, dann sollte es ohne den zweiten Faktor wertlos und nicht nutzbar sein. Das Passwort wird damit nicht über­flüssig, es muss aber kein hoch­komplexes, sicheres Passwort mehr sein. Eine 6-stellige Zahlen­kombination ist nach NIST Special Publication 800-63B für 2-Faktor-Auth. ausreichend.

2-Faktor-Authentifizierung für das Online Banking

Mit der europäischen Zahlungsrichtlinie PSD2 wird für die Online-Abwicklung von Bank­geschäften die 2-Faktor-Auth. auch für den Login bei Webseiten zur Zahlungs­abwicklung zwingend vor­geschrieben. Banken haben unter­schiedliche Lösungen entwickelt, die sich von den üblichen Lösungen für 2-Faktor-Auth. bei anderen Webdiensten unter­scheiden. Bank­webseiten verwenden in der Regel einen TAN-Generator als zweiten Faktor und definieren den Geschäftsfall "Login", da diese Technk für Authorisierung von Transaktionen bereits vorhanden ist. Es gibt Hardware TAN-Generatoren und Smartphone Apps: Welche Optionen man hat, muss man bei Kunden­support der Bank erfragen. Auch wenn es etwas umständlicher ist, würde ich beim Umgang mit Geld immer die sicherste Lösung bevor­zugen und Hardware TAN-Generatoren in Kombination mit meiner EC-Chipkarte nutzen.

2-Faktor-Authentifizierung für den Login bei Webdiensten

Für den Login bei Webdiensten werden andere Verfahren genutzt, als beim Online Banking:

One-Time-Passwort (OTP): Bei der Zwei-Faktor-Authentifizierung mit zusätzlichem One-Time-Passwort besteht das Passwort aus zwei Komponenten. Der erste Teil ist üblicher­weise ein Passwort oder n-stellige PIN, die man wissen muss. Der zweite Teil ist das OTP Token. Es wird von einem kleinen Spiel­zeug geliefert und ist nur einmalig verwendbar.

Es gibt mehrere Verfahren für One-Time-Passwörter (OTP):

Zwei-Faktor-Authentifizierung mit One-Time Passwörtern (OTP) erschwert Phishing Angriffe und Angriffe mit Keyloggern. Das ist das Angreifermodell und dagegen soll OTP schützen. OTP macht Phishing Angriffe aber nicht unmöglich. B. Schneier hat bereits 2009 auf Schwächen hingwiesen. 2018 haben potente Hacker damit begonnen, 2FA mit OTP in größerem Umfang auszutricksen. Grund dafür ist die zunehmende Anwendung.

Angriffe auf 2-Faktor-Auth. mit OTP Token:
  1. Die Sicherheitsfirma CERTFA berichtete Dez. 2018 in dem Blogartikel The Return of The Charming Kitten von einer Spear-Phishing Kampagne iranischer Hacker gegen Google und Yahoo! Accounts, welche die 2-Faktor Auth. austricksen konnte.
  2. Amnesty International berichtete ebenfalls von einer Spear Phishing Angriffswelle aus Nahost gegen die Accounts von Menschen­rechts­aktivisten, welche die 2-Faktor-Auth von ProtonMail, Tutanota, Google und Yahoo! austricksen konnte.
  3. Im Januar 2019 wurde auf Github die Software Muraena und NecroBrowser als Open Source veröffentlicht, die Phishing Angriffe auf 2FA automatisiert ausführen kann.

    Der Angreifer lockt das Opfer mit Phishing E-Mails o.ä. zum Login auf seine Webseite. Dort arbeitet Muraena als Reverse-Proxy, der sich unbemerkt zwischen Nutzer und Webdienst einschleicht und die Authentifizierung an den richtigen Server weiterleitet. Nachdem die Session aufgebaut wurde, extrahiert Muraena die Session Cookies oder Session-IDs und reicht sie an eine Instanz des Necro­Browsers weiter. Das Schließen der Session (Logout) wird von Muraena blockiert und dem Nutzer wird vorgegaukelt, er hätte sich abgemeldet. Danach kann der Angreifer mit dem NecroBrowser unbemerkt den Account übernehmen. 
  4. Wenn es einem Angreifer gelingt, zwei oder mehr TOTP Token abzugreifen und den Zeitpunkt der Verwendung zu protokollieren, kann er mit dem Tool "hashcat" versuchen, die Secret Keys ermitteln und dann selbst gültige TOTP Token erzeugen.
    • Die abgeschorchelten Token schreibt man zusammen mit den Zeitstempel im Format $TOKEN:$TIMESTAMP in eine Textdatei (im Beispiel: totp-inputs.txt): 833060:1263384780
      549115:1528848780
    • Mit dieser Textdatei füttert man "hashcat" und protokolliert die Ergebnisse: > hashcat -m17300 -a3 -o totp-secrets.potfile totp-inputs.txt ?l?l?l?l?l?l?l
    • Nach einigen Stunden oder Tagen Rechenzeit (abhängig von der Rechenleistung und der Qualität der Keys) schaut man sich die Ergebnisse an: > cut -d: -f3 totp-secrets.potfile | sort | uniq -c | sort -nr | head
    • Die Ergebnisliste kann man von oben beginnend ausprobieren. Nach weiteren 5min hat man einen TOTP Secret Key gefunden, der die Generierung gültiger Token ermöglicht, und man kann den Account übernehmen: > oauthtool --base32 --totp "Secret Key" -d 6
OTP schützt nicht bei Einbrüchen auf dem Server. Da bei OTP der Server und Client den gleichen Algorithmus zur Berechnung und Verifizierung des One-Time-Passworts ausführen, kann ein Angreifer bei einem erfolgreichem Einbruch auf dem Server die OTP Parameter aus­lesen und somit gültige OTP Token berechnen, insbesondere für TOTP ist es einfach: > oauthtool --base32 --totp "Secret Key" -d 6 Aus dem gleichen Grund schützt 2-Faktor-Auth mit OTP nicht beim Zugriff staatlicher Behörden auf Passwort Hashes, wie es in dem Feb. 2020 von der Regierung beschlossenen Gesetzes zur Bekämpfung von Rechtsterrorismus vorgesehen ist. In dem Gesetz steht:
Für die Auskunftserteilung sind sämtliche unternehmensinternen Datenquellen zu berücksichtigen.
Und das schließt die Parameter zur Berechnung der OTP ein. Gegen diesen Angriff ist auschließlich die Stärke des ersten Faktors (Passwort) relevant und das Hashverfahren, welches der Provider zum Schutz des gespeicherten Passwortes einsetzt.



FIDO-U2F: (Universal Second Factor) ist ein kryptografisches Public Key Verfahren zur Authentifizierung mit einem kleinen USB-Stick (z.B. Nitrokey U2F oder verschiedene Yubikeys), das im Okt. 2014 standardisiert wurde.

Das Verfahren läuft im Hintergrund automatisch ab, man muss nur den U2F-Stick vor dem Login anschließen. Der Server sendet ein zufälliges Challenge an den Client (Browser). Der Browser gibt diesen Input zusammen mit der Login URL, die er sieht, an den U2F-Stick weiter, der mit einem geheimen Schlüssel die Signatur über diese Daten berechnet. Diese Signatur wird als Response an den Server zurück geschickt und kann dort mit dem passenden public Key verifiziert werden. Dabei wird für jeden Web-Account ein anderer Schlüssel verwendet.

Vorteile von FIDO-U2F gegenüber One-Time-Passwörtern: Auf der Testseite von Yubico kann man prüfen, ob man mit U2F einen Account erstellen und den U2F.Stick für einen Dummy Login nutzen kann. Außerdem funktioniert die Firefox Implementierung mit Google Accounts und Github problemlos.



WebAuthn/FIDO2 ist ein Standard des W3C, der im März 2019 verabschiedet wurde und von den Großen der IT-Branche unterstützt wird. WebAuthn ist eine Weiterentwicklung von FIDO-U2F und soll den Login mit Username / Passwort Kombinationen komplett ersetzen können.

Das Protokoll nutzt asymmetrische Kryptografie ähnlich wie FIDO-U2F und verwendet gleich­falls Security Token. Es können FIDO2 USB-Sticks verwendet werden oder das Trustet Platform Module des Computers (TPM), um die privaten Keys zu speichern. Außerdem ist WebAuthn kompatibel mit FIDO-U2F. Für Testzwecke kann man auch mal Soft-Token nutzen.

WebAuthn/FIDO2 erweitern FIDO-U2F um folgende Punkte:

Auf der Webseite WebAuthn.io kann man spielerisch mit seinem Token einen Account erstellen und sich mit dem Umgang beim Login vertraut machen.

Hinweis für Linuxer: Wenn FIDO2 oder FIDO-U2F Sticks nicht out-of-the-box funktionieren, muss man die UDEV Regeln installieren. Meistens reicht es, folgende Pakete zu installieren: Ubuntu: > sudo apt install libu2f-udev
Fedora: > sudo dnf install u2f-hidraw-policy


VerificationCode: nutzt SMS. SMS-basierte Verfahren zur Authentifizierung gelten als nicht mehr sicher. Es gibt mehrere Publikationen zu dem Thema. Das NIST, BSI u.a. empfiehlen, SMS nicht mehr als 2. Faktor für die Authentifizierung zu nutzen.
Out of band verification using SMS is deprecated, and will no longer be allowed in future releases of this guidance. (NIST Special Publication 800-63B)
SMS-basierte Verfahren können mit SIM-Swap Angriffen oder SS7-Hijacking ausgehebelt werden. Das musste Twitter-CEO Jack Dorsey lernen, als sein Twitter Account trotz aktivierter 2-Faktor-Auth kompromittiert wurde. Ein Fehler beim Mobil­funk­anbieter sei schuld gewesen, erklärte Twitter. (So sieht ein erfolgreicher SIM-Swap Angriff aus.)


ePerso: In Auswertung des US-Wahlkampfes 2016 und dem erheblichen Einfluss von gehackten E-Mail Accounts auf das Wahlverhalten der amerikanischen Bevölkerung hat die Bundesregierung die Cyber-Sicherheitsstrategien überarbeitet. Nach Ansicht der Bundes­regierung ist die Sicherheit mit dem klassischen Benutzername/Passwort-Verfahren nicht mehr gegeben. Im Rahmen Cyber-Sicherheits­strategien will die Regierung die Bürger stärker zur Nutzung der Onlineausweisfunktion des Personalausweises animieren.

Bezüglich des klassischen Benutzername/Passwort-Verfahren kann man mit der Bundes­regierung überein­stimmen, aber die Onlineausweisfunktion des ePerso muss man nicht nutzen. Statt dessen sollte man Hardware Token nutzen, die nicht an eine ID-Karte gebunden sind und vollständig durch den Nutzer konfiguriert werden (z.B. Nitokey, Yubikey o.ä.)
Lizenz: Public Domain