Guide

MD5, SHA-1, SHA-256 : comment vérifier l'intégrité d'un fichier

Comprendre à quoi sert une empreinte de fichier, pourquoi MD5 et SHA-1 restent utilisés malgré leurs failles, et comment vérifier qu'un téléchargement n'a pas été altéré.

Une empreinte (ou « hash ») est le résultat d’un calcul appliqué à un fichier, qui produit une suite de caractères de longueur fixe et unique au contenu exact de ce fichier. Changer ne serait-ce qu’un seul octet du fichier — une erreur de transfert, une modification malveillante — produit une empreinte totalement différente, ce qui en fait un moyen simple de vérifier qu’un fichier téléchargé est identique à l’original publié par son éditeur.

MD5, SHA-1 et SHA-256 sont trois algorithmes de hachage différents, produisant des empreintes de longueurs différentes : 32 caractères hexadécimaux pour MD5, 40 pour SHA-1, 64 pour SHA-256. Un même fichier a une empreinte MD5, une empreinte SHA-1 et une empreinte SHA-256 différentes mais chacune parfaitement reproductible tant que le contenu du fichier ne change pas.

Le MD5, conçu en 1991, est aujourd’hui considéré comme cryptographiquement cassé : des chercheurs ont démontré qu’il est possible de fabriquer volontairement deux fichiers différents partageant la même empreinte MD5 (une « collision »), ce qui le rend impropre à toute vérification de sécurité contre un attaquant motivé. Il reste néanmoins largement utilisé pour détecter des erreurs accidentelles de transfert ou de copie, un usage où la possibilité d’une collision volontaire n’entre pas en jeu.

Le SHA-1, plus robuste que le MD5 à sa conception, a lui aussi été compromis : Google a publié en 2017 la première collision SHA-1 pratique, ce qui a conduit les navigateurs et autorités de certification à l’abandonner progressivement pour les usages liés à la sécurité, au profit de la famille SHA-2.

Le SHA-256, membre de la famille SHA-2, ne présente à ce jour aucune faiblesse connue permettant de fabriquer une collision, ce qui en fait le standard recommandé pour toute vérification où la sécurité importe réellement : c’est l’empreinte que publient la plupart des éditeurs de logiciels sérieux à côté de leurs liens de téléchargement, et celle qu’utilisent les gestionnaires de paquets Linux pour authentifier une archive .tar ou une image .iso avant installation.

Vérifier l’intégrité d’un fichier consiste simplement à recalculer son empreinte après téléchargement et à la comparer, caractère pour caractère, à celle publiée par la source officielle : un fichier .msi d’installation Windows, une archive .7z partagée en ligne, ou un fichier .torrent dont chaque bloc de données est lui-même vérifié par hachage pendant le téléchargement reposent tous sur ce même principe. La moindre différence, même d’un seul caractère, signale un fichier corrompu ou altéré qu’il ne faut pas ouvrir en confiance.

Vérifier l'empreinte d'un fichier →

Formats concernés

Voir aussi

Sources

Dernière mise à jour :