La promesse des gestionnaires de mots de passe qu’ils ne peuvent pas voir vos coffres-forts n’est pas toujours vraie
Au cours des 15 dernières années, les gestionnaires de mots de passe sont passés d’un outil de sécurité de niche utilisé par les technophiles à un outil de sécurité indispensable pour les masses, avec environ 94 millions d’adultes américains, soit environ 36 pour cent d’entre eux, qui les ont adoptés. Ils stockent non seulement les mots de passe pour les comptes de pension, financiers et de messagerie, mais souvent aussi les identifiants de cryptomonnaie, les numéros de cartes de paiement et d’autres données sensibles.
Les huit principaux gestionnaires de mots de passe ont tous adopté le terme connaissance zéro pour décrire le système de cryptage complexe qu’ils utilisent pour protéger les coffres-forts de données que les utilisateurs stockent sur leurs serveurs. Les définitions varient légèrement d’un fournisseur à l’autre, mais elles se résument généralement à une assurance audacieuse: il n’y a aucun moyen pour des initiés malveillants ou des pirates informatiques qui parviennent à compromettre l’infrastructure cloud de voler les coffres-forts ou les données qui y sont stockées. Ces promesses ont du sens, étant donné les précédentes violations de LastPass et l’attente raisonnable que des pirates informatiques de niveau étatique ont à la fois le motif et la capacité d’obtenir des coffres-forts de mots de passe appartenant à des cibles de grande valeur.
Une assurance audacieuse démystifiée
Typiques de ces affirmations sont celles faites par Bitwarden, Dashlane et LastPass, qui ensemble sont utilisés par environ 60 millions de personnes. Bitwarden, par exemple, dit que même l’équipe de Bitwarden ne peut pas lire vos données, même si nous le voulions. Dashlane, quant à lui, affirme que sans le mot de passe principal d’un utilisateur, les acteurs malveillants ne peuvent pas voler les informations, même si les serveurs de Dashlane sont compromis. LastPass dit que personne ne peut accéder aux données stockées dans votre coffre-fort LastPass, sauf vous, même pas LastPass.
De nouvelles recherches montrent que ces affirmations ne sont pas vraies dans tous les cas, en particulier lorsque la récupération de compte est en place ou que les gestionnaires de mots de passe sont configurés pour partager des coffres-forts ou organiser des utilisateurs en groupes. Les chercheurs ont effectué une rétro-ingénierie ou analysé de près Bitwarden, Dashlane et LastPass et ont identifié des moyens par lesquels quelqu’un ayant le contrôle du serveur, que ce soit administratif ou résultant d’une compromission, peut en fait voler des données et, dans certains cas, des coffres-forts entiers. Les chercheurs ont également conçu d’autres attaques qui peuvent affaiblir le cryptage au point que le texte chiffré peut être converti en texte brut.
Les vulnérabilités que nous décrivons sont nombreuses mais pour la plupart pas profondes dans un sens technique, ont écrit les chercheurs de l’ETH Zurich et de l’USI Lugano. Pourtant, elles n’ont apparemment pas été trouvées auparavant, malgré plus d’une décennie de recherche universitaire sur les gestionnaires de mots de passe et l’existence de multiples audits des trois produits que nous avons étudiés. Cela motive des travaux supplémentaires, tant en théorie qu’en pratique.
Les chercheurs ont déclaré lors d’entretiens que plusieurs autres gestionnaires de mots de passe qu’ils n’ont pas analysés aussi étroitement souffrent probablement des mêmes défauts. Le seul qu’ils étaient libres de nommer était 1Password. Presque tous les gestionnaires de mots de passe, ont-ils ajouté, sont vulnérables aux attaques uniquement lorsque certaines fonctionnalités sont activées.
Les plus graves des attaques, ciblant Bitwarden et LastPass, permettent à un initié ou à un attaquant de lire ou d’écrire le contenu de coffres-forts entiers. Dans certains cas, elles exploitent des faiblesses dans les mécanismes de séquestre de clés qui permettent aux utilisateurs de récupérer l’accès à leurs comptes lorsqu’ils perdent leur mot de passe principal. D’autres exploitent des faiblesses dans la prise en charge des versions héritées du gestionnaire de mots de passe. Une attaque de vol de coffre-fort contre Dashlane permettait la lecture mais pas la modification des éléments du coffre-fort lorsqu’ils étaient partagés avec d’autres utilisateurs.
Mise en scène du vieux changement de clé
L’une des attaques ciblant le séquestre de clés Bitwarden est effectuée lors de l’inscription d’un nouveau membre d’une famille ou d’une organisation. Après qu’un administrateur de groupe Bitwarden invite le nouveau membre, le client de l’invité accède à un serveur et obtient une clé symétrique de groupe et la clé publique du groupe. Le client crypte ensuite la clé symétrique avec la clé publique du groupe et l’envoie au serveur. Le texte chiffré résultant est ce qui est utilisé pour récupérer le compte du nouvel utilisateur. Ces données ne sont jamais vérifiées pour leur intégrité lorsqu’elles sont envoyées du serveur au client lors d’une session d’inscription au compte.
L’adversaire peut exploiter cette faiblesse en remplaçant la clé publique du groupe par une provenant d’une paire de clés créée par l’adversaire. Comme l’adversaire connaît la clé privée correspondante, il peut l’utiliser pour déchiffrer le texte chiffré et continuer à effectuer une récupération de compte au nom de l’utilisateur ciblé. Le résultat est que l’adversaire peut lire et modifier l’intégralité du contenu du coffre-fort membre dès qu’un invité accepte une invitation d’une famille ou d’une organisation.
Normalement, cette attaque ne fonctionnerait que lorsqu’un administrateur de groupe a activé le mode de récupération automatique, qui, contrairement à une option manuelle, ne nécessite pas d’interaction du membre. Mais comme la politique de groupe que le client télécharge lors de la politique d’inscription n’est pas vérifiée pour son intégrité, les adversaires peuvent définir la récupération sur automatique, même si un administrateur avait choisi un mode manuel qui nécessite une interaction de l’utilisateur.
Aggravant la gravité, l’adversaire dans cette attaque obtient également une clé symétrique de groupe pour tous les autres groupes auxquels le membre appartient, car ces clés sont connues de tous les membres du groupe. Si l’un des groupes supplémentaires utilise la récupération de compte, l’adversaire peut également obtenir les coffres-forts du membre pour eux. Ce processus peut être répété à la manière d’un ver, infectant toutes les organisations qui ont activé la récupération de clé et qui ont des membres qui se chevauchent, explique l’article de recherche.
Une deuxième attaque ciblant la récupération de compte Bitwarden peut être effectuée lorsqu’un utilisateur effectue une rotation des clés de coffre-fort, une option que Bitwarden recommande si un utilisateur pense que son mot de passe principal a été compromis. Lorsque la récupération de compte est activée, manuellement ou automatiquement, le client utilisateur régénère le texte chiffré de récupération, ce qui, comme décrit précédemment, implique d’obtenir une nouvelle clé publique qui est cryptée avec la clé publique de l’organisation. Les chercheurs ont désigné la clé publique du groupe comme pkorg. Ils désignent la clé publique fournie par l’adversaire comme pkadvorg, le texte chiffré de récupération comme crec et la clé symétrique utilisateur comme k’.
L’article explique:
Le point clé ici est que pkorg n’est pas récupéré à partir du coffre-fort de l’utilisateur; au contraire, le client effectue une opération de synchronisation avec le serveur pour l’obtenir. De manière cruciale, les données d’organisation fournies par cette opération de synchronisation ne sont en aucun cas authentifiées. Cela fournit donc à l’adversaire une autre occasion d’obtenir la clé utilisateur d’une victime, en fournissant une nouvelle clé publique pkadvorg, pour laquelle ils connaissent le skadvorg et en définissant l’inscription à la récupération de compte sur vrai. Le client enverra alors un texte chiffré de récupération de compte crec contenant la nouvelle clé utilisateur, que l’adversaire peut déchiffrer pour obtenir k’.
La troisième attaque sur la récupération de compte Bitwarden permet à un adversaire de récupérer la clé principale d’un utilisateur. Elle abuse du connecteur de clé, une fonctionnalité principalement utilisée par les clients d’entreprise.
Plus de moyens de piller les coffres-forts
L’attaque permettant le vol de coffres-forts LastPass cible également le séquestre de clés, en particulier dans les versions Teams et Teams 5, lorsque la clé principale d’un membre est réinitialisée par un utilisateur privilégié connu sous le nom de superadmin. La prochaine fois que le membre se connecte via l’extension de navigateur LastPass, son client récupérera une paire de clés RSA attribuée à chaque superadmin dans l’organisation, cryptera sa nouvelle clé avec chacune et enverra le texte chiffré résultant à chaque superadmin.
Comme LastPass ne parvient pas non plus à authentifier les clés de superadmin, un adversaire peut à nouveau remplacer la clé publique du superadmin (pkadm) par sa propre clé publique (pkadvadm).
En théorie, seuls les utilisateurs des équipes où la réinitialisation de mot de passe est activée et qui sont sélectionnés pour la réinitialisation devraient être affectés par cette vulnérabilité, ont écrit les chercheurs. En pratique, cependant, les clients LastPass interrogent le serveur à chaque connexion et récupèrent une liste de clés d’administrateur. Ils envoient ensuite les textes chiffrés de récupération de compte indépendamment du statut d’inscription. L’attaque nécessite cependant que l’utilisateur se connecte à LastPass avec l’extension de navigateur, et non avec l’application cliente autonome.
Plusieurs attaques permettent la lecture et la modification de coffres-forts partagés, qui permettent à un utilisateur de partager des éléments sélectionnés avec un ou plusieurs autres utilisateurs. Lorsque les utilisateurs de Dashlane partagent un élément, leurs applications clientes échantillonnent une nouvelle clé symétrique, qui crypte directement l’élément partagé ou, lors du partage avec un groupe, crypte les clés de groupe, qui à leur tour cryptent l’élément partagé. Dans les deux cas, la ou les paires de clés RSA nouvellement créées, appartenant soit à l’utilisateur partagé, soit au groupe, ne sont pas authentifiées. L’élément est ensuite crypté avec la ou les clés privées.
Un adversaire peut fournir sa propre paire de clés et utiliser la clé publique pour crypter le texte chiffré envoyé aux destinataires. L’adversaire déchiffre ensuite ce texte chiffré avec sa clé secrète correspondante pour récupérer la clé symétrique partagée. Avec cela, l’adversaire peut lire et modifier tous les éléments partagés. Lorsque le partage est utilisé dans Bitwarden ou LastPass, des attaques similaires sont possibles et conduisent à la même conséquence.
Une autre avenue pour les attaquants ou adversaires ayant le contrôle d’un serveur consiste à cibler la rétrocompatibilité que tous les trois gestionnaires de mots de passe fournissent pour prendre en charge les versions plus anciennes et moins sécurisées. Malgré les changements progressifs conçus pour renforcer les applications contre les attaques mêmes décrites dans l’article, les trois gestionnaires de mots de passe continuent de prendre en charge les versions sans ces améliorations. Cette rétrocompatibilité est une décision délibérée destinée à empêcher les utilisateurs qui n’ont pas mis à jour de perdre l’accès à leurs coffres-forts.
La gravité de ces attaques est inférieure à celle des précédentes décrites, à l’exception d’une, qui est possible contre Bitwarden. Les versions plus anciennes du gestionnaire de mots de passe utilisaient une seule clé symétrique pour crypter et déchiffrer la clé utilisateur du serveur et les éléments à l’intérieur des coffres-forts. Cette conception permettait la possibilité qu’un adversaire puisse falsifier le contenu. Pour ajouter des vérifications d’intégrité, les nouvelles versions fournissent un cryptage authentifié en augmentant la clé symétrique avec une fonction de hachage HMAC.
Pour protéger les clients utilisant des versions d’application plus anciennes, le texte chiffré Bitwarden a un attribut de 0 ou 1. Un 0 désigne le cryptage authentifié, tandis qu’un 1 prend en charge l’ancien schéma non authentifié. Les versions plus anciennes utilisent également une hiérarchie de clés que Bitwarden a dépréciée pour renforcer l’application. Pour prendre en charge l’ancienne hiérarchie, les nouvelles versions client génèrent une nouvelle paire de clés RSA pour l’utilisateur si le serveur n’en fournit pas une. La nouvelle version procédera au cryptage de la partie clé secrète avec la clé principale si aucun texte chiffré utilisateur n’est fourni par le serveur.
Cette conception ouvre Bitwarden à plusieurs attaques. La plus grave permet la lecture, mais pas la modification, de tous les éléments créés après l’exécution de l’attaque. À un niveau simplifié, cela fonctionne parce que l’adversaire peut falsifier le texte chiffré envoyé par le serveur et amener le client à l’utiliser pour dériver une clé utilisateur connue de l’adversaire.
La modification provoque l’utilisation de CBC, chaînage de blocs de chiffrement, une forme de cryptage vulnérable à plusieurs attaques. Un adversaire peut exploiter cette forme plus faible en utilisant une attaque par oracle de remplissage et continuer à récupérer le texte brut du coffre-fort. Comme la protection HMAC reste intacte, la modification n’est pas possible.
De manière surprenante, Dashlane était vulnérable à une attaque similaire par oracle de remplissage. Les chercheurs ont conçu une chaîne d’attaque compliquée qui permettrait à un serveur malveillant de rétrograder le coffre-fort d’un utilisateur Dashlane vers CBC et d’exfiltrer le contenu. Les chercheurs estiment que l’attaque nécessiterait environ 125 pour déchiffrer le texte chiffré.
D’autres attaques encore contre les trois gestionnaires de mots de passe permettent aux adversaires de réduire considérablement le nombre sélectionné d’itérations de hachage, dans le cas de Bitwarden et LastPass






