0%
Inicio 9 Glossary Item 9 WebAuthn
« Back to Glossary Index

Nivel Principiante

Imagina que quieres iniciar sesión en una página web. En lugar de escribir tu contraseña, pones tu huella digital, usas el reconocimiento facial o tocas un dispositivo especial (como una llave USB). WebAuthn es el estándar que permite hacer eso. Es una forma de iniciar sesión sin contraseñas, usando métodos de autenticación que son más fáciles de usar y mucho más seguros que una contraseña.

Nivel Intermedio

WebAuthn (Web Authentication) es una API web estandarizada por el W3C y la FIDO Alliance que permite a las aplicaciones web utilizar la criptografía de clave pública para la autenticación de usuarios. A diferencia de las contraseñas, que son vulnerables a ataques como el phishing y el robo de bases de datos, WebAuthn utiliza un par de claves: una clave pública que se almacena en el servidor y una clave privada que se mantiene segura en un dispositivo de autenticación del usuario.

Los dispositivos de autenticación, conocidos como autenticadores, pueden ser:

  • Autenticadores de Plataforma: Sensores biométricos integrados en dispositivos, como el lector de huellas dactilares o el reconocimiento facial de un teléfono.
  • Autenticadores de Roaming: Dispositivos de hardware externos como llaves de seguridad USB (Yubikey).

WebAuthn ofrece una autenticación más segura, ya que el servidor nunca almacena la clave privada del usuario, y la autenticación se realiza con una firma criptográfica que es resistente a los ataques de suplantación de identidad.

Nivel Avanzado

Técnicamente, el protocolo WebAuthn es una parte central del estándar FIDO2. Permite a un relying party (el servidor que aloja la aplicación web) interactuar con un autenticador del usuario a través del navegador web. El flujo de registro y autenticación es el siguiente:

Registro:

  1. El usuario inicia el registro en la aplicación web. El servidor genera un desafío (challenge) criptográfico y se lo envía al navegador.
  2. El navegador, a través de la API de WebAuthn, se comunica con el autenticador del usuario.
  3. El autenticador genera un par de claves (pública y privada) y firma el desafío con la clave privada.
  4. El autenticador envía la clave pública y la firma de vuelta al navegador, que las reenvía al servidor.
  5. El servidor verifica la firma y almacena la clave pública en la base de datos del usuario.

Autenticación:

  1. El usuario inicia sesión y el servidor le envía un nuevo desafío.
  2. El autenticador del usuario firma el nuevo desafío con la clave privada (que nunca abandona el dispositivo).
  3. La firma se envía al servidor, que la verifica con la clave pública que ya tiene almacenada. Si la firma es válida, el usuario es autenticado.

El uso de criptografía asimétrica garantiza que, aunque la clave pública sea robada del servidor, un atacante no pueda generar una firma válida sin la clave privada del usuario. Esto hace que WebAuthn sea una solución robusta y resistente al phishing, posicionándola como una de las tecnologías más prometedoras para una autenticación sin contraseñas.

« Volver al índice del glosario