Journal des (autres) listes de mots pour générer des phrases de passe en français

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
15
7
oct.
2016

L'autre jour je suis tombé sur un article sur le site de l'eff où ils annoncent qu'ils ont créer des nouvelles listes de mots pour générer des passphrases.

Ils sont partis du constat que la liste de mots la plus populaire était celle de diceware, qui sert à générer sa passphrase à l'aide de dés, mais qu'elle a le défaut d'être plutôt optimisé pour taper moins de caractères au détriment de la facilité à retenir ou taper sa passphrase sur un clavier de téléphone. Derrière les listes de l'eff il y a clairement l'idée de pouvoir être assisté par le logiciel à la saisie pour contre-balancer le fait que les mots soient plus longs.

Justement, j'ai horreur d'ouvrir keepass sur mon téléphone parce que mon mot de passe, malgré qu'il ne soit probablement pas si costaud, est quand même une plaie à taper. Par contre mon vocabulaire anglais est assez pauvre et j'ai plus le français dans les doigts. La liste de mots diceware en français existe déjà, elle a même été annoncée ici il y a 12 ans, mais elle souffre des mêmes défauts que sa version originale.

Du coup j'ai essayé de faire des listes sur le modèle de ce qu'avait fait l'eff, vaguement. Et c'est dispo ici, avec un ptit générateur de passphrase pour tester, mais dont je ne garantis pas la sécurité, je ne peux pas lutter avec les dés. Quoique il parait que les dés de mauvaise qualité sont biaisés parce que le fait que plus de matière est retiré sur les grands nombres n'est pas prit en compte alors…

Les commentaires sur le terme phrase de passe sont les bienvenus!

  • # J’ai pas tout compris mais j’y mets mon grain de sel quand même

    Posté par  . Évalué à 6.

    John the Ripper a un mode pour générer une liste d’après une liste de départ et quelques règles.

    Il y a crunch aussi.

    • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

      Posté par  . Évalué à 5.

      J'avoue que mon journal est un peu fouillis.

      Simplement (je refais le topo)

      J'ai créer une liste de mots français les plus courants destiné à être utilisée pour générer des passphrases "facile" à retenir et à taper.

      En fait, j'en ai créé plusieurs avec des propriétés différentes, et un petit générateur de passphrases. C'est disponible ici: https://github.com/mbelivo/diceware-wordlists-fr

      Exemple de passphrase généré:
      $ src/rolldice wordlist_4k.txt
      rendre ultime renifle loger rame

      C'est inspiré du xkcd 936 et des wordlists de l'eff

      Pour aller plus loin, mais en fait juste paraphraser le xkcd

      Il y a bien un rapport avec john ou crunch, qui sont pensés pour cracker les mots de passe du genre m4rT3au!007, qu'on a tous fait un jour parce que… ben c'est le moyen le plus simple de faire un mot de passe qui correspond aux critères qu'on nous enseigne et qu'on arrive à retenir.

      La sécurité théorique de ce type de mot de passe est forte, j'ai utilisé 11 caractères dans un pool de ~70, il faudra en moyenne 7011 / 2 (~267 / 2) tentatives pour brute forcer le mot de passe… si les 11 caractères avaient été sélectionnés aléatoirement parmi les 70 caractères de départ, ce qui n'est clairement pas le cas. La sécurité réelle est énormément plus faible.

      L'idée ici c'est d'utiliser des mots de passe composés de mots courants, sans les modifier, pris réellement aléatoirement dans un pool de mots plus important pour avoir des mots de passe mémorisable à la sécurité connu.

      Même en annonçant que j'ai tiré 5 mots dans le fichier wordlist_4k.txt, il faudra, de façon certaine, 260 / 2 tentatives en moyenne pour brute forcer ce mot de passe (c'est 18 ans à 1 milliard d'essais par seconde)

      • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

        Posté par  . Évalué à 3. Dernière modification le 08 octobre 2016 à 16:45.

        C’est beaucoup plus clair, merci !

        J’ai pas tout compris (décidément :) au code dans le fichier rolldice (bon, j’ai pas cherché non plus trois plombes…)

        Tu utilises bien random.SystemRandom() (et pas random.random()) c’est bien. Il s’agit d’un générateur « assez aléatoire » pour être utilisé en cryptographie… pourquoi ne pas l’utiliser directement, pourquoi tout ce code avec l’entropie, etc… ?

        • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

          Posté par  . Évalué à 2.

          Alors les histoires d'entropie à la base c'est juste pour déterminer automatiquement combien tirer de mots dans la liste donnée en paramètre.

          J'ai des listes de 1296 / 4096 / 7776 / 8192 mots et je voulais juste passer la liste à mon générateur sans me poser la question moi même de combien de mots j'ai besoin.

          Par defaut rolldice va tirer assez de mots pour avoir au moins 56 bits d'entropie (modifiable avec le paramètre --entropy), donc 5 mots dans une liste de 4096 mais 6 mots dans une liste de 1296. On peut aussi spécifier le nombre de mots que l'on veut et à ce moment rolldice utilise le calcul d'entropie pour afficher un warning si elle semble faible (<44 bits), par exemple si on ne demande que 4 mots dans une liste de 1296.

          Y a aussi une vérification superflus avec mes listes (# make sure we really have desired entropy, assuming [a-z] only words) mais que j'ai mis quand même parce que pourquoi pas, qui vérifie ça: http://world.std.com/%7Ereinhold/dicewarefaq.html#14characters

      • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

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

        Oui, la méthode 936, c'est bien, d'ailleurs moi aussi j'ai maintenant pour mot de passe “correct horse battery staple”.

        Sérieusement, c'est marrant, cette méthode, mais ça ne donne des trucs faciles à retenir que si on a beaucoup de chance.

        • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

          Posté par  . Évalué à 3.

          Ça demande un effort, mais c'est mémorisable.

          compare ça:

              $ for i in {1..10}; do src/rolldice wordlist_fr_4k.txt; done
              radio module donniez barrage panique
              nazi luisant amante saveur pluie
              refuser doudou navette saigner mienne
              essai surface urine valse confier
              soupe exploit noir via falloir
              capable oublie capable tarder bazar
              empare morbide poisson balcon coucou
              fixer avale piaule lisez pisse
              exclama zinc entra expert gazon
              trompe affecte fourmi chienne confond

          (mention spécial à nazi luisant, amante saveur pluie!)

          avec ces mots de passe de force et d'accessibilité équivalentes:

              >>> for i in range(10):
              ...     print(''.join(rng.choice(string.ascii_lowercase+' ') for x in range(13)))
              ... 
              lywmmfmfogbwu
              yppwsarlnnopv
              sorhkusccxpor
              nyisrkpixcctp
              bhbjngtniesdy
              hsslunoxtaups
              odjeuushuogii
              ucabuumaiiywo
              fichqetxbxleh
              hukcxjyxafchw
          • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

            Posté par  . Évalué à 2.

            Vu que l’on parle de « phrase de passe », pour quelque chose de facile retenir, pourquoi pas une « vraie » phrase, du type :

            Les 4 platanes sur le mur bleu rue du Paradis.

            Bien sûr on peut réduire le nombre de possibilités car on connaît les fréquences de probabilité d’enchaînement des mots d’une langue donnée… mais on peut utiliser plus facilement des signes de ponctuations, par exemple utiliser deux phrases plus courtes… c’est à mon avis le plus simple à se mettre dans la tête.

            • [^] # Re: J’ai pas tout compris mais j’y mets mon grain de sel quand même

              Posté par  (site web personnel, Mastodon) . Évalué à 1.

              Tu peux prendre les 4 ou 5 mots du générateur et fabriquer une phrase en français avec, en les mettant dans un ordre qui marche bien, conjuguant les verbes, at ajoutant ponctuations, articles et conjonctions. Je ne pense pas que ça détruise trop l'entropie (on en perd un peu en mettant les mots un peu tout le temps dans le même ordre, mais on doit pouvoir la récupérer en ajoutant les autres trucs)

  • # Merci.

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

    Merci, je m'en sers désormais!

Suivre le flux des commentaires

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