Las credenciales de sesión vinculadas al dispositivo (DBSC) son una nueva función web diseñada para proteger las sesiones de los usuarios del robo de cookies y el secuestro de sesiones. Esta función ahora está disponible para pruebas como una prueba de origen en Chrome 135.
Fondo
Las cookies desempeñan un papel fundamental en la autenticación web moderna, lo que permite a los usuarios permanecer en sus cuentas durante las sesiones de navegación. Sin embargo, los atacantes aprovechan cada vez más las cookies de autenticación robadas para apropiarse de las sesiones, eludir la autenticación de varios factores y otros mecanismos de seguridad de acceso.
Los operadores de software malicioso suelen extraer cookies de sesión de dispositivos vulnerados, lo que permite el acceso no autorizado a las cuentas de usuario. Dado que las cookies son tokens del portador, otorgan acceso sin requerir un comprobante de posesión, lo que las convierte en un objetivo lucrativo para los atacantes.
El objetivo de las credenciales de sesión vinculadas al dispositivo (DBSC) es interrumpir el robo de cookies mediante la creación de una sesión autenticada vinculada a un dispositivo. Este enfoque mitiga la posibilidad de que las cookies filtradas puedan acceder a cuentas desde otro dispositivo.
Cómo funciona
Las DBSC presentan una nueva API que permite que los servidores creen una sesión autenticada que está vinculada a un dispositivo. Cuando se inicia una sesión, el navegador genera un par de claves pública y privada, y almacena la clave privada de forma segura con almacenamiento respaldado por hardware, como un módulo de plataforma confiable (TPM) cuando está disponible.
Luego, el navegador emite una cookie de sesión normal. Durante el ciclo de vida de la sesión, el navegador demuestra periódicamente la posesión de la clave privada y actualiza la cookie de sesión. La vida útil de la cookie se puede establecer lo suficientemente corta como para que robarla no sea un beneficio para los atacantes.
Componentes clave
Registro de la sesión:
- Cuando un usuario accede, el servidor solicita una sesión vinculada al dispositivo con el encabezado HTTP
Sec-Session-Registration
. - El navegador genera un nuevo par de claves y almacena la clave privada de forma segura.
- También se establece una cookie de autenticación de corta duración y se vincula a este par de claves.
- El servidor asocia la sesión con la clave pública correspondiente, lo que garantiza que solo se pueda usar en el dispositivo original.
- Cuando un usuario accede, el servidor solicita una sesión vinculada al dispositivo con el encabezado HTTP
Actualización de la sesión y prueba de posesión:
- Cuando vence la cookie de corta duración, Chrome activa una actualización de la sesión.
- El navegador envía una solicitud a un extremo de actualización definido por el servidor (proporcionado durante el registro de la sesión) y, si el servidor proporciona uno, un desafío firmado con el encabezado
Sec-Session-Challenge
. - El servidor verifica la prueba de posesión validando la respuesta firmada con la clave privada de la sesión.
- Si es válida, el servidor emite una nueva cookie de corta duración, lo que permite que la sesión continúe.
Una ventaja de este enfoque es que Chrome aplaza las solicitudes que, de otro modo, no tendrían la cookie de corta duración actualizada. Este comportamiento mantiene las cookies vinculadas a la sesión disponibles de forma coherente durante toda la sesión y permite que los desarrolladores confíen en ellas con más seguridad que con los enfoques en los que las cookies pueden vencer o desaparecer sin renovación automática.
Ejemplo de implementación
Un servidor puede solicitar una sesión vinculada al dispositivo de la siguiente manera:
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
Cuando la sesión está activa, el servidor puede verificarla con un intercambio de desafío y respuesta:
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
El navegador responde con lo siguiente:
POST /refresh
Sec-Session-Response: "signed-proof"
Beneficios
- Mitiga el robo de cookies: Incluso si se roban las cookies de sesión, no se pueden usar desde otro dispositivo.
- Mejora la seguridad sin cambios importantes en la UX: Funciona de forma transparente en segundo plano sin requerir interacción adicional del usuario.
- Reduce la dependencia de las cookies de sesión de larga duración: Las cookies de corta duración se actualizan automáticamente, siempre y cuando la sesión siga siendo válida en el dispositivo original.
- Admite mecanismos criptográficos estándar: Aprovecha el almacenamiento seguro respaldado por TPM cuando está disponible, lo que proporciona una protección sólida contra la extracción.
Consideraciones de privacidad y seguridad
El DBSC está diseñado para mejorar la seguridad y, al mismo tiempo, preservar la privacidad del usuario:
- Sin vectores de seguimiento adicionales: Cada sesión está asociada con un par de claves único, lo que evita el seguimiento entre sesiones.
- No hay huellas digitales de dispositivos a largo plazo: Los servidores no pueden correlacionar diferentes sesiones en el mismo dispositivo, a menos que el usuario lo permita de forma explícita.
- Los usuarios pueden borrarlos: Las sesiones y las claves se borran cuando el usuario borra los datos del sitio.
- Alineada con las políticas de cookies: La DBSC sigue el mismo alcance basado en el sitio que las cookies, lo que garantiza que no se introduzcan filtraciones de datos entre orígenes.
Probar
La prueba de origen de las credenciales de sesión vinculadas al dispositivo está disponible a partir de Chrome 135.
Para pruebas locales
Para probar DBSC de forma local, haz lo siguiente:
- Ve a
chrome://flags#device-bound-session-credentials
y habilita la función.
Para pruebas públicas
Para probar DBSC con la prueba de origen en un entorno público, haz lo siguiente:
- Visita la página de pruebas de origen de Chrome y regístrate.
Agrega el token proporcionado a los encabezados HTTP de tu sitio:
Origin-Trial: <your-trial-token>
Recursos
- Especificación de credenciales de sesión vinculada al dispositivo
- Repositorio de GitHub para DBSC
- Guía de integración de credenciales de sesión vinculadas al dispositivo (DBSC)
Participa y define el futuro de la seguridad web
Acompáñanos para que la autenticación web sea más segura. Recomendamos a los desarrolladores web que prueben DBSC, la integren en sus aplicaciones y compartan sus comentarios. Puedes interactuar con nosotros en GitHub o participar en debates con el grupo de trabajo de seguridad de aplicaciones web.
Si implementamos las DBSC, podemos reducir de forma colectiva los riesgos de robo de sesión y mejorar la seguridad de la autenticación para los usuarios. Comienza hoy mismo y ayuda a definir el futuro de la seguridad web.