Journal Firefox Sync et les mots de passe en clair sur le cloud 😤

Posté par  (site web personnel) . Licence CC By‑SA.
6
28
fév.
2017

Nal', je dois t'avouer quelque chose.

Il y a bien des années, j'utilisais Chromium avec la synchro sur le nuage de Google. Pas totalement fou, j'utilisais le chiffrement des mots de passe annoncé comme était fait localement, avec un mot de passe maître. L'interface web du panneau de contrôle Google m'indique bien que la synchro Chrome est activée aussi pour les mots de passe, mais qu'ils ne sont pas affichables car chiffrés.

Le temps passe, et je repasse sous Firefox. Bla bla bla, je fais un setup similaire avec un mot de passe maître et tutti quanti et ça marche très bien©.

Pourtant, quelque chose m'a fait tiquer récemment (et ça aurait dû bien avant!): lors de la mise en place d'une synchronisation sur une autre machine/smartphone/profil, il synchronise tout mon bazar et est directement utilisable. Là ou le bât blesse, c'est que dans [about:preferences#security], j'ai tout mes logins et passwords d'affichés joyeusement, sans demander mon mot de passe maître.

Les deux solutions que je vois sont :

  • Firefox peut déchiffrer les mots de passes chiffrés avec un mot de passe maître, ce qui serait surprenant. (J'ai lu il y a longtemps que Mozilla a bricolé ce système dans son coin et n'est pas audité, mais que c'est néanmoins suffisamment bien fait pour ne pas être troué à priori)
  • Firefox Sync, qui demande le mot de passe maître avant de pouvoir synchroniser, déchiffre joyeusement tout avant de balancer tout ça en ligne. Et c'est le plus vraisemblable.

Donc si de vilaines personnes mal intentionnées veulent une (très) belle base de données à siphonner, le jeu en vaut sûrement la chandelle du côté de Mozilla d'autant plus qu'ils n'ont probablement pas les mêmes moyens de sécurisation qu'à Google.

En attendant, vous me conseillez de remplacer le gestionnaire de mots de passe de Firefox par quoi ? Il me faut une synchro entre des Firefox Linux/Windows/macOS/Android.

NdM.: voir le fil de discussion aboutissant à ce commentaire rectificatif

  • # alternatives

    Posté par  (Mastodon) . Évalué à 3.

    J'utilises pour l'instant du keepass synchronisé avec syncthing. C'est à configurer mais ça marche.

    C'est possible à faire de pleins d'autres façons.

    Il y'a aussi les passwords manager dans le cloud si tu leurs fais confiance

    Une alternative, c'est de ne pas stocker les mots de passe mais de les générer en fonction d'un algo, c'est ce que propose masterpassword. J'ai pas encore étudié la question profondément, s'il est possible de récupérer l'algo de génération et donc d'autres mot de passes une fois que tu en connais déjà 1 ou 2 etc, mais ça semble intéressant sur le papier.

    Jami: beabb2b063da0a2f0a2acaddcd9cc1421245d5de

    • [^] # Alternatives algorithmiques

      Posté par  (Mastodon) . Évalué à 8.

      Un des gros problèmes à l’usage des solutions de génération de mots de passes, c’est la rotation…
      Quand ton mot de passe « maître » sert de graine pour la fonction de génération, si tu veux le changer, il faut aller mettre à jour le mot de passe partout. Si un service te demande une modification du mot de passe (temporelle ou à la suite d’une suspicion de compromission), tu es obligé de rajouter un sel particulier pour ce service, ce qui fait que tu finis par devoir retenir autant de sels que de mots de passes…

      Ensuite, il y a un énorme problème de sécurité, à la simple condition de connaître l’algorithme que tu utilise, il suffit de récupérer un seul de tes mots de passes pour pouvoir attaque par force brute, tranquillement et hors ligne ton mot de passe maître et par là risquer de compromettre l’ensemble de tes mots de passes. C’est ce qui m’a convaincu d’abandonner ces solutions et de m’en remettre à une bonne vielle base Keepass.

      • [^] # Re: Alternatives algorithmiques

        Posté par  (Mastodon) . Évalué à 2.

        J'avais pensé à ton deuxième point (raison pour laquelle je n'ai pas fais de switch depuis keepass), mais pas à la première. C'est effectivement très limitant.

        Jami: beabb2b063da0a2f0a2acaddcd9cc1421245d5de

        • [^] # Re: Alternatives algorithmiques

          Posté par  (site web personnel) . Évalué à 2.

          Un des gros problèmes à l’usage des solutions de génération de mots de passes, c’est la rotation…
          Quand ton mot de passe « maître » sert de graine pour la fonction de génération, si tu veux le changer, il faut aller mettre à jour le mot de passe partout.

          Ceci est un élément traité dans le site, et il explique que l'approche doit être différente. En effet, tu dois choisir un mot de passe complexe et que tu sois sûr de retenir pour éviter d'avoir à le régénérer. Et surtout personne ne doit le connaître, jamais. L'auteur définit pourquoi ce problème est en fait aussi un avantage - changing your master password: c'est toi qui a le contrôle sur le point faible.

          =================

          Si un service te demande une modification du mot de passe (temporelle ou à la suite d’une suspicion de compromission), tu es obligé de rajouter un sel particulier pour ce service, ce qui fait que tu finis par devoir retenir autant de sels que de mots de passes…

          Pas pour cette appli, voir The name of the site:
          il y a un système de compteur incrémental que tu peux utiliser chaque fois que tu as besoin de changer ton mdp.

          What's the counter about? Well, if a site's password was the result of just your name, your master password, and the site's name, what would you do if somebody saw your password? Or if the site told you its password database was compromised and you need to set a new password? You'd need a way to make a new password for the site. The solution is the password counter. Increase the counter, get a new password. Don't worry too much about not remembering the counter. If you ever need to, just start the counter from one and bump it until you get the password that logs you into your site.

          ==============

          Ensuite, il y a un énorme problème de sécurité, à la simple condition de connaître l’algorithme que tu utilise, il suffit de récupérer un seul de tes mots de passes pour pouvoir attaque par force brute, tranquillement et hors ligne ton mot de passe maître et par là risquer de compromettre l’ensemble de tes mots de passes.

          C'est traité à plusieurs endroits, notamment sur la partie sécurité

          Brute-force attacks against the master key are defeated by deriving a very long (64-byte) master key from the user's master password. As a result, brute-force attacks that aim to guess the master key used to compute a site's password would take up to 137983530581000001620252739433368710545408 years to find the right master key.
          Brute-force attacks against the user's master password are defeated through the use of resource-intensive scrypt-based key derivation which makes this attack a few million times harder to execute than an ordinary brute-force attack. Thanks to this defence, it would take 560 years to discover a 6-character alphanumeric master password.

          Et dans la FAQ

          En gros il faudrait 27000 ans pour trouver "I once had a red ball" en connaissant la stratégie de génération.

          ==================

          C’est ce qui m’a convaincu d’abandonner ces solutions et de m’en remettre à une bonne vielle base Keepass.

          Qui a d'autre problèmes, évoqués par l'auteur I use this other password manager, and it's awesome

          Password Vaults: 1Password, Mac OS X Keychain, KeePass, …

          Pros: Some allow you the ability to change your master password or reset it if you forgot it.
          Cons: Your vault needs to be backed up, and you can only access your passwords if you can access the vault. Syncing the vault to all your devices is troublesome and generally relies on uploading your secrets to a company's servers. Total data loss is catastrophic.

    • [^] # Re: alternatives

      Posté par  (site web personnel) . Évalué à 2.

      Les problèmes avec générer les mots de passe depuis un algo, c'est :

      • les politiques contraignantes des sites (que des chiffres, au moins un caractère spécial, pas plus de 10 caractères, etc)
      • pas de possibilité de changer de mot de passe
      • faut quand même se souvenir du login
      • [^] # Re: alternatives

        Posté par  (site web personnel) . Évalué à 2.

        1) Tu peux générer plusieurs types de mots de passe (du code pin à la phrase de type "correct horse battery staple")
        2) Si tu parles des mots de passe de sites, tu peux les changer via un compteur (j'ai donné le lien dans un commentaire plus haut)
        3) Retenir son nom et une phrase de trois à six mots, ça va en général.

        J'utilise cette application, ça nécessite une certaine rigueur, mais je trouve vraiment cette solution très pratique.

    • [^] # Re: alternatives

      Posté par  . Évalué à 2.

      Syncthing + Keepass(X).
      Dropbox/Box/xxx Drive + Cryptomator + Keepass(X).
      Passbolt pour une équipe.

  • # Investigue !

    Posté par  (site web personnel) . Évalué à -6.

    Ben, t'as le code source, non ? Fais-nous une analyse, ou bien contacte les gens qui ont codé le truc !

    • [^] # Re: Investigue !

      Posté par  (site web personnel) . Évalué à 4.

      Perso, j'ai un peu commencer à travailler sur la partie chiffrement (aidé par Ryan Kelly de chez Mozilla).

      Si ton mot de passe est chiffré et Mozilla n'a aucun moyen de le connaitre. Je viens de faire le test ici, il me demande bien mon "Mot de passe principal", tu es sur que l'option est active chez toi?

      https://github.com/mozilla-services/syncclient/issues/30

      • [^] # Re: Investigue !

        Posté par  (site web personnel) . Évalué à 2.

        À chaque démarrage de mon Firefox, il me demande bien mon mot de passe principal.

        Par contre, il ne le fait pas quand je configure Firefox Sync sur un nouveau profil vierge. Ils ont changé quelque chose qui fait que le comportement a changé, et je suis resté sur une solution non chiffrée ?

    • [^] # Re: Investigue !

      Posté par  (site web personnel) . Évalué à 4.

      Mon investigation a montré que tous les mots de passe sont accessibles dans un nouveau profil vierge, dans lequel je n'ai jamais tapé le mot de passe maître. Que les mots de passe soient envoyés en clair ou le chiffrement est cassé en local par Firefox sont deux solution non satisfaisantes (et la 2nde n'est pas vraisemblable).

      • [^] # Re: Investigue !

        Posté par  . Évalué à 5. Dernière modification le 28 février 2017 à 22:34.

        De mon côté, j'ai toujours cru que la clé de chiffrement était le mot du passe du compte sync.

        Et que le mot de passe maître n'était utile que pour protéger le cache local de mot de passe lors de sa visualisation (ou l'utilisation, mais vraiment au niveau de l'instance locale de FF).

  • # Renseignes toi…

    Posté par  (Mastodon) . Évalué à 10.

    1. Le mot de passe de synchro sert à chiffrer TOUT le bazar avant de le pousser chez Mozilla, ils ne voient donc rien passer en clair (même pas tes paramètres).
    2. Si tu ne leur fait pas confiance, tu peux toujours monter ton serveur de synchro perso et ils ne verront plus rien.

    Concernant la synchro des mots de passe en multi-os, j’ai tout passé sous Keepass 2 (pas keepassx). Pour le moment, je fais mes synchro avec Syncthing, mais keepass2android et keepass2 disposent de suffisamment de solution de stockage « cloud » pour que tu trouves ton bonheur (webdav, FTP, et la plupart des clouds de stockage des GAFAM et autres). Avec le plugin KeeFox pour Firefox et chromeIPass pour les navigateurs Google ; si tu tiens à IE, il y a toujours le mode « saisie automatique »…

    • [^] # Re: Renseignes toi…

      Posté par  (site web personnel) . Évalué à 3.

      Le mot de passe de synchro sert à chiffrer TOUT le bazar avant de le pousser chez Mozilla

      C'est bien ce que j’espérais. Dans ce cas, pourquoi une nouvelle synchro sur un profil vierge me permet d'afficher tous les mots de passe en clair sans saisie du mot de passe maître ? C'est bien que ça a été déchiffré à un moment (très probablement avant l'envoi chez Mozilla).

      Et pour ce qui est de l'alternative, Keepass branché sur own/nextCloud semble le plus adapté.

      • [^] # Re: Renseignes toi…

        Posté par  (site web personnel) . Évalué à 5.

        Non, le mot de passe maitre ne sert pas au chiffrement si tu utilise sync, juste à te donner l'accès aux mots de passe.

        • [^] # Re: Renseignes toi…

          Posté par  (Mastodon) . Évalué à 3.

          Dans ce cas-là quelle est la clé de chiffrement ?

          Jami: beabb2b063da0a2f0a2acaddcd9cc1421245d5de

          • [^] # Re: Renseignes toi…

            Posté par  (Mastodon) . Évalué à 6.

            Le mot de passe de synchro. Celui du login/password.

            En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

            • [^] # Re: Renseignes toi…

              Posté par  (site web personnel) . Évalué à 10.

              Donc si je comprends bien, on a ce scénario :

              1. Sync demande le mot de passe maître pour lire tous les mots de passe
              2. Sync chiffre tout avec le mot de passe de synchro
              3. Mozilla récupère tout en chiffré
              4. Un nouveau client déchiffre le tout avec le mot de passe de synchro
              5. Le mot de passe maître n'est pas mis en place sur le nouveau client

              Si c'est le cas, mea cuelpa, j'ai lancé le blâme trop vite. Peut être éditer le journal pour mettre un lien dans ce thread serait de bon augure ?

      • [^] # Re: Renseignes toi…

        Posté par  (Mastodon) . Évalué à 10.

        Le mot de passe maître sert à chiffrer les mots de passes dans la base de donnée locale stockée dans ton profil. À l’ouverture de Firefox, il te le demande et peut ainsi accéder à tous tes mots de passes.
        Le mot de passe de synchro (compte Firefox) sert à chiffrer toutes les données synchronisées entre des différents profils (en transit et sur les serveurs de Mozilla).
        Le mot de passe de synchro (enfin les clés qui en dérivent) est stocké en local dans la même base que les autres et donc protégé par le mot de passe maître si activé.

        Il est donc préférable de définir un mot de passe maître (qui peut être différent sur chaque machine) AVANT de se connecter au compte Firefox et d’initier la synchronisation afin d’éviter tout stockage en clair des mots de passes sur le disque.

        Il est aussi tout à fait envisageable de décocher la synchronisation des mots de passes dans les paramètres de synchro…

    • [^] # Re: Renseignes toi…

      Posté par  (site web personnel) . Évalué à 2.

      pourquoi éviter keepassx ? tu utilises wine pour lancer keepass2 ??
      il y a d'autre aternative native que keepassx comme keepassxc

      • [^] # Re: Renseignes toi…

        Posté par  (Mastodon) . Évalué à 4.

        KeepassX a mis très longtemps à supporter le nouveau format de bases de données de Keepass2, il est toujours relativement à la traîne niveau fonctionnalités de chiffrement des bases. Il ne dispose également pas des plugins – KeepassHttp et KeepassRPC pour KeeFox, PassIFox et ChromeIPass ; les plugins de stockage de la base dans le Cloud… De mémoire, il ne sais toujours pas faire de fusion / synchronisation lorsqu’une même base est ouverte par plusieurs utilisateurs.
        Keepass2 ne nécessite pas Wine, il tourne nativement sous Mono (mais certains plugins peuvent ne pas fonctionner comme certains d’import export qui utilisent un exe ou Dll natif Windows) avec une intégration correcte (mon seul problème étant sa gestion de l’icône dans la zone de notification qui est un carré noir sous Gnome et trop grosse et moche sous KDE). Il est très bien empaqueté sous Debian et plein d’autres (par contre, il faut trouver les dépendances Mono à la main pour les plugins additionnels).
        Sous Android, il vaut mieux également utiliser Keepass2Android beaucoup plus riche et avec des fonctionnalités intéressantes – déverrouillage par empreintes digitales, clavier 2 touches (login, password), reconnaissance des applications et des sites web (en passant par la fonctionnalité de partage du navigateur). Il existe en 2 versions (avec ou sans les fonctionnalités Cloud).

      • [^] # Re: Renseignes toi…

        Posté par  (Mastodon) . Évalué à 2.

        keeweb également qui contrairement à ce que ce nom indique n'est pas que une appli web (framework electron oblige).

        Jami: beabb2b063da0a2f0a2acaddcd9cc1421245d5de

  • # passprotect

    Posté par  (site web personnel) . Évalué à 2.

    Utilise un gestionnaire de mot de passe comme https://passprotect.shadoware.org les mots de passes y sont chiffrés avec la clé maitre, et aucun moyen pour le serveur de les connaitre.

    De plus tu peux te faire ton propre serveur c'est un logiciel libre : https://github.com/phoenix741/passprotect-server

    Bon bien sur je prêche ma paroisse.

  • # Password store

    Posté par  . Évalué à 8. Dernière modification le 28 février 2017 à 18:34.

    On m'a fait découvrir pass : basé sur des outils classiques Linux : fichier, tree, gpg et git.
    Ça se synchronise parfaitement (git !), il existe des clients et extensions pour différentes plateformes et navigateurs (android, mac, …), c'est simple et pratique à utiliser.
    Que du bonheur !

    • [^] # Re: Password store

      Posté par  . Évalué à 4.

      pass qui laisse en clair la liste des sites et autre accès, un peu dommage. Ex:

      $ pass
      Password Store
      └── google.com
          └── gmail
                  └── example@gmail.com
      

      se traduit par :

      $ find .password-store
      .password-store
      .password-store/google.com
      .password-store/google.com/gmail
      .password-store/google.com/gmail/example@gmail.com.gpg
      .password-store/.gpg-id
      
      • [^] # Re: Password store

        Posté par  . Évalué à 2.

        En effet, c'est un sujet à de nombreuses discussions sur la ML. Mais comme on choisit nous même la façon d'organiser notre répertoire (pass n'impose aucune formalisation, et se contente juste de stocker des données en les chiffrant avec GPG dans une architecture un peu plus organisée qu'un dossier en vrac), on peut à sa guise choisir de ne pas avoir de dernier niveau, le nommer différemment, etc.

  • # Différences ?

    Posté par  . Évalué à 0.

    La seule différence entre Firefox et Chromium, c'est que pour afficher les mots de passe en clair à l'écran, Chromium te demande un mot de passe maître (sur Windows, c'est le mot de passe du compte). Aucun des deux ne te demande le mot de passe maître à chaque fois qu'il remplit automatiquement un formulaire de login. Et dans les deux cas, les mots de passe sont stockés sur un serveur après avoir été chiffrés localement.

    Donc le seul risque supplémentaire avec Firefox, c'est si tu laisses quelqu'un accéder à ta session sur ton ordinateur. Tu peux créer une session invité pour ce cas de figure si ton système ne la propose pas déjà. Personnellement, je ne laisse utiliser ma session qu'à des personnes en qui j'ai confiance.

    Cette signature est publiée sous licence WTFPL

    • [^] # Re: Différences ?

      Posté par  (Mastodon) . Évalué à 8. Dernière modification le 01 mars 2017 à 08:04.

      Tu peux également mettre un mot de passe maître sous Firefox :
      about:preferences#security => "use a master password"

      Le truc c'est que ce master password n'est pas synchronisé par Sync. Donc tu peux avoir des postes avec, et des postes sans. C'est ce qui a mis la confusion pour l'auteur de ce journal, qui a cru que les mots de passe n'étaient pas chiffrés.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # Alternative

    Posté par  . Évalué à 1.

  • # Zero Knowledge is Alive

    Posté par  . Évalué à 0.

    Merci pour ce journal, et les commentaires associés.

    J'étais persuadé que Mozilla en abandonnant le précédent serveur sync avait supprimé le "zero knowledge", mais il est juste affaibli.

    Par contre, comment est prise en charge le changement de mot de passe ? (clé dérivé ? rechiffrement de toutes les données ?)

    Si quelqu'un à des infos, je suis preneur !

    PS: Oui je ne suis pas fan de Mozilla, j'aimais le précédent serveur sync avec LDAP et Postgres.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.