PGP, qui signifie « Pretty Good Privacy » en anglais, est un programme de cryptage de données utilisé pour protéger la confidentialité et la sécurité des informations.
PGP utilise un systÚme de cryptage à clé publique, ce qui signifie qu'il utilise deux clés différentes : une clé publique et une clé privée. La clé publique est utilisée pour chiffrer les données, tandis que la clé privée est utilisée pour les déchiffrer.
Ăa sert quoi ?
Souvent utilisĂ© dans le cryptage des mails, PGP est Ă©galement utilisĂ© pour signer numĂ©riquement des messages et des fichiers. La signature numĂ©rique garantit lâauthenticitĂ© et lâintĂ©gritĂ© des donnĂ©es, permettant aux destinataires de vĂ©rifier que le message ou le fichier nâa pas Ă©tĂ© modifiĂ© et provient de la personne ou de lâentitĂ© attendue.
Signer un message : Le message est transmis en clair, et la signature permet de sâassurer quâil nâa pas Ă©tĂ© modifiĂ© et qui provient bien de la bonne personne.
Les autres usages sont liĂ©s Ă des services comme github qui pour certaines actions nĂ©cessite dâutiliser une clĂ© gpg.
PGP versus OpenPGP versus GnuPG versus GPG
En version courte et approximative : ces mots/acronymes sont des synonymes.
Voici une explication un peu plus détaillée :
- PGP est le logiciel initial, son nom âPretty Good Privacyâ peut se traduire ainsi : « une protection de la vie privĂ©e plutĂŽt bonne ».
- OpenPGP est un dérivé, non propriétaire de PGP (100 % open source).
Câest deux logiciels se sont imposĂ©s comme des standards et fonctionnent de maniĂšre similaire. Il sâappuie sur la RFC 4880.
- GnuPG est une rĂ©-implĂ©mentation d'OpenPGP en nâutilisant que du code libre (sans brevet). Le logiciel GnuPG Ă comme commande principale : gpg.
Création de votre clé
Commençons par regarder quelles clés sont disponibles :
gpg --list-secret-keys --keyid-format=long
/home/UTILISATEUR/.gnupg/pubring.kbx
----------------------------------------
sec rsa4096/F5F2580541D88731 2018-09-17 [SCEA]
005019FA0448BBAF5F22BB0E9EB658D880541731
uid [ultimate] mount-manager
sec rsa4096/3D17827597C71852 2019-03-17 [SCEA]
7BC7F7A00DA6BEDFAF5BB97827591857C721A3D1
uid [ultimate] mount-manager
Dans cet exemple, nous avons des clĂ©s utilisĂ©es par des applications. Câest un cas dâusage particulier, gĂ©nĂ©ralement la liste sera vide.
Créons notre clé personnelle.
gpg --full-generate-key
gpg (GnuPG) 2.2.27; Copyright (C) 2021 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)
(14) Existing key from card
Your selection?
- Ă lâinvite, spĂ©cifiez le type de clĂ© souhaitĂ© ou appuyez sur EntrĂ©e pour accepter la valeur par dĂ©faut.
- Entrez la durĂ©e pendant laquelle la clĂ© doit ĂȘtre valide. Appuyez sur EntrĂ©e pour spĂ©cifier la sĂ©lection par dĂ©faut, indiquant que la clĂ© nâexpire pas. Sauf si vous avez besoin dâune date dâexpiration, nous vous recommandons dâaccepter cette valeur par dĂ©faut.
- Vérifiez que vos sélections sont correctes.
- Entrez vos informations dâidentification utilisateur. Pour votre adresse mail, vous aurez besoin dâutiliser une qui soit connue de la personne ou du service qui aura Ă vous identifier.
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
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)
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Prenom NOM
Email address: user@exemple.org
Comment:
You selected this USER-ID:
"Prenom NOM <user@exemple.org>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? C
Comment: https://www.exemple.org/
You selected this USER-ID:
"Prenom NOM (https://www.exemple.org/) <user@exemple.org>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key AA2543E9CCC00213 marked as ultimately trusted
gpg: revocation certificate stored as '/home/UTILISATEUR/.gnupg/openpgp-revocs.d/A51831BFB29DC2572DBEEBCAAA2543E9CCC00213.rev'
public and secret key created and signed.
pub rsa4096 2024-01-18 [SC]
A51831BFB29DC2572DBEEBCAAA2543E9CCC00213
uid Prenom NOM (https://www.exemple.org/) <user@exemple.org>
sub rsa4096 2024-01-18 [E]
La paire de clé a été créée, vérifions :
gpg --list-secret-keys --keyid-format=long
/home/UTILISATEUR/.gnupg/pubring.kbx
----------------------------------------
sec rsa4096/F5F2580541D88731 2018-09-17 [SCEA]
005019FA0448BBAF5F22BB0E9EB658D880541731
uid [ultimate] mount-manager
sec rsa4096/3D17827597C71852 2019-03-17 [SCEA]
7BC7F7A00DA6BEDFAF5BB97827591857C721A3D1
uid [ultimate] mount-manager
sec rsa4096/AA2543E9CCC00213 2024-01-18 [SC]
A51831BFB29DC2572DBEEBCAAA2543E9CCC00213
uid [ultimate] Prenom NOM (https://www.exemple.org/) <user@exemple.org>
ssb rsa4096/110C29F854CD863E 2024-01-18 [E]
La commande gpg --list-secret-keys --keyid-format=long
permet de lister la forme longue des clĂ©s GPG pour lesquelles vous disposez dâune clĂ© publique et dâune clĂ© privĂ©e.
Dans la liste des clĂ©s GPG, copiez la forme longue de lâidentifiant de la clĂ© GPG que vous souhaitez utiliser. Dans cet exemple, lâID de la clĂ© GPG est AA2543E9CCC00213
.
gpg --armor --export AA2543E9CCC00213
En gĂ©nĂ©ral, pour copier votre clĂ© GPG, vous devrez copier lâensemble des lignes en commençant par -----BEGIN PGP PUBLIC KEY BLOCK-----
et en terminant par -----END PGP PUBLIC KEY BLOCK-----
.
Dans certain cas une procĂ©dure de validation de votre clĂ© vous sera demandĂ©, la procĂ©dure vous sera alors dĂ©crite et permettra de valider que vous ĂȘtes Ă mĂȘme dâencoder ou de signer avec votre clĂ©.
Liens
- Sur le site de github Generating a new GPG key.
- Présentation de GnuPG sur archlinux.
኿