
Télécharger un exécutable, une archive ou une image ISO depuis Internet ne garantit pas à lui seul son origine légitime ni son intégrité. Un fichier récupéré sur un miroir de téléchargement ou via un réseau public peut avoir été altéré ou remplacé par un contenu malveillant. Sous Linux, l’utilisation conjointe des sommes de contrôle et de la cryptographie asymétrique permet de parer à ces risques. GPG (GNU Privacy Guard) constitue l’outil standard pour certifier l’authenticité des fichiers grâce à un système de clés publiques et privées.
Ce tutoriel détaille le fonctionnement de GnuPG sous Linux, de l’installation du paquet à l’importation de clés, en passant par le contrôle des empreintes et l’analyse des retours de commande indispensables pour sécuriser votre environnement de travail.
Qu’est-ce qu’une signature GPG et pourquoi l’utiliser ?
GPG repose sur la cryptographie asymétrique, dissociant deux éléments distincts :
- La clé privée : gardée secrète par le développeur ou le responsable de la distribution, elle sert à générer la signature numérique.
- La clé publique : diffusée largement auprès des utilisateurs pour authentifier la provenance des données.
Lorsqu’un projet signe un fichier, GPG calcule un hash mathématique de son contenu et le chiffre à l’aide de sa clé privée. L’utilisateur final utilise ensuite la clé publique correspondante pour déchiffrer cette signature et comparer le résultat.
Cette démarche offre deux garanties fondamentales :
- L’intégrité : le fichier n’a subi aucune altération (corruption ou modification volontaire) depuis sa signature.
- L’authenticité : la signature émane effectivement de la entité détentrice de la clé privée associée.
Différence avec les simples sommes de contrôle (SHA256)
Un hash de type SHA256 permet uniquement de s’assurer qu’un fichier correspond à une empreinte connue. Si un attaquant parvient à compromettre le serveur de téléchargement pour modifier simultanément le fichier et le fichier de hash publié (SHA256SUMS), la vérification simple échouera à détecter la supercherie. Avec une signature GPG, l’attaquant devrait également dérober la clé privée du signataire pour générer une signature valide, ce qui complexifie grandement l’attaque.
Installer GnuPG sous Linux
La plupart des distributions Linux intègrent GnuPG par défaut. Si le binaire n’est pas présent, son installation s’effectue via le gestionnaire de paquets de votre système :
- Sur Debian, Ubuntu et dérivés :Bash
sudo apt update sudo apt install gnupg - Sur Fedora et Red Hat Enterprise Linux :Bash
sudo dnf install gnupg2 - Sur Arch Linux et dérivés :Bash
sudo pacman -S gnupg
Vérifiez le bon fonctionnement de l’outil et sa version active :
gpg --version
Vous pouvez lister le contenu actuel de votre trousseau de clés local avec la commande suivante :
gpg --list-keys
Importer et Gérer les Clés Publiques GPG
Pour valider une signature, vous devez impérativement disposer de la clé publique de l’auteur dans votre trousseau local.
1. Importer un fichier de clé publique direct
Si le site officiel met à disposition un fichier de clé (.asc, .gpg), importez-le directement :
gpg --import cle-publique.asc
2. Récupérer la clé depuis un serveur de clés
Si la documentation du projet indique un identifiant de clé, vous pouvez interroger un serveur de clés public (comme celui d’Ubuntu) :
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys ID_DE_LA_CLE
Si vous ne connaissez pas l’identifiant, tentez d’exécuter la vérification du fichier signé. GPG vous renverra une erreur indiquant l’empreinte de la clé manquante, que vous pourrez alors récupérer.
Valider l’Empreinte Numérique (Fingerprint)
L’importation d’une clé depuis un serveur public ne garantit pas son authenticité absolue, quiconque pouvant publier une fausse clé portant le même nom. Il est donc impératif de vérifier son empreinte (fingerprint).
Affichez l’empreinte de la clé importée :
gpg --fingerprint <ID_DE_LA_CLE>
Comparez la chaîne de caractères hexadécimaux obtenue avec celle affichée sur le canal de confiance officiel du projet (site web sécurisé, documentation officielle, etc.). Les empreintes doivent correspondre caractère par caractère.
Vérifier la Signature d’un Fichier
Le cas le plus fréquent concerne une signature détachée (fournie dans un fichier séparé portant l’extension .sig, .asc ou .gpg).
Pour valider un fichier et sa signature associée, exécutez la commande :
gpg --verify fichier.iso.sig fichier.iso
Interprétation des retours GPG
- Signature valide :Plaintext
gpg: Good signature from "Nom du Développeur ou du Projet"Le fichier est intègre et signé par la clé mentionnée. Assurez-vous simplement que cette clé appartient bien à l’entité attendue. - Signature invalide :Plaintext
gpg: BAD signature from "Nom du Développeur ou du Projet"Le fichier a été corrompu ou modifié après sa signature. Ne l’utilisez en aucun cas. - Clé publique introuvable :Plaintext
gpg: Can't check signature: No public keyVous devez importer la clé publique correspondante avant de procéder à la vérification.
Bonnes Pratiques de Sécurité
- Privilégiez toujours les canaux officiels pour récupérer les clés publiques.
- Ne validez jamais une signature sans avoir contrôlé l’empreinte numérique (fingerprint).
- Nettoyez régulièrement votre trousseau de clés en supprimant celles qui sont obsolètes ou dont vous n’avez plus l’utilité via la commande
gpg --delete-key.







