GnuPG – Introduction & Cheat-Sheet

Bonjour à tous, aujourd’hui nous allons voir ensemble un outil très utilisé dans le monde de la cryptographie, GnuPG (Gnu Privacy Guard). Ce dernier est l’implémentation sous licence GNU du standard OpenPGP.

A quoi ça sert ?

GPG comme PGP, qui fonctionnent de la même façon et sont compatibles servent à échanger des messages/fichiers chiffrés et signés afin d’assurer l’authenticité, l’intégrité et la confidentialité des données.

Comment ça marche ?

Ce logiciel est basé sur un système de clé asymétrique comme pour les certificats x509. Pour réaliser des échanges chiffrés et signés, chaque partie devra avoir une paire de clés, avec une clé privée et publique.

Chaque partie doit échanger sa clé publique avec l’autre. Dans le cas d’un envoi la clé publique du destinataire servira à chiffrer le message et la clé privée de l’expéditeur servira à réaliser une signature. La signature est un condensat ou hash du message qui est chiffré avec la clé privée de l’expéditeur.

Lors de la réception, le destinataire pourra alors déchiffrer le message avec sa clé privée et déchiffrer la signature avec la clé publique de l’expéditeur. Ce hash permet de vérifier l’intégrité des données en le comparant à celui du fichier reçu.

L’algorithme asymétrique principalement utilisé par l’outil est RSA, même s’il est possible d’utiliser un système basé sur les courbes elliptiques.

D’autres algorithmes sont utilisés pour les échanges avec GPG comme des fonctions de hachage comme SHA-256 ou SHA-1 pour les signatures ou des algorithmes symétriques comme AES128 ou encore 3DES.

Les algorithmes symétriques sont utilisés pour réaliser les échanges une fois que la clé secrète est connue par les deux parties. La clé secrète est échangée avec l’aide du protocole asymétrique RSA. Ce mécanisme est en place car il serait trop lourd d’utiliser seulement le chiffrement asymétrique. Ce type de fonctionnalité est aussi implémenté dans les protocoles SSL/TLS par exemple.

L’utilisation

Le logiciel GnuPG est implémenté dans de nombreux systèmes et peut-être utilisé sur Windows, Mac et Linux. Sur Windows, vous pouvez utilser GPG4Win par exemple.
Dans mon cas, j’utilise GPG sur Ubuntu 18.04 en ligne de commande directement.

Pour installer GnuPG sous Ubuntu :

Avec la dernière commande votre keystore GPG sera automatiquement créé :

Avant de générer des clés, nous allons voir le fichier de configuration de GPG, par défaut il se trouve dans le dossier ..gnupg dans le dossier de l’utilisateur. Selon les versions, il se peut qu’il ne soit pas présent, vous pouvez alors le créer avec la commande suivante :

Le fichier d’origine est également présent sur ce lien.

Voilà maintenant la liste des options les plus communes et les plus importantes dans ce fichier :

Vous pouvez changer ces paramètres en fonction de vos préférences/besoins. Ils seront utilisés pour générer les clés GPG.

Par défaut AES256 est utilisé pour générer des clés, mais cet algorithme est disproportionné comparé aux tailles de clés RSA utilisées. Dans certaines normes comme PCI CP, il est indiqué qu’il faut utiliser des clés de force égale ou supérieur à celle de toute clé qu’elle protège.

La clé asymétrique doit-être égale ou supérieur à la clé symétrique. Or nous voyons bien dans ce tableau du NIST qu’AES256 est largement supérieur à RSA 2048 ou 3072. C’est une bonne pratique.

Voici maintenant la liste des principales commandes pour l’outil GPG. Il est aussi à noter que les clés privées GPG sont forcément protégée par une passphrase, qui vous sera demandé à chaque action avec cette dernière.

Toute la gestion des clés se fait par l’ID des clés.

Il est également possible de créer un système avec des clés maîtres afin d’avoir une toile de confiance dans la génération des clés. C’est à dire que des clés maîtres vont signer des clés applicatives par exemple, le principe est le même que pour les certificats et les autorités de certification.

Si vous utilisez qu’une seule clé maître vous pouvez la définir comme clé par défaut.

Avant de terminer cet article, un exemple sur la génération d’une clé :

Voilà, vous connaissez maintenant les commandes de bases et les principes de GPG/PGP. Cette technologie peut également se rajouter dans des logiciels, comme dans Thunderbird par exemple pour le chiffrement des mails.

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

MRigonnaux

4 Replies to “GnuPG – Introduction & Cheat-Sheet”

    1. Bonjour,

      Oui c’est vrai j’aurais pu utiliser le référentiel de l’ANSSI plûtot que l’ANSSI, merci pour le rajout.

      Pour la version, j’utilise celle proposée de base sur Ubuntu 18.04 c’est à dire 2.2.12,

      Bonne soirée !

Laisser un commentaire

Votre adresse de messagerie 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.