Introducción a WebAuthn y Passkey 101
Obtén una comprensión integral de WebAuthn, incluyendo su concepto, flujo de trabajo, razones de su popularidad y desafíos asociados.
WebAuthn se encuentra entre los autenticadores más seguros en los estándares de NIST AAL. Introducido en 2013, es la opción favorita de las empresas para la autenticación actualmente. Sin embargo, su adopción aún no está generalizada, lo que lleva a muchas consultas sobre WebAuthn y Passkeys. Vamos a profundizar en lo que necesitas saber.
Concepto: ¿Cuál es la relación entre WebAuthn, Passkey y FIDO?
FIDO Alliance | La FIDO Alliance es una organización que proporciona estándares de autenticación sin contraseñas, abiertos y seguros, incluyendo UAF, U2F y FIDO2. |
FIDO2 | FIDO2 es un conjunto de estándares para la autenticación en línea segura desarrollados por la FIDO Alliance. FIDO2 comprende dos componentes principales: WebAuthn para inicios de sesión sin contraseña y CTAP para la comunicación segura de dispositivos. |
Passkey | Un passkey es una credencial resistente al phishing basada en FIDO para reemplazar las contraseñas.
|
WebAuthn | WebAuthn, una API de JavaScript desarrollada por el W3C y la FIDO Alliance, potencia la autenticación de aplicaciones web con estándares FIDO2. Passkey es uno de los métodos de autenticación que WebAuthn admite. |
Flujo: ¿Cómo funciona WebAuthn?
4 entidades principales de WebAuthn
Básicamente, debes conocer las 4 entidades principales involucradas en el flujo de WebAuthn.
-
Usuario: La persona que se registra o autentica en la aplicación web utilizando WebAuthn.
-
Agente de Usuario: El navegador web que maneja las llamadas a la API de WebAuthn y gestiona el proceso de autenticación entre todos los distintos Relying Parties y autenticadores.
-
Relying Party: Tu servicio web o aplicación a la que el usuario intenta acceder. El usuario interactúa con el Relying Party a través del Agente de Usuario.
-
Autenticador: El componente de hardware que el usuario posee para verificar su identidad. Puede tomar diversas formas según la capacidad de la plataforma o el navegador, como claves de seguridad (como Yubikeys), teléfonos o tabletas (conectados por Bluetooth, NFC o USB), biometría basada en el dispositivo o PIN, etc.
Flujos de trabajo de WebAuthn
La criptografía asimétrica de clave pública es el proceso central.
- Generación de pares de claves: El Agente de Usuario genera un par de claves pública-privada. La clave pública se comparte con el Relying Party, mientras que la clave privada se almacena de forma segura en el Autenticador del usuario.
- Desafío de autenticación: Cuando el usuario intenta iniciar sesión, el Relying Party envía un desafío de autenticación al Agente de Usuario.
- Verificación de Usuario: El Agente de Usuario envía el desafío al Autenticador, el cual interactúa con el usuario para verificarlo (por ejemplo, biometría o presionar un botón).
- Firma criptográfica: El Autenticador utiliza su clave privada para firmar el desafío, creando una firma criptográfica.
- Verificación y acceso: El Agente de Usuario verifica la firma usando la clave pública e informa al Relying Party de una autenticación exitosa. Se concede el acceso.
Para elaborar, divídelo en las fases de inscripción y autenticación.
El flujo de inscripción de WebAuthn:
El flujo de autenticación de WebAuthn:
Ventajas: ¿Por qué WebAuthn se está convirtiendo en una tendencia?
Múltiples autenticadores
Tienes la opción de elegir entre múltiples autenticadores para una mayor flexibilidad. Estos autenticadores vienen en dos tipos, para uso local y en la nube, y puedes habilitar uno o ambos para tu servicio.
Autenticador de plataforma (Autenticador interno)
El autenticador de plataforma está vinculado a un único y específico sistema operativo del dispositivo, como una computadora, computadora portátil, teléfono o tableta, con el que el usuario inicia sesión. Funciona exclusivamente en el dispositivo para la autorización utilizando métodos como biometría o un código de acceso del dispositivo. Es una manera rápida de autenticar, especialmente con biometría, y puede reemplazar la necesidad de introducir manualmente contraseñas. Sin embargo, si el usuario pierde el dispositivo, puede convertirse en una barrera para acceder. Por ejemplo:
- MacOS e iOS: Keychain de iCloud verificado por Touch ID, Face ID o código de acceso del dispositivo.
- Windows: Windows Hello verificado por reconocimiento facial, huella digital o PIN amigable.
- Android: Google Password Manager también admite reconocimiento facial o huella digital para autocompletar contraseñas y autorizar dispositivos.
Autenticador itinerante (Autenticador externo, Autenticador multiplataforma)
El autenticador itinerante es un dispositivo o aplicación de software separado y portátil, como una clave de seguridad de hardware o un teléfono inteligente. Debe enlazar el dispositivo usando USB o mantener NFC o Bluetooth activado. El autenticador itinerante no está limitado a un solo dispositivo o navegador, proporcionando una mayor flexibilidad. Por ejemplo:
- Claves de seguridad: también llamadas tokens de hardware, como Yubikey.
- Teléfono móvil: como usar una cuenta de Google basada en la nube en Android, o una cuenta de iCloud en iPhone. Importante, la autenticación entre dispositivos también necesita conectarse mediante Bluetooth, NFC o USB para garantizar que el autenticador del usuario esté cerca. Los autenticadores móviles a menudo requieren escaneo de código QR para enlazarlos con dispositivos de escritorio. (Los teléfonos Android, en particular, pueden usar Enlace Persistente para conectarse fácilmente con el navegador Chrome para una autorización de un clic sin necesidad de escanear códigos QR.)
Seguridad de alta garantía
La seguridad de alta garantía es esencial para proteger los recursos empresariales. Esto se logra mediante las siguientes medidas:
- Protección de claves de privacidad: Las claves de privacidad nunca se comparten con sitios web de terceros (Rely Party), lo que ayuda a proteger contra brechas de contraseñas e intentos de phishing.
- Requisito de proximidad del dispositivo: Los dispositivos requieren ya sea "Autenticación de plataforma para un solo dispositivo" o "Autenticador itinerante limitado por USB, Bluetooth o NFC" para estar en proximidad del usuario, previniendo ataques remotos.
- Vinculación de dominio: WebAuthn está estrechamente vinculado al dominio específico del sitio web registrado por el usuario, proporcionando protección contra ataques de phishing de sitios web no autorizados.
Experiencia de usuario sin fricciones para MFA & 1FA
WebAuthn mejora la seguridad mientras eleva la experiencia de verificación sin contraseñas del usuario:
- Experiencia nativa y eficiencia biométrica: WebAuthn adopta métodos de autenticación específicos adaptados a varias plataformas y dispositivos, alineándose con los hábitos del usuario. La autenticación biométrica elimina la necesidad de entrada manual, acelerando significativamente el proceso de verificación.
- MFA directo omitiendo 1FA: WebAuthn se utiliza comúnmente para MFA (Autenticación Multifactor). Debido a su robusta seguridad, si el relying party ha registrado previamente el uso de WebAuthn en el navegador, los usuarios pueden omitir el paso de 1FA (Autenticación de un solo factor) e iniciar sesión directamente a través de la verificación de passkey.
- Passkey reemplazando la contraseña: Los passkeys también pueden servir como alternativa a las contraseñas tradicionales para el 1FA. Los usuarios pueden proporcionar su passkey antes o después de ingresar su cuenta, con verificación de contraseña solo cuando la autenticación de passkey no esté disponible.
Desafío: ¿Por qué WebAuthn no es ampliamente adoptado por los usuarios?
Limitaciones del navegador o plataforma
Algunos navegadores o plataformas no admiten WebAuthn en absoluto o carecen de soporte para autenticadores itinerantes. Aunque las estadísticas actuales de Caniuse muestran un soporte decente, con cobertura del 97.37% en escritorio y 96.3% en plataformas móviles, todavía existen variaciones entre diferentes versiones de navegadores y sistemas operativos. Por ejemplo, Desktop Linux no admite autenticadores de plataforma, Android solo admite completamente WebAuthn en Chrome, e Internet Explorer en MacOS no admite WebAuthn. Esto obliga a los administradores a solicitar a los miembros que cumplan requisitos específicos de navegador o sistema operativo, o configuren otros métodos alternativos de MFA.
Riesgo de pérdida del dispositivo
Particularmente para los usuarios que confían en los "autenticadores de plataforma" de "este dispositivo", perder el dispositivo puede resultar en la pérdida de acceso a sus cuentas. La recuperación de cuentas puede ser un proceso tedioso. Para mitigar este riesgo, se recomienda a los usuarios asociar simultáneamente otros métodos de autenticación de respaldo al configurar WebAuthn.
Soporte limitado de sitios web y aplicaciones
Muchos servicios y aplicaciones aún no ofrecen soporte para passkeys. Los usuarios a menudo carecen de familiaridad con varios métodos de autenticación y pueden no comprender completamente las diferencias y limitaciones entre los autenticadores de plataforma y los autenticadores itinerantes. Sin embargo, los principales sistemas, navegadores y servicios de SaaS están adoptando cada vez más WebAuthn, convirtiéndolo en una tendencia creciente que tanto las empresas como los usuarios están comenzando a adoptar.
Conclusión
Logto se está preparando para lanzar el MFA (Autenticación Multifactor) en noviembre. La fase inicial admitir á tres métodos de verificación: TOTP de aplicación de autenticación, WebAuthn (Passkey) y códigos de respaldo, ofreciendo una solución integral de inicio de sesión y registro. Continuaremos desarrollando funciones avanzadas relacionadas con WebAuthn. Esperamos contar con tu experiencia y te invitamos a mantenerse atento en Product Hunt para el próximo lanzamiento de MFA.