Journal Gé(né)rer ses mots de passe

Posté par . Licence CC by-sa
22
29
juin
2012

Voici un petit article que j'ai écris il y a quelques jours. Initialement la cible n'était pas LinuxFR donc je vais l'adapter un peu pour le public de barbus que vous êtes.

Introduction qui dit qu'il y a des méchants pirates et qu'il faut faire attention à ses identifiants.

Qu'est ce qu'un bon mot de passe ?

Blabla que vous connaissez par coeur : alpha-numérique + minuscule/majuscules + caractères spéciaux + >= 8 caractères.

Combien de compte avez vous sur internet ou plus généralement sur des systèmes d'information ?

Reblabla qui dit qui faut des mots de passe différents et qu'il faut se souvenir de tous (c'est mieux).

Comment gérer tous ces mots de passe ?

(c'est la partie intéressante pour vous, bande de rustres :p)

Il y a deux méthodes.

La première consiste à tout stocker dans un endroits sécurisé. Il existe des gestionnaires de mots de passe comme le logiciel keepass (gratuit) qui consiste a mettre dans une base cryptée les mots de passe que vous lui donnerez ou qu'il générera. Le tout sera protégé par un mot de passe général. L’inconvénient majeur est que vous n'avez pas toujours accès à cet outil et à votre base au moment ou vous avez besoin d'un mot de passe.

La deuxième méthode, qui est la raison de cet article, consiste à calculer ses mots de passe à chaque fois. En gros, on a une formule qu'on applique pour chaque compte afin de retrouver le mot de passe. Une seule formule est à mémoriser pour gérer un nombre indéfini de mot de passe. Prenons un exemple :

Les données en entrée seront :

Utilisateur : Fred

On veut gérer deux comptes, un eBay et un linuxfr.

Je compose la formule de Fred et l'applique sur son compte linuxfr.org :

  1. Je prend les 5 premiers caractères du domaine ou je m'inscris, je complète par 0 si j'ai moins de 5 caractères => linux
  2. Je remplace chaque voyelles par un caractère spécial choisi dans l'ordre parmi la liste "@)$*&" (celle la est à apprendre par cœur) => l@n)x
  3. Je remplace la 1er et la dernière lettre par des majuscules => L@n)X
  4. J'ajoute une suite de caractère conditionnée, retenue par un moyen mnémotechnique. Si c'est un site marchand "c1sM", sinon pas de pub merci "p2pM" => L@n)Xp2pM
  5. Je termine par le nombre de lettre que j'ai dans mon nom d'utilisateur et je prend que l'unité si je dépasse les 10 => L@n)Xp2pM4

J'ai un mot de passe fort sur 10 caractères, il est unique (je ne l'utilise pas ailleurs), et je peux m'en souvenir en le calculant. Cette même formule pour mon compte eBay donne @b)$0c1sM4.

C'est un petit peu compliqué au début, mais on prend vite des automatismes de calcul,vous retiendrez même par coeur les mots de passe les plus utilisés.

  • # Just sayin...

    Posté par . Évalué à 10.

    • [^] # Re: Just sayin...

      Posté par . Évalué à 2.

      Et comment se souvenir d'une passphrase par site ? Car certains sites stockent le mot de passe en dur… et parfois le perdent…
      Bref, choisir des mots génère sûrement une meilleure entropie, mais trouver un automatisme site-->passphrase reste utile.

      • [^] # Re: Just sayin...

        Posté par . Évalué à 2.

        Et comment se souvenir d'une passphrase par site

        Éventuellement en incluant le nom du site dans le mot de passe ?

        • [^] # Re: Just sayin...

          Posté par . Évalué à 2.

          Et le pirate ayant eu accès aux mot de passe ne devinera pas ta super astuce ??

          • [^] # Re: Just sayin...

            Posté par (page perso) . Évalué à 10.

            Dans ce cas, astuce : ne pas intégrer le nom du site mais un nom lié. Genre, pour DLFP, utiliser « TrollFr » ou « AppleFr » plutôt que « LinuxFr ».

            • [^] # Re: Just sayin...

              Posté par (page perso) . Évalué à 1.

              utiliser « TrollFr » ou « AppleFr » plutôt que « LinuxFr ».

              Trop gros. Celui-là il ne passera pas :)

    • [^] # Re: Just sayin...

      Posté par . Évalué à 3.

      Et pour les plus flemmards :

      http://preshing.com/20110811/xkcd-password-generator

      J'ai obtenu notamment :

      « musical became breathing again »
      « powerful game temperature lost », ce qui est un peu ce que me dit le ventilo de ma carte graphique quand je tire un peu trop sur celle-ci.

    • [^] # Re: Just sayin...

      Posté par . Évalué à 2. Dernière modification le 29/06/12 à 17:27.

      J'aime beaucoup ce strip, mais il ne prends pas en 2 détails :
      Certains systèmes tronquent le mot de passe à 8 caractères (je sais c'est mal), certains sites imposes qu'il n'y ait pas autre chose que des lettres (et peuvent être plutôt chiant la dessus), enfin (tiens ça fait 3) si retenir un phrase à la con c'est bon, en retenir une par site c'est galère.

      Le système ci dessus à le mérite d'être simple, de produire des mdp fort (quoi que j'augmenterai la taille à 10 minimum), mais qui possède une faiblesse au niveau de l'algorithme; si on l'observe on verra bien que tout ses mots de passes se terminent par p2pM ou c1sM

      Bon on peut varier et ajouter )qbf (oh quel beau forum) (qui à le mérite d'avoir un caractère changeant dans le quadriplet)

      et il y a aussi un problème pour les sites utilisant un même login/mot de passe pour des domaines différents, et le changement d'adresse.

      et les trucs à éviter Trftekuts ou 3r4tekuts ou les variation autour 3aplSesls (on peut aussi jouer avec sftdlithos (74tdl1th0S); tout comme éviter la première lettre de chaque mot de la première phrase d'Alice au pays des merveilles.

      bon pour continuer le jeux d'où c'est tiré j'en propose deux autre sur un thème légèrement différent ;)
      43d1p1jdg34
      cnd1t13s31

      Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: Just sayin...

      Posté par . Évalué à 4.

      Sauf que le strip est complètement faux. Il compte de l'entropie pour les mots du dictionnaires. Si l'attaquant présuppose l'utilisation de mot du dictionnaire l'entropie tombe en chute libre.

      "La première sécurité est la liberté"

      • [^] # Re: Just sayin...

        Posté par . Évalué à 5. Dernière modification le 29/06/12 à 17:46.

        Bin non…

        jben@ginette ~ $ wc -l /usr/share/dict/american-english 
        98569 /usr/share/dict/american-english
        
        

        et log(98569)/log(2) vaut environ 16.5

        Donc il prend bien en compte le dictionnaire

        • [^] # Re: Just sayin...

          Posté par . Évalué à 2.

          Donc il prend bien en compte le dictionnaire

          Pire que ça. Il se contente de mots courants, qu'il estime au nombre de 2048 (très précisément).

      • [^] # Re: Just sayin...

        Posté par (page perso) . Évalué à 7.

        Si l'attaquant présuppose l'utilisation de mot du dictionnaire pour le mot de passe entier l'entropie tombe en chute libre.

        Le mot de passe, a moins qu'il me manque des infos, se craque en tout ou rien. Pas moyen de savoir quelles sont les parties du mdp independamment.

        Donc si son mot de passe entier n'est pas dans le dictionnaire, l'attaquant peut jeter ses tables.

        • [^] # Re: Just sayin...

          Posté par . Évalué à 3.

          Le mot de passe, a moins qu'il me manque des infos, se craque en tout ou rien. Pas moyen de savoir quelles sont les parties du mdp independamment.

          Oui bien sûr, enfin sinon ça devient un jeu d'enfant de craquer n'importe quel système. D'ailleurs c'est la faille de beaucoup de cadenas à code, on peut trouver les chiffres un à un…

          • [^] # Re: Just sayin...

            Posté par . Évalué à 10.

            ma méthode : le même mot de passe partout, et ce mot de passe c'est d'ailleurs "eingousef"

            Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Just sayin...

          Posté par (page perso) . Évalué à 3.

          Le mot de passe, a moins qu'il me manque des infos, se craque en tout ou rien.

          Il te manque des infos. Pendant très longtemps les mdp Windows format NTLM se 'craquaient' en 2 parties.

  • # Et le rappel

    Posté par (page perso) . Évalué à 3.

    Je propose de faire un rappel de mot de passe à chaque tentative de connexion. Ceci a le mérite de changer le mot de passe souvent sans devoir le retenir.
    Bon, c'est sur qu'il y a pas mal d'inconvénient.

  • # Contraintes sur les mots de passe

    Posté par . Évalué à 4.

    Oui, mais certains sites ne veulent pas de caractères spéciaux, d'autres ne veulent que des chiffres, certains même limitent la longueur du mot de passe (oui oui, j'ai déjà vu cela) etc…
    Donc il faut parfois adapter le mot de passe retenu selon le site et du coup, il faut se souvenir aussi pour chaque site les contraintes imposées et comment on les a contourné.
    Bref, c'est de plus en plus la merde la multiplication des comptes pour tout et n'importe quoi…
    C'est bien beau l'e-commerce, mais on se retrouve avec l'OBLIGATION de créer un compte pour CHAQUE site (un pour les piles, un pour les sacs aspirateurs, un pour les pneus, un pour les fleurs, etc.). D'ailleurs, beaucoup de commerces ont perdu des ventes avec moi, car ca me gonflait de créer un compte, et pourtant, j'avais la CB de sortie.
    Au final, il y a bien plusieurs dizaines de comptes répartis un peu partout. Comment s'en souvenir ? Comment les maintenir à jour (adresse email, adresse postale, etc.) ?
    De plus, je suis réfractaire à l'authentification par comptes sociaux (facebook ou autres).

    Est-ce qu'un site "central" d'authentification est-il possible/souhaitable ? Les données sont renseignées et ne peuvent être changées que sur ce site. Les sites "partenaires" font une demande d'authentification à ce site avec l'accord de l'utilisateur et recoive en contre-partie les coordonnées de la personne.
    L'authentification pourrait se faire à l'aide de clé électronique style Blizzard Authenticator : http://eu.blizzard.com/store/details.xml?id=221004517

  • # Générateur automatique

    Posté par . Évalué à 3.

    Sinon, pour la seconde méthode, il y a plus simple, il y a des logiciels qui font ça tout seul en prenant en entrée un mot de passe maître et l'URL du site, et qui en font un hash. Par exemple PasswordMaker, qui existe en plugin pour navigateur, appli web, appli mobile…

    • [^] # Re: Générateur automatique

      Posté par (page perso) . Évalué à 10.

      mon générateur de mots de passe :

      #!/bin/sh
      echo toto$1 | openssl dgst -md5 -binary | base64 | cut -c 1-8
      
      

      Remplacer "toto" par une phrase personnelle, arbitrairement longue pour se prémunir d'éventuelles attaques.

      Et voilà, en appelant le script en mettant en argument le nom de domaine visité, ça fait un mot de passe unique par site, généré à partir d'un hash encodé en base64, sur 8 caractères, ce qui fait donc une entropie de 48 bits. On peut allonger le nombre de caractères pour augmenter le nombre de bits significatifs.

    • [^] # Re: Générateur automatique

      Posté par . Évalué à 1.

      Le but c'est justement de ne pas être dépendant d'un logiciel ou d'autre chose que potentiellement rue n'as pas sous la main. Ta tête, en théorie,tu l'as toujours avec toi, après dans la pratique…

    • [^] # Re: Générateur automatique

      Posté par (page perso) . Évalué à 0. Dernière modification le 04/07/12 à 11:11.

      Moi j'utilise cette commande:

      #!/bin/sh
      dd if=/dev/urandom count=1 | uuencode -m - | head -n 2 | tail -n 1 | cut -c-12
      
      

      C'est que des commandes de base, à part uuencode. Sur Debian, on le trouve dans le paquet sharutils. Mais je crois que uuencode fait la même chose que base64, donc en le remplaçant y'a rien à installer.

  • # La version pour feignants

    Posté par . Évalué à 2.

    On peux trouver des "bookmarklet" qui reprenne un principe proche mais plus sécurisé (hash SHA-1) et c'est vraiment très pratique : http://angel.net/~nic/passwd.sha1.1a.html

  • # C'est une blague ?

    Posté par . Évalué à 4. Dernière modification le 29/06/12 à 17:42.

    Alors soit tu te base sur la sécurité par l'obscurité, soit la clef est ta suite de caractère spéciaux + la suite de caracteres conditionnées.

    Tu as une chaine de 5 caracteres, donc bon on va considerer 5 caracères speciaux dans un cas idéal. En considérant 63 caracteres spéciaux, ça nous fait 30 bits. Tu rajoute 4 caractères alphanum, 24 bits dans le cas idéal (ce qui est faux puisque cela découle d'un moyen memotechnique). Bref ton mot de passe a une taille équivalente de 54 bits.

    Avec linuxfr, deux voyelles, paf, 36 bits.

    Tu appelles ça un mot de passe fort ?

    • [^] # Re: C'est une blague ?

      Posté par . Évalué à 2.

      Non, mais cela permet de lutter contre 3 gros problèmes des mots de passe de Madame Michu :
      - c'est le même pour tous les services
      - si elle ne met pas le même mot de passe partout, elle l'oublie
      - il est trop facile à deviner ("123456", "motdepasse", "jetaime"…)

      Personnellement, mon conseil pour faire un mot de passe est le même que dans le journal, en beaucoup plus simple :
      1) choisir un un mot de passe (avec des chiffres et des caractères spéciaux si possible)
      2) prendre le nom du service, ne garder que certaines lettres (la première, la dernière, les initiales…)
      3) concaténer les 2 de points précédent, la concaténation peut se faire "en plein milieu"

      Les étapes 2 et 3 sont toujours faites pareil, donc cela évité d'oublier comment on a fait pour tel service.

      Et pour répondre à ta question, c'est loin d’être parfait mais cela permet d'améliorer drastiquement la sécurité (attaque par dictionnaire et accès à tous les comptes une fois un compte compromis), tout en étant simple pour Mme Michu.

      • [^] # Re: C'est une blague ?

        Posté par . Évalué à 1.

        [...] améliorer drastiquement la sécurité ([...] **accès à tous les comptes une fois un compte compromis**) [...]
        
        

        combien de temps faudra t'il a quelqu'un qui a chopé le mot de passe d'un compte pour qu'il comprenne comment il est construit ? Un fois qu'il a compris, hop, c'est parti…

        Toujours le même problème, la sécurité ne doit pas reposer sur la méthode (qui est facilement compréhensible par ailleurs), mais sur la clef (le mot de passe maître dans ton exemple, qui ne doit pas apparaitre en clair dans le mot de passe final).

        C'est pour cela qu'une methode simple et reconnue consiste à prendre ton étape 1, prendre le nom du service, concatener comme ton étape 4, et ensuite passer dessus une methode de hashage (si quelqu'un sait comment on dit hashage en français, je lui en serait reconnaissant)

        • [^] # Re: C'est une blague ?

          Posté par . Évalué à 6.

          (si quelqu'un sait comment on dit hashage en français, je lui en serait reconnaissant)

          Facile ! On dit "hachage" :
          http://fr.wikipedia.org/wiki/Fonction_de_hachage

        • [^] # Re: C'est une blague ?

          Posté par . Évalué à 4.

          Ça dépend de la modélisation de ta menace.

          Ça ne te protègera effectivement pas de quelqu’un qui est prêt à se donner les moyens de découvrir TON mot de passe.

          Ça te protège pas mal de quelqu’un qui a découvert tous les mots de passe de tous les utilisateurs de cutekittens.com et qui va essayer les même couple login/mot de passe sur paypal avec un robot.

        • [^] # Re: C'est une blague ?

          Posté par . Évalué à 3. Dernière modification le 02/07/12 à 14:53.

          combien de temps faudra t'il a quelqu'un qui a chopé le mot de passe d'un compte pour qu'il comprenne comment il est construit

          par exemple, si le mot de passe est de ce site est "kblr7ztr6"
          tu me trouves mon mot de passe pour… le site "orange" par exemple ?

          Sachant que tu ne sais pas quelle partie du domaine je prends.. et combien de lettre ? quel numero de lettre ? si j'ajoute ou soustrait un ou deux a une ou plusieurs lettre ? si le nombre corresponds à la longueur du domaine (+1, -1, *2.. ?), et où est-ce que je les colles au reste…

          bon courage…

          • [^] # Re: C'est une blague ?

            Posté par . Évalué à 1.

            Qui te dit que dans deux mois, il n'existera pas (les paranos considèrent qu'il existe déjà de manière non publique) une methode permettant de tester toutes ces possiblilités ?

            Ta méthode de création de mot de passe a t'elle fait l'objet d'une review par les détraqués spécialistes de la sécurité ?

          • [^] # Re: C'est une blague ?

            Posté par . Évalué à 3.

            avec un seul mot de passe, c'est complexe. Mais si les personnes en ont plusieurs, cela devient beaucoup plus facile.

            "La première sécurité est la liberté"

    • [^] # Re: C'est une blague ?

      Posté par . Évalué à 1.

      Ce que tu dis n'a de sens que si tu connais la formule, hors tu n'es pas sensé la connaître justement.

      • [^] # Re: C'est une blague ?

        Posté par . Évalué à 0.

        Tu as lu le premier lien de mon commentaire auquel tu réponds ?

        • [^] # Re: C'est une blague ?

          Posté par (page perso) . Évalué à 3.

          Ça ne veut rien dire… le choix du mot de passe est forcément de la sécurité par l’obscurité, sinon ce n’est plus un mot de passe secret. Ensuite s’il utilise un algo pour générer ses mots de passe, il affaiblit ses mots de passe au cas où suffisamment d’entre eux seraient découverts pour en déduire l’algorithme utilisé.

          Si tu considères sa méthode comme de la sécurité par l’obscurité alors c’est le cas pour tout mot de passe, et tu peux considérer son algo comme son méta-mot de passe avec lequel il génère ceux qu’il utilise pour se connecter. Et comme avec un vrai mot de passe, c’est une bonne idée d’en changer de temps en temps.

          • [^] # Re: C'est une blague ?

            Posté par . Évalué à 0.

            Pourquoi faire reposer la sécurité sur la clef et pas sur la methode… vaste question, et ce qui est dommage c'est qu'elle est imcomprise.

            Le principal problème de faire reposer la sécu sur la méthode, c'est que tu n'a aucun moyen de quantifier la qualité et la robustesse de son algo. Sais tu combien de temps faudrait-il pour explorer la moitié de l'espace des algos de génération de mots de passe compatibles avec le cerveau humain, moi non.

            Et honnetement, si on récupère ton mot de passe sur un site, combien de temps cela lui prendra de récuperer la methode si il n'y a pas d'étape de hachage cryptographique ? Alors on me réponds que pour l'instant ça suffit ça arrète les attaques brutales par liste de login/pass récupérés sur un site. Vous vous protegez à un instant t, il est tout a fait réaliste que quelqu'un code un robot pour faire ce genre de chose, c'est techniquement possible, donc c'est grave de ne pas s'en proteger.

            Je vous parrait peut-être parano, on verra lorsque vous serez obliger de changer votre methode de génération à cause d'une généralisation de ce genre d'attaque. C'est tout à fait possible, on fait chier Madame Michu pour qu'elle utilise des mdp differents sur differents services, elle fait de petites variations, le robots vont apprendre à recréer des variation et à comprendre comment les mdp sont générés…

  • # hard to remember, easy to guess

    Posté par . Évalué à 6.

    • [^] # Re: hard to remember, easy to guess

      Posté par . Évalué à 9.

      realistic password strength estimation

      Tu utilises ce mot de passe sur tous les sites ?

    • [^] # Re: hard to remember, easy to guess

      Posté par (page perso) . Évalué à 3.

      Merci pour cet article très intéressant.

      Je signale cependant un joli problème dans son algorithme de test: il "laisse passer" certains mots de passe aléatoires simples de 7 signes limités aux chiffres et minuscules non accentuées. Il indique ainsi une résistance de 13 ans avec "c5sdp2e" (ou autre sur le même modèle), ce qui paraît absurde.

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

  • # Encore plus loin

    Posté par (page perso) . Évalué à 1.

    Je compose la formule de Fred et l'applique sur son compte linuxfr.org :
    […]
    J'ai un mot de passe fort sur 10 caractères

    Mouais. Tu as un mot de passe de 10 caractères dans un alphabet de 95 alphabets; c'est pas énorme.

    Moi j'utilise la même technique, mais c'est plutôt comme ça :

    Le site bidulechouette.tld donne comme mot de passe :

    bidulechouette.tld est un site trop bien qu'il est cool donc mon mot de passe sera j'aime bidulechouette.tld

    Au final j'ai un mot de passe de 114 caractères pris dans un alphabet de 59 caractères. De plus j'ai un pattern réutilisable sur tous les sites. Et surtout il est infiniment plus facile à taper que le tien (c'est d'ailleurs le point qui fait que la plupart des gens ont un mot de passe court, même dans un alphabet de 63 caractères… qui malheureusement pour eux n'est pas secure).

    Malheureusement ma technique n'est pas la meilleure au monde :

    • Certains sites limitent le nombre de caractères à des niveaux indécents, du genre de 20 caractères. De vraies tanches, mais malheureusement on n'y peut rien.
    • Si mon mot de passe est trouvé, j'ai un peu de temps avant que tous les autres semblables soient trouvés. En fait, le temps qu'un humain passe derrière, analyse mon pattern et le reproduise sur les autres sites; ca fait pas vraiment long. De ce point de vue ta technique est meilleure.
    • En fait un cracker qui aurait un dictionnaire peut directement essayer d'aligner plusieurs mots pour ses tentatives; j'espère juste que le temps qu'il en arrive à 17 mots correctement alignés soit assez long.
    • Il est tellement long qu'on a plus de chance de se tromper. Si la politique du site est de bloquer au bout de x essais, tu peux te faire bloquer.

    En fait le principe à retenir est le suivant :

    1. Se débrouiller pour que le mot de passe ne soit pas devinable via des méthodes intelligentes (déjà dans un dictionnaire, combinaison simple de mots du dictionnaire, …). De ce point de vue ton mdp est plus résistant.
    2. Une fois que le cracker doit passer au bruteforce, faire en sorte que ça dure le plus longtemps possible.

    C'est expliqué assez proprement ici, et on peut voir que ton mdp est loin d'être aussi solide que le mien =]

  • # Deux méthodes? Non! Trois!

    Posté par (page perso) . Évalué à 2.

  • # encfs

    Posté par . Évalué à 1.

    Personnellement, après avoir cherché une solution à ce soucis il y a quelque temps, voulant éviter d'utiliser uniquement que le gestionnaire de mot de passe de mon navigateur, la solution la plus simple que j'ai trouvé est d'utiliser encfs.

    Facilement réplicable (je fais un rsync régulier sur mon téléphone android et sur mon compte hubic), les mots de passe sont facilement accessible ensuite (il est possible de monter un dossier encfs sur tout les systèmes, et également sur android).

    Une fois ajouté à /etc/fstab, une simple commande mount permet de le monter, et il est facile d'afficher les mots de passe avec cat et de les ajouter avec echo "password" > linuxfr_pass (il faudra prendre garde à son historique de commande par contre, il existe un subterfuge pour ne pas enregistrer certaines).

    Bref, ça me permet d'avoir un mot de passe aléatoire et différent sur tout les services où je m'inscris, et ne plus utiliser le même mot associé au même chiffre partout.

    • [^] # Re: encfs

      Posté par . Évalué à 1.

      (il faudra prendre garde à son historique de commande par contre, il existe un subterfuge pour ne pas enregistrer certaines).

      Tu pourrais rappeller lequel ? j'avais trouvé comment faire une fois, puis j'ai oublié. Ça fait un moment que je me dis qu'il faudrait que je retrouve comment faire :)

      • [^] # Re: encfs

        Posté par (page perso) . Évalué à 3.

      • [^] # Re: encfs

        Posté par . Évalué à 2.

        Personnellement, j'utilise celle permettant d'omettre les lignes de commandes commençant par un espace en ajoutant ceci dans le .bashrc

        HISTCONTROL=ignoreboth
        
        
        • [^] # Re: encfs

          Posté par . Évalué à 2.

          Comme j'utilise zsh, ni history -d ni $HISTCONTROL ne semblent marcher au premier abord. En fouillant un peu la question, j'ai trouvé :

          setopt hist_ignore_space

          qui permet de ne pas enregistrer une commande préfixée d'un espace. Parfait :)

          • [^] # Re: encfs

            Posté par . Évalué à 1.

            ha merci, j'utilise aussi zsh, je passais donc en bash à chaque fois que c'était nécessaire.

  • # défauts et qualités

    Posté par . Évalué à 3.

    La méthode proposée par l'auteur du journal ressemble beaucoup à celle que j'utilisais avant ! Avantage : jamais de blocage devant une fenêtre de password "compatible", on prend vite l'habitude de générer rapidement le mot de passe de n'importe-quel service même ceux qu'on utilise rarement. Inconvénient : Tous les sites ne supportent pas les caractères spéciaux, les majuscules, plus de 8 lettres. etc., et un attaquant pourra facilement déduire la logique du mot de passe, surtout s'il réussit à en obtenir plusieurs.

    Passer tout ça au hachoir comme le propose ouasse résout le second problème mais l'obligation de passer par un logiciel pour générer le mot de passe rend l'utilisation peu pratique pour les services plus rarement utilisés (les autres, on finit par retenir la chaîne), avec le risque qu'à terme le mot de passe transite par le presse papier, ou d'oublier un terminal ouvert à la vue de tous avec le résultat de la commande. Pour ceux qui voudrait quand-même utiliser cette méthode je me permet de proposer une petite amélioration, passer par read pour taper le mot de passe 'sel' permet d'éviter de l'enregistrer malencontreusement dans l'historique du terminal :

    #!/bin/sh
    
    prg_name=`basename $0`
    
    if [ $# -ne 2 ] ; then
        echo "usage: $prg_name user domain"
        exit 1
    fi
    
    read -rsp "type master password: " m_pwd
    echo
    echo "${1}${m_pwd}${2}" | openssl dgst -sha1 -binary | base64 | cut -c 1-8
    
    

    Je passe rapidement sur remplacer les caractères par des mots à la xkcd, vu que ça ne change rien au problème, si tu utilises le même partout tu vas t'en rappeler facilement, mais avec un différent par site ça va vite être lourd à moins d'utiliser une méthode pour déduire le mot de passe à partir du nom du service, mais du coup mêmes problèmes qu'avec la solution n° 1…

    Finalement j'utilise actuellement un mélange de la solution N°1 avec la N°2 le tout combiné avec des cartes de code.

    Je déduis le chemin sur la carte de code à partir du nom d'utilisateur et du nom du service comme avec la solution N°1, la carte peut contenir des caractères spéciaux et génère un mot de passe totalement aléatoire comme avec la solution N°2, mais si le service l’exige je peux faire une carte qu'avec des caractères minuscules voir avec seulement des chiffres. Si la longueur de mot de passe est limité, je peux le noter sur ma carte pour me rappeler qu'il ne faut parcourir que la moitié du chemin.

    Vu que je stocke mes cartes au format papier sur un agenda rotatif modifié, je suis obligé de recopier les mots de passes à la main, pas de risque qu'ils se retrouvent dans l'historique du terminal ou dans le presse-papier.

    Un attaquant distant ne pourra pas générer mes autres mots de passe s'il en obtiens un car il n'a pas le jeu de cartes (une par service) celui qui volera ou copiera mon jeu de carte devra encore trouver le cheminement de mon esprit taré pour générer les mots de passes, mais je reconnais que là est le point faible de cette méthode !

    Éviter les mots de passe à la "toto", ou d'utiliser le même mot de passe partout, on se retrouve vite avec son compte mail pro piraté suite à une inscription sur un site de boules russe. Après y'a des dizaines de façons de faire, plus ou moins sécures, plus ou moins chiantes, suivant votre degrés de paranoïa, la geekitude de votre entourage et la sensibilité de vos données car pour le simple piratage du gmail d'un inconnu, dans 99,999% le pirate stoppera sans même réfléchir si ça passe pas avec le mot de passe qu'il a récupéré dans la base de données du site de boules russe, même si seulement une lettre diffère entre les deux !

    • [^] # Re: défauts et qualités

      Posté par . Évalué à 2. Dernière modification le 30/06/12 à 03:54.

      Et j'ajoute à ma méthode, deux autres avantages que j'ai oublier de citer :

      On peux facilement générer une carte pour un mot de passe pre-existant, si on n'a pas les moyens de faire une carte tout de suite, ou qu'on s'est vu attribuer un code/mot de passe qu'on ne peut pas changer (genre code de carte bleu, digicode d’accès à une salle ou un bâtiment, admin idiot…).

      Si on veux changer le mot de passe d'un service pas besoin de changer de méthode pour obtenir le nouveau mot de passe (tiens, un inconvénient que j'ai oublié de citer pour les autres méthodes : les mots de passes obtenus sons statiques), suffit de générer une autre carte.

    • [^] # Re: défauts et qualités

      Posté par (page perso) . Évalué à 5.

      si tu utilises le même partout tu vas t'en rappeler facilement, avec un différent par site ça va vite être lourd à moins d'utiliser une méthode pour déduire le mot de passe à partir du nom du service, mais du coup mêmes problèmes qu'avec la solution n° 1…

      Bin justement, l'idée est d'utiliser le même mot de passe racine partout, qui combiné au nom de domaine génère un hash différent et donc un mot de passe différent par site. Si tu changes le mot de passe racine à chaque fois, autant directement l'utiliser sur le site en question.

      Éviter les mots de passe à la "toto", ou d'utiliser le même mot de passe partout, on se retrouve vite avec son compte mail pro piraté suite à une inscription sur un site de boules russe.

      En même temps, le gestionnaire de site de boules russe ne va pas s'amuser à programmer un algo de crack de ton mot de passe basé sur un hash plutôt costaud (à supposer qu'il sache comment tu as généré ton mot de passe), alors qu'il y a plein d'attaques basées sur des dictionnaires, et qui fonctionnent sur un nombre suffisant de comptes. Il suffit juste d'avoir une méthode plus costaud que la moyenne pour être relativement tranquille.

      Sinon la méthode que j'ai donnée utilise effectivement en réalité read pour la lecture du mot de passe racine, histoire de ne pas avoir la valeur qui traîne dans un script.

    • [^] # Re: défauts et qualités

      Posté par (page perso) . Évalué à 3.

      #!/bin/sh
      
      

      […]

      read -rsp "type master password: " m_pwd
      
      

      BASHISM DETECTED. L'option -s de read n'est valable que dans bash. Tu penses bien que j'ai vérifié :)

      • [^] # Re: défauts et qualités

        Posté par . Évalué à 2.

        C'est vrai que j'ai utilisé une page man de l'internet sans faire attention, sur mon système la seule option proposé par read est '-r' surement la seule POSIX ?

        On peux remplacer le '-p' par un echo et virer le '-s' si besoin, vu que de toute façons le mot de passe final finira imprimé dans la ligne de commande…

    • [^] # Re: défauts et qualités

      Posté par . Évalué à 1.

      l'utilisation peu pratique pour les services plus rarement utilisés (les autres, on finit par retenir la chaîne), avec le risque qu'à terme le mot de passe transite par le presse papier

      Quelle est la différence entre faire un copier/coller et taper un mot de passe au clavier ? Si un attaquant a accès au contenu du presse-papier, il a très bien pu installer un keylogger, non ?

      • [^] # Re: défauts et qualités

        Posté par . Évalué à 2.

        Entre faire un +v dans le dos de l'utilisateur et installer un keylogger avec un /home monté en noexec la difficulté n'est pas la même.

        • [^] # Re: défauts et qualités

          Posté par . Évalué à 1.

          Entre faire un +v dans le dos de l'utilisateur et installer un keylogger

          Tu veux dire avec un accès physique à la machine, ou à distance ?

  • # Les étages et la liste de confiance

    Posté par (page perso) . Évalué à 2.

    Moi je travail de deux façons,
    les étages et la liste de confiance.

    Les étages:

    J'ai reparti les sites web en trois étages, chaque étage à un son mot de passe.

    • 1 étage c'est le plus critique et j'ai confiance au prestataire, adresse email privé et pro, accès ssh.

    • 2 étage ce sont des sites que j'utilise souvent mais si le compte étaient piraté ça serait pas trop dramatique, Dropbox, Facebook site de ventes en lignes

    • 3 étage, ce sont de sites ou j'ai absolument pas confiance, ou que j'utilise très rarement, le piratage d'un compte, rien à faire, souvent je suis inscrit sous un nom bidon

    Ma liste de confiance:

    c'est un fichier texte sur un compte ssh ou je suis seul a avoir l'accès, il contient des sites de l'étage 1 donc j'ai pas confiance pour utiliser mon mot de passe (netvibes, ovh, forum que je suis, linuxfr …)

    Pour les mots de passe j'utilise aucune suite logique, c'est simplement une liste aléatoire de lettre et de chiffre qui me passe par la tête.

    • [^] # Re: Les étages et la liste de confiance

      Posté par . Évalué à 3.

      Je comprends bien ton histoire d'étages, enfin je crois, mais tu me fais un peu peur :

      2 étage ce sont des sites que j'utilise souvent mais si le compte étaient piraté ça serait pas trop dramatique, Dropbox, Facebook site de ventes en lignes

      3 étage, ce sont de sites ou j'ai absolument pas confiance, ou que j'utilise très rarement, le piratage d'un compte, rien à faire, souvent je suis inscrit sous un nom bidon

      De ces deux phrases j'en déduis que tu es inscrit sur facebook sous ta vrai identité. Auquel cas l'affirmation ce ne serait pas trop dramatique me semble un peu naïve. Imagine que tu te fasses un ennemi, une usurpation d'identité, ne serait-ce qu'une identité facebook, ça peut faire mal, dans ta vie de famille, ta vie professionnelle, ça peut ruiner une réputation.

      Je suis peut-être trop parano aussi…

    • [^] # Re: Les étages et la liste de confiance

      Posté par . Évalué à 4.

      J'ai le même genre d'étage pour les passwords, mais uniquement en fonction de la supposé fuite des mots des passes. En gros, j'ai confiance dans mes machines perso, un peu moins sur les machines que je loues, encore un peu moins les services comme Facebook et google, et encore moins les autres (sony…). Le but est d'être "étanche" entre ces sites : ne pas utiliser de mots de passe identiques pour des sites de catégories différentes.

      Le problème est posé avec les sites ou l'on va peu souvent, comme certain site de vente, et j'essaye souvent qq mots de passe que j'utilise couramment. Je me suis toujours demandé si un de ces sites enregistraient les essais de mots de passe infructueux. Je considère cela comme une faute professionnel mais on ne sait jamais avec certain prestataire.

      "La première sécurité est la liberté"

    • [^] # Re: Les étages et la liste de confiance

      Posté par (page perso) . Évalué à 3.

      2 étage ce sont des sites que j'utilise souvent mais si le compte étaient piraté ça serait pas trop dramatique, Dropbox, Facebook site de ventes en lignes

      S'il s'agit de sites de vente en ligne corrects, ce n'est pas dramatique en effet. S'il s'agit de sites de vente en ligne craignos comme la Fnac, Amazon ou encore Apple, c'est dramatique, parce qu'ils enregistrent ton numéro de carte bancaire et permettent ainsi à l'attaquant d'acheter des marchandises à tes frais.

  • # KeePassX

    Posté par (page perso) . Évalué à 3.

    J’utilise personnellement KeePassX avec une base accessible en FTP et que je synchronise régulièrement avec ma ou mes versions locales.

    L’avantage c’est que je ne connais aucun de mes mots de passe (mise à part celui de la base que je vais surement lié à une Yubikey, celui de mon compte mail et celui de LinuxFR). Je les génère avec KeePassX et je les tape avec KeePassX. Il ne sont jamais dans ma tête et jamais dans le presse papier.

    Quand je vais sur le site de ma banque, je mets le focus sur le champ « identifiant », j’ouvre KeePassX, je sélectionne l’entrée « Banque », CTRL+V et je laisse faire.


    Pour les gens qui utilisent une disposition autre que qwerty, KeePassX n’arrivera pas à taper les logins et mots de passes (« admin » deviendra « qd,in » ou quelque chose dans le genre). L’astuce pour corriger ça est de lancer « setxkbmap » (sans argument) à l’ouverture de session.

  • # Mozilla et encfs

    Posté par (page perso) . Évalué à 1.

    Perso, j'utilise le gestionnaire de mots de passes de Firefox avec sync, mais le dossier .mozilla est chiffré avec encfs, sur toutes les machines que j'utilise. Ça permet de générer des passwords solides et aléatoires, uniques, sans mécanisme de construction du genre du journal, avec une bonne sécurité, dans la mesure où je ne me fait pas piquer de machine allumée, ce qui serait bien plus grave que le craquage de mes passwords…

    \Ö<

  • # motdepassealacon

    Posté par (page perso) . Évalué à 2.

    perso j'utilise ça:
    http://motdepassealacon.com/

    avec quelques précautions supplémentaires:

    hébergement sur mon serveur
    ajout d'un sel dans le code js proposé

    les points positifs:
    - c'est plus ou moins toujours accessible (ie c'est en ligne, et la plupart du temps si j'ai besoin d'un mot de passe, c'est pour un truc en ligne)
    - c'est assez simple d'utilisation

    les points négatifs:
    - mot de passe ne respectant pas forcément les règles du site sur lequel je dois m'inscrire
    - un peu galère au début pour me rappeler de l'url du site (avec ou sans http:// , www ou pas etc), mais avec le temps j'ai appris à devenir cohérent.

    qu'en pensez vous ?

    • [^] # Re: motdepassealacon

      Posté par . Évalué à 2.

      J'en pense que ça revient un peu au même que la version web de PasswordMaker :
      http://passwordmaker.org

      Par contre PM a l'avantage de proposer pas mal d'options, dont le choix des critères de mot de passe pour les sites qui demandent absolument d'avoir une suite alpha numérique de 8 caractères. Il a aussi l'avantage d'exister en application/plugin, ce qui est pas mal si on n'a pas accès au net (si on doit passer par un portail captif par exemple).

Suivre le flux des commentaires

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