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 2-Faktor-Auth. muss man als ersten Faktor in der Regel ein Wissen nachweisen (Passwort oder PIN) und als zweiten Faktor den Besitz eines kleinen Gerätes (ein OTP Generator, SecurityStick oder TAN-Generator) oder einer Chipkarte wie bei Bankaccounts. Das Verfahren ist durch Nutzung von Kreditkarten bekannt. Im Internet verwendet man statt Chipkarte oft One-Time-Passwörter (OTP), SecuritySticks (U2F, FIDO2/WebAuthn) oder das Smartphone (Passkey).
Wenn ein Angreifer durch Phishing, Videoüberwachung oder mit einem Keylogger den Usernamen 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 überflüssig, es muss aber kein hochkomplexes, sicheres Passwort mehr sein. Eine 6-stellige Zahlenkombination ist nach NIST Special Publication 800-63B für 2-Faktor-Auth. ausreichend.
Mit der europäischen Zahlungsrichtlinie PSD2 wird für die Online-Abwicklung von Bankgeschäften die 2-Faktor-Auth. auch für den Login bei Webseiten zur Zahlungsabwicklung zwingend vorgeschrieben. Banken haben unterschiedliche Lösungen entwickelt, die sich von den üblichen Lösungen für 2-Faktor-Auth. bei anderen Webdiensten unterscheiden.
Bankwebseiten 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:
photoTAN, SecureGo verwenden Smartphone Apps für den 2. Faktor. Die Verfahren sind für den Kunden billiger, da er kein zusätzliches Gerät kaufen muss, aber etwas weniger sicher, da ein Smartphone leichter kompromittiert werden kann.
Außerdem enthalten Smartphone Apps immer wieder unterschiedliche Tracker, die das Nutzungsverhalten verfolgen. Die SecureGo App der Fiducica & GAT IT AG enthält zwei Tracker, unter anderem Google Firebase Analytics (siehe Exodus Privacy Report). Ein positives Beispiel ist die photoTAN App der Commerzbank, die keine Tracker enthält.
FIDO-U2F: (Universal Second Factor) ist ein kryptografisches Public Key Verfahren zur Authentifizierung mit einem kleinen Hardware Token (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 (OTP, siehe unten):Bevor man FIDO-U2F für den Login verwenden kann, muss man den U2F-Stick beim Webdienst als zweiten Auth.-Faktor registrieren. In der Regel findet man die Option dafür auf den Webseiten in den Account Einstellungen unter "Passwort" oder "Sicherheit" o.ä.
WebAuthn/FIDO2 ist ein Standard des W3C, der 2019 verabschiedet wurde. Es ist eine Weiterentwicklung von FIDO-U2F und sollte Username / Passwort Kombinationen komplett ersetzen.
Das Protokoll nutzt asymmetrische Kryptografie ähnlich wie FIDO-U2F und verwendet gleichfalls Security Token. Es können FIDO2 USB-Sticks verwendet werden, TPM Module vom PC oder Laptop oder moderne Smartphones, um die privaten Keys zu speichern. Außerdem ist WebAuthn kompatibel mit FIDO-U2F. Für Testzwecke kann man auch Softtoken nutzen.
WebAuthn/FIDO2 erweitern FIDO-U2F um folgende Punkte:Außerdem kann man den Zugriff auf das FIDO2 Security Token mit einer PIN bzw. Passwort sichern. Damit könnte der erste Faktor der Authentifizierung (Wissen) lokal beim Nutzer überprüft und muss nicht durch den Server validiert werden. Auf einer ideal angepassten Webseite müsste man also einfach nur den Button "Login mit FIDO2 Token" anklicken.
Dafür müssten die Anwender bei neu gekauften FIDO2 Token aber selbst eine PIN setzen (mindestens 6-stellig, empfehlen BSI und NIST), was die meisten Nutzer überfordert.
Aus Gründen der Komaptibilität mit FIDO-U2F und weil man es den meisten Nutzern nicht zutraut, eine eigene PIN auf dem FIDO2 Token zu aktivieren, verwenden die meisten Webdienste FIDO2 nur als verbesserten OTP-Ersatz. Man wird nach der Eingabe von Username + Passwort zur zusätzlichen Authentifizierung mit dem FIDO2 Security Token aufgefordert.
Auf der Webseite WebAuthn.io oder der Testseite von Yubico kann man spielerisch mit seinem Token einen Account erstellen und sich mit dem Umgang beim Login vertraut machen.
Wichtiger Hinweis: Man sollte einkalkulieren, dass man ein FIDO2 Security Token auch mal verlieren kann. Ohne dieses Token wird ein Reset des Passwort oder Rückfall auf Login nur mit Username und Passwort nicht möglich sein. (Falls es Webdienst das anbietet, hat er 2FA nicht verstanden.) Man muss also immer mindestens zwei Token für einen Login registrieren!
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-udevPasskey wurde 2022 standardisiert und soll die Benutzbarkeit von WebAuthn/FIDO2 vereinfachen. Es wird die gleiche Kryptografie verwendet aber man benötigt nicht unbedingt ein extra Hardware Security Token wie bei FIDO2 (aber man kann FIDO2 Token nutzen). Die Schlüssel können auch auf einem Smartphone gespeichert und mit der Klaut (iCloud, Google Cloud) synchronisiert werden, um Gerätewechsel ohne Neuregistrierung der Hardware zu ermöglichen.
Wenn man das Smartphone wechselt, muss man das neue Phone nicht überall als neuen Authenticator registrieren (wie es bei neuen FIDO2 Token nötig wäre), sondern kann die Schlüssel für die Authenfizierung aus der Cloud wiederherstellen und sofort das neue Phone für den Login verwenden. Das ist der große Vorteil gegenüber der Nutzung von FIDO2 Security Token.
Bei iPhones muss die 2-Faktor-Auth. für die iCloud aktiviert und bei Androids ein Google Account mit Cloud Synchronisierung eingerichtet sein, um Passkeys verwenden zu können!
Außerdem können Passwortdatenbanken wie KeePassXC für Passkeys genutzt werden, wenn der Browser mit dem passenden Add-on mit der Passwortdatenbank verkuppelt wird. (Man behält die Kontrolle über seine Passkeys und vermeidet eine Synchronisation in die Clouds.)
Auf der Testseite passkeys.io kann man das Verfahren testen und ein bisschen spielen, um sich mit dem Verfahren vertraut zu machen (mit dem Smartphone oder FIDO2 Security Token).
Meistens wird ein Smartphone als Authentikator verwendet werden. Zur Registrierung des Smartphones als Passkey Authenticator oder später für den Login auf der Webseite scannt man den vom Browser gezeigten QR-Code mit dem Smartphone und authorisiert die Aktion auf dem Smartphone mit PIN Eingabe oder Fingerabdruckscan (2-Faktor-Auth.)
Das smarte Phone sendet den kryptischen Auth.-Response zum Server und man ist "drin".
Wenn Passkey auf der Webseite richtig implementiert wurde, muss man keinen Username, E-Mail Addr. oder Account-ID angeben. Einfach nur "Login mit Passkey" anklicken + Scan.
Alternativ kann man auch FIDO2 Security Token als Passkeyspeicher verwenden, da beide kryptografisch kompatibel sind. Da Passkey zugunsten der Benutzbarkeit die Sicherheit aufweicht, bleibt es dem Anwender überlassen, den Zugriff auf das FIDO2 Security Token mit einer PIN zu schützen (wie, ist oben beschrieben) oder darauf zu verzichten.
Man hat es richtig gemacht (2-Faktor-Auth.), wenn der Browser beim Login via Passkey nach der PIN für das FIDO2 Token fragt. Anderenfalls kann jeder Tunichgut, der das FIDO2 Token findet, beschlagnahmt oder irgendwie entwendet den Account übernehmen.
Hinweis: Da Passkey mit Smartphone in Firefox für Linux oder MacOS noch nicht implementiert ist, muss man mit diesen Firefoxen FIDO2 Token für den Passkey Login verwenden.
Verwendet man den Browser Google Chrome auf dem PC und Android Phone als Passkey Authenticator, kann die Kopplung beim Login auch vie Bluetooth erfolgen ohne QR-Code Scan.
Bisher funktioniert die Synchronisierung der Passkeys nur zwischen Android Smartphones mit der Google Cloud oder mit iPhones und der iCloud aber nicht zwischen den Welten.
Bei der Zwei-Faktor-Authentifizierung mit zusätzlichem One-Time-Passwort besteht das Passwort aus zwei Komponenten. Der erste Teil ist üblicherweise ein Passwort oder n-stellige PIN, die man wissen muss. Der zweite Teil ist das OTP Token. Es wird von einem kleinen Spielzeug geliefert und ist nur einmalig verwendbar. Es gibt mehrere Verfahren für One-Time-Passwörter (OTP):
HMAC-based OTP: (HOTP) nutzt One-Time-Passwörter, die aus einem HMAC-SHA1 Hashwert abgeleitet werden, der aus einem Zähler und einem gemeinsam Secret berechnet wurde. Sie sind beliebig lange gültig aber die Verwendung eines Token mit größerem Zählerwert erklärt auch alle Token mit niedrigerem Counter für ungültig.
Tipp: Wenn man seinen OTP-Generator nicht in den Urlaub o.ä. mitnehmen möchte, kann man sich eine Liste von HOTP-Token generieren lassen und diese Zahlenkombinationen nacheinander zum Login unterwegs verwenden. Außerdem ist es schwieriger, ein HOTP Token zu klonen ohne entdeckt zu werden.
Time-based OTP: (TOTP) nutzt One-Time-Passwörter, die auf Basis der aktuellen Uhrzeit berechnet werden und nur innerhalb einer kurze Zeitspanne einmalig gültig sind.
Die HOTP und TOTP Passwörter können von einem Hardware Token (z.B. Nitrokey Pro mit Nitrokey App) generiert werden oder von einer Smartphone App (z.B. FreeOTP für Android oder OTP Auth App für iPhone). Wenn ein Smartphone genutzt wird muss man die angezeigte Zahlenkombination per Hand in das Login Formular abtippen. Bei der Verwendung von TOTP hat man dafür 30sec bzw. 60 sec Zeit, je nach Konfiguration.YubicoOTP: ist ein properitäres Protokoll der Firma Yubico. Es wird ein USB-Stick genutzt, der sich wie eine Tastatur verhält. Man aktiviert das Passwortfeld und drückt dann eine Taste auf dem USB-Stick. Damit wird das One-Time-Passwort in das Eingabefeld geschrieben und man kann das Formular abschicken.
Der Webdienst, bei dem man sich anmeldet, sendet das Einmalpasswort in der Regel über eine API an die YubiCloud und lässt es dort verifizieren. Nur wenige Webdienste bieten gebrandete Yubikeys und betreiben einen eigenen Server zur Validierung.Neben dem einfachen Yubico Stick gibt es den Yubico NEO, der auch als OpenPGP Smartcard genutzt werden kann und ab der Version 4 auch als U2F SecurityStick.
Ein kleiner Tipp: der Yubikey hat zwei Configuration Slots, man kann ihn also für zwei Webdienste nutzen. Wenn man einmal kurz drückt, dann wird Slot 1 genutzt, wenn man ihn länger als 1sec drückt, dann wird die Konfiguration von Slot 2 genutzt.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.
Auf Github findet man Muraena und NecroBrowser oder evilginx2 als Open Source, die Phishing Angriffe auf 2FA automatisiert ausführen kann.
Der Angreifer lockt das Opfer mit Phishing E-Mails o.ä. zum Login auf seine Phishing Webseite. Dort arbeitet ein Reverse-Proxy, der sich unbemerkt zwischen Nutzer und Webdienst einschleicht und die Authentifizierung an den richtigen Server weiterleitet. Nachdem die Session aufgebaut wurde, extrahiert der Reverse-Proxy die Session Cookies und reicht sie an eine Instanz des Browsers weiter. Das Schließen der Session (Logout) wird vom Reverse-Proxy blockiert und dem Nutzer wird vorgegaukelt, er hätte sich abgemeldet. Danach kann der Angreifer mit seinem Browser unbemerkt die weiterhin offene Session übernehmen.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 ausschließlich die Stärke des ersten Faktors (Passwort) relevant und das Hashverfahren, welches der Provider zum Schutz des gespeicherten Passwortes einsetzt.
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 Bundesregierung ist die Sicherheit mit dem klassischen Benutzername/Passwort-Verfahren nicht mehr gegeben. Im Rahmen Cyber-Sicherheitsstrategien 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 Bundesregierung übereinstimmen, 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.ä.)
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 Mobilfunkanbieter sei schuld gewesen, erklärte Twitter. (So sieht ein erfolgreicher SIM-Swap Angriff aus.)