FIDO2

El estándar que hay detrás de las passkeys. Qué son sus dos piezas, por qué reemplaza el secreto compartido por criptografía de clave pública y qué ataque deja de funcionar cuando se implementa.

En síntesis

FIDO2 es el conjunto de especificaciones que permite autenticar a una persona con criptografía de clave pública en lugar de un secreto compartido. Lo publican la FIDO Alliance y el W3C, y es la base técnica sobre la que funcionan las passkeys.

La idea es corta: el autenticador guarda una clave privada que nunca se envía al sitio y el servidor guarda solo la clave pública correspondiente. Autenticarse es firmar un desafío con la privada.

FIDO2 son dos piezas y conviene distinguirlas

Bajo el mismo nombre conviven dos especificaciones que resuelven problemas distintos.

  • WebAuthn — la API que el navegador expone a la aplicación para registrar y usar credenciales. Es un estándar del W3C y es la pieza que se implementa del lado del sitio.
  • CTAP — el protocolo que hablan el navegador y el autenticador. Es la pieza que permite que una llave de seguridad externa, conectada por USB, NFC o Bluetooth, funcione con el navegador.

Cuando el autenticador está dentro del mismo dispositivo, la conversación de CTAP es interna y no se ve. Cuando el autenticador es una llave física aparte, CTAP es lo que hace que el conjunto funcione.

No hay secreto compartido, y eso cambia dos cosas

En un esquema de contraseña o de OTP existe un dato que el servidor y el usuario conocen. Ese dato se puede filtrar de la base, interceptar en tránsito o pedir por engaño.

En FIDO2 no existe. El registro genera un par de claves: la privada se queda en el autenticador y la pública se envía al servidor. Cada acceso posterior es una firma sobre un desafío aleatorio, que el servidor valida con la clave pública que ya tenía.

Dos consecuencias operativas se siguen de ahí.

  • Una filtración del servidor no entrega credenciales usables. Lo que se roba son claves públicas, que por definición no sirven para autenticarse.
  • La credencial está atada al dominio que la registró. El navegador solo la ofrece al origen correcto, así que un sitio de imitación no puede pedirla ni recibirla. Es la razón por la que el phishing, incluso con retransmisión en tiempo real, deja de funcionar contra este factor. La resistencia no depende de que la persona note el dominio falso: depende del navegador, que sí lo nota.

El autenticador puede estar en el dispositivo o ser una llave aparte

La distinción define la experiencia y el modelo de recuperación.

  • Autenticador de plataforma — vive dentro del teléfono o la computadora y se desbloquea con el rasgo biométrico o el PIN del dispositivo. Es lo que hace que una passkey se sienta como desbloquear el teléfono.
  • Autenticador externo — una llave de seguridad física que se conecta por USB, NFC o Bluetooth y se puede usar en varios equipos. Es el formato habitual en poblaciones de alto riesgo.

En los dos casos, el rasgo biométrico o el PIN desbloquean la clave localmente. No viajan al servidor y no forman parte del protocolo de autenticación.

Qué relación tiene FIDO2 con las passkeys

Una passkey es una credencial FIDO. Lo que agregó la industria sobre el estándar es la sincronización: la credencial se puede respaldar y replicar entre los dispositivos de la misma persona a través de la plataforma, en lugar de quedar encerrada en el equipo donde se creó.

Esa sincronización resolvió el problema que frenaba la adopción, que era la pérdida del dispositivo, y a cambio movió parte de la confianza a la cuenta de plataforma que sincroniza. Existen también passkeys atadas a un solo dispositivo, sin sincronización, para escenarios donde esa cesión de confianza no es aceptable.

Preguntas frecuentes

Es el conjunto de especificaciones que permite autenticar con criptografía de clave pública en lugar de secretos compartidos. Está formado por dos piezas: WebAuthn, la API que el navegador expone a las aplicaciones, publicada por el W3C, y CTAP, el protocolo entre el navegador y el autenticador, publicado por la FIDO Alliance. Es la base técnica de las passkeys.

FIDO2 es el nombre del conjunto. WebAuthn es la parte que implementa el sitio: la interfaz que el navegador ofrece para registrar y usar una credencial. CTAP es la parte que permite que un autenticador externo, como una llave de seguridad por USB o NFC, converse con el navegador. Si el autenticador está dentro del propio dispositivo, esa conversación ocurre internamente y el usuario nunca la percibe.

Porque la credencial queda asociada al dominio donde se registró y el navegador solo la ofrece a ese dominio. Un sitio de imitación no puede solicitarla, así que no hay nada que la persona pueda entregar por error, ni siquiera un atacante que retransmita la sesión en tiempo real. A diferencia de un código, que es un dato transcribible, acá lo que se usa es una firma criptográfica atada al origen.

Una sola identidad, un solo SDK

VU ONE unifica verificación, autenticación y protección contra el fraude sobre un mismo grafo de identidad.

La verificación que hacés en el alta queda disponible para la autenticación y las reglas de fraude, sin repetir procesos ni duplicar datos.

Verifica, Autentica y Protege, consolidado en un solo lugar.

Solicita una demo