Die FIDO2-Authentifizierung verwendet öffentliche Schlüsselkryptografie, um ein eindeutiges kryptografisches Schlüsselpaar zu generieren, das als „Passkey“ bezeichnet wird und mit dem Konto eines Benutzers verknüpft ist. Das Schlüsselpaar besteht aus einem öffentlichen Schlüssel, der beim Service-Anbieter verbleibt, und einem privaten Schlüssel, der sich auf dem Gerät des Benutzers befindet.
Wenn sich der Benutzer bei seinem Konto anmeldet, sendet der Service-Anbieter eine Herausforderung, in der Regel eine zufällige Zeichenkette, an das Gerät des Benutzers. Das Gerät fordert den Benutzer auf, sich durch Eingabe einer PIN oder durch Verwendung einer biometrischen Authentifizierung zu authentifizieren.
Wenn sich der Benutzer erfolgreich authentifiziert, verwendet das Gerät den privaten Schlüssel, um die Herausforderung zu signieren und an den Service-Anbieter zurückzusenden. Der Dienstanbieter verwendet den öffentlichen Schlüssel, um zu überprüfen, ob der richtige private Schlüssel verwendet wurde, und gewährt dem Nutzer gegebenenfalls Zugang zu seinem Konto.
Ein auf einem Gerät gespeicherte Passkey kann verwendet werden, um sich bei einem Dienst auf einem anderen Gerät anzumelden. Wenn ein Benutzer beispielsweise auf seinem Mobilgerät einen Passkey für sein E-Mail-Konto einrichtet, kann er sich auf einem Laptop trotzdem bei seinem E-Mail-Konto anmelden. Der Benutzer muss die Authentifizierungsaufforderung auf dem registrierten Mobilgerät abschließen.
FIDO2 unterstützt ebenfalls die Verwendung von Sicherheitsschlüsseln, wie zum Beispiel einer YubiKey oder Google Titan, als Authentifizierungsmethode.
Sicherheitsschlüssel, auch „Hardware-Token“ genannt, sind kleine physische Geräte, die Authentifizierungsinformationen direkt an einen Dienst übertragen. Sie können über Bluetooth, Nahfeldkommunikation (NFC) oder einen USB-Anschluss verbunden werden. Benutzer können anstelle von biometrischen Daten oder einer PIN einen FIDO2-Sicherheitsschlüssel verwenden, um sich zu authentifizieren und eine Abfrage zu signieren.
Da der private Schlüssel auf dem Gerät des Benutzers gespeichert wird und es niemals verlässt, wird die Möglichkeit einer Sicherheitsverletzung minimiert. Hacker können es nicht stehlen, indem sie in eine Datenbank einbrechen oder die Kommunikation abfangen. Der öffentliche Schlüssel, der sich beim Dienstanbieter befindet, enthält keine vertraulichen Informationen und ist für Hacker von geringem Nutzen.