system_administration:security:gpg_key_manage

Gérer les clés GPG

Le chiffrement asymétrique garantit la confidentialité des échanges et du stockage de données.

GnuPG est un programme qui permet de chiffrer et de déchiffrer des données.

Les personnes souhaitant transmettre des informations sensibles (mots de passe de serveurs, comptes d'administration d'applications) s'assurent que seul le destinataire pourra les lire.

L'expéditeur utilise la clé publique du destinataire pour chiffrer les données à lui transmettre.

Seul le destinataire, en utilisant sa clé privée peut déchiffrer les données et les exploiter.

Tous les utilisateurs souhaitant tansmettre des données chiffrées doivent avoir une paire de clé publique/privée.

  • La clé publique est distribuée.
  • La clé privée de chaque intervenant demeure secrète et est protégée par un mot de passe.

Une clé GPG est la garantie d'une identité, il est donc recommandé de fournir des informations réelles à la création de la paire de clés.

Les personnes souhaitant transmettre des données sensibles doivent s'assurer que la clé publique qu'ils utilisent pour chiffrer ces données appartient bien au destinataire et non à un usurpateur.

En exécutant la commande suivante une série de questions sont posées. Laisser la réponse au “Commentaire” vide est recommandé.

Ne pas oublier de protéger sa clé privée avec une phrase de passe.

$ gpg --gen-key

Une fois la paire de clés créée, la clé publique doit être mise à la disposition de toute personne souhaitant communiquer de manière chiffrée avec le détenteur de cette clé.

La commande suivante crée un fichier anouarsaid.key contenant la clé publique.

$ gpg --output anouarsaid.key --armor --export anouarsaid@mail.com

Les clés publiques récupérées doivent être chargées dans le trousseau de clés de GnuPG.

Un utilisateur souhaitant crypter des données pour Anouar Saïd importe sa clé publique de Anouar Saïd dans son trousseau de clés GPG avec la commande suivante :

$ gpg --import anouarsaid.key

Et pour lister les clés importées :

$ gpg --list-keys
/home/zine/.gnupg/pubring.gpg
-----------------------------
pub   rsa2048 2018-07-09 [SC] [expire : 2020-07-08]
      1E3199A55BB1742DBE0E23AC11AA5A2311BBB5A7
uid          [  ultime ] Zine Cherfiwi <zinecherfiwi@gmail.com>
sub   rsa2048 2018-07-09 [E] [expire : 2020-07-08]

pub   rsa2048 2018-07-10 [SC]
      858C7478D917D3E1235BE8D7AA2B7EC3C31BC863
uid          [  totale ] Anouar Saïd <anouarsaid@mail.com>
sub   rsa2048 2018-07-10 [E]

Un utilisateur qui souhaite chiffrer le contenu d'un fichier message.txt pour l'utilisateur dont la clé est identifiée par anouarsaid@mail.com exécute la commande suivante :

$ gpg --encrypt --recipient anouarsaid@mail.com message.txt

Cette commande crée une fichier message.txt.gpg que seul le détenteur de la clé privée correspondant à anouarsaid@mail.com pourra déchiffrer.

La commande précédente peut être abrégée

$ gpg -er anouarsaid@mail.com message.txt

L'utilisateur Anouar Saïd est le seul à pouvoir déchiffrer le contenu du fichier message.txt.gpg car il est seul à posséder la clé privée nécessaire.

La commande suivante lui permet d'accéder au contenu déchiffré du fichier :

$ gpg --decrypt message.txt.gpg
$ # ou plus simplement
$ gpg -d message.txt.gpg

Le contenu du fichier est affiché sur la sortie standard. Pour créer le fichier message.txt

$ gpg -o message.txt -d message.txt.gpg

Les données confidentielles transmises sans être préalablement chiffrées sont stockées au clair sur des serveurs étrangers. Veiller à la protection des données est une pratique professionelle visant à construire un environnement sécure pour soi et pour ses partenaires commerciaux.

Les informations données dans ce document sont une introduction rapide à GnuPG. Les utilisateurs sont appelés à approfondir leurs connaissances sur le sujet.

Publier la clé publique sur un serveur de clés gpg

$ gpg --keyserver keys.openpgp.org --send-keys KEYFINGERPRINT
$ gpg --keyserver keyserver.ubuntu.com --send-keys KEYFINGERPRINT

Générer le certificat de révocation

$ gpg -o revocation.crt --gen-revoke anouarsaid@mail.com

Protéger le certificat

$ chmod 600 revocation.crt

Extraire le fingerprint de la clé pour le publier (twitter,facebook,signature de mail, site personnel)

$ gpg --fingerprint anouarsaid@mail.com

Extraire la clé pour la distribuer à des partenaires

$ gpg --output anouarsaid.key --armor --export anouarsaid@mail.com

La clé sera enregistrée dans le fichier text anouarsaid.key. Le contenu de ce fichier peut être transmis en corps de mail ou en pièce jointe à des partenaires souhaitant l'utiliser pour chiffrer des messages que vous AnouarSaid seul puisse les lire.

Importer une clé dans le trousseau de clé gpg

$ gpg --import zinecherfiwi.key

Après avoir importé cette clé la commande suivante

$ gpg -e -r zinecherfiwi@mail.com file.txt

Créera un nouveau fichier file.txt.gpg que seul ZineCherfiwi pourra lire.

Comparer le fingerprint de la clé avec celui distribué par le détenteur

$ gpg --fingerprint zinecherfiwi@gmail.com

agent_genkey failed

Si vous recontez le problème gpg: agent_genkey failed: No such file or directory pendant la génération du clé GPG supprimer le dossier .gnupg et recréer le de nouveau

$ rm -rf ~/.gnupg
$ gpg 
$ killall gpg-agent dirmngr 

Vous pouvez également essayer de démarrer gpg-agent https://superuser.com/a/1183544

$ gpg-connect-agent reloadagent /bye

Prolonger la date d'expiration de sa clé gpg

  • system_administration/security/gpg_key_manage.txt
  • Last modified: 2022/12/20 10:37
  • by aziz