Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers
Gautam, Yadav, Smith et al.
Password managers provide significant security benefits to users. However, malicious client-side scripts and browser extensions can steal passwords after the manager has autofilled them into the web page. In this paper, we extend prior work by Stock and Johns, showing how password autofill can be hardened to prevent these local attacks. We implement our design in the Firefox browser and conduct experiments demonstrating that our defense successfully protects passwords from XSS attacks and malicious extensions. We also show that our implementation is compatible with 97% of the Alexa top 1000 websites. Next, we generalize our design, creating a second defense that prevents recently discovered local attacks against the FIDO2 protocols. We implement this second defense into Firefox, demonstrating that it protects the FIDO2 protocol against XSS attacks and malicious extensions. This defense is compatible with all websites, though it does require a small change (2-3 lines) to web servers implementing FIDO2.
academic
Las Contraseñas y FIDO2 Están Destinadas a Ser Secretas: Un Canal de Autenticación Seguro Práctico para Navegadores Web
Los gestores de contraseñas proporcionan ventajas de seguridad significativas a los usuarios, pero los scripts de cliente maliciosos y las extensiones de navegador pueden robar contraseñas después de que el gestor de contraseñas las rellena automáticamente en páginas web. Este artículo extiende el trabajo previo de Stock y Johns, demostrando cómo reforzar el relleno automático de contraseñas para prevenir estos ataques locales. Los autores implementaron su diseño en el navegador Firefox y realizaron experimentos que demuestran que la defensa protege exitosamente las contraseñas contra ataques XSS y extensiones maliciosas. La investigación también muestra que la implementación es compatible con el 97% de los primeros 1000 sitios de Alexa. Además, los autores generalizaron el diseño, creando un segundo mecanismo de defensa para prevenir ataques locales recientemente descubiertos contra el protocolo FIDO2.
Los gestores de contraseñas presentan una vulnerabilidad de seguridad evidente: las contraseñas son susceptibles al robo durante el período entre el relleno automático en el navegador y la transmisión al sitio web. Esto incluye el robo de las siguientes amenazas:
Rastreadores web: Pueden recopilar información de contraseñas inadvertidamente
Ataques de inyección (como XSS): Los scripts maliciosos pueden leer directamente contraseñas del DOM
Extensiones de navegador maliciosas: Las extensiones con permisos apropiados pueden acceder al contenido de páginas web y solicitudes de red
Bibliotecas JavaScript comprometidas: Inyección de código malicioso resultante de ataques de cadena de suministro
Estos ataques son relativamente prevalentes; la investigación indica que al menos el 2-3% de sitios populares contienen rastreadores web que pueden filtrar contraseñas
Los ataques XSS continúan siendo clasificados por OWASP como uno de los 10 principales riesgos de seguridad de aplicaciones web
El problema de las extensiones de navegador maliciosas es cada vez más grave, con miles de extensiones con permisos suficientes para realizar estos ataques presentes en la Chrome Web Store
Stock y Johns propusieron un protocolo de protección de contraseñas basado en sustitución de nonces hace una década, pero ese protocolo era incompatible con los diseños de navegadores modernos. Incluso el navegador Firefox, donde funcionaba en ese momento, pronto eliminó la funcionalidad relevante, lo que impidió la adopción del protocolo y el desarrollo de investigaciones posteriores.
Implementación de una API práctica de sustitución de contraseñas basada en nonces: Modificación de navegadores modernos para soportar una implementación funcional del protocolo de Stock y Johns
Extensión del modelo de amenazas: Identificación y abordaje de amenazas de extensiones de navegador maliciosas no consideradas en el protocolo original
Canal seguro FIDO2: Generalización del diseño al protocolo FIDO2, protegiendo contra ataques locales recientemente descubiertos
Verificación de implementación práctica: Implementación y evaluación en Firefox, demostrando compatibilidad con el 97% de sitios principales
Diseñar un canal de navegador seguro que permita a los gestores de contraseñas transmitir contraseñas de forma segura a sitios web, sin permitir que scripts del DOM o extensiones de navegador accedan al contenido real de las contraseñas.
Procesamiento de Solicitud: El servidor coloca la carga útil FIDO2 real en el encabezado webauthn_request, la respuesta de la página contiene un valor falso
Intercepción de Encabezados: El navegador elimina encabezados sensibles antes de que las extensiones puedan acceder
Reemplazo de API: Sustitución de valores falsos con valores reales dentro de la API webAuthn
Protección de Respuesta: Los valores devueltos por la API se reemplazan con valores falsos, los valores reales se almacenan de forma segura
Transmisión Final: Al enviar solicitudes a un punto final especificado, se reemplaza el valor falso con la respuesta FIDO2 real
Este artículo proporciona por primera vez una implementación funcional del protocolo de Stock y Johns, cerrando una brecha de investigación de diez años en este campo, y extiende la protección al protocolo FIDO2.
Este artículo cita 47 referencias relacionadas, incluyendo principalmente:
Documento del protocolo de sustitución de nonce original de Stock y Johns
Investigación relacionada sobre análisis de seguridad de gestores de contraseñas
Investigación empírica sobre amenazas de seguridad de extensiones de navegador
Literatura de análisis de seguridad del protocolo FIDO2
Investigación del estado actual de rastreadores web y ataques XSS
Evaluación General: Este es un artículo de seguridad de sistemas con importante valor práctico que convierte exitosamente diseños teóricos en un sistema prototipo funcional, y verifica su efectividad a través de experimentos integrales. El artículo no solo resuelve un problema de seguridad importante en la realidad, sino que también abre nuevas direcciones para investigación futura. Aunque aún enfrenta desafíos en implementación y compatibilidad, su contribución técnica y valor práctico lo convierten en un avance importante en el campo de la seguridad de navegadores.