Que sont les hachages MD5, SHA-1 et SHA-256 et comment les vérifier?
Vous verrez parfois des hachages MD5, SHA-1 ou SHA-256 affichés aux côtés des téléchargements lors de vos voyages Internet, mais vous ne savez pas vraiment ce qu'ils sont. Ces chaînes de texte apparemment aléatoires vous permettent de vérifier que les fichiers que vous téléchargez ne sont ni corrompus ni altérés. Vous pouvez le faire avec les commandes intégrées à Windows, macOS et Linux..
Fonctionnement des hachages et utilisation de ceux-ci pour la vérification des données
Les hachages sont le produit d'algorithmes cryptographiques conçus pour produire une chaîne de caractères. Souvent, ces chaînes ont une longueur fixe, quelle que soit la taille des données d'entrée. Regardez le tableau ci-dessus et vous verrez que «Fox» et «Le renard roux saute par-dessus le chien bleu» donnent la même longueur..
Comparez maintenant le deuxième exemple du graphique aux troisième, quatrième et cinquième. Vous verrez que, malgré un changement très mineur dans les données d'entrée, les hachages résultants sont tous très différents les uns des autres. Même si quelqu'un modifie une très petite partie des données d'entrée, le hachage changera radicalement.
MD5, SHA-1 et SHA-256 sont des fonctions de hachage différentes. Les créateurs de logiciels prennent souvent un fichier à télécharger, comme un fichier .iso Linux, ou même un fichier Windows .exe, et l'exécutent à l'aide d'une fonction de hachage. Ils proposent ensuite une liste officielle des hachages sur leurs sites Web..
De cette façon, vous pouvez télécharger le fichier, puis exécuter la fonction de hachage pour confirmer que vous avez le fichier d'origine réel et qu'il n'a pas été corrompu pendant le processus de téléchargement. Comme nous l'avons vu ci-dessus, même une petite modification apportée au fichier modifiera radicalement le hachage.
Celles-ci peuvent également être utiles si vous avez un fichier provenant d'une source non officielle et que vous souhaitez confirmer qu'il est légitime. Disons que vous avez un fichier .ISO Linux que vous avez obtenu quelque part et que vous voulez confirmer qu'il n'a pas été falsifié. Vous pouvez rechercher le hachage de ce fichier ISO spécifique en ligne sur le site Web de la distribution Linux. Vous pouvez ensuite l'exécuter via la fonction de hachage de votre ordinateur et vérifier qu'elle correspond à la valeur de hachage prévue. Cela confirme que le fichier que vous avez est exactement le même fichier proposé au téléchargement sur le site Web de la distribution Linux, sans aucune modification..
Notez que des “collisions” ont été trouvées avec les fonctions MD5 et SHA-1. Il s'agit de plusieurs fichiers différents, par exemple un fichier sécurisé et un fichier malveillant, qui entraînent le même hachage MD5 ou SHA-1. C'est pourquoi vous devriez préférer SHA-256 lorsque cela est possible.
Comment comparer les fonctions de hachage sur n'importe quel système d'exploitation
Dans cet esprit, voyons comment vérifier le hachage d'un fichier que vous avez téléchargé et comparons-le avec celui que vous avez reçu. Voici les méthodes pour Windows, macOS et Linux. Les hachages seront toujours identiques si vous utilisez la même fonction de hachage sur le même fichier. Peu importe le système d'exploitation que vous utilisez.
les fenêtres
Ce processus est possible sans logiciel tiers sous Windows grâce à PowerShell.
Pour commencer, ouvrez une fenêtre PowerShell en lançant le raccourci «Windows PowerShell» dans le menu Démarrer..
Exécutez la commande suivante en remplaçant «C: \ chemin \ to \ fichier.iso» par le chemin d'accès à tout fichier dont vous souhaitez afficher le hachage:
Get-FileHash C: \ chemin \ vers \ fichier.iso
Il faudra un certain temps pour générer le hachage du fichier, en fonction de sa taille, de l'algorithme utilisé et de la vitesse du lecteur sur lequel se trouve le fichier..
Par défaut, la commande affiche le hachage SHA-256 pour un fichier. Cependant, vous pouvez spécifier l'algorithme de hachage que vous souhaitez utiliser si vous avez besoin d'un MD5, d'un SHA-1 ou d'un autre type de hachage..
Exécutez l'une des commandes suivantes pour spécifier un algorithme de hachage différent:
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme MD5
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme SHA1
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme SHA256
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme SHA384
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme SHA512
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme MACTripleDES
Get-FileHash C: \ chemin \ vers \ fichier.iso -Algorithme RIPEMD160
Comparez le résultat de la fonction de hachage au résultat attendu. S'il s'agit de la même valeur, le fichier n'a pas été corrompu, altéré ou modifié de toute autre manière par rapport à l'original..
macOS
macOS comprend des commandes permettant d'afficher différents types de hachages. Pour y accéder, ouvrez une fenêtre de terminal. Vous le trouverez dans le Finder> Applications> Utilitaires> Terminal.
le md5
La commande affiche le hachage MD5 d'un fichier:
md5 / chemin / vers / fichier
le Shasum
La commande affiche le hachage SHA-1 d'un fichier par défaut. Cela signifie que les commandes suivantes sont identiques:
shasum / chemin / vers / fichier
shasum -a 1 / chemin / vers / fichier
Pour afficher le hachage SHA-256 d'un fichier, exécutez la commande suivante:
shasum -a 256 / chemin / vers / fichier
Linux
Sous Linux, accédez à un terminal et exécutez l'une des commandes suivantes pour afficher le hachage d'un fichier, en fonction du type de hachage à afficher:
md5sum / path / to / file
sha1sum / path / to / file
sha256sum / chemin / vers / fichier
Certains hachages sont cryptographiquement signés pour encore plus de sécurité
Bien que les hachages puissent vous aider à confirmer qu'un fichier n'a pas été falsifié, il existe toujours une possibilité d'attaque. Un attaquant pourrait prendre le contrôle du site Web d'une distribution Linux et modifier les hachages qui y figurent. Il pourrait également lancer une attaque par intrusion et modifier la page Web en transit si vous accédez au site Web via HTTP au lieu de HTTPS crypté.
C'est pourquoi les distributions Linux modernes fournissent souvent plus que les hachages énumérés sur les pages Web. Ils signent ces hachages de manière cryptographique pour se protéger contre les attaquants susceptibles de tenter de les modifier. Vous voudrez vérifier la signature cryptographique pour vous assurer que le fichier de hachage a bien été signé par la distribution Linux si vous voulez être absolument sûr que le hachage et le fichier n'ont pas été falsifiés..
La vérification de la signature cryptographique est un processus plus complexe. Lisez notre guide sur la vérification des fichiers ISO Linux pour obtenir des instructions complètes..
Crédit d'image: Jorge Stolfi / Wikimedia