Der offene Authentifizierungsstandard FIDO2 (Fast Identity Online 2) der den passwortlosen Login zum Beispiel mittels Biometrie ermöglicht, besteht im Wesentlichen aus zwei standardisierten Komponenten. Zum einen aus dem API-Authentifizierungsprotokoll WebAuthn (Web Authentication), das die Verbindung zwischen dem System des Nutzers (Client) und der Webseite (Server) auf der sich der Nutzer identifizieren soll, regelt. Zum anderen aus dem Client to Authenticator Protocol (CTAP), das die Verbindung zwischen dem System des Nutzers (Client) und einem externen Authenticator (Hardware-Token) reguliert. Aber erst in Kombination der beiden Komponenten WebAuthn und CTAP2 kann FIDO2 überhaupt funktionieren.
CTAP gibt es aktuell in zwei verschiedenen Versionen. CTAP1 auch als U2F (Universal 2nd Factor) bekannt, ein Industriestandard vor allem für die Zwei-Faktor-Authentifizierung und das neuere Protokoll CTAP2, dass sich auf die Authentifikation mit dem FIDO2-Standard bezieht.
Damit der Passwortlose Login funktionieren kann, muss es eine Form der Authentifizierung geben. Diese muss sicherstellen, dass nur der dazu berechtigte Nutzer auf sein Onlinekonto zugreifen kann. Bei FIDO2 werden dafür zusätzliche Geräte verwendet, sogenannte Authenticatoren mit denen man sich gegenüber der Onlineplattform als Nutzer ausweist. Hier wird unterschieden zwischen internen (Plattform) Authenticatoren, die direkt im Benutzergerät wie Laptop oder Smartphone verbaut sind, und externen (Roaming-) Authenticatoren.
Für intern verbaute Authenticatoren wie z.B. Fingerabdruckscanner in Smartphones wird kein gesondertes Kommunikationsprotokoll wie CTAP benötigt, da es sich hierbei nicht um externe Hardware handelt. Hier reicht WebAuthn für die Kommunikation zwischen Client und Server aus.
CTAP kommt dann ins Spiel, wenn es sich um einen externen Authenticator handelt, der mittels USB, NFC oder Bluetooth mit dem eigentlichen Gerät (Client) wie zum Beispiel PC oder Laptop verbunden wird. Bezugnehmend auf diese externe Authenticatoren entstand der Name Client to Authenticator Protokoll (kurz CTAP). Neben CTAP wird hier dann auch WebAuthn für die Kommunikation zwischen externen Authenticator, Client und Server benötigt.
Dabei ist wichtig, dass die Authentifizierungsdaten wie der Fingerabdruck nie den Authenticator verlassen. Stattdessen wird die Public-Key-Kryptografie verwendet. Hierfür wird bei der Ersteinrichtung ein kryptografisches Schlüsselpaar (Private- und Public-Key) erstellt. Der Private-Key wird dabei sicher im Authenticator gespeichert und verlässt diesen nie, während der Public-Key an den Dienst gesendet wird, bei dem sich der Nutzer registrieren möchte.
Darüber hinaus kommt das Challenge-Response-Verfahren zum Einsatz. Dabei sendet der Dienst, bei dem sich der Nutzer anmelden möchte, im ersten Schritt eine Herausforderung (die Challenge) über den Browser an den Authenticator. Der Nutzer bestätigt nun zum Beispiel durch Auflegen des Fingers auf den Fingerabdruckscanner, seine Identität und der Authenticator signiert die Herausforderung mit dem bei der Erstregistrierung im Authenticator gespeicherten privaten Schlüssel. Die signierte Herausforderung wird dann zurück an den Dienst gesendet (Response) und mit dem dort zuvor abgelegten öffentlichen Schlüssel geprüft. Bei erfolgreicher Authentifizierung kann der Benutzer auf den Dienst zugreifen.
Da während der Authentifizierung keine Geheimnisse übermittelt werden, sind Man-in-the-Middle-Attacken und Phishing-Angriffe sinnlos. Auch Social-Engineering ist wirkungslos, da es keine sensiblen Informationen (z. B. Passwörter) gibt, die verraten werden können.