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.

    • [^] # Alternatives algorithmiques

      PostĂ© par . É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.

        • [^] # 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 . É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 ?

          • [^] # 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 . É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 . É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).

  • # 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.