• # Méthodologie ?

    Posté par (Mastodon) . En réponse au journal Combien de temps faut-il pour cracker un mot de passe ?. Évalué à 2.

    Je suis un peu surpris par les chiffres qu'ils donnent. En voilant voir à quelle vitesse un PC un peu récent peut faire ça, j'ai fait un programme tout simple:

    - Je suis parti du principe que j'avais un mot de passe haché par MD5, et que je voulais à partir du hash retrouver le mot
    - J'ai énuméré des chaînes de 10 caractères dans un alphabet de 62
    - J'ai calculé le hash MD5 de ces chaînes (avec OpenSSL)
    - J'ai comparé ce hash avec un autre hash, à chaque fois

    Sur un Athlon MP à 663 MHz, je peux tester environ 400 000 mots de passe par seconde. En passant le même processeur à 1.66 GHz, je peux en calculer environ 1 100 000. Un million de clés par seconde, c'est ce qu'ils donnent pour un Pentium 100, donc j'ai eu quelques doutes.

    Je me suis dit que ma méthode d'énumération était assez bête, mais en fait le truc qui prend du temps, c'est de calculer les hash. Si je ne calcule plus les hash, l'Athlon à 663 MHz "teste" environ 67 millions de mots par seconde. Du coup, j'ai un peu l'impression que dans leurs tests, ils ne font que générer des mots de passe, mais sans les tester (ou alors la fonction de transformation qu'ils utilisent est beaucoup plus rapide à calculer que MD5, ou alors l'implémentation d'OpenSSL est lente).

    J'ai bricolé ça rapidement, donc je ne garantis rien, mais si l'ordre de grandeur est bon, on peut raisonnablement considérer que la "classe D" de l'article correspond à ce qu'on peut faire avec un bi-core moderne.