2025-11-14T09:58:11.521609

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

Les mots de passe et FIDO2 sont destinés à rester secrets : Un canal d'authentification sécurisé pratique pour les navigateurs Web

Informations de base

  • ID de l'article : 2509.02289
  • Titre : Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers
  • Auteurs : Anuj Gautam (University of Tennessee), Tarun Yadav (Brigham Young University), Garrett Smith (Brigham Young University), Kent Seamons (Brigham Young University), Scott Ruoti (University of Tennessee)
  • Classification : cs.CR (Cryptographie et sécurité)
  • Conférence de publication : CCS '25 (Conférence ACM SIGSAC sur la sécurité informatique et des communications)
  • Lien de l'article : https://arxiv.org/abs/2509.02289

Résumé

Les gestionnaires de mots de passe offrent des avantages de sécurité significatifs aux utilisateurs, mais les scripts clients malveillants et les extensions de navigateur peuvent voler les mots de passe après que le gestionnaire les ait remplis automatiquement sur les pages Web. Cet article étend les travaux antérieurs de Stock et Johns, démontrant comment renforcer le remplissage automatique des mots de passe pour prévenir ces attaques locales. Les auteurs ont implémenté leur conception dans le navigateur Firefox et ont mené des expériences prouvant que cette défense protège efficacement les mots de passe contre les attaques XSS et les extensions malveillantes. L'étude montre également que cette implémentation est compatible avec 97 % des 1000 premiers sites Web d'Alexa. De plus, les auteurs ont généralisé la conception, créant un deuxième mécanisme de défense pour prévenir les attaques locales récemment découvertes contre le protocole FIDO2.

Contexte et motivation de la recherche

Problème fondamental

Les gestionnaires de mots de passe présentent une faille de sécurité évidente : les mots de passe sont vulnérables au vol pendant la période entre leur remplissage automatique dans le navigateur et leur transmission au site Web. Cela inclut le vol provenant des menaces suivantes :

  1. Suivi Web : Peut collecter involontairement les informations de mot de passe
  2. Attaques par injection (comme XSS) : Les scripts malveillants peuvent lire directement les mots de passe du DOM
  3. Extensions de navigateur malveillantes : Les extensions disposant des permissions appropriées peuvent accéder au contenu des pages Web et aux requêtes réseau
  4. Bibliothèques JavaScript compromises : Injection de code malveillant résultant d'attaques de la chaîne d'approvisionnement

Importance du problème

  • Ces attaques sont relativement courantes ; la recherche montre qu'au moins 2-3 % des sites Web populaires contiennent des suivi Web qui fuient les mots de passe
  • Les attaques XSS continuent d'être classées par l'OWASP parmi les 10 principaux risques de sécurité des applications Web
  • Le problème des extensions de navigateur malveillantes s'aggrave, avec des milliers d'extensions disposant de permissions suffisantes pour mener ces attaques présentes dans le Chrome Web Store

Limitations des approches existantes

Stock et Johns ont proposé un protocole de protection des mots de passe basé sur la substitution de nonce il y a dix ans, mais ce protocole était incompatible avec la conception des navigateurs modernes. Même le navigateur Firefox, où il fonctionnait à l'époque, a rapidement supprimé les fonctionnalités pertinentes, ce qui a empêché l'adoption du protocole et le développement de recherches ultérieures.

Contributions principales

  1. Implémentation d'une API pratique de substitution de mots de passe basée sur les nonces : Modification des navigateurs modernes pour soutenir une implémentation fonctionnelle du protocole de Stock et Johns
  2. Extension du modèle de menace : Identification et résolution de la menace des extensions de navigateur malveillantes non considérée par le protocole original
  3. Canal sécurisé FIDO2 : Généralisation de la conception au protocole FIDO2, protégeant contre les attaques locales récemment découvertes
  4. Vérification du déploiement pratique : Implémentation et évaluation dans Firefox, démontrant la compatibilité avec 97 % des sites Web populaires

Détails de la méthodologie

Définition de la tâche

Concevoir un canal de navigateur sécurisé permettant au gestionnaire de mots de passe de transmettre en toute sécurité les mots de passe au site Web, sans permettre aux scripts DOM ou aux extensions de navigateur d'accéder au contenu réel des mots de passe.

Conception de l'architecture de protection des mots de passe

Conception de l'API centrale

Extension de l'API WebRequest existante, ajout d'une nouvelle phase onRequestCredentials :

onRequestCredentials → onBeforeRequest → onBeforeSendHeaders → onSendHeaders → ...

Flux de travail

  1. Injection de nonce : Le gestionnaire de mots de passe remplit la page Web avec un nonce de mot de passe aléatoire, plutôt que le mot de passe réel
  2. Enregistrement du rappel : Enregistrement simultané d'un gestionnaire de rappel onRequestCredentials
  3. Vérification de sécurité : Au moment de la soumission de la page, exécution des vérifications de sécurité suivantes :
    • Vérification que la page Web n'est pas affichée dans une iFrame
    • Vérification que le canal de soumission utilise une connexion HTTPS sécurisée
    • Confirmation que l'origine correspond à l'entrée du gestionnaire de mots de passe
    • Vérification que le nonce ne figure pas dans les paramètres GET
    • Vérification de la validité du nom du champ
  4. Remplacement sécurisé : Si la vérification réussit, le navigateur remplace le nonce par le mot de passe réel dans l'objet FormSubmission

Conception pour la protection contre les extensions malveillantes

Pour faire face à la menace des extensions malveillantes, deux modifications clés ont été apportées :

  1. Déplacement de onRequestCredentials après toutes les phases pouvant accéder au requestBody
  2. Affichage du requestBody avant remplacement aux extensions, masquant le mot de passe réel

Conception du canal sécurisé FIDO2

Modèle de menace

Le protocole FIDO2 fait face à deux classes d'attaques locales :

  1. Modification des valeurs DOM : Réécriture des appels d'API webAuthn par JavaScript malveillant
  2. Interception des requêtes-réponses : Interception des requêtes et réponses HTTP par les extensions

Mécanisme de protection

  1. Traitement des requêtes : Le serveur place la charge utile FIDO2 réelle dans l'en-tête webauthn_request, la réponse de la page contenant des valeurs factices
  2. Interception des en-têtes : Le navigateur supprime les en-têtes sensibles avant qu'ils ne soient accessibles aux extensions
  3. Remplacement d'API : Les valeurs factices sont remplacées par les valeurs réelles à l'intérieur de l'API webAuthn
  4. Protection des réponses : Les valeurs de retour de l'API sont remplacées par des valeurs factices, les valeurs réelles étant stockées en toute sécurité
  5. Transmission finale : Lors de l'envoi de la requête au point de terminaison spécifié, les valeurs factices sont remplacées par la réponse FIDO2 réelle

Configuration expérimentale

Environnement de test

  • Navigateur : Mozilla Firefox 107.0 (protection des mots de passe) et 104.0a1 (protection FIDO2)
  • Gestionnaire de mots de passe : Bitwarden modifié
  • Sites Web de test : 573 sites Web parmi les 1000 premiers d'Alexa contenant des pages de connexion

Métriques d'évaluation

  1. Compatibilité : Pourcentage de sites Web fonctionnant normalement
  2. Sécurité : Efficacité de la protection contre les attaques DOM et d'extension
  3. Surcharge de performance : Augmentation du temps de traitement des requêtes

Méthodes de comparaison

  • Firefox non modifié comme référence
  • Utilisation d'un serveur proxy pour enregistrer toutes les requêtes réseau sortantes à titre de comparaison

Résultats expérimentaux

Résultats principaux

Compatibilité de la protection des mots de passe

  • Compatibilité de 97 % : 554/573 sites Web entièrement compatibles
  • Compatibilité partielle de 2 % : 11/573 sites Web échouent en raison du calcul du hachage du mot de passe dans le DOM
  • Incompatibilité de 1 % : 8/573 sites Web modifient le format du mot de passe avant la soumission

Vérification de la sécurité

  • Protection réussie contre toutes les attaques DOM testées (XSS, injection JavaScript malveillante)
  • Blocage efficace des extensions malveillantes tentant de voler les mots de passe via l'API webRequest
  • Identification et protection contre les menaces d'attaques par réflexion

Surcharge de performance

  • Temps de requête moyen lors du remplacement : 4,5222 secondes
  • Temps d'opération de remplacement : 0,443 seconde (10,6 % du temps total)
  • Aucun impact de performance mesurable lorsque le remplacement n'est pas nécessaire

Résultats de la protection FIDO2

  • Compatibilité de 100 % (nécessitant 2-3 lignes de modification du code côté serveur)
  • Protection réussie contre toutes les attaques DOM et d'extension testées
  • Implémentation complète de la responsabilité de session

Travaux connexes

Recherche sur la sécurité des gestionnaires de mots de passe

La recherche existante se concentre principalement sur la sécurité globale des gestionnaires de mots de passe, notamment :

  • Analyse de sécurité de la génération, du stockage et du remplissage des mots de passe
  • Identification des vulnérabilités lors du processus de remplissage automatique
  • Problèmes de sécurité des gestionnaires de mots de passe sur les appareils mobiles

Mécanismes de sécurité des navigateurs

La recherche connexe sur la sécurité des navigateurs comprend :

  • Politique de même origine et politique de sécurité du contenu
  • Modèle de permissions des extensions de navigateur
  • Sécurité des protocoles WebAuthn et FIDO2

Positionnement de la contribution de cet article

Cet article fournit pour la première fois une implémentation fonctionnelle du protocole de Stock et Johns, comblant un vide de dix ans dans ce domaine de recherche, et l'étend à la protection du protocole FIDO2.

Conclusion et discussion

Conclusions principales

  1. Preuve de praticité : Implémentation réussie d'un canal de transmission sécurisé des mots de passe dans les navigateurs modernes
  2. Compatibilité étendue : Compatible avec la grande majorité des sites Web populaires, faisabilité pratique du déploiement élevée
  3. Amélioration de la sécurité : Protection efficace contre plusieurs menaces d'attaques locales
  4. Extensibilité : La conception peut être généralisée à d'autres interactions navigateur-serveur nécessitant une protection sécurisée

Limitations

  1. Incompatibilité de 3 % des sites Web : Principalement due au traitement des mots de passe côté client
  2. Surcharge de performance : L'opération de remplacement a un coût temporel certain
  3. Exigence de modification du navigateur : Nécessite l'adoption des modifications d'API par les fabricants de navigateurs
  4. Modification du serveur FIDO2 : Bien que mineure, elle nécessite toujours la coopération côté serveur

Directions futures

  1. Amélioration de la compatibilité : Identification et traitement automatiques des JavaScript pertinents par analyse de programme
  2. Extension à l'entrée manuelle : Protection des mots de passe saisis manuellement par les utilisateurs
  3. Détection d'attaques : Utilisation du mécanisme de nonce pour détecter et signaler les attaques
  4. Protection d'autres API : Extension de la conception à d'autres API de navigateur comme le presse-papiers et le système de fichiers

Évaluation approfondie

Points forts

  1. Valeur pratique élevée : Résout un problème de sécurité réel affectant des dizaines de millions d'utilisateurs de gestionnaires de mots de passe
  2. Implémentation d'ingénierie complète : Fournit une implémentation Firefox complète et des directives détaillées de portage
  3. Évaluation complète : Comprend une évaluation complète de la sécurité, de la compatibilité et de la performance
  4. Extension théorique : Généralisation réussie du concept au protocole FIDO2
  5. Retours de l'industrie : Retours positifs des fabricants de navigateurs et des équipes de gestionnaires de mots de passe

Insuffisances

  1. Défis de déploiement : Nécessite la coopération des fabricants de navigateurs, avec une incertitude quant à la promotion
  2. Problèmes de compatibilité : Incompatibilité persistante de 3 % des sites Web
  3. Limitations du modèle de menace : Ne protège pas contre les attaques au niveau du système d'exploitation ou les attaques de l'homme du milieu TLS
  4. Risque de confusion de l'utilisateur : Les utilisateurs peuvent être confus par les mots de passe aléatoires affichés

Impact

  1. Contribution académique : Réactivation d'une direction de recherche stagnante depuis dix ans
  2. Valeur pratique : Amélioration immédiate de la sécurité pour des dizaines de millions d'utilisateurs
  3. Potentiel de normalisation : Possibilité de promotion de l'adoption généralisée par la normalisation W3C
  4. Inspiration pour la recherche : Fournit un paradigme de conception pour la protection sécurisée d'autres API de navigateur

Scénarios d'application

  1. Environnement d'entreprise : Déploiement en entreprise avec exigences de sécurité élevées
  2. Comptes de haute valeur : Authentification pour les services importants tels que les banques et les gouvernements
  3. Utilisateurs conscients de la sécurité : Groupes d'utilisateurs ayant des exigences élevées en matière de confidentialité et de sécurité
  4. Prototype de recherche : Plateforme de base pour la recherche ultérieure en sécurité des navigateurs

Références bibliographiques

Cet article cite 47 références connexes, comprenant principalement :

  • L'article original du protocole de substitution de nonce de Stock et Johns
  • Recherche connexe sur l'analyse de sécurité des gestionnaires de mots de passe
  • Recherche empirique sur les menaces de sécurité des extensions de navigateur
  • Littérature d'analyse de sécurité du protocole FIDO2
  • Recherche sur l'état actuel du suivi Web et des attaques XSS

Évaluation globale : Ceci est un article de sécurité des systèmes ayant une valeur pratique importante, convertissant avec succès la conception théorique en un système prototype fonctionnel et validant son efficacité par des expériences complètes. L'article non seulement résout un problème de sécurité important dans le monde réel, mais ouvre également de nouvelles directions pour la recherche future. Bien qu'il fasse toujours face à des défis en matière de déploiement et de compatibilité, sa contribution technique et sa valeur pratique en font une avancée importante dans le domaine de la sécurité des navigateurs.