Autenticación FIDO con claves de paso

Introducción

El estándar de autenticación FIDO (Fast IDentity Online) define un mecanismo de autenticación rápido y seguro para que los usuarios accedan a sitios web y aplicaciones.

La Alianza FIDO , con representantes de una variedad de organizaciones , desarrolla especificaciones técnicas abiertas y escalables que permiten a las personas acceder a sitios web y aplicaciones a través de un protocolo común. Esto significa que cualquier empresa puede utilizar los estándares FIDO para implementar tecnologías, como claves de paso, para una autenticación segura.

Una clave de acceso es una credencial de inicio de sesión de FIDO, vinculada a un origen (sitio web o aplicación) y un dispositivo físico. Las claves de acceso permiten a los usuarios autenticarse sin tener que ingresar un nombre de usuario, contraseña o proporcionar ningún factor de autenticación adicional. Esta tecnología tiene como objetivo reemplazar las contraseñas como mecanismo de autenticación principal.

¿Por qué es importante la autenticación segura?

Las contraseñas se han utilizado para la autenticación en la informática durante décadas. Sin embargo, la autenticación basada en contraseña no es la opción más segura para la autenticación, ya que las bases de datos pueden ser violadas y las contraseñas pueden ser suplantadas.

Muchos usuarios inician sesión en diferentes sitios web con las mismas contraseñas. Esto significa que cuando se viola un sitio web, todas las demás cuentas que usan la misma contraseña están en riesgo. Entonces, incluso si ha creado un sistema de contraseña seguro, las personas aún están en riesgo cuando una contraseña es su única protección.

Algunos sitios y aplicaciones solicitan la verificación en dos pasos solicitando una segunda credencial que se entrega a través de SMS, correo electrónico, aplicación, etc. Si bien esto es más seguro que simplemente usar una contraseña, este método de verificación en dos pasos sigue siendo vulnerable al phishing. porque se puede convencer al usuario de que ingrese sus detalles de verificación de dos pasos en un sitio web malicioso.

¿Cómo crea FIDO una mayor seguridad?

La autenticación basada en FIDO elimina muchos de los problemas que surgen de la autenticación basada en contraseña y de la autenticación que utiliza segundos pasos tradicionales. En particular:

  • La autenticación FIDO utiliza criptografía de clave pública.
  • FIDO ayuda a garantizar que las credenciales no se compartan con terceros maliciosos u otras partes que no poseen la credencial.

La criptografía de clave pública reduce la amenaza de posibles violaciones de la base de datos. El usuario se registra con un único origen (un sitio o una aplicación), que genera un par de claves públicas y privadas en el autenticador del usuario (un dispositivo físico). La clave pública del usuario es almacenada por el servidor de origen, pero esto por sí solo es inútil para un atacante. Un atacante no puede derivar la clave privada del usuario de los datos almacenados en el servidor, que se requiere para completar la autenticación.

Con FIDO, el usuario no es responsable de confirmar que un sitio web o aplicación es realmente quien dice ser. Además, el usuario no es responsable de garantizar que las credenciales no se utilicen en los lugares equivocados. FIDO vincula cada credencial a un origen particular, lo que significa que el dispositivo (no el humano) es responsable de identificar correctamente el sitio web o la aplicación.

Por ejemplo, supongamos que el usuario intenta iniciar sesión en example.com . Si el usuario solicita la credencial propiedad de example.com en phishing-example.com , el autenticador rechazará la solicitud, protegiendo así al usuario. El proceso de autenticación hace que sea muy difícil para los sitios web o aplicaciones de phishing obtener una verificación destinada a otros orígenes.

En general, FIDO y las claves de acceso le permiten implementar una autenticación más sólida que aún es utilizable y fácil para la mayoría de los usuarios.

Manifestación

¿Qué son las claves de paso?

Una clave de acceso es una credencial digital que se adhiere a los estándares de autenticación web FIDO y W3C (WebAuthn) . Al igual que una contraseña, los sitios web y las aplicaciones pueden solicitar que un usuario cree una clave de paso para acceder a su cuenta.

Las claves de paso se basan en desbloquear un dispositivo para verificar la identidad de un usuario. Esto se puede realizar con un sensor biométrico (como una huella digital o reconocimiento facial), PIN o patrón. Un usuario primero debe registrarse con el origen para generar su clave de acceso (un par de claves pública y privada).

Cuando regresa al sitio web o la aplicación para iniciar sesión, el usuario puede seguir los siguientes pasos:

  1. Ir a la aplicación.
  2. Haz clic en Iniciar sesión .
  3. Seleccione su clave de acceso.
  4. Desbloquee el dispositivo para completar el inicio de sesión.

El autenticador genera una firma utilizando la clave privada. Esta firma se utiliza para verificar la credencial de inicio de sesión entre el origen y el autenticador, utilizando la clave pública y sin revelar la clave privada.

Un usuario puede iniciar sesión en los servicios en cualquier dispositivo con la ayuda de una clave de acceso, independientemente de dónde se almacene la clave de acceso. Por ejemplo, una clave de acceso almacenada en un teléfono móvil se puede usar para iniciar sesión en un sitio web en una computadora portátil separada.

¿Cómo funcionan las claves de paso?

Las claves de acceso se crean y sincronizan a través del sistema operativo. Algunos sistemas operativos pueden permitir la sincronización automática de claves de acceso entre los dispositivos del usuario, como un teléfono Android y un dispositivo ChromeOS que estén registrados en la misma cuenta de Google.

Si bien las claves de acceso están vinculadas a los sistemas operativos, un usuario puede usar claves de acceso desde su teléfono al iniciar sesión en una computadora portátil. Como las claves de acceso se crean con los estándares FIDO y W3C, todos los navegadores pueden adoptarlas. Por ejemplo, un usuario visita site.example en su Chromebook. Este usuario ha iniciado sesión previamente en site.example en su dispositivo iOS. Se le pedirá al usuario que confirme su identidad en el dispositivo iOS. Por lo general, site.example creará una nueva clave de acceso para el Chromebook del usuario, de modo que, para futuros inicios de sesión, ya no se requiera el teléfono.

Las claves de acceso están encriptadas de extremo a extremo, lo que significa que aunque Google es responsable de sincronizarlas con diferentes dispositivos Android, Google no puede leer la clave de acceso ni conocer esos datos.

Proceso de autenticación

Una representación de cómo puede verse la ventana de autenticación.

Para implementar claves de acceso en un sitio web o una aplicación, es importante que se familiarice con lo siguiente:

  • Los autenticadores son dispositivos físicos propiedad del usuario que contienen las claves de paso del usuario y pueden identificar al usuario.
  • La parte que confía es su sitio web o aplicación, compuesta por una aplicación front-end y un servidor back-end.
    • La aplicación front-end llama a las API para interactuar con el autenticador e iniciar el proceso de autenticación.
    • El servidor back-end recupera los objetos criptográficos producidos por el autenticador y los verifica.

Por ejemplo, supongamos que un usuario quiere comprar un par de zapatos en una tienda en shoes.example (la parte que confía). El usuario ya se ha registrado para una cuenta en shoes.example , usando su teléfono Android con un sensor biométrico. El usuario inicia sesión en shoes.example en su dispositivo Android al desbloquear su dispositivo. Luego, shoes.example verifica la credencial de inicio de sesión firmada criptográficamente del usuario contra la clave pública conocida para que ese usuario confirme que la identidad del usuario es precisa.

Autenticadores

Los autenticadores son dispositivos compatibles con FIDO que se utilizan para confirmar la identidad de un usuario. Esto incluye dispositivos de propósito especial (llaves de seguridad FIDO), así como teléfonos móviles y otras computadoras que cumplan con los requisitos del autenticador. Los autenticadores realizan las operaciones criptográficas descritas en los estándares FIDO y WebAuthn.

El dispositivo tiene dos funciones, para el registro y la autenticación:

  • Cuando el usuario se registra con una parte de confianza, el dispositivo genera un par de claves público-privado único. Esto incluye los teléfonos y computadoras del usuario.
  • Cuando el usuario inicia sesión en la parte de confianza en el futuro, el dispositivo genera una firma utilizando la clave privada.

Ambas operaciones se realizan cuando el usuario prueba la posesión del autenticador. Este par de claves está registrado con un origen específico y solo puede ser utilizado por el origen exacto. Si un usuario aterriza en un sitio de phishing, la credencial no estará disponible.

Dispositivos compatibles con FIDO

Los autenticadores más comunes son:

  • Autenticadores de plataforma : estos están integrados en teléfonos inteligentes y computadoras. Los autenticadores de plataforma utilizan un sensor biométrico (como un sensor de huellas dactilares o una cámara con reconocimiento facial), un PIN o un patrón. Debido a que la interacción de autenticación se completa con el desbloqueo del dispositivo, esto demuestra en un solo paso que el usuario tiene posesión del dispositivo y puede confirmar su identidad con sus datos biométricos únicos.
  • Claves de seguridad : estos son comúnmente dispositivos USB con un botón para presionar para indicar la autenticación. Cuando se usan con una contraseña, las llaves de seguridad pueden proporcionar un factor de posesión para la autenticación de dos factores. El ejemplo más común de esto es una clave de seguridad Titan o una YubiKey.

Interfaz

Las aplicaciones usan API del lado del cliente, como WebAuthn y FIDO2 para Android , para crear y verificar las credenciales de usuario con el autenticador.

La aplicación pasa un desafío criptográfico, generado por el servidor back-end, al autenticador. La aplicación envía la respuesta del autenticador al servidor para su validación, que toma medidas en función de esa validación.

back-end

El servidor almacena la credencial de clave pública del usuario y la información de la cuenta.

Al registrarse y autenticarse, el servidor genera un desafío criptográfico. Este desafío verifica que la firma emitida por el autenticador confirma si el usuario es quien dice ser.

Preguntas frecuentes (FAQ)

¿Quién admite claves de paso?

Debido a que las claves de acceso se basan en los estándares FIDO, funcionan en Android y Chrome, junto con muchas otras plataformas y navegadores populares, como Microsoft Windows, Microsoft Edge, MacOS, iOS y Safari.

Consulte la documentación proporcionada por estas plataformas para confirmar el estado actual de disponibilidad.

En Android, nuestro objetivo es tener el soporte de clave de acceso disponible para los desarrolladores hacia fines de 2022.

¿Qué sucede si un usuario pierde su dispositivo?

Las claves de acceso creadas en Android se respaldan y sincronizan con dispositivos Android que hayan iniciado sesión en la misma cuenta de Google, de la misma manera que las contraseñas se respaldan en el administrador de contraseñas.

Eso significa que las claves de acceso de los usuarios van con ellos cuando reemplazan sus dispositivos. Para iniciar sesión en aplicaciones en un teléfono nuevo, todo lo que los usuarios deben hacer es desbloquear su teléfono.

¿Puede un usuario usar una clave de acceso en su teléfono para iniciar sesión en el dispositivo de un amigo?

Sí. Los usuarios pueden configurar un "enlace único" entre su teléfono y el dispositivo de otra persona con el fin de iniciar sesión.

Próximos pasos

Toma un laboratorio de código:

Aprender más acerca de: