El registro (create) devuelve un objeto de atestación que contiene los datos del autenticador (con el ID de la nueva credencial y su clave pública COSE) y una declaración de atestación; la autenticación (get) devuelve los datos del autenticador, clientDataJSON y una firma sobre authenticatorData ‖ SHA-256(clientDataJSON). La relying party verifica el desafío, el origen y el tipo en clientDataJSON, el hash del RP ID y los indicadores en los datos del autenticador, y la firma (WebAuthn Level 3 §7.1 y §7.2).
WebAuthn Level 3 estandarizó funciones que los navegadores ya ofrecían: utilidades de serialización JSON (toJSON, parseCreationOptionsFromJSON), la Signal API para actualizar credenciales, getClientCapabilities(), las solicitudes de orígenes relacionados (related origin requests), la creación condicional (conditional create) y la extensión PRF para derivar claves de cifrado. Level 2 se publicó en abril de 2021, y Level 1, en marzo de 2019.
WebAuthn es la mitad web de FIDO2; CTAP conecta el navegador con los autenticadores externos. El inspector de WebAuthn decodifica clientDataJSON, los datos del autenticador y los objetos de atestación.