Aller au contenu
Administration Linux medium

Vérifier l'intégrité d'un fichier : checksums et signatures GPG

9 min de lecture

Un fichier téléchargé peut être corrompu pendant le transfert, ou substitué par un attaquant. La vérification de l’intégrité est un réflexe de base en administration Linux : avant d’installer un outil, de restaurer un backup ou de déployer une configuration critique, on vérifie que le fichier est exactement celui attendu.

Il existe deux niveaux de vérification différents que ce guide distingue clairement.

  • Générer le checksum sha256 d’un fichier avec sha256sum
  • Vérifier un fichier contre un fichier de checksums fourni par la source
  • Comprendre les différences entre md5, sha1, sha256 et sha512
  • Comparer deux fichiers par leur hash pour vérifier qu’ils sont identiques
  • Vérifier une signature GPG détachée (.sig ou .asc)
  • Importer une clé GPG publique depuis un serveur de clés ou une URL

Intégrité vs authenticité : deux niveaux différents

Section intitulée « Intégrité vs authenticité : deux niveaux différents »
VérificationCe qu’on vérifieOutilProtège contre
IntégritéLe fichier n’a pas été altérésha256sum -cCorruption réseau, erreur de transfert
AuthenticitéLe fichier vient bien de l’auteur attendugpg --verifySubstitution malveillante, attaque MITM

Un checksum seul ne prouve pas l’authenticité : si un attaquant remplace le fichier ET le checksum sur un site compromis, la vérification sha256 passera quand même. Pour l’authenticité, seule la signature GPG donne une garantie réelle.


Fenêtre de terminal
sha256sum archive.tar.gz
a3f8c9d1e2b4567890abcdef1234567890abcdef1234567890abcdef12345678 archive.tar.gz

La plupart des projets sérieux publient un fichier .sha256 ou SHA256SUMS à côté des archives.

Fenêtre de terminal
# Télécharger le fichier et son checksum
wget https://example.com/projet-1.0.tar.gz
wget https://example.com/projet-1.0.tar.gz.sha256
# Vérifier
sha256sum -c projet-1.0.tar.gz.sha256
projet-1.0.tar.gz: OK

Si le fichier est altéré :

projet-1.0.tar.gz: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

Vérifier depuis un fichier SHA256SUMS multi-entrées

Section intitulée « Vérifier depuis un fichier SHA256SUMS multi-entrées »

Les distributions publient souvent un seul fichier pour toutes les images :

Fenêtre de terminal
wget https://example.com/SHA256SUMS
sha256sum -c SHA256SUMS 2>/dev/null | grep projet-1.0

sha256sum -c ignore automatiquement les entrées dont les fichiers n’existent pas localement, ou vous pouvez filtrer avec grep.


AlgorithmeCommandeLongueurUsage recommandé
MD5md5sum128 bitsÉviter — cassé cryptographiquement depuis 2004
SHA-1sha1sum160 bitsDéprécié — attaques pratiques démontrées (SHAttered)
SHA-256sha256sum256 bitsStandard actuel — utiliser par défaut
SHA-512sha512sum512 bitsFichiers très critiques, archives de gros backups

sha256sum est le choix correct dans tous les contextes courants d’administration Linux (2026).

md5sum reste utile uniquement pour vérifier rapidement qu’un transfert n’est pas corrompu dans un contexte interne sans enjeu de sécurité — par exemple comparer deux copies d’un fichier sur un réseau local de confiance.


Fenêtre de terminal
sha256sum fichier-original.tar.gz fichier-copie.tar.gz
a3f8c9d1... fichier-original.tar.gz
a3f8c9d1... fichier-copie.tar.gz

Si les deux hashes sont identiques, les fichiers sont bit-à-bit identiques — même si leur nom ou leur date de modification diffèrent.

#!/bin/bash
SRC=$(sha256sum "$1" | cut -d' ' -f1)
DST=$(sha256sum "$2" | cut -d' ' -f1)
if [ "$SRC" = "$DST" ]; then
echo "Fichiers identiques : $1"
else
echo "DIFFÉRENCE DÉTECTÉE : $1$2" >&2
exit 1
fi

La signature GPG prouve que le fichier a été signé par la clé privée d’un auteur que vous avez choisi de faire confiance. C’est la vérification nécessaire pour les paquets, les images de distributions et les outils dont l’authenticité est critique.

  1. Télécharger le fichier, son checksum et sa signature

    Fenêtre de terminal
    wget https://example.com/outil-1.0.tar.gz
    wget https://example.com/outil-1.0.tar.gz.sha256
    wget https://example.com/outil-1.0.tar.gz.sig

    La signature peut être en format binaire (.sig) ou ASCII armored (.asc).

  2. Importer la clé publique GPG de l’auteur

    Fenêtre de terminal
    # Depuis un serveur de clés
    gpg --keyserver keys.openpgp.org --recv-keys 0xABCDEF1234567890
    # Depuis une URL (souvent fournie par le projet)
    curl -fsSL https://example.com/release-signing-key.asc | gpg --import

    L’ID de la clé ou l’empreinte est publié sur la page de téléchargement du projet.

  3. Vérifier l’intégrité avec sha256sum

    Fenêtre de terminal
    sha256sum -c outil-1.0.tar.gz.sha256
  4. Vérifier l’authenticité avec gpg

    Fenêtre de terminal
    gpg --verify outil-1.0.tar.gz.sig outil-1.0.tar.gz
    gpg: Signature made Mon 08 Apr 2026 22:00:00 UTC
    gpg: using RSA key ABCDEF1234567890
    gpg: Good signature from "Auteur <auteur@example.com>" [unknown]
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg: There is no indication that the signature belongs to the owner.

    “Good signature” confirme que le fichier correspond à la signature.

    Le WARNING est normal si vous venez d’importer la clé sans l’avoir signée vous-même. C’est le modèle de confiance GPG (Web of Trust). Pour les projets importants, vérifiez l’empreinte de la clé via plusieurs canaux (site officiel, Twitter, conférences…).


Fenêtre de terminal
# Exemple : Ubuntu 24.04
wget https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
wget https://releases.ubuntu.com/24.04/SHA256SUMS
wget https://releases.ubuntu.com/24.04/SHA256SUMS.gpg
# Importer la clé Ubuntu
gpg --keyserver hkp://keyserver.ubuntu.com \
--recv-keys 0x843938DF228D22F7B3742BC0D94AA3F0EFE21092
# Vérifier la signature du fichier SHA256SUMS
gpg --verify SHA256SUMS.gpg SHA256SUMS
# Vérifier l'ISO
sha256sum -c SHA256SUMS 2>/dev/null | grep ubuntu-24.04-live-server-amd64

SymptômeCauseSolution
sha256sum: FAILED, open or readFichier absent ou mauvais nomVérifier que le nom dans le .sha256 correspond exactement au fichier local
gpg: No public keyClé non importéegpg --recv-keys <ID> ou importation manuelle
gpg: BAD signatureFichier altéré ou mauvaise signatureLe fichier est corrompu ou substitué — ne pas l’utiliser
gpg: key not found on keyserverServeur de clés indisponibleEssayer un autre serveur : --keyserver keyserver.ubuntu.com
Deux espaces requis dans le fichier .sha256Format sha256sumecho "HASH fichier" (deux espaces entre hash et nom)

  • sha256sum fichier génère le hash. sha256sum -c fichier.sha256 vérifie.
  • sha256sum est le standard actuel. md5sum est cassé — n’y faire confiance que pour détecter une corruption accidentelle, jamais une altération intentionnelle.
  • Une signature GPG prouve l’authenticité ; un checksum seul vérifie seulement l’intégrité.
  • Le message “Good signature” de GPG est positif — le WARNING sur la confiance est normal pour une clé nouvellement importée.
  • Stocker les fichiers .sha256 ou .asc séparément des archives pour détecter les corruptions de stockage.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn