Recherche de site Web

Comment générer et sauvegarder une paire de clés gpg sous Linux


Gnu Privacy Guard (gpg) est l’implémentation libre et open source du projet Gnu de la norme OpenGPG. Le système de chiffrement gpg est dit « asymétrique » et il est basé sur le chiffrement à clé publique : on chiffre un document avec la clé publique d’un destinataire qui sera le seul capable de le déchiffrer, puisqu’il possède la clé privée qui lui est associée. Gpg nous permet également de signer des documents en utilisant notre clé privée et de laisser d’autres personnes vérifier cette signature avec notre clé publique. Dans ce tutoriel, nous allons voir comment générer et créer une sauvegarde d’une paire de clés gpg.

Dans ce tutoriel, vous allez apprendre :

  • Comment installer gpg
  • Comment générer une paire de clés gpg
  • Comment répertorier nos clés
  • Comment créer une sauvegarde/exportation d’une paire de clés gpg et de trustdb

Configuration logicielle requise et conventions utilisées

Installation du logiciel

Pour pouvoir générer notre paire de clés Gpg, la première chose que nous devons faire est d’installer le logiciel gpg. Bien qu’il devrait déjà être installé sur notre distribution Linux préférée, voici comment l’installer explicitement. Sur Debian, nous devrions exécuter :

sudo apt-get update && sudo update-get install gpg

Sur Fedora, ou plus généralement sur toutes les versions récentes des distributions membres de la famille Red Hat, on peut utiliser le gestionnaire de paquets dnf pour effectuer l’installation :

sudo dnf install gnupg2

Sur Archlinux, en revanche, le paquet s’appelle gnupg et est inclus dans le dépôt de distribution « Core » ; Nous utilisons le gestionnaire de paquets Pacman pour l’installer :

sudo pacman -Sy gnupg

Génération d’une paire de clés

Une fois le logiciel gnupg installé sur notre système, nous pouvons continuer et générer notre paire de clés. Pour démarrer le processus de génération, nous devons exécuter la commande suivante :

gpg --full-gen-key

Une fois que nous aurons exécuté la commande ci-dessus, nous serons invités à répondre à une série de questions. Tout d’abord, nous devrons choisir le type de touches que nous voulons créer :

gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection?

Par défaut, la première option (RSA et RSA) est sélectionnée ; Nous pouvons simplement appuyer sur Entrée et l’utiliser. L’étape suivante consiste à choisir la taille des clés, qui peut être comprise entre 1024 et 4096 bits. La valeur par défaut est 3072. Si nous voulons utiliser une autre valeur, il suffit de la saisir et de confirmer notre choix. Par exemple:

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096

La prochaine chose que nous devrions décider est la date d’expiration de nos clés (le cas échéant) :

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)

Il est important de fixer une date d’expiration pour limiter les dommages que nous pourrions subir si nous perdons nos clés personnelles : si quelque chose comme cela se produit, n’importe qui pourrait se faire passer pour nous, mais au moins pour une durée limitée. Quoi que nous choisissions ici, de toute façon, à la fin du processus, un certificat de révocation sera également généré. Il est très important de le garder en sécurité, afin que nous puissions l’utiliser pour révoquer nos clés dans de telles situations.

Le choix par défaut est 0, de sorte que les clés n’expireront jamais. Si nous entrons simplement un chiffre, il sera interprété comme le nombre de jours après l’expiration des clés. Pour que le(s) chiffre(s) soit (s) interprété(s) comme des semaines, des mois ou des années, nous pouvons utiliser les suffixes appropriés
, respectivement w, m et y.

L’étape suivante du processus consiste en la construction de l’ID des clés. Nous serons invités à saisir nos informations personnelles :

Real name: John Smith
Email address: john.smith@gmail.com
Comment: personal
You selected this USER-ID:
    "John Smith (personal) <john.smith@gmail.com>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

Les informations demandées comprennent :

  1. Notre vrai nom
  2. Notre adresse e-mail
  3. Un commentaire facultatif (il peut être utilisé, par exemple, pour spécifier l’utilisation de la clé)

Une fois que nous aurons rempli tous les champs, nous serons invités à fournir l’ID construit et il nous sera demandé de confirmer nos informations ou de les modifier. Pour ce faire, nous devons appuyer sur la touche entre parenthèses, donc pour modifier le nom, nous devons entrer la touche n. Pour confirmer, il suffit d’entrer o et d’appuyer sur Entrée.

Le processus de génération de clés commencera. Le système a besoin de beaucoup d’octets aléatoires pour effectuer l’action, il nous suggérera donc d’effectuer d’autres actions sur notre afin de générer suffisamment d’entropie. Nous serons également invités à entrer une phrase de passe et à la confirmer, afin de protéger notre clé privée :

Please enter the passphrase to protect your new key                                                                          
Passphrase:

Notez que l’invite ci-dessus peut changer si vous utilisez un environnement graphique. À la fin du processus, nous recevrons une confirmation des clés et la génération du certificat de révocation :

gpg: /home/egdoc/.gnupg/trustdb.gpg: trustdb created
gpg: key 705637B3C58F6090 marked as ultimately trusted
gpg: directory '/home/egdoc/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/egdoc/.gnupg/openpgp-revocs.d/A4A42A471E7C1C09C9FDC4B1705637B3C58F6090.rev'
public and secret key created and signed.

pub   rsa4096 2021-04-20 [SC]
      A4A42A471E7C1C09C9FDC4B1705637B3C58F6090
uid                      Jhon Smith (personal) <john.smith@gmail.com>
sub   rsa4096 2021-04-20 [E]

Nous pouvons lister les clés publiques dans notre trousseau à tout moment en lançant la commande suivante :

gpg --list-keys

Pour lister nos clés secrètes/privées, nous devons exécuter :

gpg --list-secret-keys

Clés principales et secondaires

Si nous jetons un coup d’œil à notre trousseau de clés, nous pouvons voir qu’en fait une paire de clés maître et une paire de clés secondaires ont été générées. Le premier est identifié par le préfixe pub au début de la ligne, et entre parenthèses, on peut voir la notation qui spécifie son utilisation : [SC]. Qu’est-ce que cela signifie ? Le « S » signifie que la clé est utilisée pour la signature, tandis que le « C » signifie que la clé peut également être utilisée pour signer d’autres clés.

La sous-clé est décrite sur la ligne qui commence par le préfixe sub. On peut voir le type de clé (rsa4096) et la date de génération. Enfin, nous pouvons voir à quoi il sert. Ici, le [E] signifie que la paire de clés dont la clé fait partie est utilisée
pour le chiffrement/déchiffrement.

Voici la liste complète des notations d’utilisation :

(S)ign: sign some data (like a file)
(C)ertify: sign a key (this is called certification)
(A)uthenticate: authenticate yourself to a computer (for example, logging in)
(E)ncrypt: encrypt data

Création d’une sauvegarde/exportation des clés

Une fois que nous avons créé nos clés gpg et, avec le temps, ajouté les clés publiques de certains destinataires à notre trousseau de clés, nous pouvons vouloir créer une sauvegarde de notre configuration. La façon la plus simple de procéder est de créer une archive tar de l’ensemble du répertoire ~/.gnupg. Tout ce que nous avons à faire est d’exécuter :

tar -cvpzf gnupg.tar.gz ~/.gnupg

La commande ci-dessus créera un fichier compressé nommé gnupg.tar.gz dans notre répertoire de travail actuel, nous devrions ensuite le conserver dans un endroit sûr. Une autre façon de sauvegarder nos clés publiques et privées, ainsi que notre trustdb
(la trustdb garde une trace du niveau de confiance des clés de notre trousseau), est d’utiliser des commandes gpg dédiées. Par exemple, pour exporter nos clés publiques, nous pouvons exécuter :

gpg --export --output public_keys

Lorsque gpg est invoqué avec l’option --export, il exporte toutes les clés des trousseaux de clés vers STDOUT, ou vers un fichier que nous pouvons spécifier avec l’option --output. Dans ce cas, nous les avons exportés dans le fichier public_keys. De même, pour exporter
nos clés secrètes, nous pouvons exécuter :

gpg --export-secret-keys --output secret_keys

Lors de l’exportation ou de la réimportation de clés secrètes, le mot de passe que nous avons utilisé pour sécuriser nos clés vous sera demandé. Pour réimporter le fichier que nous avons généré avec les commandes ci-dessus, nous pouvons utiliser l’option --import. Par exemple, pour importer à partir du fichier public_keys, nous exécuterions :

gpg --import public_keys

Enfin, pour exporter/importer notre trustdb, nous pouvons utiliser, respectivement, les options --export-ownertrust et --import-ownertrust :

gpg --export-ownertrust > otrust.txt

Pour le réimporter :

gpg --import-ownertrust otrust.txt

Conclusions

Dans ce tutoriel, nous avons vu comment générer une paire de clés Gnu Privacy Guard (gpg), et nous avons jeté un coup d’œil à la procédure guidée et aux informations demandées pour accomplir la tâche. Nous avons vu comment les clés principale et secondaire sont créées, et quels sont leurs objectifs par défaut. Enfin, nous avons appris à sauvegarder et à exporter nos clés publiques et secret
, ainsi que les informations de trustdb.

Articles connexes: