Je vous ai déjà parlé de Dashlane. Franchement c’est le bonheur.
Puis je suis tombé aujourd’hui sur un échange à propos de faiblesses dans le code d’auto-completion de Lastpass. Et là, même si le problème de Lastpass ne se retrouve pas sur Dashlane j’ai eu un malaise… « Merde, mes extensions Chrome et Firefox arrivent à tirer des mots de passe de Dashlane un peu trop facilement »
* * *
Dashlane a une app native très classique. C’est elle qui a les mots de passe (chiffrés), que je déverrouille avec mon mot de passe maître. À partir de la quelle je peux copier les identifiants et mots de passe.
De cette app native, j’ai pu installer les extensions Chrome et Firefox. Je suppose que ça construit une extension qui m’est spécifique, avec des jetons d’accès qui sont différents chez chacun.
Ces extensions peuvent librement ajouter et récupérer les mots de passe depuis l’app native. Rien à faire, rien à déverrouiller. Pour peu que l’app native soit ouverte, ça fonctionne.
* * *
Qu’est-ce qui m’empêche de créer un script ou une application qui ouvre le profil Firefox sur le disque, y trouve les fichiers de l’extension Dashlane, y lit les jetons d’accès et s’adresse à l’app native Dashlane en cours d’exécution pour en extraire tous les mots de passe ?
Ok, il faudrait que mon script ait accès à mon disque dur, ce qui est en soi un problème, mais si j’utilise Dashlane ce n’est pas pour que n’importe quelle application qui a accès à mon disque puisse accéder à mes mots de passe en clair aussi facilement.
En réalité c’est probablement plus complexe. Un petit tour dans les fichiers javascript de Dashlane me fait dire qu’il y a du chiffrement en jeu et qu’il faudrait quelques jours de boulot pour réutiliser le même canal de communication. Rien d’impossible cependant.
En fait je peux même probablement récupérer tout le fichier Javascript et l’utiliser en tapant directement dans l’API interne plutôt que de mimer ce qu’elle sait faire.
Tout au plus il y a peut-être un système qui identifie le nom de l’application source qui s’adresse à l’app native Dashlane. Je doute que ça aussi soit incontournable.
* * *
Bref, c’est moi où j’ai un gros problème avec Dashlane ? Si un techos de Dashlane passe par là, sans forcément révéler tous les mécanismes dans le détail, j’aimerais bien savoir pourquoi je peux faire confiance au système mis en place.
5 réponses à “J’ai un problème (sécurité) avec Dashlane – Vous m’aidez ?”
Bonjour,
au vu des évènements récents et des vulnérabilités récemments divulguées par Tavis Ormandy autour de Lastpass, ce sont effectivement des interrogations légitimes.
Nous essayons chez Dashlane de fournir autant de clarifications que possible au travers de notre Security White Paper : https://www.dashlane.com/download/Dashlane-Security-Whitepaper-V2.8.pdf
Pour simplifier, les process autorisés (extension dans le navigateur) doivent être signés par un certificat valide et whitelistés par le process Dashlane pour être autorisés à communiquer.
Nous utilisons de plus AES pour chiffrer cette communication.
Malgré toutes les contre-mesures et protections mises en place par Dashlane, il est malheureusement une réalité qu’un poste compromis exposera l’utilisateur à tout type d’acte malveillant.
Cette problématique relève plus de la protection du système au travers des différents moyens existants que de celle du password manager.
N’hésitez pas à nous contacter sur security@dashlane.com pour plus d’informations.
Merci Cyril
Je me permet d’être en désaccord sur cette dernière phrase. Je sais bien que vous ne pourrez jamais garantir la sécurité si le système local est sérieusement compromis.
Maintenant si n’importe quel programme ayant accès au disque peut exfiltrer des mots de passe, c’est un problème sérieux pour moi. Ce serait vraiment simple à faire, invisible, et ça mettrait pas mal à danger mes attentes sur la sécurité apporté par une base de mots de passe chiffrés. De ce que j’en vois (mais peut-être me trompe-je), ça ne m’apporterait alors pas beaucoup plus de sécurité que des moyens beaucoup plus naïfs.
*
Bref, vu que l’autorisation d’accès de l’extension est permanente, j’attendais deux choses:
1- Que l’extension ait une clef d’accès qui lui est propre pour s’adresser à l’application principale. L’idée c’est que n’importe quelle extension ne puisse pas trop facilement se faire passer pour l’extension Dashlane et exfiltrer les mots de passe. Ce n’est pas parfait (une extension qui aurait les droits d’accès pour ça pourrait aller lire les fichiers sur disque, récupérer la clef d’accès et usurper le canal de communication) mais si on ajoute la signature des extensions de Chrome et Firefox, ça me va comme équilibre.
2- Que l’application native n’accepte pas un canal de communication avec un autre processus que celui attendu, et ce même s’il a la bonne clef. L’idée c’est que seul le processus Chrome/Firefox dont le binaire est à l’emplacement prévu sur le disque puisse utiliser un canal avec la clef de l’extension Chrome/Firefox. Ainsi n’importe quel programme sur le système ne pourra silencieusement pas lire les fichiers dans le profil Chrome/Firefox, récupérer la clef et exfiltrer les mots de passe de Dashlane.
*
Le 1 vous le faites, je suis allé fouiller dans l’extension avant d’écrire mon billet et c’est confirmé dans votre white paper.
Le 2 je n’en sais rien. La réponse que vous m’avez apporté ne me parait pas si claire et rien n’est indiqué à ce sujet dans votre white papier.
Il faudrait avoir un moyen au niveau de l’OS d’identifier le processus qui communique, et connaitre au minimum le chemin d’accès de l’application sur disque (et voir ensuite si ce dernier est dans la liste blanche). Je ne sais même pas si ça existe (désolé, ce n’est pas mon environnement habituel, je fais essentiellement du web et réseau).
Même après votre réponse, je ne suis pas certain de savoir si vous le faites ou non. Est-ce possible d’avoir une confirmation explicite sur ce point et savoir si c’est quelque chose de fiable ou juste un best-effort ?
Je suis conscient que ce n’est pas parfait non plus, mais remplacer le navigateur à son emplacement sur le disque demande déjà les droits d’administrateur sur Windows ou Linux. Sur Mac on peut aussi vérifier la signature du .app local. Disons que j’ai l’impression que ça limiterait beaucoup les risques (mais encore une fois, je suis peut-être naïf à ce niveau).
*
En l’état, sans confirmation pour le (2), Dashlane ne me semble pas apporter grand chose de plus que le dépôt de mon navigateur sans utiliser de mots de passe maître. C’est un peu mieux que si tout était en clair, mais pas énormément non plus.
Du coup ça joue beaucoup dans ce que je vais accepter d’en faire.
> seul le processus Chrome/Firefox dont le binaire est à l’emplacement prévu sur le disque
Pas si simple.
Exemple:
/Applications/Firefox.app:
/Applications/FirefoxAurora.app:
/Applications/FirefoxNightly.app:
Sans compter si tu places le programme ailleurs.
En revanche les profils sont relativement stables.
ls ~/Library/Application\ Support/Firefox/Profiles/
3v3rp4wn3d.default/
etc.
ls ~/Library/Application\ Support/Firefox/Profiles/
Je vous confirme que nous vérifions comme votre point « 2 » le décrit si le process est autorisé à communiquer (avec un mécanisme classique de vérification de la signature électronique du process appelant qui est considéré comme fiable).
Le white paper actuel ne descend en effet pas dans ce niveau de détail, mais ce point mérite effectivement un paragraphe que nous ajouterons!
Merci pour les réponses