Share via


API de WebAuthn para la autenticación sin contraseña en Windows

Las contraseñas pueden hacer que los clientes sean vulnerables a las vulneraciones de datos y a los ataques de seguridad por parte de usuarios malintencionados.

Microsoft ha sido durante mucho tiempo un defensor de la autenticación sin contraseña y ha introducido las API de plataforma WebAuthn W3C/Fast IDentity Online 2 (FIDO2) Win32 en Windows 10 (versión 1903).

A partir de Windows 11, versión 22H2, las API de WebAuthn admiten algoritmos ECC.

¿Qué significa esto?

Mediante el uso de las API de WebAuthn, los asociados para desarrolladores y la comunidad de desarrolladores pueden usar claves de seguridad de Windows Hello o FIDO2 para implementar la autenticación multifactor sin contraseña para sus aplicaciones en dispositivos Windows.

Los usuarios de estas aplicaciones o sitios pueden usar cualquier explorador que admita las API de WebAuthn para la autenticación sin contraseña. Los usuarios tendrán una experiencia familiar y coherente en Windows, independientemente del explorador que usen.

Los desarrolladores deben usar las API de WebAuthn para admitir las claves de autenticación FIDO2 de forma coherente para los usuarios. Además, los desarrolladores pueden usar todos los transportes que están disponibles según las especificaciones fido2 (USB, NFC y BLE) a la vez que evitan la interacción y la sobrecarga de administración.

Nota

Cuando estas API están en uso, Windows 10 exploradores o aplicaciones no tienen acceso directo a los transportes FIDO2 para la mensajería relacionada con FIDO.

El panorama general

El protocolo de cliente a autenticador 2 (CTAP2) y WebAuthn definen una capa de abstracción que crea un ecosistema para credenciales fuertemente autenticadas. En este ecosistema, cualquier cliente interoperable (como una aplicación o explorador nativo) que se ejecute en un dispositivo cliente determinado usa un método estandarizado para interactuar con cualquier autenticador interoperable. Los autenticadores interoperables incluyen autenticadores integrados en el dispositivo cliente (autenticadores de plataforma) y autenticadores que se conectan al dispositivo cliente mediante conexiones USB, BLE o NFC (autenticadores móviles).

El proceso de autenticación se inicia cuando el usuario realiza un gesto de usuario específico que indica el consentimiento para la operación. A petición del cliente, el autenticador crea de forma segura claves criptográficas seguras y las almacena localmente.

Una vez creadas estas claves específicas del cliente, los clientes pueden solicitar atestaciones para el registro y la autenticación. El tipo de firma que usa la clave privada refleja el gesto del usuario que se realizó.

En el diagrama siguiente se muestra cómo interactúan CTAP y WebAuthn. Las flechas de puntos azul claro representan interacciones que dependen de la implementación específica de las API de plataforma.

En el diagrama se muestra cómo interactúa la API de WebAuthn con los usuarios de confianza y la API CTAPI2.

Relaciones de los componentes que participan en la autenticación sin contraseña

Una danza combinada de WebAuthn/CTAP2 incluye el siguiente elenco de personajes:

  • Dispositivo cliente. El dispositivo cliente es el hardware que hospeda una autenticación segura determinada. Los portátiles y los teléfonos son ejemplos de dispositivos cliente.

  • Clientes y usuarios de confianza. Los usuarios de confianza son aplicaciones web o nativas que consumen credenciales seguras. Los usuarios de confianza se ejecutan en dispositivos cliente.

    • Como usuario de confianza, una aplicación nativa también puede actuar como cliente WebAuthn para realizar llamadas webAuthn directas.

    • Como usuario de confianza, una aplicación web no puede interactuar directamente con la API de WebAuthn. El usuario de confianza debe negociar la oferta a través del explorador.

    Nota

    En el diagrama anterior no se muestra la autenticación de Sign-On único (SSO). Tenga cuidado de no confundir a los usuarios de confianza FIDO con los usuarios de confianza federados.

  • API de WebAuthn. La API WebAuthn permite a los clientes realizar solicitudes a autenticadores. El cliente puede solicitar al autenticador que cree una clave, proporcione una aserción sobre una clave, funcionalidades de informe, administrar un PIN, etc.

  • Plataforma/host CTAP2. La plataforma (también denominada host en la especificación CTAP2) es la parte del dispositivo cliente que negocia con autenticadores. La plataforma es responsable de informar de forma segura del origen de la solicitud y de llamar a las API de representación de objetos binarios (CBOR) CTAP2. Si la plataforma no es compatible con CTAP2, los propios clientes asumirán más de la carga. En este caso, los componentes y las interacciones que se muestran en el diagrama anterior pueden diferir.

  • Autenticador de plataforma. Normalmente, un autenticador de plataforma reside en un dispositivo cliente. Algunos ejemplos de autenticadores de plataformas son la tecnología de reconocimiento de huellas digitales que usa un lector de huellas digitales portátil integrado y una tecnología de reconocimiento facial que usa una cámara de smartphone integrada. Los protocolos de transporte multiplataforma, como USB, NFC o BLE, no pueden acceder a los autenticadores de plataforma.

  • Autenticador móvil. Un autenticador móvil puede conectarse a varios dispositivos cliente. Los dispositivos cliente deben usar un protocolo de transporte compatible para negociar las interacciones. Algunos ejemplos de autenticadores móviles son las claves de seguridad USB, las aplicaciones de smartphone habilitadas para BLE y las tarjetas de proximidad habilitadas para NFC. Los autenticadores móviles pueden admitir CTAP1, CTAP2 o ambos protocolos.

Muchos usuarios de confianza y clientes pueden interactuar con muchos autenticadores en un único dispositivo cliente. Un usuario puede instalar varios exploradores que admiten WebAuthn y puede tener acceso simultáneamente a un lector de huellas digitales integrado, una clave de seguridad conectada y una aplicación móvil habilitada para BLE.

Interoperabilidad

Antes de WebAuthn y CTAP2, había U2F y CTAP1. U2F es la especificación universal de segundo factor de FIDO Alliance. Hay muchos autenticadores que hablan CTAP1 y administran las credenciales de U2F. WebAuthn se diseñó para ser interoperable con CTAP1 Authenticators. Un usuario de confianza que usa WebAuthn puede seguir usando credenciales U2F si el usuario de confianza no requiere funcionalidad de solo FIDO2.

Los autenticadores FIDO2 ya se han implementado y los usuarios de confianza de WebAuthn podrían requerir las siguientes características opcionales:

Las siguientes opciones podrían ser útiles en el futuro, pero aún no se han observado en la naturaleza:

  • Aprobación transaccional
  • Índice de comprobación de usuario (los servidores pueden determinar si los datos biométricos almacenados localmente han cambiado con el tiempo)
  • Método de comprobación de usuario (el autenticador devuelve el método exacto)
  • Límites de rendimiento biométrico (el usuario de confianza puede especificar tasas aceptables de aceptación falsa y rechazo falso)

Implementación de Microsoft

La implementación fido2 de Microsoft ha sido años en el desarrollo. El software y los servicios se implementan de forma independiente como entidades conformes a los estándares. A partir de la versión Windows 10, versión 1809 (octubre de 2018), todos los componentes de Microsoft usan la versión candidata de WebAuthn más reciente. Se trata de una versión estable que no se espera que cambie normativamente antes de que la especificación se ratifique finalmente. Dado que Microsoft está entre los primeros del mundo en implementar FIDO2, algunas combinaciones de componentes populares que no son de Microsoft no serán interoperables todavía.

Este es un diseño aproximado de dónde van los bits de Microsoft:

En el diagrama se muestra cómo interactúa la API de WebAuthn con los usuarios de confianza de Microsoft y la API CTAPI2.

Implementación de Microsoft de las API WebAuthn y CATP2

  • Usuario de confianza de WebAuthn: cuenta Microsoft. Si no está familiarizado con la cuenta Microsoft, es el servicio de inicio de sesión para Xbox, Outlook y muchos otros sitios. La experiencia de inicio de sesión usa JavaScript del lado cliente para desencadenar Microsoft Edge para comunicarse con las API de WebAuthn. La cuenta microsoft requiere que los autenticadores tengan las siguientes características:

    • Las claves se almacenan localmente en el autenticador y no en un servidor remoto
    • Los escenarios sin conexión funcionan (habilitados mediante HMAC)
    • Los usuarios pueden colocar claves para varias cuentas de usuario en el mismo autenticador.
    • Si es necesario, los autenticadores pueden usar un PIN de cliente para desbloquear un TPM.

    Importante

    Dado que la cuenta microsoft requiere características y extensiones que son exclusivas de los autenticadores CTAP2 fido2, no acepta credenciales CTAP1 (U2F).

  • Cliente webAuthn: Microsoft Edge. Microsoft Edge puede controlar la interfaz de usuario de las características WebAuthn y CTAP2 que se describen en este artículo. También admite la extensión AppID. Microsoft Edge puede interactuar con los autenticadores CTAP1 y CTAP2. Este ámbito de interacción significa que puede crear y usar credenciales U2F y FIDO2. Sin embargo, Microsoft Edge no habla el protocolo U2F. Por lo tanto, los usuarios de confianza solo deben usar la especificación WebAuthn. Microsoft Edge en Android no admite WebAuthn.

    Nota

    Para obtener información autoritativa sobre la compatibilidad de Microsoft Edge con WebAuthn y CTAP, consulte la documentación heredada para desarrolladores de Microsoft Edge.

  • Plataforma: Windows 10, Windows 11. Windows 10 y Windows 11 hospedan las API WebAuthn de la plataforma Win32.

  • Autenticadores móviles. Es posible que observe que no hay autenticador de itinerancia de Microsoft . La razón es que ya hay un ecosistema fuerte de productos que se especializan en la autenticación fuerte, y cada cliente (ya sean empresas o individuos) tiene diferentes requisitos de seguridad, facilidad de uso, distribución y recuperación de cuentas. Para obtener más información sobre la lista cada vez mayor de autenticadores certificados por FIDO2, consulte Productos certificados FIDO. La lista incluye autenticadores integrados, autenticadores móviles e incluso fabricantes de chip que tienen diseños certificados.

Referencias para desarrolladores

Las API de WebAuthn se documentan en el repositorio de GitHub microsoft/webauthn . Para comprender cómo funcionan los autenticadores FIDO2, revise las dos especificaciones siguientes: