Comment vérifier l’intégrité des fichiers téléchargés ?

Comment être sûr que les fichiers que l’on télécharge ne sont pas corrompus ?


  Pourquoi et comment se préoccuper de l’intégrité des fichiers ?

Quand on télécharge des fichiers, il existe des risques (non négligeables) qu’ils soient corrompus en raison de problèmes de qualité de la transmission des données sur le réseau, ou d’altérations dues à des virus ou autres causes. Il est donc prudent de s’assurer de l’intégrité des données en comparant « l’empreinte » (checksum = somme de contrôle) du fichier d’origine avec celle du fichier téléchargé. Il s’agit là simplement de vérifier que le fichier téléchargé est exactement le même que l’original.
Par ex. un fichier de logiciel peut contenir un malware sans que cela modifie sa taille et ses autres caractéristiques, mais il n’aura pas la même empreinte…
Cela vaut notamment pour les fichiers ISO, mais ça s’applique aussi aux fichiers archive, image, audio, exécutables, en fait pour tout fichier numérique.
Un exemple (juin 2017), l’infestation du logiciel  libre (GPL) de traitement vidéo Handbrake ! Comme l’explique Korben, la vérification de l’empreinte du fichier téléchargé aurait suffi à éviter le risque.

Il existe plusieurs algorithmes de « hachage » (message digest), qui condensent le fichier en une suite de caractères alphanumériques unique : MD5, SHA-1, CRC-32, SHA-2 (256, 512…), Tiger, Whirlpool, RIPEMD-128, mais on se contente des 3 premiers pour les usages courants (les autres sont plus puissants et servent surtout en cryptographie, par ex. pour « hacher » les mots de passe). Ça a été vrai, mais lire ci-dessous la note de décembre 2015.

Pour ceux qui veulent aller au fond des choses, cet article de Wikipédia. Ou celui d’Assiste.com.

Note décembre 2015 : le progrès des capacités de calcul des ordinateurs est tel qu’il rend caduques les premiers algorithmes. MD5 et CRC-32 sont déjà déclassés, et SHA-1 ne va pas tarder à l’être. Concrètement il faut désormais utiliser SHA-256 qui devient la norme, ou si c’est proposé SHA-512, plus puissant. Il existe d’autres algorithmes, mais ils ne sont pas proposés en général pour la vérification de l’intégrité des fichiers téléchargés.

Comment procéder ?

L’empreinte est fournie normalement par le site qui propose le fichier original. Par ex. si vous voulez vous procurer Ubuntu 15.04 pour l’installer sur votre ordinateur, vous trouverez les “sommes de contrôle” des différentes versions proposées. Copiez l’empreinte de la version que vous téléchargez, et quand vous aurez terminé ce téléchargement, comparez la avec celle du fichier téléchargé. S’ils ne sont pas identiques, c’est que votre téléchargement n’est pas bon et que le fichier ISO est corrompu. Et il faut donc recommencer le téléchargement du fichier ISO, sinon vous aurez des ennuis au cours de l’installation du logiciel, ou après !

Mais comment comparer l’empreinte du fichier téléchargé à celle fournie par l’éditeur ? Grâce à des programmes dédiés, qui permettent au minimum cette comparaison et parfois davantage. Je croyais naïvement qu’il en existait deux ou trois, en fait il en existe des quantités quand on se met à chercher. J’ai donc décidé de me limiter ici aux utilitaires gratuits qui fonctionnent sous Windows 7 au moins. Sous Linux, la pratique du checksum est depuis longtemps établie, et un programme de hachage fourni par défaut avec la plupart des distribution. J’en parlerai aussi.

Voici d’abord celui que j’utilise quand je suis sous Windows. A la fin de la présentation j’en signale quelques autres, mais j’ai renoncé à ma pratique de fournir des listes de logiciels, car je ne peux pas tous les essayer et je ne veux plus indiquer des softs et des sites pour lesquels je n’ai pas une réelle confiance ou une expérience suffisante. Mais cela ne veut absolument pas dire qu’il n’y en a pas d’autres de bons, voire meilleurs, n’est-ce pas !

Je présente ensuite les procédures sous Linux Ubuntu. Pourquoi seulement Ubuntu ? parce que c’est la distribution la plus courante, et notamment pour ceux qui ont besoin d’un tuto comme le mien ! Gageons que les aficionados de Fedora, d’ArchLinux, de Gentoo ou d’OpenSuse n’ont pas besoin de mon aide, bien au contraire.

Je remanie donc complètement mon article de 2011, pour ne garder que ce qui reste d’actualité en 2016.

Vérifier l’empreinte d’un fichier ISO sous Windows

Lancer l’utilitaire SHA-256

On peut récupérer les principaux utilitaires de checksum sur le site de Tux-planet. Ce sont des exécutables windows, fort anciens (2007), mais toujours fonctionnels quel que soit la version de Windows. Le seul qu’il faut surtout récupérer, c’est SHA-256, à moins d’être un adepte de la ligne de commandes.

En effet, pour utiliser l’exécutable, il faut le faire en console, avec l’invite de commandes MS-DOS.
On y arrive soit en allant dans le menu Démarrer/commande Exécuter, et dans la boîte de dialogue d’Exécuter on tape cmd.exe, soit on emploie la combinaison de touches “Windows + R” qui ouvre Exécuter, et on y tape cmd. Dans cmd.exe, on écrira la commande : sha256sum.exe [nom du fichier .iso].
Vous remarquerez cependant dans le screenshot ci-dessous que j’ai fait précéder cette commande d’une autre, qui m’a fait changer de répertoire.  Je suis passé du répertoire par défaut c:\users\[moi], au répertoire F:\xxx\téléchargements. Le dossier “Téléchargements” est celui où j’ai personnellement mis les fichiers que j’ai téléchargés, à savoir Sha256sum.exe d’une part, et d’autre part le fichier du logiciel dont je veux contrôler l’intégrité, en l’occurrence HandyLinux dans sa version de janvier 2016.
La commande à saisir est simple : sur la première ligne il suffit d’indiquer la partition où je veux aller, chez moi f:
puis sur la 2ème ligne écrire, après F:\> saisir : cd \[dossier]\[sous-dossier), pour me mettre dans le bon endroit où se trouve les 2 logiciels.

sha256_cmd

La commande d’exécution du checksum met une bonne  vingtaine de secondes à fournir le résultat, que j’ai mis en jaune.
Il ne reste donc plus qu’à comparer avec l’empreinte fournie sur le site d’HandyLinux (pour mon exemple). Le moindre écart dans la somme de contrôle voudrait dire que le fichier .iso est corrompu, et qu’il ne faut pas l’utiliser, mais au contraire le détruire sans pitié (et en rechercher un autre, sur le site de l’éditeur et rien que celui-là, sauf si évidemment le site de l’éditeur en indique un autre, ce qui est d’ailleurs le cas pour HandyLinux).

D’accord, ça manque de convivialité. C’est pour ça que, à moins d’aimer la ligne de commande, je ne propose cette solution qu’avant de fournir la seconde, que j’utilise couramment pour sa simplicité, mais qui est au moins nécessaire pour contrôler l’intégrité du téléchargement qu’on va faire, car ce serait un comble que l’utilitaire dont on va se servir désormais soit corrompu  !

Bon, j’ai trouvé une méthode plus simple, si l’on dispose d’un accès internet. On télécharge le fichier ISO ou autre, comme le fichier .exe de Hashtab. Puis on se rend sur le site de Virustotal, qui propose en ligne de contrôler l’intégrité du fichier.
Voici ce que ça donne :

En cliquant sur “choose file”, vous vous retrouvez sur votre page de Téléchargement (par défaut), où se trouve donc votre fichier HashTab_v.6.0.0.34_Setup.exe (dans cet exemple). Vous double-cliquez dessus pour qu’il apparaissent dans la fenêtre de VirusTotal (à la place de la mention “no file selected”). Vous cliquez alors sur le bouton bleu Scan it! Et en très peu de temps, vous obtenez le résultat.

HashTab Windows

Voici comment fonctionne Hashtab, que vous aurez installé préalablement, après l’avoir contrôlé par sha256sum.exe évidemment, comme j’indique plus haut.
Hashtab est recommandé par Assiste.com, qui propose d’ailleurs le lien vers le site de l’éditeur Implbits, qui le propose gratuitement pour une utilisation domestique. L’éditeur propose 2 versions :
– la v. 5.2.0.14 pour Windows XP ;
– la v. 6.0.0.28 pour Vista et supérieur.

Hashtab s’installe dans l’explorateur Windows, où “Propriétés” offre un nouvel onglet qui s’appelle “Hachages”. Par ex., pour contrôler mon iso HandyLinux, je clique droit sur le fichier HandyLinux que j’ai téléchargé, je choisis “Propriétés” dans la fenêtre d’actions, et je clique sur “Hachages”. Après une 20aine de secondes, on obtient ceci :hashtab-exDans cette fenêtre, au-dessous des valeurs de hachage, il suffit de coller l’empreinte que l’on a récupérée sur le site à côté du fichier du programme, et l’on obtient immédiatement le résultat, qui indique s’il est bon ou non.
Vous remarquerez, entre “valeurs de hachage” et “comparaison de hachage”, en bleu “Paramètres”. En cliquant dessus, on peut choisir les algorithmes que l’on veut. Sur le screenshot ci-dessus, il y en a trois, vous pouvez tous les activer, mais ça prendra beaucoup plus de temps à fournir toutes les sommes de contrôle, alors qu’il n’y en a qu’une seule qui vous intéresse pour un fichier iso particulier.

hashtab-paramètres

 

Voici l’exemple que j’ai utilisé dans la version initiale de mon tuto (et qui reste valide, évidemment) :
Par ex., vous voulez contrôler l’ISO de la dernière version d’Ubuntu que vous comptez installer, et vous allez sur le site de téléchargement, et vous cherchez le foutu endroit où ils ont planqué les sommes de contrôles des différentes versions. Il y a quelques années, c’était directement visible, et j’appelle ce changement une faute.

– Voici ce qu’explique la doc Ubuntu francophone ;
– Et la liste des checksums sur le site officiel  anglophone.

ubuntu_empreintes_1Vous pouvez donc copier l’empreinte de l’ISO que vous comptez télécharger, par exemple celle de la version 64 bits “de bureau” :
53c869eba8686007239a650d903847fd pour ubuntu-15.04-desktop-amd64.iso

Une fois ce téléchargement terminé, vous faites un clic droit sur le fichier ISO, et dans la fenêtre vous choisissez la dernière option de la liste : « propriétés ».

Dans la fenêtre des propriétés, Hashtab a installé un nouvel onglet : « hachages », que vous ouvrez. Vous trouvez 3 valeurs de hachage pour votre fichier : CRC32, MD5 et SHA-1, que vous remplacez désormais par SHA-1 (beaucoup de logiciels ne proposent pas mieux, SHA-256 et SHA-512).
En-dessous vous collez dans « comparaisons de hachages » le checksum que vous avez copié sur le site (et qui peut indifféremment être un MD5, un SHA-1 ou un CRC32), et immédiatement vous avez le résultat positif ou négatif de votre comparaison.

screenshot_ubuntu_2ubuntu_hachage3

 

 

 

 

 

 

 

Cette méthode est vraiment pratique et rapide, et évite de devoir lancer un programme pour effectuer ce contrôle. L’essayer c’est l’adopter.

Autres utilitaires de hachage

Autres programmes recommandables sous Windows :

File checksup tool est un exécutable gratuit à la fois pour usage perso et commercial  (mais Krilack vend d’autres softs par ailleurs), avec interface graphique et fenêtres de comparaison des hashs. En anglais.

File checksum Utility pour Windows est aussi un portable gratuit. Mais je n’ai pas vu de comparateur.Le site s’ouvre par contre en français et l’utilitaire est en français : la version 2.0.20 va jusqu’à W10 x64 (mais il faut le frameword MS.net en v. 4.5.2). On peut le télécharger dans Box.com en secure logi in, ou directement l’exécutable dont on a le hash proposé, qu’il faut copier pour contrôler l’intégrité du produit (on remarque que le contrôle est à faire ici sur un .exe : ce n’est évidemment pas réservé aux ;iso).

Ah oui, si vraiment l’utilisation d’un programme en lignes de commande vous rebute, vous pouvez utiliser un calculateur en ligne : Je n’aime pas généralement cette méthode, mais Assiste.com la propose, alors !…

Vérifier l’empreinte d’un fichier ISO sous Ubuntu

 Sous Linux, l’opération de vérification de l’intégrité des iso téléchargés est ancienne et normale, et l’utilitaire pour le faire est présent par défaut dans chaque distribution.
Cela ne veut malheureusement pas dire que les sites de téléchargement des grandes distributions (n’est-ce pas Fedora ? n’est-ce pas Ubuntu ?) facilitent les choses, comme ils le faisaient avant de proposer le téléchargement “en  un clic” !?

Sous Ubuntu par ex., il existe 2 façons de vérifier l’empreinte d’un fichier iso
Un tuto est proposé avec l’exemple de la vérification du téléchargement du fichier d’installation d’Ubuntu :
https://doc.ubuntu-fr.org/tutoriel/comment_verifier_l_integrite_de_son_image_cd

La 1ère solution est en lignes de commande :

mais pour le linuxien, ce n’est pas un inconvénient comme pour le windowsien. Donc :

-une fois qu’on a téléchargé son iso et son fichier sha256sums (ou sha512sums, etc.)
on se rend dans le terminal dans le dossier de téléchargement :
cd Téléchargements
puis on exécute l’utilitaire, en principe installé par défaut :
shasum -c SHA256SUMS
l’option -c sert à lancer le contrôle et la comparaison des empreintes, à partir des empreintes des fichiers iso listés dans le fichier SHASUMS (autrement dit, il faut avoir téléchargé le fichier de vérification fourni sur le site de téléchagement de votre iso, mais si votre dossier Téléchargements contient d’autres images iso, il ne s’occupera que de l’iso dont il fournit la somme de contrôle). Seule la première ligne, qui correspond au fichier iso qui nous intéresse, est utile : il doit indiquer “OK”.

checksumUbuntu

L’autre solution consiste à utiliser un utilitaire en mode graphique, comme Gtkhash ou Quickhash

Par ex. avec Gtkhash, on l’installe par l’intermédiaire de la logithèque Ubuntu, et une fois téléchargé et installé, on le lance : puis on cherche le fichier iso téléchargé dans “Fichier”, on copie le hash sha256 récupéré (ou le MD5, ou le SHA1, mais c’est obslolète) qu’on colle dans “Véfifier”, et on clique sur Hacher. Si la comparaison est positive, il ya a un v vert qui s’affiche.

gtkhashFedora23

Avec Quickhash, cela donne ceci :

QuickhashUbuntu

Ces utilitaires sont liés à Thunar et XFCE. Il en existe d’équivalents pour d’autres distributions/environnements.

Conclusion : vous trouvez ça plus compliqué que Hashtab sous Windows ? Oui, moi aussi, un peu plus, mais on s’y fait très bien. Et surtout ce sont des solutions libres/open source.