FIDO2: Killing Password Softly

Inhaltsübersicht:

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.