Skip to content

Estándares FIDO para autenticación multifactor o doble factor

Estándares FIDO para autenticación multifactor o doble factor

FIDO es el acrónimo utilizado para definir Fast Identity Online. Esta palabra procede del latín «fido» que significa «confiable». Ya le puso Abraham Lincoln dicho nombre a su perro, también podríamos decir mejor amigo, como lo sería en este caso la llave USB que nos abre puertas de forma segura.

Los diferentes tipos de tecnologías FIDO

Si preferimos una definición más académica, tenemos que en 2012 emergió la palabra FIDO para designar un sistema de autenticación adicional, propuesta por una unión de grandes actores tecnológicos como son PayPal, Visa, Microsoft o Lenovo, que conforman la FIDO Alliance.

Basado en Criptografía de Clave pública o PKI, FIDO comprende una serie de protocolos diseñados para soportar autenticación de cualquier clase que se nos ocurra.

Podríamos mencionar, por ejemplo:

  • Huellas (fingerprint)
  • Biometría (iris, huellas, reconocimiento, facial, etc)
  • OTP (One Time Passwords) que puede ser TOTP o HOTP
  • TPM ( Trusted Platform Modules)
  • Tokens de seguridad USB
  • NFC (Comunicación de Campo Cercano)
  • Bluetooth

Estos estándares suelen integrarse con APIs para facilitar la vida a los desarrolladores.

Desde la aparición del estándar, la FIDO Alliance ha publicado hasta 3 especificaciones diferentes: Segundo Factor Universal (U2F) apoyado en la UAF -Universal Authentication Framework- además de FIDO2 (estándar más usado actualmente) seguidos por último de Web Authentication (WebAuthn) y Client Authenticator Protocol 2 (CTAP2).

No sorprende que mucha gente (incluido yo mismo) tengamos problemas en ocasiones para recordar las diferencias y similitudes entre estos sistemas.

FIDO 1.0 U2F y UAF

En 2014 FIDO publicó la nota técnica sobre UAF, cuyo objetivo no era otro que implementar autenticación passwordless (sin contraseñas) usando la biometría. Algo después publicaron también el U2F o Segundo Factor Universal, desarrollado por Yubico y Google como un sucesor más fiable para el 2FA. U2F incluía su propio protocolo del lado del cliente, el Client to Authenticator Protocol o CTAP, que podría usarse para autenticar un token mediante USB, NFC o Bluetooth.

Así, FIDO 1.0 conseguía superar las vulnerabilidad inherentes a las OTP mediante la implementación de PKI, cuando estas se utilizaban en redes consideradas inseguras. En lugar de un simple PIN, se creaba un par de clave público-privada durante el alta del servicio, con la clave privada almacenada de forma segura en el token o dispositivo, nunca siendo transmitida.

Esto significaba que no era posible transmitir y por tanto robar nada para un atacante, y con la clave pública no se podía hacer nada.

Incluso así, FIDO en su versión 1 era comprendido por dos protocolos UAF y U2F, además de que Apple no estaba en la alianza (planeaban desarrollar su propio TouchID y luego FaceID), así que se corría el riesgo de fragmentar mucho el mercado de los FIDO, según la plataforma.

En el lado positivo, UAF contaba con acceso embebido para autenticación biométrica para dispositivos móviles, mientras que U2F contaba con soporte para el navegador más popular del planeta, Google Chrome. Esto significaba que para disfrutar de la autenticación de este tipo el usuario no tenía que hacer nada adicional.

FIDO 2 y WebAuthn

FIDO2 es un desarrollo posterior de Google y Yubico para el protocolo U2F, con capacidades CTAP extendidas. Este modelo permite que la autenticación sea realmente passwordless, mediante el uso de una nueva API web llamada Web Authentication.

Esta API permite a las aplicaciones web utilizar el estándar PKI directamente. Mientras que FIDO1 aún necesitaba nombres de usuario y contraseña, FIDO2 crea la base para poder funcionar sin contraseñas realmente.

WebAuthn con CTAP2 tiene dos importantes características. Primero, es retro-compatible con U2F/UAF así que permite seguir usando esta clase de dispositivos. Segundo, WebAuthn fue adoptado por el WWW Consortium (W3C) así que se convirtió de facto en un estándar web abierto, no algo soportado solo por unas pocas compañías.

El soporte de navegador para WebAuthn está ahora siendo añadido a Chrome, Firefox y Edge. Aunque aún le queda recorrido, pinta bastante prometedor de cara al futuro. Se espera que otros como Safari de Apple decidan soportarlo en el futuro.

Actualmente, por ejemplo, podemos encontrar modelos de llaves de seguridad FIDO2 con lector de huellas integrado (soportados por Windows Hello) así como algunos resistentes al agua o desperfectos para ambientes más exigentes.

Conclusiones

Está por verse como WebAuthn mejorará FIDO 1.0 desde el punto de vista del usuario. Aunque su cometido es hacer que la autenticación sea más sencilla, segura y universal (dejando a un lado las débiles contraseñas) existen algunos peros que superar.

Por ejemplo, podemos hablar de la falta de concienciación sobre la necesidad de autenticrse, o la percepción de que UAF / U2F son estaban destinados a usuarios avanzados o empresas.

Quizá te interese revisar mis artículos sobre el uso de FIDO UAF para inicio de sesión seguro y el de diferencias entre autenticación en dos factores y dos pasos.

Fuentes: Okta, Wikipedia, fuentes propias.

deweloper View All

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

Deja un comentario