Les identifiants de session liés à l'appareil (DBSC) sont une nouvelle fonctionnalité Web conçue pour protéger les sessions utilisateur contre le vol de cookies et le piratage de session. Cette fonctionnalité est désormais disponible en test en tant qu'essai Origin dans Chrome 135.
Arrière-plan
Les cookies jouent un rôle crucial dans l'authentification Web moderne, car ils permettent aux utilisateurs de rester connectés pendant leurs sessions de navigation. Cependant, les pirates informatiques exploitent de plus en plus les cookies d'authentification volés pour pirater des sessions, contournant ainsi l'authentification multifacteur et d'autres mécanismes de sécurité de connexion.
Les opérateurs de logiciels malveillants exfiltrent souvent les cookies de session des appareils compromis, ce qui permet un accès non autorisé aux comptes utilisateur. Étant donné que les cookies sont des jetons de support, ils accordent un accès sans nécessiter de preuve de possession, ce qui en fait une cible lucrative pour les pirates informatiques.
Les identifiants de session liés à l'appareil (DBSC, Device Bound Session Credentials) visent à perturber le vol de cookies en créant une session authentifiée liée à un appareil. Cette approche réduit les risques que les cookies exfiltrés puissent accéder aux comptes depuis un autre appareil.
Fonctionnement
DBSC introduit une nouvelle API qui permet aux serveurs de créer une session authentifiée associée à un appareil. Lorsqu'une session est lancée, le navigateur génère une paire de clés publique/privée, stockant la clé privée de manière sécurisée à l'aide d'un stockage matériel tel qu'un module de plate-forme sécurisée (TPM) lorsqu'il est disponible.
Le navigateur émet ensuite un cookie de session standard. Pendant la durée de vie de la session, le navigateur prouve régulièrement la possession de la clé privée et actualise le cookie de session. La durée de vie du cookie peut être définie suffisamment courte pour que le vol du cookie ne soit pas avantageux pour les pirates informatiques.
Composants clés
Enregistrement de la session:
- Lorsqu'un utilisateur se connecte, le serveur demande une session liée à l'appareil à l'aide de l'en-tête HTTP
Sec-Session-Registration
. - Le navigateur génère une nouvelle paire de clés, en stockant la clé privée de manière sécurisée.
- Un cookie d'authentification de courte durée est également établi et associé à cette paire de clés.
- Le serveur associe la session à la clé publique correspondante, ce qui garantit qu'elle ne peut être utilisée que sur l'appareil d'origine.
- Lorsqu'un utilisateur se connecte, le serveur demande une session liée à l'appareil à l'aide de l'en-tête HTTP
Actualisation de la session et preuve de possession:
- Lorsque le cookie de courte durée expire, Chrome déclenche une actualisation de la session.
- Le navigateur envoie une requête à un point de terminaison de rafraîchissement défini par le serveur (fourni lors de l'enregistrement de la session) et, si le serveur en fournit un, un défi signé à l'aide de l'en-tête
Sec-Session-Challenge
. - Le serveur vérifie la preuve de possession en validant la réponse signée avec la clé privée de la session.
- Si le cookie est valide, le serveur émet un nouveau cookie de courte durée, ce qui permet à la session de se poursuivre.
L'un des avantages de cette approche est que Chrome diffère les requêtes qui ne disposeraient pas du cookie à durée de vie courte actualisé. Ce comportement permet de maintenir les cookies liés à la session de manière cohérente tout au long de la session et permet aux développeurs de s'appuyer sur eux plus facilement que dans les approches où les cookies peuvent expirer ou disparaître sans renouvellement automatique.
Exemple d'implémentation
Un serveur peut demander une session liée à un appareil comme suit:
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
Lorsque la session est active, le serveur peut la valider à l'aide d'un échange de défi-réponse:
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
Le navigateur répond comme suit:
POST /refresh
Sec-Session-Response: "signed-proof"
Avantages
- Limite le vol de cookies: même si des cookies de session sont volés, ils ne peuvent pas être utilisés sur un autre appareil.
- Améliore la sécurité sans modification majeure de l'expérience utilisateur: fonctionne de manière transparente en arrière-plan sans nécessiter d'interaction supplémentaire de l'utilisateur.
- Réduit la dépendance aux cookies de session de longue durée: les cookies de courte durée sont automatiquement actualisés tant que la session reste valide sur l'appareil d'origine.
- Compatibilité avec les mécanismes cryptographiques standards: exploite le stockage sécurisé basé sur le TPM lorsqu'il est disponible, offrant une protection efficace contre l'exfiltration.
Points à prendre en compte concernant la confidentialité et la sécurité
La DBSC est conçue pour renforcer la sécurité tout en préservant la confidentialité des utilisateurs:
- Aucun vecteur de suivi supplémentaire: chaque session est associée à une paire de clés unique, ce qui empêche le suivi intersessions.
- Aucun empreinte digitale d'appareil à long terme: les serveurs ne peuvent pas corréler différentes sessions sur le même appareil, sauf si l'utilisateur l'autorise explicitement.
- Peuvent être effacées par les utilisateurs: les sessions et les clés sont supprimées lorsque l'utilisateur efface les données du site.
- Conforme aux règles sur les cookies: le DBSC suit le même champ d'application basé sur le site que les cookies, ce qui garantit qu'il n'introduit pas de fuites de données inter-origines.
Essayer
La phase d'évaluation de la fonctionnalité Identifiants de session liés à l'appareil est disponible à partir de Chrome 135.
Pour les tests en local
Pour tester DBSC en local:
- Accédez à
chrome://flags#device-bound-session-credentials
et activez la fonctionnalité.
Pour les tests publics
Pour tester DBSC avec l'essai Origin Trial dans un environnement public:
- Accédez à la page des essais Origin de Chrome et inscrivez-vous.
Ajoutez le jeton fourni aux en-têtes HTTP de votre site:
Origin-Trial: <your-trial-token>
Ressources
- Spécifications des identifiants de session liés à l'appareil
- Dépôt GitHub pour DBSC
- Guide d'intégration des identifiants de session liés à l'appareil (DBSC)
Participez et façonnez l'avenir de la sécurité Web
Rejoignez-nous pour rendre l'authentification Web plus sécurisée. Nous encourageons les développeurs Web à tester DBSC, à l'intégrer à leurs applications et à nous faire part de leurs commentaires. Vous pouvez interagir avec nous sur GitHub ou participer aux discussions avec le groupe de travail sur la sécurité des applications Web.
En implémentant le DBSC, nous pouvons collectivement réduire les risques de piratage de session et améliorer la sécurité de l'authentification pour les utilisateurs. Commencez dès aujourd'hui et contribuez à définir l'avenir de la sécurité Web.