Client to Authenticator Protocol (CTAP), to specyfikacja opisująca sposób, w jaki aplikacja (tj. przeglądarka) i system operacyjny nawiązują komunikację ze zgodnym urządzeniem uwierzytelniającym przez media komunikacyjne USB, NFC lub BLE.
Specyfikacja jest częścią projektu FIDO2 i specyfikacji W3C WebAuthN. Specyfikacja dotyczy dwóch wersji protokołu CTAP.
CTAP1 to nowa nazwa FIDO U2F. Definiuje sposób nawiązywania komunikacji między przeglądarkami obsługującymi FIDO2 i systemami operacyjnymi a urządzeniem FIDO U2F. Dzięki temu umożliwia korzystanie z uwierzytelniania drugiego stopnia.
CTAP2 definiuje sposób nawiązywania komunikacji między przeglądarkami obsługującymi FIDO2 a systemami operacyjnymi i zewnętrznymi uwierzytelniającymi (kluczami bezpieczeństwa FIDO, urządzeniami mobilnymi). Celem jest aby umożliwić uwierzytelnianie bez hasła, dwuskładnikowe lub wieloskładnikowego.
Ogólny przepływ komunikacji zdefiniowany przez CTAP jest następujący:
- Aplikacja (tj. przeglądarka) nawiązuje połączenie z urządzeniem uwierzytelniającym.
- Następnie aplikacja pobiera informacje o uwierzytelniaczu i jego możliwościach.
- Aplikacja wysyła polecenie (które jest obsługiwane) do urządzenia uwierzytelniającego.
- Uwierzytelniacz odpowiada z danymi odpowiedzi lub błędem.