Une analyse réalisée par Independent Security Evaluators (ISE) a révélé le problème à des degrés divers dans des versions de 1Password, Dashlane, LastPass et KeePass.
La bonne nouvelle est que tous les gestionnaires de mots de passe ont réussi à sécuriser ces derniers lorsque le logiciel n’était pas en cours d’exécution, à savoir lorsque les mots de passe, y compris le mot de passe principal, étaient chiffrés au sein de la base de données.
Cependant, les choses se sont un peu dégradées lorsque l’ISE a examiné la manière dont ces produits sécurisaient les mots de passe à l’état verrouillé (en cours d’exécution avant la saisie du mot de passe principal ou bien après la déconnexion) et à l’état entièrement déverrouillé (après la saisie du mot de passe principal).
Plutôt que de généraliser, il vaut mieux décrire les problèmes rencontrés pour chaque produit.
1Password4 pour Windows (v4.6.2.626)
Cette version héritée conserve en mémoire une version obfusquée du mot de passe principal qui n’est pas effacée lors du retour à un état verrouillé. Dans certaines conditions, une version en clair vulnérable est laissée en mémoire.
1Password7 pour Windows (v7.2.576)
Bien qu’il s’agisse de la version actuelle, les chercheurs l’ont jugée moins sûre que 1Password4, car elle déchiffre et met en cache tous les mots de passe de la base de données plutôt que de le faire les uns après les autres. 1Password7 ne parvient pas non plus à supprimer les mots de passe de la mémoire, y compris le mot de passe principal, lors du passage à un état verrouillé. Cela compromet l’efficacité du bouton de verrouillage, obligeant l’utilisateur à quitter complètement le programme.
Dashlane pour Windows (v6.1843.0)
Ce gestionnaire n’expose qu’un seul mot de passe à la fois en mémoire jusqu’à ce qu’un utilisateur ne mette à jour une entrée. La base de données entière est alors exposée en clair. Cela reste vrai même lorsque l’utilisateur verrouille la base de données.
KeePass Password Safe (v2.40)
Les entrées de la base de données ne sont pas effacées de la mémoire après leur utilisation, bien qu’heureusement le mot de passe principal ne soit pas récupérable.
LastPass pour Applications (v4.1.59)
Les entrées de la base de données restent en mémoire même lorsque l’application est verrouillée. De plus, lors de l’extraction de la clé de déchiffrement, le mot de passe principal est “révélé au niveau d’une mémoire tampon string”, au niveau de laquelle il n’est pas effacé, même lorsque l’application est verrouillée (remarque : cette version est utilisée pour gérer les mots de passe de l’application et est distincte du plugin web).
Il est clair que si des mots de passe, en particulier des mots de passe principaux, traînent en mémoire lorsque l’application est verrouillée, cela laisse entrevoir la possibilité que des malwares puissent voler ces données après avoir infecté un ordinateur.
Le contre-argument est que, si un malware infecte votre ordinateur, tout ou une partie de ce système est en danger, avec ou sans une obfuscation en mémoire. Aucune application de sécurité ne pourra éventuellement vous garantir une protection contre ce type de menace.
La réponse ?
Certains éditeurs des gestionnaires de mots de passe concernés ont publiquement défendu leurs produits, affirmant que les problèmes découverts par les chercheurs faisaient partie d’un compromis complexe en matière de conception.
LastPass a également affirmé avoir résolu les problèmes rencontrés dans son produit et a indiqué qu’un attaquant aurait toujours besoin d’un accès privilégié au PC de l’utilisateur.
Est-ce la fin des gestionnaires de mot de passe ?
Bref non. Notre conseil est de continuer à utiliser les gestionnaires de mot de passe, car les problèmes constatés sont encore largement compensés par les avantages connus que confèrent leur utilisation et seront probablement résolus par des mises à jour de toutes les façons.
Ce qui compte, c’est que les chercheurs mettent en lumière les points faibles de ces produits et que les éditeurs mettent tout en œuvre pour les corriger le plus rapidement possible.
En cas de doute, une idée serait de fermer vos gestionnaires de mots de passe quand il ne sont pas utilisés.
Et bien sûr, n’oubliez pas d’utiliser une authentification à deux facteurs chaque fois que vous le pouvez. Ainsi, même si quelqu’un a votre mot de passe, il ne pourra tout de même pas se connecter en se faisant passer pour vous.
Billet inspiré de Password managers leaking data in memory, but you should still use one, sur Sophos nakedsecurity.