Le CTAP (Client to Authenticator Protocol) est le protocole défini par la FIDO Alliance qui permet à un client — navigateur ou système d'exploitation — de dialoguer avec un authentificateur externe : clé de sécurité USB, jeton NFC ou appareil Bluetooth. Avec WebAuthn, il forme les deux moitiés de la spécification FIDO2.
Où CTAP se situe dans la chaîne
La répartition des rôles est stricte :
- WebAuthn est l'API exposée par le navigateur à l'application web (recommandation du W3C) ;
- CTAP est le transport entre ce navigateur et l'authentificateur qui détient la clé privée.
Quand l'authentificateur est intégré à l'appareil (capteur biométrique du téléphone ou du portable), CTAP n'est pas nécessaire : le système d'exploitation parle directement à son enclave sécurisée. CTAP n'intervient que pour les authentificateurs itinérants, ceux que l'on branche ou que l'on approche.
CTAP1 et CTAP2
CTAP2 est la version associée à FIDO2 : elle prend en charge les discoverable credentials (clés résidentes, base des passkeys), la vérification de l'utilisateur par code PIN ou biométrie sur le jeton, et les extensions. CTAP1 est la reformulation du protocole U2F historique, conservée pour la compatibilité avec les clés de seconde génération, mais limitée au second facteur.
À retenir : CTAP ne transporte jamais de secret réutilisable. La clé privée ne quitte pas l'authentificateur ; seule une signature, liée à l'origine du site, est renvoyée.
Aller plus loin : passkey, FIDO2, WebAuthn : démêler les termes · définition de WebAuthn · définition de FIDO2 · l'authentification cognitive