[mythes] MD5 a été cassé

Dernière mise à jour le 12 novembre 2009 à 13:26 par marlalapocket
Publié par sebsauvage

Mythe


MD5 a été cassé.
Il n'est plus sûr.
Il ne faut plus l'utiliser.

Réalité


FAUX.

Explications


Collisions


La faille trouvée dans MD5 concerne la possibilité de trouver des collisions MD5 (c'est-à-dire des blocs de données différents possédant la même MD5), ce qui n'avait jamais été réalisé auparavant.

Dans l'absolu, trouver de telles collisions nécessitait des temps de calcul hors de notre portée.
Les chercheurs sont parvenus à trouver rapidement des collisions MD5, ce qui est bien une découverte en cryptanalyse.

Cependant, il est toujours impossible de forger des données ayant une MD5 précise.
Il n'est donc pas possible pour un "ennemi" de créer un fichier ayant la même MD5 qu'un fichier existant.
On ne peut donc pas dire que MD5 a été "cassé".

(On peut seulement créer des fichiers ayant la même MD5, mais cela nécessite d'inclure un bloc de données de bourrage (appelé invariant MD5), et vous ne choisissez ni le contenu de ce bloc de bourrage (qui a un aspect aléatoire), ni la MD5 résultante.)


Il va donc falloir - à long terme - passer à d'autres algorithmes (comme SHA-256, SHA-512), mais dans l'immédiat, MD5 ne pose pas de problème de sécurité (sauf cas très particuliers).


Note: Des collisions ont également été trouvées pour SHA-1. Les mêmes remarques s'appliquent.

Rainbow-tables


On entend aussi dire qu'il ne faut plus utiliser MD5 car avec les rainbow-tables, on peut trouver le mot de passe correspondant en quelques secondes, voire quelques minutes.

Dans la pratique


Dans la pratique, ce n'est pas vraiment un problème.
  • pour contrer les risques de présence d'invariants MD5, on peut utiliser MD5 concaténé à SHA-1. Les invariants étant différents, impossible de falsifier les deux à la fois. On peut aussi utiliser SHA-256 ou SHA-512 à la place de (ou avec) MD5.
  • pour contrer les rainbow-tables, il suffit d'ajouter un salt devant: Au lieu de calculer MD5(motDePasse), on calcule MD5("n'importe quoi"+motDePasse). Ceci rend les rainbow-tables totalement inutilisables pour une attaque.



En revanche, pour les systèmes existants utilisant MD5 pur, cela peut poser problème, aussi bien pour les invariants que pour les rainbow-tables.
Ces systèmes doivent être mis à jour.
Meilleures réponses pour « MD5 a été cassé » dans :
Fichier MD5 Voir Format MD5 Un fichier MD5 est une somme de contrôle. Comment lire ou créer un fichier MD5 ? Pour utiliser un fichier MD5, veuillez consulter le lien ci-dessous : MD5Sum
Numériser ses cassettes audio ou vinyles sur CD ou disque dur Voir Comment transférer le contenu d'une cassette audio ou d'un vinyle vers son disque dur ? Comment graver sur CD ses vieux vinyles et cassettes ? Cet article vous présente le matériel et les logiciels nécessaires pour y remédier : I....
Numériser des cassettes magnétiques VoirProblème Comment faire pour enregistrer mes cassettes audio magnétique vers un format audio numérique ? Solution Si l'on possède un lecteur de cassette magnétique avec une sortie audio mini jack, avec le fil mini-jack, ( se trouve dans...
Télécharger MD5 Checksum VoirEn téléchargeant des données sur Internet, il est possible que les données soient altérées par un tiers ou tout simplement que le lien de téléchargement soit corrompu. MD5 Checksum est un outil permettant de vérifier l'intégrité d'un fichier par la...