FIDO2 – Sicherer Login ohne Passwort

FIDO2 ist ein Challenge-Response-Verfahren für Mehrfaktorauthentifizierung (MFA), das mittels Public-Key-Kryptografie umgesetzt ist. Die Ergänzung zum bisherigen U2F-Standard besteht darin, dass mit FIDO2 nicht nur der Besitz des Authenticators, sondern durch die Verwendung eines PIN für den Token auch Wissen nachweisbar ist und damit gänzlich auf Passwörter verzichtet werden kann.

FIDO2 entstand aus einer Kooperation zwischen der FIDO Alliance und W3C, um eine zeitgemäße Authentifizierungslösung zu entwickeln und langfristig die Abhängigkeit von Passwörtern zu verringern, da deren Qualität und Verarbeitung oftmals zu wünschen übrig lässt.

Intern arbeiten die Protokolle WebAuthn, zuständig für die Browser-Server-Kommunikation und CTAP, welches die Browser-Authenticator-Kommunikation definiert.

Wie funktioniert die 2-Faktor-Authentifizierung (U2F)?

Kernprinzip der 2-Faktor-Authentifizierung ist, dass einem Authentifizierungsdienst gegenüber Wissen (Passwort) und Besitz (meist eines Tokens) nachgewiesen werden muss. Damit wird einem Angriff vorgebeugt, bei dem ein Angreifer zwar Zugriff auf den ersten Faktor (Passwort) bekommen hat, aber ohne größeren Aufwand keinen physischen Zugriff auf den zweiten Faktor bekommen kann.

Diese Funktion ist durch das bisherige U2F-Protokoll abgedeckt, das unter der Bezeichnung CTAP1 auch Einzug in den neuen FIDO2-Standard gefunden hat. Dadurch sind U2F-Produkte auch weiterhin einsetzbar.

Der neue FIDO2-Standard ersetzt das herkömmliche Passwort und führt folgende Sicherheitslevel für die Authentifizierung ein:

  • 1FA: Authenticator, Aktivierung durch antippen
    Ersetzt das Passwort durch einen einzelnen Faktor, den Besitz des Authenticators. Hierbei inbegriffen ist das Sicherheitsrisiko des Authenticator-Diebstahls.
  • 2FA: Authenticator + PIN, Aktivierung durch antippen
    Ersetzt das Passwort durch Besitz des Authenticators und Kenntniss über eine PIN, die im Authentificator gesetzt werden kann.

Die Angriffsfläche eines klassischen Passworts ist oftmals vergleichsweise groß, da der Authentifizierungsdienst meist über Internet erreichbar ist. Da die Angriffsfläche des Authenticators lokal begrenzt ist, muss diese PIN weniger strenge Komplexitätsrichtlinien erfüllen.

Ein Authenticator muss hierbei nicht zwangsläufig ein Hardware-Token, wie beispielsweise der Yubikey sein, ebenso können TPMs für diese Funktion verwendet werden.

Wie läuft der Authentifizierungsprozess ab?

Den Authentifizierungsprozess übernimmt ein Challenge-Response-Verfahren, wobei der Browser bei Authentifizierung an Webseiten die Rolle eines Relays übernimmt. Im Detail verhält sich das wie folgt:

  1. Webanwendung sendet Challenge
    Die Webseite sendet eine Challenge an den Client-Browser, dieser leitet die Challenge mit weiteren Daten an den Authenticator weiter.
  2. Authenticator signiert die Challenge falls autorisiert
    Der Authenticator fragt die bei der Registrierung zuvor eingerichtete Zugangsberechtigung (privater Schlüssel) ab und überprüft Wissen des Benutzers (PIN). Sind diese Schritte erfolgreich, erzeugt er eine digitale Signatur der Challenge und übergibt diese an den Browser.
  3. Übertragung der signierten Challenge an die Webanwendung
    Der Browser reicht die signierte Challenge an die Webseite weiter, welche die Signatur überprüft und bei erfolgreicher Verfifizierung den Client authentifiziert

Wie verbreitet sind FIDO2-fähige Dienste?

Stand heute lässt die Verbreitung von sowohl U2F- als auch FIDO2-fähigen Diensten noch einige Wünsche offen. Als zweiter Faktor konnte sich bisher vor allem die OTP-Protokollfamilie durchsetzen, die auch als ausreichend sicher gilt.

Das neue FIDO2 unter gänzlichem Verzicht auf das bisherige Passwort wird bislang lediglich von Windows Hello unterstützt, ist aber durch seine geschickte Reduzierung der Angriffsfläche und der Ansprüche an die PIN-Komplexität eine aussichtsreiche Technologie.

Fazit

FIDO2 setzt statt der Übertragung eines Passworts auf die fortschrittlichere Challenge-Response Technik,  bei der das geteilte Geheimnis (der Private-Key) den Authenticator nicht verlässt und damit nicht übertragen werden muss. Dies hat vor allem bei der Komprommitierung eines Endsystems beträchtliche Vorteile, da Malware wie Keylogger keine Chance bekommt, Informationen abzugreifen, die eine Authentifizierung bei einem Dienst ermöglichen.

Möchte sich ein Anwender auch gegen das Angriffsrisiko des Authenticator-Diebstahls absichern, sollte die FIDO2 PIN aktiviert werden. Insgesamt reduziert FIDO2 die Angriffsfläche der Authentifizierung von einem globalen auf ein physisch lokales Problem.

Weiterhin ist für den Fall des Verlustes eines Authenticators Vorsorge erforderlich: Entweder ist die Einrichtung mehrerer Authenticators nötig, um sich im Falle eines Verlustes nicht auszusperren oder es muss auf Restore Codes zurückgegriffen werden.

Quellen
  • https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API
  • https://demo.yubico.com/webauthn/
  • https://www.yubico.com/go-passwordless/
  • https://support.yubico.com/support/solutions/articles/15000014219-yubikey-5-series-technical-manual#FIDO2e4fbd

1 Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

CAPTCHA *