Vérifier l’intégrité d’un fichier sous Ubuntu, Linux Mint et Debian

Vérifier l’intégrité d'un fichier sous Ubuntu, Linux Mint et Debian

Voici un tutoriel pour vérifier sous Ubuntu, Linux Mint et Debian, l’intégrité d’un fichier téléchargé avec des empreintes MD5, SHA1 ou SHA256 et s’assurer qu’il est conforme à l’original et non corrompu.

Introduction

Pourquoi vérifier l’intégrité d’un fichier téléchargé

Lorsque l’on télécharge un fichier d’ISO d’installation d’un OS ou un logiciel, ce dernier pourrait être corrompu par rapport à son original pour plusieurs raisons :

  • erreur de lecture/écriture lors du téléchargement
  • code malveillant introduit par des hackers sur le fichier mis à disposition
  • etc.

Aussi, pour vérifier qu’un fichier correspond bien à celui attendu, les éditeurs et développeurs peuvent mettre à disposition sur leur site (parfois dans un fichier) des empreintes des hachages des fichiers originaux.

Qu’est-ce qu’une empreinte de hachage

Les empreintes de hachage sont des empreintes numériques uniques obtenues par un calcul complexe avec des fonctions de hachage. Elles sont couramment utilisées en informatique et cryptographie par exemple pour chiffrer un mot de passe sauvegarder dans une base de donnée.

Il existe plusieurs algorithmes pour trouver ces empreintes de hachage :

  • SHA-2 dont l’usage est recommandé aujourd’hui car plus sûr. Il permettra entre autre de calculer des empreintes SHA-256 (sur 256 bits) ou SHA-512 (512 bits).
  • MD5 (128 bits) dépassé car pas assez fiable.
  • SHA-1 (160 bits) aussi dépassé.

Vérifier la provenance d’un fichier de clé d’intégrité

Si la ou les empreintes de hachage sont dans un fichier, ce dernier s’accompagne parfois d’un fichier de signature gpg qui permet de vérifier son authenticité (sa provenance).

Ajouter la clé publique d’un éditeur

Pour contrôler son authenticité, commencez par importer la clé publique de l’éditeur dans votre trousseau de clé avec une commande du type :

gpg --keyserver adresse_du_serveur --recv-keys clé

adresse_du_serveur à remplacer par celle de l’éditeur

clé à remplacer par la clé de l’éditeur

Vous pouvez aussi ajouter d’autre option comme --keyid-format long pour utiliser un format de clé long.

Pour lister les clés déjà importer faites :

gpg --list-keys
gpg --list-keys


Pour supprimer une clé, faites :

gpg --delete-key key-ID

key-ID à remplacer par l’ID de la clé en question

Exemples 1 : ajout des clés publiques Ubuntu

Pour ajouter les clés publiques de Ubuntu, faites :

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x46181433FBB75451 0xD94AA3F0EFE21092

--keyid-format long est une option

(source : Site officiel Ubuntu)

import des clés publics ubuntu

Exemples 2 : ajout des clés publiques Linux Mint

Pour ajouter les clés publiques de Linux Mint, faites :

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key "27DE B156 44C6 B3CF 3BD7  D291 300F 846B A25B AE09"

(source : Site officiel Linux Mint)

import clé public linux mint

Exemples 3 : ajout des clés publiques Debian

Pour ajouter les clés publiques de Debian, faites :

gpg --keyserver keyring.debian.org --recv-keys "1046 0DAD 7616 5AD8 1FBC  0CE9 9880 21A9 64E6 EA7D" "DF9B 9C49 EAA9 2984 3258  9D76 DA87 E80D 6294 BE9B" "F41D 3034 2F35 4669 5F65  C669 4246 8F40 09EA 8AC3"

(source : Site officiel Debian)

import cles public debian

Vérifier la signature d’un fichier de clés de hachage

Une fois la clé publique dans votre trousseau, placez le fichier de signature (.gpg, .sign, …) dans le même dossier que votre fichier de clés de hachage.

Ouvrez un terminal (Ctrl + Alt + T) et positionnez-vous dans ce dossier :

cd /chemin/vers/dossier/

/chemin/vers/dossier/ : est à remplacer par votre chemin. Par exemple : ~/Téléchargements/ si votre dossier Téléchargements est à la racine de votre dossier Home.

ouvrir dans un terminal

Pour ouvrir directement un terminal dans un dossier voulu, faites un clic droit de la souris dans ce dossier et choisissez Ouvrir dans un terminal.

Et faites :

gpg --verify fichier.gpg fichier_cle_hachage

fichier.gpg à modifier par le nom du fichier correspondant

fichier_cle_hachage aussi à modifier par le nom correspondant

En résultat, vous aurez le nom du fichier et Réussi ou Échec.

Exemple :

gpg --verify SHA256SUMS.gpg SHA256SUMS
vérifier signature sha256sums Ubuntu 20.04

Dans l’exemple, l’option --key-id-format long est facultative.

Vérifier l’intégrité d’un fichier en ligne de commande sous Ubuntu, Linux Mint ou Debian

Avec cette méthode, il n’y a rien à installer. Personnellement, c’est la méthode que je préfère…

Créer un fichier d’empreinte de hachage

Un fichier d’empreintes de hachage n’est pas systématiquement fourni. Parfois, les empreintes sont justes indiquées sur le site. Alors, il faut calculer l’empreinte du fichier et la comparer manuellement avec celle fournies. Mais pour éviter cette comparaison plus hasardeuse, il est possible de créer soit-même ce fichier d’empreintes. C’est un simple fichier en texte brut.

Pour créer ce fichier :

  1. Ouvrez votre éditeur de texte.
  2. Alors copiez/collez en premier l’empreinte d’origine.
  3. Puis faites une un espace.
  4. Et indiquer en deuxième le nom complet du fichier correspondant.

Aussi, si vous avez plusieurs fichiers à tester utilisant le même type d’empreinte, vous pouvez tous les ajouter dans un fichier même à raison d’une empreinte par ligne.

fichier sums perso

Enfin, sauvegardez le fichier en le nommant par exemple :

  • SHA256SUMS pour des empreintes SHA256
  • SHA1SUMS pour des empreintes SHA1
  • MD5SUMS pour des empreintes MD5

mais tout autre nom est aussi valide !

Comparer et vérifier automatiquement l’intégrité d’un fichier

Avant de commencer, mettez le fichier de hachage dans le même dossier que le fichier à contrôler. Aussi, pensez à vous assurer que le fichier contrôlé porte bien le même nom que celui contenu du fichier. Pour cela, ouvrez le fichier d’empreintes avec votre éditeur de texte préféré.

Puis pour des empreintes de hashage SHA-256, faites :

sha256sum --ignore-missing -c nom_du_fichier_de_hachage_SHA256

--ignore-missing (facultatif) : permet de n’affichez le résultat que des fichiers existants.

-c : permet de faire une comparaison

nom_du_fichier_de_hachage_SHA256 : à remplacer par le nom de votre fichier

résultat vérification intégrité fichier sous Ubuntu - Réussi
Les deux empreintes correspondent. L’intégrité du fichier est bonne.
résultat vérification intégrité fichier sous Ubuntu - Echec
Les deux empreintes ne correspondent pas. Le fichier est corrompu.

Pour des empreintes SHA-1, faites :

sha1sum -ignore-missing -c nom_du_fichier_de_hachage_SHA1

ou encore, pour des empreintes MD5 :

md5sum -ignore-missing -c nom_du_fichier_de_hachage_MD5

L’opération de vérification peut peut prendre plus ou moins de temps en fonction de plusieurs éléments :

  • La grosseur du fichier : Plus un fichier sera gros, plus ça prendra de temps…
  • L’Algorithme utilisé : Pour un même fichier, des empreintes MD5 (plus simple) seront plus rapide à calculer que des empreintes SHA256 ou SHA512 (plus longues) pour un même fichier…
  • ou encore la vitesse d’accès du disque ou du support. Un disque SSD est plus rapide d’accès que disque « normal »…

Calculer une empreinte d’un fichier

Si vous n’aviez pas de fichiers, il faudrait calculer l’empreinte du fichier, puis la comparait manuellement avec l’empreinte d’origine.

Pour calculer une empreinte SHA256 d’un fichier, faites :

sha256sum /chemin/vers/nom_du_fichier

/chemin/vers/nom_du_fichier : est à adapter…

calcul hash fichier

Pour une empreinte SHA1 :

sha1sum /chemin/vers/nom_du_fichier

Et pour une empreinte MD5 :

md5sum /chemin/vers/nom_du_fichier

Vérifier l’intégrité d’un fichier par l’interface graphique sous Ubuntu, Linux Mint ou Debian

Un outil, Gtkhash, permet de vérifier l’intégrité d’un fichier sous Ubuntu, Linux Mint ou Debian par l’interface graphique. Pas installé par défaut, il est présent sur les dépôts officiels de ces distributions. Pour l’installer, cliquez sur ce lien apt : apt://gtkhash ou dans un terminal, faites :

sudo apt install gtkhask

Exécutez-le avec son lanceur depuis le menu :

lanceur gtkhash

Dans l’interface vous pourrez :

vérifier intégrité fichier avec gtkhash sous ubuntu

  1. Sélectionner un fichier (1)
  2. Calculez les différentes empreintes d’un fichier (2)
  3. Voir le résultat du calcul (3)
  4. Comparer ces résultats avec l’empreinte d’origine que vous aurez collé dans le champ (4). La pastille verte indique une comparaison réussie.

Il existe aussi des extensions pour l’intégrer dans plusieurs gestionnaires de fichier. Ainsi, dans la fenêtre de propriétés d’un fichier, un onglet Empreintes permettra de les calculer et les comparer. Pour :

  • Nautilus (environnement Gnome, Ubuntu) : nautilus-gtkhash
  • Nemo (environnement Cinnamon, Linux Mint Ed. Cinnamon) : nemo-gtkhash
  • Thunar (environnement XFCE, Xubuntu, Linux Mint Ed. XFCE) : thunar-gtkhash
  • Caja (environnement MATE, Ubuntu MATE, Linux Mint Ed. MATE) : caja-gtkhash
une fois l’extension installée, il faudra redémarrer votre session ou votre ordinateur pour voir apparaitre ce nouvel onglet.
propriétés onglet empreintes dans nautilus
dans Nautilus (Gnome)

Pour aller plus loin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.