mardi 5 mars 2013

Protection des mots de passe


On le voit tous les jours maintenant, des sites sont compromis et des tonnes de miyons de mots de passe sont volés !

Dommage pour vous votre mot de passe Paris75 est grillé dans le monde entier à cause du dernier site à la mode www.glandouille.com. En plus il faut le changer sur 36 sites et en urgence sur votre messagerie, ebay et paypal !

Bon on a tendance à toujours taper sur l'utilisateur, mais quand bien même il utiliserait un mot de passe complexe. qu'est-ce qui empêche un site de stocker ses mots de passe en clair ou en XOR ou encore en md5 ? Rien du tout... (ou peut-être PCI-DSS...)

Finalement je suis tombé sur un article disons sympa qui présente des statistiques non pas seulement sur la résistance des mots de passe, mais aussi sur la robustesse des algorithmes de hachage (je n'aime pas écrire hachage car je l'emploie comme un anglicisme).
http://resources.infosecinstitute.com/the-exponential-nature-of-password-cracking-costs

Dans un premier temps on commence avec un gentil MD5 et on voit qu'un mot de passe avec les 4 catégories de caractères est résistant à partir d'une longueur de 7 caractères alors qu'il faut plus de 10 lettres pour avoir un semblant de résistance identique. (Pas la peine d'évoquer un code PIN de 4 chiffres ici.) A mon avis les graphes sont au pif, mais l'idée est là :D

Maintenant ce qui est sympa c'est la comparaison de MD5 à bcrypt qui est un algorithme créé exprès pour protéger les mots de passe et non pour faire de la vérification d'intégrité (obligation de performance tout ça... bien pratique pour faire du bruteforce rapide).

Or donc bcrypt est basé sur un algorithme qui nécessite beaucoup de cycles processeur pour hasher un mot de passe. J'ai cru lire qu'un md5 prenait 1ms et un bcrypt 0,3s, soit 300 fois plus longtemps. Mais le plus beau dans l'histoire c'est qu'on peut même choisir le nombre d'itérations pour gonfler encore le temps de traitement. Et c'est ainsi qu'on obtient un algorithme robuste avec 6 caractères quand il en faut plus de 10 en MD5.





Et donc pour conclure, si on fait embête à choisir des mots de passe très longs, c'est parce que potentiellement ils sont mal protégés ! Mais en lui même le mot de passe n'est pas forcément mauvais.

2 commentaires:

  1. Super intéressant...Je relaie :)

    Tu rejoins l'avis exprimé par N. Ruff dans un ancien article.

    Pour hachage, je propose "empreinte" ou "générateur d'empreinte" :)

    RépondreSupprimer