Forum Astuces.divers Hasher son mot de passe avant de l'utiliser

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
27
nov.
2013

Saluxfr !

Hier soir, alors que je cherchais des nouveaux mots de passe (y'a pas la 3G dans le métro à Lyon - faut bien s'occuper) j'ai eu cette idée :
Plutôt que de changer mes bons vieux mot de passe que j'aime : utiliser leur hash sha512 + sel (mon nouveau mot de passe) + nom du site comme mot de passe :

  • Pleins de site/programme permettent de calculer un tel hash

  • Je peux mettre ma propre page en place sous HTTPS ou creer ma propre application pour le faire en moins de 5 minutes si je suis parano

  • Il est impossible à brutforcer sauf si la personne connait ma méthodologie (ce qui est peu probable en cas de gros leak de BDD)

  • Je peux efficacement avoir un mot de passe différent pour chaque site en y ajoutant le nom du site sans que la méthodologie soit evidente (si mon mot de passe linuxfr est linuxfr-toto il est facile de deviner que mon mot de passe google est google-toto mais pas une fois hashé&salé)

Cependant, je me dis que j'ai peut-être oublié quelque chose…qu'en pensez vous ?

NB : bien sûr, on parle d'un mot de passe de base et d'un sel qui sont bien long et bien solide.

  • # Limitation du nombre de caractéres du mot de passe

    Posté par  . Évalué à 1.

    Plein de sites limitent le nombre de caractères du mot de passe du coup tu vas être obligé de couper ton hash final pour l'utiliser..
    Mais sinon l'idée de base est bonne :D

  • # Questions

    Posté par  (site web personnel) . Évalué à 1. Dernière modification le 27 novembre 2013 à 14:44.

    Plutôt que de changer mes bons vieux mot de passe que j'aime : utiliser leur hash sha512 + sel (mon nouveau mot de passe) + nom du site comme mot de passe :

    Pourquoi un sel sur le hash et pas sur le tout (hash + nom du site) ? il y a une raison à cela ?

    Sinon je suis aussi curieux de voir comment on peut se plier aux réglementations débiles sur les mots de passe de la majorité des sites (du genre «  exactement 8 caractères, dont deux majuscules et deux chiffres, pas de ponctuation, etc »). Mais ce dernier problème n'est pas spécifique à ta méthode.

    • [^] # Re: Questions

      Posté par  . Évalué à 2.

      Plein de sites limitent le nombre de caractères du mot de passe du coup tu vas être obligé de couper ton hash final pour l'utiliser..

      Je trouve idiot les sites qui limitent les mots de passe à une taille ridiculement petite, surtout qu'ils sont supposé le hacher après. Mais comme tu dis je peux toujours le couper, ce n'est pas un problème.

      Pourquoi un sel sur le hash et pas sur le tout (hash + nom du site) ? il y a une raison à cela ?

      C'est effectivement ce que je voulais maladroitement dire.

      Sinon je suis aussi curieux de voir comment on peut se plier aux réglementations débiles sur les mots de passe de la majorité des sites (du genre «  exactement 8 caractères, dont deux majuscules et deux chiffres, pas de ponctuation, etc »). Mais ce dernier problème n'est pas spécifique à ta méthode.

      Je suis en train de chercher une méthode pour utiliser un charset plus large (min+maj+nb+caractères spéciaux) pour résoudre ce problème.

      • [^] # Re: Questions

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

        Je suis en train de chercher une méthode pour utiliser un charset plus large (min+maj+nb+caractères spéciaux) pour résoudre ce problème.

        Cool, fais nous savoir si tu trouves un truc.

      • [^] # Re: Questions

        Posté par  . Évalué à 5.

        C'est ce que j'utilise. HMAC avec sha256, c'est à peu près ce que tu décris, sauf que c'est plus standart que la concaténation.

        Après une fois que j'obtiens mon hash, je l'exprime sur une base arbitraire (en général en base 62, c'est à dire A-Za-z0-9, mais ce n'est pas obligatoire).

        J'ai déjà décris tout cela ici dans un commentaire, je donne aussi mon code dans ce commentaire.

        • [^] # Re: Questions

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

          Excellent !

          • [^] # Re: Questions

            Posté par  . Évalué à 1.

            J'aime bien l'idée mais le problème c'est que je n'aimerais pas être dépendant de HMAC, même si c'est une très bonne idée ça m'enpêchera de calculer le hash facilement si je n'ai pas accès à mon(ton ;)) script python.

            C'est pour ça que j'étais resté sur des méthodes de hashage simple et basiques.

            Même problème pour la conversion

    • [^] # Re: Questions

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

      Pourquoi un sel sur le hash et pas sur le tout (hash + nom du site) ? il y a une raison à cela ?

      J'avoue pour ma part ne même pas comprendre pourquoi ne pas se contenter d'un hash du nouveau mot de passe + nom du site…

      Est-ce que quelqu'un aurait la gentillesse d'éclairer ma lanterne?

      • [^] # Re: Questions

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

        J'avoue pour ma part ne même pas comprendre pourquoi ne pas se contenter d'un hash du nouveau mot de passe + nom du site…

        Tu veux dire hash( nouveau mot de passe + nom du site), c'est ça ? Si oui, je suis d'accord.
        Parce que hash ( mot de passe ) + nom du site, c'est aussi dur à trouver que hash (mot de passe) sans le nom du site.

        Pour le sel, je vois moins l'intérêt, la probabilité d'une attaque par rainbow table étant faible :)

        • [^] # Re: Questions

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

          Tu veux dire hash( nouveau mot de passe + nom du site), c'est ça ?

          Oui, c'est ça.

          Pour le sel, je vois moins l'intérêt, la probabilité d'une attaque par rainbow table étant faible :)

          Quant à moi, je ne vois ni l'intérêt du sel, ni l'intérêt d'utiliser deux mots de passe, ni l'intérêt du pré-hash. D'où ma question.

Suivre le flux des commentaires

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