Skip to main content

FIDO2: Killing Password Softly

Verfasst von Burkhard Heinemann   //  

Die Authentifizierung bei Online-Transaktionen, Cloud-Services und E-Commerce-Plattformen ist von einem 50 Jahre alten IT-Konstrukt abhängig: dem Passwort. Mit FIDO2 wurde ein Nachfolger für sichere Authentifizierungen im Web geschaffen, der auch den Weg für biometrische Zugangsverfahren ebnet.

FIDO2 ist die neueste Spezifikation der FIDO-Allianz (Fast Identity Online). Diese wurde mit dem Ziel gegründet, offene Standards für eine sichere Authentifizierung im World Wide Web zu entwickeln – anfangs ohne Passwort, später ausschließlich biometrisch.

Das Ziel der FIDO-Allianz lautet unbescheiden: "Changing the nature of authentication". Vor zehn Jahren entstand die Idee, 2012 erfolgte die Gründung des Branchenverbands. Die Liste der Gründungsmitglieder PayPal, Lenovo, Nok Nok Labs, Validity Sensors, Infineon und Agnitio erweiterte sich in den folgenden Jahren um die Namen der weltweit dominanten Tech-Unternehmen.

Hinter den Kulissen verfolgen amerikanische, asiatische und europäische Konzerne die gleichen Zielvorstellungen:

  • die Benutzerfreundlichkeit bei Anmeldeverfahren im Web zu verbessern,
  • Web-Nutzer vor Phishing und anderen Angriffsformen zu schützen,
  • die Verfügbarkeit und Sicherheit biometrischer Technologien zu erhöhen.

Seit 2016 forciert auch das World Wide Web Consortium (W3C) seine Bemühungen, ein sicheres Web zu bauen, und setzt dabei offiziell auf die Technologien der FIDO-Allianz.

FIDO2 ist nun bereits der dritte Standard, der aus der Arbeit der Allianz hervorgegangen ist. FIDO Universal Second Factor (FIDO U2F) und FIDO Universal Authentication Framework (FIDO UAF) sind seine Vorgänger.

Technologie

Der FIDO2-Standard setzt auf Public-Key-Kryptografie und eine Zwei-Faktor-Authentifizierung, die sich mithilfe von Sicherheitsschlüsseln (FIDO2-Keys) und Hardware-Tokens umsetzen lässt.

Um abgesicherte Anmeldungen bequem durchzuführen, werden sichere Kommunikationswege zwischen dem jeweiligen Client (z.B. Webbrowser oder Betriebssystem) und den aufgerufenen Webservices eingerichtet, um für spätere Anmeldungen dauerhaft verfügbar zu sein.

FIDO2 ist im Kern eine Kombination zweier Spezifikationen, die einen sicheren Datenaustausch zwischen den beteiligten Instanzen ermöglichen. Diese Spezifikationen sind:

  • WebAuthn – Webauthentifizierung
  • (Client to Server) CTAP – Client to Authenticator Protocol

fido2 02 FIDO2: „Moving the World Beyond Passwords“

WebAuthn

Die WebAuthn-Spezifikation beschreibt eine JavaScript-Standard-Web-API zwischen einem Client und einem vertrauenswürdigen Server (Relying Party). Der Client versucht via WebAuthn auf einen Dienst zuzugreifen, der von einem vertrauenswürdigen Server angeboten wird.

Die Clients kommunizieren gegenüber den Servern via Authentifikator (USB-Stick, Smartphone etc.). Dieses Gerät generiert und speichert die Anmeldeinfomationen in einem privaten Schlüssel ab, der aus Sicherheitsgründen nicht aus dem Gerät ausgelesen werden kann.

Dank der Einbindung des W3C-Standards WebAuthn werden nicht nur verschlüsselte und anonyme, sondern gänzlich passwortfreie Log-ins ermöglicht. Zu den Anwendungsfällen für WebAuthn gehören:

  • Nutzerregistrierung: Ein Nutzer registriert sich mit einem Authentifikator auf einer neuen Website oder bei einem neuen Web-Dienst
  • Authentifizierung: Ein registrierter Nutzer authentifiziert sich auf einer Website oder bei einem Web-Dienst mithilfe eines Authentifikators
  • Geräteregistrierung: Ein Nutzer fügt seinem Konto einen neuen Authentifikator hinzu (z.B. einen Zweitschlüssel) und kann sich folglich mit mehreren registrierten Authentifikatoren anmelden.

CTAP

Das Client to Authenticator Protocol wird zur Kommunikation zwischen dem Client und dem externen Authentifizierungsgerät (FIDO2-Key) verwendet.

Das Protokoll verwendet das Binärdatenserialisierungsformat CBOR (Concise Binary Object Representation), das auf dem Datenmodell der JavaScript Object Notation (JSON) basiert. CTAP kann mithilfe von CBOR kleinste Code- und Nachrichtengrößen verschicken und eine extrem hohe Verarbeitungsgeschwindigkeit anbieten.

Dabei beinhaltet die CTAP-Spezifikation inzwischen zwei Versionen: CTAP1 und CTAP2. In FIDO2 wurde der vorherige U2F-Standard in CTAP1 umbenannt. CTAP2 ist nun der neue Standard, der eine passwortlose, Zweit- oder Mehr-Faktor-Authentifizierung via externem Authentifikator an FIDO2-fähigen Browsern und Betriebssystemen ermöglicht.

Authentifikation

Da der FIDO2-Key auf vielen verschiedenen Geräten platziert werden kann, hat er unterschiedliche Namen: Mit Authentifikator, Token oder Sicherheitsschlüssel ist immer das Gerät bzw. die Instanz gemeint, mit dem man sich persönlich gegenüber den Diensten authentifiziert.

Die Authentifikation erfolgt entweder über ein extern angeschlossenes Gerät oder den Zugriff auf den Krypto-Chip der verwendeten Hardware (Secure Element). Grundsätzlich bestehen die folgenden zwei Möglichkeiten der Authentifikation:

  • Authentifikation per Token: Ein externes Gerät wird an Computer, Smartphone oder Tablet angeschlossen. Die Datenübertragung erfolgt via USB-, NFC- oder Bluetooth-Verbindung.
  • Plattform-Authentifikation: Alle kommerziellen Anbieter haben den FIDO2-Standard inzwischen in ihre Systeme integriert. Die Authentifikation wird über das Secure Element oder eine Host Card Emulation vorgenommen.

fido2 02 FIDO2 Authentication: WebAuthn + CTAP Flow

Im Zuge der Registrierung bei einem (teilnehmenden) Web-Dienst wird auf dem verwendeten Authentifikator ein neues Schlüsselpaar erzeugt – bestehend aus einem privaten (Private Key) und einem öffentlichen FIDO2-Schlüssel (Public Key).

Der private Schlüssel wird auf dem Gerät gespeichert und ist nur dem Client bekannt. Der Public Key wird in der Schlüsseldatenbank des Web-Dienstes abgelegt.

Alle folgenden Anmeldungen können nur noch mittels des privaten Schlüssels erfolgen und müssen nutzerseitig immer aktiv entsperrt werden. Hierbei gibt es verschiedene Optionen wie z.B.

  • die Eingabe einer PIN,
  • das Drücken eines Buttons,
  • die Eingabe per Sprachbefehl,
  • das Einstecken einer separaten Hardware (FIDO2-Key).

Die aktuellen OS-Versionen von Microsoft, Apple und Google bieten die Funktion des Sicherheits-Tokens ebenfalls an. Der Vorteil ist klar: Selbst wenn die Log-in-Daten kompromittiert wurden, ist die FIDO2-Anmeldung nur mit dem jeweiligen Hardware-Token oder dem biometrischen Merkmal möglich, welches für die jeweilige Anmeldung hinterlegt wurde.

Fazit

Schon die Einführung der PSD2-Richtlinie fordert vom Nutzer eine Zwei-Faktor-Authentifizierung bei der Anmeldung an einer Banking-App. Mit der Implementierung von FIDO2 weitet sich dieser zweite Authentifikationsschritt auf Betriebssysteme und Browser-Anwendungen aus.