La criptografía es un pilar fundamental en la seguridad digital, y aunque el cifrado se destaca por garantizar la confidencialidad de la información, la autenticación también juega un rol crucial. La autenticación asegura que la información provenga realmente de una fuente legítima.
Al acceder a un sitio web, el servidor suele verificar la identidad del usuario mediante un certificado de seguridad de la capa de transporte (TLS) validado por la Infraestructura de Clave Pública (PKI). Las contraseñas son una solución tradicional para la autenticación, pero son vulnerables a ataques como el phishing y las filtraciones. Es aquí donde entran en juego las PassKey.
Las PassKey se basan en pares de claves criptográficas que permiten generar firmas digitales. Al registrar una clave de acceso, el sitio web almacena la clave pública y un identificador. Durante la autenticación, el sitio presenta un desafío y espera una respuesta firmada que incluya este desafío y otros metadatos, como el identificador. La clave pública se utiliza para verificar la firma.
WebAuthn
WebAuthn es la especificación principal detrás de las PassKey. En resumen, los usuarios acceden a un sitio web mediante su navegador, que interactúa con un autenticador, ya sea hardware o software, para generar el par de claves y crear firmas digitales.
La especificación WebAuthn permite una mayor variedad de casos de uso, pero estos detalles no son relevantes para comprender cómo funcionan las PassKey desde la perspectiva criptográfica. La autenticación se lleva a cabo mediante una interacción entre el navegador y el autenticador, descrita en detalle por el Protocolo de Cliente a Autenticador (CTAP) de FIDO Alliance.
Protección contra phishing
WebAuthn resuelve el problema del phishing mediante la vinculación de origen. La especificación exige que los navegadores proporcionen el origen de la solicitud al autenticador, lo cual permite que este utilice las PassKey solo cuando el sitio web que realiza la solicitud coincide con el que las creó.
Esto significa que si se crea una PassKey para bank.com, un sitio de phishing como fake-bank.com no podrá usarla, ya que su autenticador rechazará la solicitud. Cada sitio web obtiene su propio par de claves único, lo cual elimina por completo el problema de la reutilización de contraseñas.
Además, la especificación solo permite orígenes que utilizan HTTPS, lo que significa que la solicitud proviene de un servidor con un certificado válido para el origen correspondiente.
Tipos de autenticadores
Los autenticadores son «algo que se tiene». Todos pueden comprobar si un usuario está realmente presente durante la autenticación. Algunos también pueden verificar al usuario según «algo que sabe», como un PIN, o «algo que es», como sus datos biométricos.
Existen dos tipos principales de autenticadores:
- Autenticadores de plataforma: se encuentran dentro del dispositivo del usuario. Ejemplos: iCloud Keychain, Google Password Manager, Windows Hello, 1Password. Ventajas: convenientes, suelen incluir funciones de copia de seguridad en la nube. Desventajas: vulnerables si el dispositivo se ve comprometido.
- Autenticadores itinerantes: son dispositivos de hardware dedicados e independientes. Ejemplos: YubiKeys, llaves de Seguridad Titan, llaves Feitian. Ventajas: mayor aislamiento de seguridad, no se ven afectados por la vulneración del dispositivo. Desventajas: pueden perderse o dañarse, generalmente no tienen mecanismo de copia de seguridad.
Si una plataforma permite la comunicación entre plataformas (como Bluetooth), sus autenticadores también pueden usarse como itinerantes al comunicarse con otro dispositivo. Para máxima seguridad en aplicaciones de alto valor, se recomienda usar llaves de seguridad de hardware dedicadas.
Modelado de amenazas
A pesar de las afirmaciones de marketing que pueda haber escuchado, las claves de acceso no son una solución milagrosa para la seguridad. Veamos contra qué protegen realmente.
El modelado de amenazas de las PassKey muestra que protegen contra amenazas contra las que las contraseñas suelen proteger, a la vez que eliminan el riesgo de phishing y reutilización de contraseñas. Una mejora significativa.
La Sección de Conformidad de la especificación WebAuthn hace una declaración muy contundente que implica que los sitios web, navegadores y autenticadores que cumplen con la especificación son «seguros» contra comportamiento malicioso. Esta afirmación simplifica demasiado la realidad de la seguridad.
Algunos escenarios de ataque reales que aún pueden ocurrir incluyen:
- Ataques basados en navegador: algunos autenticadores no tienen pantalla integrada y dependen del navegador para mostrar el sitio web al que se está autenticando. Si el navegador está comprometido, podría mostrarle «attacker.com» mientras envía una solicitud para firmar en «google.com».
- Autenticadores comprometidos: la seguridad de las PassKey depende de que el autenticador proteja las claves privadas. Una clave falsificada, un software con puerta trasera o malware que suplante la identidad del autenticador podrían extraer secretamente sus claves privadas.
Las PassKey no protegen completamente contra la mayoría de las vulnerabilidades de los dispositivos de los usuarios, como navegadores maliciosos o malware. Sin embargo, sirven como limitadores de velocidad eficaces para los ataques, ya que cada firma requiere una interacción independiente del usuario con el autenticador.