As credenciais de sessão vinculadas ao dispositivo (DBSC, na sigla em inglês) são um novo recurso da Web projetado para proteger as sessões do usuário contra roubo de cookies e invasão de sessão. Esse recurso agora está disponível para testes como um teste de origem no Chrome 135.
Contexto
Os cookies têm um papel crucial na autenticação moderna da Web, permitindo que os usuários permaneçam conectados durante as sessões de navegação. No entanto, os invasores estão cada vez mais explorando cookies de autenticação roubados para sequestrar sessões, contornando a autenticação multifator e outros mecanismos de segurança de login.
Os operadores de malware geralmente extraem cookies de sessão de dispositivos comprometidos, permitindo acesso não autorizado às contas de usuários. Como os cookies são tokens do portador, eles concedem acesso sem exigir prova de posse, o que os torna um alvo lucrativo para invasores.
O objetivo das credenciais de sessão vinculadas ao dispositivo (DBSC, na sigla em inglês) é interromper o roubo de cookies criando uma sessão autenticada vinculada a um dispositivo. Essa abordagem reduz a chance de cookies exfiltrados acessarem contas de outro dispositivo.
Como funciona
O DBSC apresenta uma nova API que permite que os servidores criem uma sessão autenticada vinculada a um dispositivo. Quando uma sessão é iniciada, o navegador gera um par de chaves públicas/privadas, armazenando a chave privada com segurança usando o armazenamento de hardware, como um módulo de plataforma confiável (TPM, na sigla em inglês) quando disponível.
Em seguida, o navegador emite um cookie de sessão comum. Durante a sessão, o navegador prova periodicamente a posse da chave privada e atualiza o cookie de sessão. A vida útil do cookie pode ser definida de forma curta para que o roubo do cookie não seja um benefício para os invasores.
Principais componentes
Registro de sessão:
- Quando um usuário faz login, o servidor solicita uma sessão
vinculada ao dispositivo usando o cabeçalho HTTP
Sec-Session-Registration
. - O navegador gera um novo par de chaves, armazenando a chave privada com segurança.
- Um cookie de autenticação de curta duração também é estabelecido e vinculado a esse par de chaves.
- O servidor associa a sessão à chave pública correspondente, garantindo que a sessão só possa ser usada no dispositivo original.
- Quando um usuário faz login, o servidor solicita uma sessão
vinculada ao dispositivo usando o cabeçalho HTTP
Refrescamento de sessão e prova de posse:
- Quando o cookie de curta duração expirar, o Chrome vai acionar uma atualização de sessão.
- O navegador envia uma solicitação para um endpoint de atualização definido pelo servidor
(fornecido durante o registro de sessão) e, se o servidor fornecer
um, um desafio assinado usando o cabeçalho
Sec-Session-Challenge
. - O servidor verifica a prova de posse validando a resposta assinada com a chave privada da sessão.
- Se for válido, o servidor emitirá um novo cookie de curta duração, permitindo que a sessão continue.
Uma vantagem dessa abordagem é que o Chrome adia as solicitações que, de outra forma, não teriam o cookie de curta duração atualizado. Esse comportamento mantém os cookies vinculados à sessão disponíveis de forma consistente durante toda a sessão e permite que os desenvolvedores confiem neles com mais confiança do que com abordagens em que os cookies podem expirar ou desaparecer sem renovação automática.
Implementação de exemplo
Um servidor pode solicitar uma sessão vinculada a um dispositivo assim:
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
Quando a sessão está ativa, o servidor pode verificar isso com uma troca de desafio-resposta:
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
O navegador responde com:
POST /refresh
Sec-Session-Response: "signed-proof"
Vantagens
- Mitiga o roubo de cookies: mesmo que os cookies de sessão sejam roubados, eles não podem ser usados em outro dispositivo.
- Melhora a segurança sem grandes mudanças na UX: funciona de forma transparente em segundo plano sem exigir mais interação do usuário.
- Reduz a dependência de cookies de sessão de longa duração: os cookies de curta duração são atualizados automaticamente enquanto a sessão permanecer válida no dispositivo original.
- Suporte a mecanismos criptográficos padrão: aproveita o armazenamento seguro com suporte do TPM quando disponível, oferecendo proteção contra exfiltração.
Considerações sobre privacidade e segurança
O DBSC foi criado para melhorar a segurança e preservar a privacidade do usuário:
- Nenhum vetor de rastreamento adicional: cada sessão é associada a um par de chaves exclusivo, o que impede o rastreamento entre sessões.
- Nenhum fingerprinting de dispositivo de longo prazo: os servidores não podem correlacionar sessões diferentes no mesmo dispositivo, a menos que o usuário permita explicitamente.
- Pode ser limpo pelos usuários: as sessões e chaves são excluídas quando o usuário limpa os dados do site.
- Alinhamento com as políticas de cookies: o DBSC segue o mesmo escopo baseado em site dos cookies, garantindo que não haja vazamentos de dados entre origens.
Faça um teste
O teste de origem de Device Bound Session Credentials está disponível a partir do Chrome 135.
Para testes locais
Para testar o DBSC localmente:
- Acesse
chrome://flags#device-bound-session-credentials
e ative o recurso.
Para testes públicos
Para testar o DBSC com o teste de origem em um ambiente público, faça o seguinte:
- Acesse a página de testes do Chrome Origin e inscreva-se.
Adicione o token fornecido aos cabeçalhos HTTP do seu site:
Origin-Trial: <your-trial-token>
Recursos
- Especificação de credenciais de sessão vinculadas ao dispositivo
- Repositório do GitHub para o DBSC
- Guia de integração de credenciais de sessão vinculadas ao dispositivo (DBSC, na sigla em inglês)
Participe e molde o futuro da segurança na Web
Junte-se a nós para tornar a autenticação na Web mais segura. Recomendamos que os desenvolvedores da Web testem o DBSC, o integrem aos apps e compartilhem feedback. Você pode entrar em contato com a gente no GitHub ou participar de discussões com o grupo de trabalho de segurança de aplicativos da Web.
Ao implementar o DBSC, podemos reduzir coletivamente os riscos de invasão de sessão e melhorar a segurança da autenticação para os usuários. Comece hoje mesmo e ajude a definir o futuro da segurança da Web.