Comment vérifier les fichiers téléchargés

L’auteur a sélectionné la Electronic Frontier Foundation pour recevoir un don de 300 $ dans le cadre de la Write pour DOnations programme.

introduction

Vous avez probablement téléchargé un logiciel à code source ouvert, tel qu’un ISO de distribution Linux, et à côté du lien de téléchargement se trouvait un lien permettant de télécharger une somme de contrôle du fichier. Vous êtes-vous déjà demandé à quoi servait ce lien de somme de contrôle? Cette somme de contrôle sert à vérifier l’intégrité du fichier que vous venez de télécharger.

Le 20 février 2016, le site Web de Linux Mint, une distribution Linux populaire, était hacked et l’ISO utilisé pour installer la distribution était compromis. Avant que l’ISO compromise ne soit découverte, de nombreuses personnes avaient téléchargé et éventuellement installé une version de Linux Mint avec une porte dérobée cuite.

Cette installation dangereuse aurait pu être évitée au niveau de l’utilisateur si les personnes ayant téléchargé l’ISO modifiée avaient effectué une vérification de fichier pour voir si ce qu’elles avaient téléchargé avait la même somme de contrôle que le fichier d’origine. L’ISO piraté avait une somme de contrôle complètement différente de l’ISO originale.

Bien que la vérification de fichier puisse indiquer qu’un fichier a peut-être été piraté, il est souvent plus utile de montrer à l’utilisateur que le fichier qu’il a téléchargé n’est pas tout à fait correct ou qu’il a été modifié au cours du processus de téléchargement. Si un paquet TCP a été abandonné pendant le téléchargement, le fichier que vous avez téléchargé peut ne plus être que superflu, et la vérification du fichier vous indique que ce que vous avez téléchargé est différent de ce qui est disponible sur le serveur source.

Dans ce didacticiel, vous apprendrez ce qu’est la vérification de fichier, son importance et comment le faire sous différents systèmes d’exploitation à l’aide d’outils en ligne de commande.

Conditions préalables

Pour cet article, vous utiliserez les outils de ligne de commande permettant de vérifier les fichiers, intégrés à tous les principaux systèmes d’exploitation.

Vous aurez besoin d’un fichier à vérifier, ainsi que des sommes de contrôle MD5 et SHA1 pour ce fichier.

Nous allons utiliser une image ISO d’installation Ubuntu pour nos vérifications de fichiers. Téléchargez le fichier Ubuntu CD minimal pour les ordinateurs 64 bits (amd64, x86_64). Pendant le téléchargement, notez les sommes MD5 et SHA1 à côté du lien de téléchargement. Vous utiliserez ces sommes de contrôle tout au long du didacticiel.

Comment fonctionne la vérification de fichier

La vérification de fichier, également appelée hashing, consiste à vérifier qu’un fichier que vous avez sur votre ordinateur est identique au fichier source. Lorsque vous hachez un fichier, il vous reste un checksum, une chaîne alphanumérique aléatoire de longueur définie. Le hachage d’un fichier ne le crypte pas et vous ne pouvez pas utiliser une somme de contrôle et l’exécuter à travers un algorithme pour obtenir le fichier source original.

Le processus permettant de générer une somme de contrôle est souvent appelé une fonction cryptographique à sens unique. Lorsque vous effectuez un hachage sur un fichier, celui-ci est «résumé» en une chaîne de caractères aléatoires. Par exemple, disons que vous avez un document contenant 1000 caractères. Lorsque le fichier est haché à l’aide de l’algorithme MD5, la somme de contrôle résultante est de 32 caractères aléatoires. Si vous devez hacher un fichier de 2 000 caractères, la somme de contrôle MD5 obtenue est toujours de 32 caractères. Même si le fichier source ne contenait que 10 caractères, la somme de contrôle MD5 comporterait toujours 32 caractères aléatoires.

Chaque fois que vous effectuez un hachage sur le même fichier, vous obtenez toujours la même chaîne de caractères dans le hachage, tant que chaque bit de ce fichier n’a pas changé. Mais si même une chose est différente, comme un espace supplémentaire dans le fichier, la somme de contrôle sera complètement différente.

Il existe généralement deux types de sommes de contrôle que vous verrez pour les vérifications de fichiers, MD5 ou SHA.

L’algorithme MD5 reçoit beaucoup de critiques dans le monde du cryptage pour sa facilité de piratage, mais ce n’est pas une préoccupation pour la vérification de fichiers. En ce qui concerne la vérification de l’intégrité d’un fichier, la faiblesse de l’outil de chiffrement n’a pas d’importance. C’est bon pour nous, car MD5 est une spécification mature et plus rapide que d’autres méthodes pour effectuer des hachages.

L’utilisation de l’algorithme de hachage SHA pour les sommes de contrôle a récemment augmenté, car c’est l’algorithme de hachage utilisé dans certains cryptages modernes. Contrairement à MD5, SHA a différentes versions et il est important d’utiliser la version correcte lors de la vérification. La version est identifiée par un numéro tel que 1, 2, 3 ou par le nombre de fois que SHA est exécuté successivement, par exemple 256, 384 ou 512. La somme de contrôle que vous utilisez doit spécifier la version de SHA à utiliser. Si le site spécifie uniquement un hachage avec l’étiquette SHA, sans numéro, il est alors prudent de supposer qu’ils utilisent SHA1.

Aux fins de la vérification du fichier, les deux méthodes sont également valables. Bien que l’algorithme soit différent, les deux renverront une chaîne aléatoire avec une longueur définie, bien que les hachages MD5 soient plus courts que tous les hachages SHA.

Le contrôle du hachage sur les fichiers téléchargés fournit deux assurances différentes qui en valent la peine. Tout d’abord, avec une somme de contrôle correspondante, vous pouvez être sûr que le fichier que vous venez de télécharger est identique à la source et qu’il n’a pas été modifié par une tierce partie. Et deuxièmement, vous savez que le fichier n’a pas été corrompu ni modifié pendant le transit. Ces deux cas sont importants car, si l’un de ces cas devait se produire, le téléchargement que vous avez effectué pourrait être dangereux pour votre ordinateur ou ne pas fonctionner du tout.

Maintenant que vous savez ce qu’est une somme de contrôle et pourquoi vous devez vérifier vos fichiers, voyons comment le faire pour votre système d’exploitation. Nous allons commencer par regarder Linux.

Vérification de fichier sous Linux

La plupart des distributions Linux ont des outils de ligne de commande pour chaque algorithme de hachage. Le motif du nom de l’outil est «HASH-TYPE» plus le mot «sum». Donc, pour hacher avec MD5, le nom du programme est + md5sum +. Pour hacher avec SHA 256, la commande est + sha256sum +. Si vous n’êtes pas sûr du nom exact, tapez le nom de l’algorithme de hachage, puis appuyez deux fois sur la touche tab. La plupart des distributions afficheront toutes les commandes commençant par ce nom d’algorithme. Nous allons passer en revue quelques contrôles populaires ci-dessous.

Nous effectuerons notre premier contrôle en utilisant l’algorithme de hachage MD5. Exécutez la commande + md5sum + et transmettez-lui le chemin du fichier que vous voulez hacher:

md5sum mini.iso

Les résultats ressembleront à ceci:

Output8388f7232b400bdc80279668847f90da  mini.iso

Cette chaîne aléatoire, commençant par «8388f», constitue la somme de contrôle. C’est ce que vous devrez comparer avec la somme de contrôle fournie sur la page de téléchargement.

Étant donné que toute modification du fichier entraîne une somme de contrôle complètement différente, pour gagner du temps, il suffit de vérifier les premiers caractères et les derniers sont identiques à la source et non à chaque caractère.

Par exemple, si vous souhaitez vérifier rapidement que la somme de contrôle de 'mini.iso ’est une correspondance, vérifiez que les deux sommes de contrôle commencent par' 8388f’ et se terminent par 'f90da ’. Si les deux correspondent, alors il est fort probable (presque 100%) que le hash complet soit le même.

Si vous voulez être sûr à 100%, il vous suffit de copier et coller la somme de contrôle du site Web sous le résultat de la vérification locale pour voir si tous les caractères sont alignés:

Output8388f7232b400bdc80279668847f90da  mini.iso
8388f7232b400bdc80279668847f90da

Voyons maintenant comment vérifier les hachages SHA. Les commandes de hachage SHA les plus courantes sont + sha1sum + et + sha256sum +. Exécutez la commande + sha1sum + en lui passant le chemin du fichier:

sha1sum mini.iso

Les résultats ressembleront à ceci:

Outputcce936c1f9d1448c7d8f74b76b66f42eb4f93d4a  mini.iso

Comparez la valeur obtenue à la valeur de la page Web pour vérifier leur correspondance.

Voyons maintenant comment vérifier les fichiers sur macOS.

Vérification de fichier sur macOS

Contrairement à Linux, macOS ne dispose que de deux commandes de hachage (+ md5 + et + shasum +), au lieu d’une pour chaque algorithme. Mais nous pouvons toujours effectuer toutes les vérifications dont nous avons besoin avec ces outils seulement.

Malgré différentes applications et différents systèmes d’exploitation, le résultat de ces outils est le même sur tous les systèmes d’exploitation.

Puisque + md5 + est un algorithme autonome, il s’agit de sa propre commande sur macOS. Exécutez la commande + md5 + en lui passant le chemin du fichier à vérifier:

md5 mini.iso

Les résultats ressembleront à ceci:

OutputMD5 (mini.iso) = 8388f7232b400bdc80279668847f90da

Comme vous pouvez le constater, la sortie sur macOS n’est pas exactement la même que celle sous Linux, mais elle affiche toujours le nom du fichier et une chaîne aléatoire de 32 caractères. Comparez les caractères avec la somme de contrôle MD5 d’origine et assurez-vous qu’ils correspondent.

Voyons maintenant comment vérifier les sommes de contrôle SHA. macOS dispose d’un utilitaire utilisé pour effectuer toute vérification SHA appelée + shasum +. Lors de son exécution, vous fournissez le type de vérification SHA que vous souhaitez en tant qu’argument.

Exécutez la commande suivante en spécifiant SHA1 à l’aide de l’indicateur + -a +:

shasum -a 1 mini.iso

Les résultats ressembleront à ceci:

Outputcce936c1f9d1448c7d8f74b76b66f42eb4f93d4a  mini.iso

Comparez cette valeur au hachage SHA1 du fichier d’origine. S’ils ne correspondent pas, essayez de télécharger le fichier et de vérifier son hachage.

Si vous deviez effectuer une vérification SHA 256, la commande serait + shasum -a 256 mini.iso +. Si vous ne fournissez pas le type, SHA1 est utilisé par défaut.

Ensuite, examinons la vérification des fichiers sous Windows.

Vérification de fichiers sous Windows

Windows 7 et les versions ultérieures incluent l’application + certutil + qui peut gérer tous nos besoins en hachage. La sortie est très différente de Linux et macOS, mais la somme de contrôle sera la même et tout aussi valide. Les deux exemples suivants utilisent PowerShell.

Le format de la commande est + certutil -hashfile +.

La commande 'certutil' n’étant pas sensible à la casse, les balises 'CertUtil', 'certUtil' et 'certutil' sont toutes valides. Cependant, l’algorithme est sensible à la casse, ce qui signifie que «md5» ne fonctionnera pas et que vous devrez taper «MD5».

Pour vérifier le hachage MD5 du fichier + mini.iso +, exécutez la commande suivante:

certutil -hashfile mini.iso MD5

Les résultats ressembleront à ceci:

OutputMD5 hash of file mini.iso:
8388f7232b400bdc80279668847f90da
CertUtil: -hashfile command completed successfully.

Pour l’algorithme SHA, nous exécuterons la même commande, mais nous utiliserons + SHA1 + au lieu de + + MD5 +.

Le nombre après + SHA + spécifie la version différente ou les itérations de SHA. Nous utilisons donc + SHA + ou + SHA1 + pour le hachage SHA1, ou + SHA256 + si nous avions besoin de l’algorithme SHA 256.

certutil -hashfile mini.iso

Les résultats ressembleront à ceci:

OutputSHA1 hash of mini.iso:
cce936c1f9d1448c7d8f74b76b66f42eb4f93d4a
CertUtil: -hashfile command completed successfully.

Comparez le hachage résultant à celui de la page de téléchargement pour vous assurer qu’ils correspondent.

Conclusion

Que vous veilliez à ce que le fichier que vous venez de télécharger ne soit pas corrompu pendant le téléchargement ou que vous vérifiiez qu’une personne nuisible n’a pas piraté le serveur de téléchargement, le temps supplémentaire nécessaire pour vérifier le hachage d’un fichier en vaut la chandelle.

Si la ligne de commande est un peu trop gênante pour une vérification facile des fichiers, voici quelques outils basés sur une interface graphique que vous pouvez utiliser à la place: