[Petit hack entre amis] Comment trouver rapidement un mot de passe MD5
Bonjour à tous,
Un petit billet que je voulais faire depuis un bon bout de temps. Je tiens juste à prévenir que je ne suis pas expert en crypto/sécurité alors je vais essayer de faire de mon mieux.
L’objet de ce billet n’est pas d’hacker un compte Facebook ou Hotmail, mais plutôt de s’intéresser à la très célèbre fonction de Hachage md5.
1. État des lieux:
Pour ceux qui se sentent déjà un peu perdu, petit rappel sur le md5 (via Wikipedia):
L’algorithme MD5, pour Message Digest 5, est une fonction de hachage cryptographique qui permet d’obtenir l’empreinte numérique d’un fichier (on parle souvent de message). Il a été inventé par Ronald Rivest.
[...]
Voici l’empreinte (appelée abusivement signature) obtenue sur une phrase :
- MD5(”Wikipedia, l’encyclopedie libre et gratuite”) = d6aa97d33d459ea3670056e737c99a3d
En modifiant un caractère, cette empreinte change radicalement :
- MD5(”Wikipedia, l’encyclopedie libre et gratuitE“) = 5da8aa7126701c9840f99f8e9fa54976
Voilà, bon on l’utilise beaucoup pour avoir une empreinte sur un logiciel, notamment lors d’un téléchargement afin de vérifier que le fichier est bon après le téléchargement.
Mais ce système est (était?) aussi très utilisé dans les systèmes d’authentification sur les sites internet.
Exemple de fonctionnement,
- Mon mot de passe : grou .
- La base de données utilisateurs du site auquel on veut se connecter possède une liste de tous les md5 des password utilisateur. Autrement dit, elle possède md5(’grou’) = 0ed7b9f1034c5196d5256b635729dc6b dans sa table.
Donc, lorsque l’utilisateur essaye de de se connecter, le site demande à la base de données s’il existe le md5(’grou’) si oui alors OK sinon Erreur lors de la connexion. C’est simple et c’était terriblement efficace…
2. Le mécanisme de la fonction de hachage
Allez un peu de math pour la route, regardons de plus près (très rapidement et pour la culture) le fonctionnement de cette fameuse fonction.
Un petit schéma sur son fonctionnement général (toujours via Wikipedia):
L’algorithme plus en détail:
Une opération de MD5. MD5 comprend 64 blocs de ce type, groupés en quatre tours de 16 opérations. F est une fonction non-linéaire, qui varie selon le tour. Mi symbolise un bloc de 32 bits provenant du message à hacher et Ki est une constante de 32 bits, différentes pour chaque opération.
Enfin, pour être tout à fait honnête, on s’en fou un peu de savoir comment mouline la fonction. Cela dit, c’est un joli jouet pour les mathématiciens.
Le seul truc qu’il faut vraiment comprendre, c’est que les fonctions de hachages donc md5 sont INJECTIVES, ce qui signifie qu’il est possible de trouver M1 et M2 différents, tels que, md5(M1) == MD5(M2) [souvenir de prépa inside
].
Voilà, pour ceux qui veulent en savoir plus sur la fonction en elle-même, le web, regorge de doc sur le sujet.
3. Et le Hack alors?
Il arrive! En fait, depuis 1996, on sait qu’il existe de graves failles dans ce système de hachage. Ici, nous allons voir la méthode par bruteforce.
La méthode bruteforce, c’est un peu la méthode du bourrin. Son principe n’est qu’autre que de tester toutes les clés jusqu’a trouver la bonne. Enfin, c’est souvent optimisé avec des stats et des probas derrière, mais l’idée de base c’est ça.
Comment récupérer un mot de passe de Alice (avec Bob ce sont les personnages mythiques de la crypto):
- Récupérer les md5 de Alice, il en traine souvent dans les URL, les cookies ou un simple scan d’un réseau wifi vous assure de trouver bonheur !
- Aller sur un dictionnaire de md5: Gdataonline qui possède 2 millions de combinaisons.
- Saisir le md5 de l’étape 1
- Enjoy!

Simple non! Bon il faut tout de même savoir qu’il y a de moins en moins de sites qui utilisent une authentification par md5 de base, mais il en reste encore un paquet, donc lorsque vous utilisez un réseau ouvert, faite vraiment attention aux infos envoyées. Prenez aussi la saine habitude de vérifier que pour du confidentiel c’est du httpS://ww……
Pour l’anecdote, Gdataonline connait le mot Grou !
Bonne route,
take care,
Jaguie
Billets similaires
Tags: Internet //






























Heu il est un peu © le pass là …
Aaah mais c’est mon cours de sécurité, je connais bien Bob et Alice, ce sont mes 2 meilleurs potes !
et si ça t’interesse, j’ai un super bouquin “Computer Security : Art and Science ” qui fait à peine 1000 pages !
Yep, une bonne alternative est le SHA256. Et il vaut mieux aussi hacher le mot de passe + une chaine. Par exemple md5(”mdp_autre_chaine_bidon”) plutôt que md5(”mdp”). De ce fait, la chaine beaucoup plus longue sera beaucoup plus dure à trouver par brute force, et si elle est trouvée, ce ne sera pas le vrai mot de passe qui sera trouvé.
Ah sinon… remplace “injectives” par “surjectives” ici :
“les fonctions de hachages donc md5 sont INJECTIVES, ce qui signifie qu’il est possible de trouver M1 et M2 différents, tels que, md5(M1) == MD5(M2)”
Tout élément d’une fonction injective admet AU PLUS un antécédent….
Si MD5 était injective, elle sera alors bijective (donc ce ne serait plus du hash, et ça n’aurait plus aucun intérêt). D’ailleurs on ne pourrait alors représenter aucun texte de plus de 32 caractères par un signature limitée à seulement 32 caractères.
la meilleure méthode pour contrer les tables rainbow est en effet le “salage” du mot de passe qui consiste à rajouter un préfixe ou un suffixe.
Le top étant de cumuler un md5, un salage et un sha1.
@Roman, Ok le pass est © pour toi, mais je ne fais que le démocratiser ^^ . Sinon les royalties se transformeront en une bonne bière dans le Tarn
@Kich, ok merci je vais lire ça. Ça tombe bien je n’avais rien à faire les 5 prochains mois …
@Godefroy, Merci pour les précisions, je vais regarder de plus près l’histoire de injective ou surjective, car l’info est croisé avec un article de Wikipedia !
@Brindavoine, le maitre PHP vient de parler
@tous, merci!
[...] [Petit hack entre amis] Comment trouver rapidement un mot de passe MD5 | ChroGeekwww.chrogeek.com/2008/11/petit-hack-entre-amis-comment-trouv… par jaguie il y a quelques secondes [...]
Sinon en plus de toutes ces techniques anti hack, cryptage, salage, sauçage etc… Il existe aussi une multitude de techniques pour empecher le brute force (qui a mon sens est plus dangereux pour le serveur que la découverte du mot de passe).
les 2 plus connues (enfin, si je les connais, elles sont forcément connues!) sont:
-On peut faire en sorte que l’application fasse une pause (de 3 secondes) à chaque mot de passe incorect pour que le brute force soit vraiment trop long et que le robot abandonnne (ou son propriétaire meure :-)…)
-On peut compter le nombre d’essais de saisie du mot de passe et s’arreter a un certain nombre, si le robot dépasse ce nombre, on le laisse continuer a s’acharner mais sur une autre page, sans faire de vérification du mot de passe pendant une heure ou deux. Histoire qu’il se fasse les dents quand même, ca reste des robots après tout…
JE viens de lire ton article JE et j’ai une question sur les mdp. J’ai perdu mon mdp de windows (je peux encore me logger avec l’emprente digitale ouff lol) vista. Quelqu’un sait il comment je pourais le retrouver??
je cite: “Aller sur un dictionnaire de md5: Gdataonline qui possède presque 2 milliards de combinaisons.”, on peut voir sur gdataonline: “Total number of cracked hashes: 2,058,987″
soit 2 Millions ^^
@borkmadjai, en plus de lire tout mon blog d’un seul coup, tu le lis trop attentivement
!!! Merci je vais corriger ça de suite
héhé
c’est pas souvent que je trouve de bon blog, mais quand ça arrive je bouffe tous d’un coup ^^
svp je voudrai savoir coment hake les gens parce que o me la fait