Die FIDO-Authentifizierung verwendet Public-Key-Kryptografie (PKC), um ein eindeutiges kryptografisches Schlüsselpaar zu generieren, das dem Konto eines Benutzers zugeordnet ist. Dieses Schlüsselpaar, ein sogenannter „Passkey“, 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 eine PIN oder eine biometrische 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 diesem Konto anmelden. Der Benutzer muss die Authentifizierungsaufforderung auf dem registrierten Mobilgerät abschließen.
FIDO unterstützt auch die Verwendung von Sicherheitsschlüsseln, auch „Hardware-Token“ genannt, als Authentifizierungsmethode. FIDO-Sicherheitsschlüssel sind kleine, dedizierte physische Geräte, die Schlüsselpaare erstellen und Herausforderungen validieren können. Sie verbinden sich mit anderen Geräten über Bluetooth, NFC-Protokolle (Near Field Communication) oder einen USB-Anschluss. Ein FIDO-Sicherheitsschlüssel kann im Authentifizierungsprozess an die Stelle biometrischer Daten oder einer PIN treten: Der Besitz des Schlüssels authentifiziert den Benutzer.
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.