Journal Firefox Sync et les mots de passe en clair sur le cloud ūüė§

Posté par (page perso) . 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 . √Č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 . √Č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 (page perso) . √Č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 (page perso) . √Č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 (page perso) . √Č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 (page perso) . √Č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 (page perso) . √Č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 (page perso) . √Č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 (page perso) . √Č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/02/17 √† 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 (page perso) . √Č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 (page perso) . √Č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 . √Čvalu√© √† 3.

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

          • [^] # Re: Renseignes toi‚Ķ

            Post√© par . √Č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 (page perso) . √Č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 (page perso) . √Č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 ‚ÄstKeepassHttp 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 ‚Ästd√©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 (page perso) . √Čvalu√© √† 2.

          C'est pour ça qu'il y a un fork de KeepassX, appelé KeepassXC: https://keepassxc.org/

          ¬ę Je vois bien √† quels exc√®s peut conduire une d√©mocratie d'opinion d√©brid√©e, je le vis tous les jours. ¬Ľ (Nicolas Sarkozy)

      • [^] # Re: Renseignes toi‚Ķ

        Post√© par . √Čvalu√© √† 2.

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

  • # passprotect

    Post√© par (page perso) . √Č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/02/17 √† 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 . √Čvalu√© √† 8. Derni√®re modification le 01/03/17 √† 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 à ceux qui les ont postés. Nous n'en sommes pas responsables.