MD5summer
Création et vérification d'empreintes MD5.
Les empreintes MD5 (fonction de hachage cryptographique) permettent de contrôler l'intégrité des fichiers. On crée une empreinte (ou résumé électronique) des fichiers et à tout moment on peut vérifier si les fichiers correspondent toujours à leur empreinte. Si un fichier ne correspond plus à son empreinte cela signifie soit que ce fichier a été endommagé accidentellement (support physique, transmission ...) soit que ce fichier a été volontairement infecté.
MD5summer permet donc de vérifier l'intégrité des logiciels téléchargés, la majorité des sites de téléchargement fournissant l'empreinte md5 de leurs logiciels.
Par exemple l'empreinte MD5 de l'exécutable "md5summer.exe" version 1.2.0.5 est "6f122df5e2b86bc0bc8885cafe4b9eab"
-
Sauvegardes
Les empreintes md5 peuvent servir à contrôler l'intégrité physique des sauvegardes ou archivages (et md5summer permet de le faire de façon récursive, c'est un point fort de ce logiciel). -
Sécurité
Les empreintes MD5 peuvent servir de détecteur d'intrusion ; en effet, si vous générez des empreintes pour tous les fichiers d'une station (md5summer permet de le faire de façon récursive) vous pouvez détecter la moindre modification (encore faut-il sauvegarder les empreintes sur un support externe car les pirates corrigent parfois les empreintes des fichiers qu'ils infectent). Cependant il n'est pas facile de protéger de cette façon-là les systèmes modernes et Windows en particulier car :- Toute modification de la configuration d'un logiciel modifie un certain nombre de fichiers dont les registres.
- Toute nouvelle installation de logiciel introduit un grand nombre de nouveaux fichiers et modifie un certain nombre de fichiers dont les registres.
- Les mises à jour de sécurité modifient un grand nombre de fichiers.
L'utilisation est donc plutôt réservée aux documents ou données et non pas aux logiciels.
L'empreinte MD5 (Message Digest algorithm version 5) est un algorithme répandu décrit dans le RFC 1321, c'est donc un standard Internet libre.
A titre indicatif l'autre grand standard libre est l'empreinte "SHA-1" (Secure Hash Algorithm version 1).
Les fichiers empreinte "md5summer" contiennent les empreintes sous une forme lisible (32 chiffres hexadécimaux en ASCII), au format du logiciel Linux GNU MD5sum.
Un fichier comprenant simplement les 32 chiffres hexadécimaux de l'empreinte est accepté par "md5summer".
Nous sommes plusieurs enseignants du Cnam de Versailles à utiliser ce logiciel au quotidien pour vérifier nos téléchargements de logiciels et garantir nos sauvegardes.
L'empreinte md5 sur 16 octets garantit sérieusement l'intégrité des fichiers (à titre de comparaison les champs de contrôle de la majorité des protocoles de télécommunication comportent 2 à 4 octets seulement).
- Si un fichier ne correspond plus à son empreinte, il a forcement été modifié (ou alors c'est l'empreinte qui a été modifiée !).
- Si un fichier correspond à son empreinte, il y a une quasi certitude qu'il soit intègre.
- La probabilité que 2 fichiers différents présentent la même empreinte est potentiellement nulle, d'ailleurs certains logiciels de sauvegarde du marché, optimisent les sauvegardes en ne sauvegardant que les fichiers (ou blocs de données) qui changent d'empreinte md5.
Commentaires
GtkCmpHash à voir également
Hop,
J'ai développé dans le cadre de mes besoins, un outil qui permet la vérification de l'intégrité des fichiers. Cet outil utilise au choix, MD5, SHA1 ou RIPEMD160 pour effectuer ses comparaisons (il calcule les trois de toute façon).
Il s'agit d'un outil libre dont le code source est téléchargeable sur http://src.delhomme.org/ (rubrique GtkCmpHash)
Comme cet outil a été développé pour mes besoins particuliers, il est un peu déconcertant pour une utilisation plus classique (de vérification d'intégrité), toutefois, cette utilisation reste possible.
Pour le moment, il n'y a qu'un seul utilisateur connu : le développeur !
Problème de sécurité sur MD5
Attention ! L'algorithme de hachage MD5 n'est plus considéré comme sûr depuis 2004 au moins. (cf, par exemple, http://fr.wikipedia.org/wiki/MD5 , http://www.ecrypt.eu.org/documents/STVL-ERICS-2-HA... )
Il reste néanmoins utilisable pour détecter les erreurs accidentelles.
Limitations MD5
A ma connaissance les failles trouvées dans l'algorithme md5 concernent l'utilisation des empreintes md5 uniquement dans le cas des signatures électroniques : Il est possible de forger des couples de messages "sain/infecté" ayant la même empreinte md5, dans ce cas si l'on réussi à faire signer le message sain par un tiers il est possible de réutiliser la signature du tiers pour le message infecté (SHA-1 présente d'ailleurs le même type de faille).
http://www.cert-ist.com/fra/ressources/Publication...
Dans le cas de l'intégrité des fichiers il reste toujours pratiquement impossible de forger un message ayant une empreinte md5 donnée.
L'empreinte md5 comporte 128 bits et finira un jour par être vulnérable aux attaques par force brute (SHA-1 comporte 160 bits). Nous devons effectivement être prêts à passer au futur standard (SHA-256 ?) dès qu'il se sera imposé sur le marché et à trouver le logiciel libre correspondant !