Enregistrer ses mots de passe dans son navigateur
Introduction
Aucune statistique ni étude n’a été réalisée, mais je pense pouvoir dire sans trop de problèmes qu’une partie de la population stocke ses mots de passe dans son navigateur -magnifique tautologie n’est-ce pas ?-. Et c’est compréhensible, ils -les navigateurs- sont assez fiers de mettre en avant ce genre de fonctionnalités, et ça offre une telle simplicité qu’on peut difficilement s’en abstenir.
Toutefois, est-ce une bonne idée d’utiliser cette fonctionnalité ? Les mots de passe sont-ils bien gardés ?
Pour y répondre, nous allons analyser le stockage et le chiffrement des mots de passe des trois navigateurs principaux : Firefox, Chrome (et par extension son équivalent libre Chromium) et Internet Explorer (pas Edge, n’ayant pas eu la documentation ni le temps pour le décortiquer).
Firefox
Firefox crée une clé aléatoirement et ajoute un sel fixe. Cette dernière est ensuite chiffrée avec l’algorithme 3DES et stockée dans le fichier key3.db. Elle servira pour chiffrer (à l’aide du même algorithme) un mot de passe qu’on veut enregistrer. Ce dernier sera stocké dans un fichier (signons.sqlite ou logins.json selon la version), encodé en base64.
Par défaut, aucun mot de passe maître n’est demandé à l’utilisateur, donc la clé de déchiffrement est retrouvable simplement dans le fichier key3.db (vu que le chiffrement est symétrique).
Notons que si l’utilisateur configure Firefox avec un mot de passe maître, il faudra trouver ce dernier pour déchiffrer.
Google Chrome
Google Chrome utilise une fonction de l’API Windows pour chiffrer les mots de passe (CryptProtectData de la librairie Win32Crypt), et ces derniers sont stockés dans une base de données locale SQLite.
Le hic : il suffit de faire appel à cette même “librairie” (la fonction UnCryptProtectData) pour déchiffrer les mots de passe vu qu’aucune sécurité supplémentaire n’a été ajoutée (entropie). L’avantage d’utiliser une fonction bas niveau de Windows est qu’on n’a pas à se soucier de la génération de clé. Le problème de cela, c’est qu’en ne mettant pas d’entropie (c-à-d une valeur unique pour chaque application, empêchant une application autre que celle qui a chiffrée de déchiffrer), on laisse Windows tout gérer, et donc rien n’empêche un déchiffrement par le même procédé.
Internet Explorer
Internet Explorer utilise une technique plutôt intelligente et parmi les plus efficaces. Il stocke les mots de passe dans la base de registre Windows, et ceux-ci sont effectivement chiffrés mais avec, comme clé, l’URL du site en question. Cette dernière est aussi stockée dans le registre mais hachée en SHA-1 (et via le hachage on ne peut accéder à l’information initiale -ici l’URL-).
Lorsqu’on navigue sur un site avec Internet Explorer, celui-ci va hacher l’URL et voir si elle fait partie des valeurs dans sa clé de registre. Si oui, il sait que l’URL non hachée est la clé de déchiffrement pour le mot de passe (et peut donc y accéder).
Pour l’anecdote, les pirates qui souhaitent accéder aux mots de passe stockés par ce navigateur ne peuvent les déchiffrer : il faut donc qu’ils utilisent des méthodes intelligentes pour les retrouver. Ils pourront par exemple examiner l’historique et les habitudes de navigation de leur cible pour “déduire” les principales clés.
Conclusion
On peut concéder que cette solution présente un avantage certain de simplicité et d’ergonomie, mais force est de constater que 2 des 3 navigateurs analysés aujourd’hui ne sont pas capables de garder secret les mots de passe enregistrés avec les paramètres par défaut. Quant à Internet Explorer, il a beau être ingénieux et ne pas laisser les clés de manière visible, on aura vite-fait de retrouver les mots de passe enregistrés des sites les plus usités (et une petite inspection des habitudes de navigation permettra de trouver les autres). Puis bon, il y a des tas de raisons qui font qu’il vaut mieux l’éviter.
Alors oui, il faut un accès préalable à votre système pour les exploiter (via un logiciel malveillant ou même un accès physique), mais ce n’est pas pour autant qu’il faut négliger cet aspect.
De manière générale, préférez votre tête ou des logiciels coffre-fort comme KeePassX par exemple. Vous pouvez aussi ajouter un mot de passe maître sur Firefox.
Source : Misc n°81