La Alianza FIDO: Cómo se propone hacer que las contraseñas sean obsoletas

0
52
Custom Text

La Alianza FIDO (identidad rápida en línea) es una asociación de la industria que tiene como objetivo reducir la dependencia de las contraseñas para la seguridad, completándolas o reemplazándolas con una autenticación sólida basada en la criptografía de clave pública. Para lograr ese objetivo, la Alianza FIDO ha desarrollado una serie de especificaciones técnicas que las páginas web y otros proveedores de servicios pueden usar para alejarse de la seguridad basada en contraseñas. En particular, las especificaciones de FIDO permiten a los proveedores de servicios aprovechar las medidas de seguridad biométricas y otras medidas de seguridad basadas en hardware, ya sea proveniente de dispositivos de seguridad de hardware especializado, o de las funciones biométricas integradas en la mayoría de los nuevos smartphones y algunas PC.

La Alianza FIDO se creó en el 2013 cuando los profesionales de la seguridad que trabajaban en PayPal, Lenovo y otras compañías comenzaron a cansarse de varios agujeros de seguridad que se encontraban en las en contraseñas. El grupo ha estado cumpliendo su objetivo por un buen tiempo -«La Alianza FIDO afirma, ¡Olvídese de las contraseñas!”, declaró el CSO, poco después de que el grupo comenzara-, pero gracias a que los lectores biométricos son cada vez más usuales y a un nuevo conjunto de especificaciones que son fáciles de integrar en páginas web estándar a través de APIs de JavaScript, nuestro futuro sin contraseña finalmente puede estar a la vista. Los miembros de la Alianza FIDO incluyen algunos de los nombres más importantes de la tecnología y los medios, por lo que esta iniciativa tiene un respaldo sólido.

Las especificaciones FIDO
Antes de entrar en las especificaciones individuales de FIDO, necesitamos discutir el principio en el que se basan todas: la criptografía de clave pública. En esta forma de criptografía, cada parte que se comunica utiliza dos claves (números muy grandes) para cifrar los mensajes mediante un algoritmo de cifrado. Cada parte comparte una clave pública que se utiliza para codificar un mensaje, que solo puede descifrarse mediante una clave privada, que se mantiene en secreto. Las dos claves están relacionadas mediante alguna operación matemática que sería difícil o imposible de revertir; por ejemplo, la clave privada podría ser dos números primos muy largos y la clave pública sería el número que se obtiene al multiplicar esos dos primos juntos.

La criptografía de clave pública ya es la base de la comunicación por Internet más segura. El estándar SSL/TLS se basa en él y se ha integrado en la mayoría de los navegadores web durante décadas, y el conjunto más amplio de tecnologías y especificaciones conocidas como infraestructura de clave pública, o PKI (por sus siglas en inglés), ayuda no solo a cifrar los datos, sino también a garantizar que las partes que se comunican en línea son quienes afirman ser. Hoy en día, en casi todos los casos, cuando ingresa una contraseña en un navegador web, esa contraseña se transmite a través de la red de forma cifrada, gracias a la PKI.

Entonces, ¿por qué la Alianza FIDO quiere deshacerse de las contraseñas? Bueno, incluso con un cifrado sólido, cualquier sistema que realice la autenticación intercambiando contraseñas, entre dos computadoras diferentes a través de Internet, tiene vulnerabilidades. El cifrado no es perfecto y no siempre se implementa a la perfección, por lo que a veces es posible interceptar contraseñas en tránsito. Y un sistema de contraseñas requiere que un proveedor de servicios mantenga una lista de contraseñas de usuario en sus servidores; dicha lista debería estar cifrada, pero eso no siempre sucede, y eso hace que sea un objetivo tentador para los hackers.

Las diversas especificaciones de FIDO abordan todas estas debilidades fundamentales al cambiar la autenticación por completo a los dispositivos que son locales para el usuario. Estos dispositivos locales le afirman al proveedor de servicios, a través de comunicaciones protegidas por cifrado de clave pública, que el usuario ha sido autenticado, sin transmitir realmente ninguna información confidencial sobre el usuario. Sin embargo, las diferentes especificaciones de FIDO toman caminos algo diferentes hacia ese destino. Comenzaremos examinando las dos primeras especificaciones lanzadas por la Alianza FIDO, la UAF y la U2F, antes de profundizar en la nueva especificación FIDO2 que actualmente busca una adopción más amplia.

FIDO UAF
El estándar FIDO UAF -las iniciales UAF significan marco de autenticación universal- se centra en la autenticación para usuarios de dispositivos digitales como smartphones o tabletas. Para acceder a un servicio utilizando el estándar UAF de seguridad, el usuario podría registrar su cuenta a través de su dispositivo, el cual luego solicitaría que el usuario se autentique a sí mismo por medio de algún protocolo de seguridad que el dispositivo soporte nativamente. Una vez que se ha realizado esta autenticación, las claves criptográficas -pero ningún otro dato de autenticación, como una contraseña o los datos biométricos- se intercambian entre el dispositivo y el proveedor de servicios. Posteriormente, el usuario puede iniciar sesión con la misma técnica de autenticación para acceder a su cuenta.

Una característica importante del UAF es que, aunque los proveedores de servicios nunca ven los datos de autenticación específicos utilizados para el inicio de sesión, sí saben qué tipo de método de autenticación se ha utilizado y pueden elegir qué tipos aceptarán. Por ejemplo, mientras que la especificación UAF permite a los usuarios finales autenticarse usando el código PIN de su teléfono móvil, un proveedor de servicios podría decidir que no considera dicho método de autenticación lo suficientemente fuerte y, en su lugar, podría requerir una huella digital o un escaneo facial.

FIDO U2F
Las iniciales en el estándar FIDO U2F significan segundo factor universal, y como era de esperar, se centra en proporcionar autenticación de segundo factor, también conocida como 2fa. Para obtener más información sobre 2fa, puede leer los artículos señalados al final de éste, pero la versión corta es que complementa, en lugar de reemplazar, la seguridad tradicional basada en contraseñas, desafiando a los usuarios a hacer uso de una segunda técnica (o factor) para autenticarse una vez que ha proporcionado su contraseña.

Específicamente, el U2F define cómo usar un dispositivo de hardware para hacer que los inicios de sesión sean más seguros; la clave criptográfica privada requerida para la comunicación cifrada se almacena en ese dispositivo. Si bien el estándar soporta varios dispositivos posibles para este propósito, la implementación más común utiliza un llavero de seguridad de hardware dedicado. El estándar fue creado inicialmente por Google, implementado para combatir el phishing internamente antes de ofrecerlo a clientes externos, pero luego se le otorgó a la Alianza FIDO para su administración. El mando de seguridad se puede conectar al dispositivo del usuario a través de USB o NFC, por lo que se puede utilizar con PCs o smartphones.

Al comunicarse a través del navegador, el llavero intercambia claves criptográficas con un proveedor de servicios para establecer la 2fa. En los intentos de autenticación posteriores, el usuario debe tener su llavero presente, y el llavero usa su clave para asegurarse de que el sitio con el que el usuario se está conectando sea realmente lo que afirma ser. Esto ayuda a evitar ataques de hombre en el medio (man-in-the-middle) y el phishing.

Como implementación de 2fa, el U2F no elimina la necesidad de contraseñas. Sin embargo, la Alianza FIDO cree que la protección adicional que brinda el U2F hace que sea más seguro usar contraseñas más simples, como un PIN de cuatro dígitos, en lugar de las contraseñas largas y complejas que todos estamos instados a usar, pero que muchos encuentran difíciles de recordar y administrar.

FIDO vs. FIDO2: WebAuthn y CTAP
Si bien U2F y UAF tuvieron cierto éxito, también tienen limitaciones, como probablemente dejan en claro las descripciones anteriores. UAF hace uso de funciones de seguridad específicas para dispositivos móviles y, por lo tanto, no es una ayuda para las PC. U2F se puede usar con PCs y dispositivos móviles, pero requiere una clave de autenticación de hardware separada -y aunque los profesionales de la seguridad han sido grandes fanáticos de los llaveros de seguridad desde los primeros días de la SecureID de RSA, la gente común se ha resistido constantemente a los mandatos de tener que cargar con otro artilugio más, por más pequeño que este sea. Si bien la especificación U2F técnicamente permite implementaciones en las que se usa un teléfono móvil como dispositivo de autenticación, en lugar de un llavero dedicado, la especificación no describe formas de usar la mayoría de las funciones de un teléfono móvil que podrían hacer que dicha implementación sea útil.

Para abordar estas deficiencias, la Alianza FIDO se basó en su primer estándar e implementó un segundo conjunto de estándares, conocido colectivamente como FIDO2. Los dos estándares de FIDO2 se complementan entre sí para hacer que la autenticación sin contraseña y de segundo factor sea más fácil y segura de implementar.

La primera de las especificaciones de FIDO2 es WebAuthn, que fue codificada por el W3C como recomendación en el 2019. Al igual que UAF, WebAuthn utiliza cifrado de clave pública para permitir que un dispositivo de usuario final autentique localmente a un usuario cuando se comunica con un proveedor de servicios. Sin embargo, a diferencia de UAF, WebAuthn no está restringido a dispositivos móviles. WebAuthn define las comunicaciones entre el usuario final y el proveedor de servicios a través de una API de JavaScript abierta, por lo que cualquier dispositivo o PC, que ejecute un navegador que soporte el estándar, puede participar (y como veremos más adelante, casi todos los navegadores ahora lo hacen).

Las PC están integrando cada vez más funciones de autenticación de hardware como lectores de huellas digitales o escáneres faciales que antes estaban restringidos a los smartphones, y las páginas web habilitadas para WebAuthn pueden hacer uso de esas capacidades para autenticar a los usuarios. Sin embargo, esas características aún no son universales, y ahí es donde entra CTAP, la segunda de las especificaciones de FIDO2. CTAP significa Client to Authenticator Protocols, y le permite conectarse a un proveedor de servicios, habilitado para WebAuthn, con su PC mientras usa un dispositivo separado como plataforma de autenticación.

Existen dos protocolos CTAP. CTAP1 es solo una actualización renombrada de U2F, lo que significa que puede usar llaveros U2F con un proveedor de servicios habilitado para WebAuthn que quiera implementar 2fa. CTAP2 amplía el concepto, permitiendo que dispositivos como smartphones o dispositivos portátiles se conecten a una PC a través de Wi-Fi, Bluetooth o USB y brinden servicios de autenticación, lo que hace posible las conexiones sin contraseña. En esencia, la Alianza FIDO apuesta a que, si necesita autenticarse de forma segura con un servicio en línea, está utilizando un dispositivo que soporta un método de autenticación sólido o tiene dicho dispositivo en su bolsillo o en su escritorio.

Autenticación FIDO
El meollo del proceso de autenticación FIDO puede llegar a ser bastante profundo, tanto a nivel de código como de criptografía, y está más allá del alcance de este artículo. Pero aquí hay una descripción general, de nivel superior, de cómo funciona el flujo del proceso de autenticación cuando se accede a un proveedor de servicios habilitado para WebAuthn. Esto le dará una idea más clara de lo que sucede debajo de la superficie.

Primero, consideremos el registro. Supongamos que desea registrarse en una página web u otro servicio que utilice WebAuthn:

  1. Usted envía un mensaje solicitando crear una cuenta.
  2. El proveedor de servicios solicita una clave pública.
  3. Se autentica mediante algún método local soportado por la especificación WebAuthn y aceptado por el proveedor de servicios. Esto puede suceder en el dispositivo que está usando para conectarse al proveedor de servicios o en otro dispositivo que se conecta a través de CTAP.
  4. Su dispositivo local genera un par de claves criptográficas -una pública y otra privada- las asocia con sus datos de autenticación y envía la clave pública al proveedor de servicios.
  5. El proveedor de servicios almacena la clave pública y la asocia con su nueva cuenta.

Una vez que haya creado esa cuenta, utilizará el mismo método de autenticación para iniciar sesión.

  1. Usted envía una solicitud de inicio de sesión al proveedor de servicios desde su dispositivo local.
  2. El proveedor del servicio solicita una firma digital, un dato que establece su identidad, uno que solo puede ser creado por una clave privada pero que puede ser leído por la clave pública correspondiente.
  3. Usted se autentica en su dispositivo local.
  4. Su dispositivo local correlaciona su identidad autenticada y el servicio al que está intentando acceder para determinar el par de claves apropiado para usar, crea una firma con su clave privada y la envía al proveedor de servicios.
  5. El proveedor de servicios utiliza su clave pública para leer la firma y confirmar su identidad, lo que le permite iniciar sesión.

Para obtener muchos más detalles, incluidos ejemplos de código que demuestran cómo usar las APIs de WebAuthn, consulte esta guía completa de WebAuthn.

Certificación FIDO
Es posible que haya notado que hemos estado hablando de manera un tanto genérica sobre los dispositivos y el software que implementan las especificaciones FIDO. Estas especificaciones están abiertas y pueden ser implementadas por cualquier fabricante de dispositivos o desarrolladores de software. No todo el mundo estaba a bordo de inmediato, pero el soporte ahora es bastante completo. Android tiene certificación FIDO2 desde febrero del 2019; la mayoría de los navegadores principales ya estaban certificados en ese momento, aunque Safari de Apple no se unió a la fiesta hasta más tarde en el 2020.

La Alianza FIDO tiene recursos si está interesado en obtener su propio software o servicio compatible con FIDO. Existen vías de cumplimiento separadas para la interoperabilidad y autenticadores de hardware. Investigue si está listo para ayudar a ir más allá de la contraseña.

Josh Fruhlinger CSOonline.com

 

Artículo anterior8 razones por las que Python gobernará la industria
Artículo siguienteLa nube, un desafío de seguridad también para las pymes