Ceci est une ancienne révision du document !
Création de clés GPG — Sauces: https://next.ink/10925/102685-gpg-comment-creer-paire-clefs-presque-parfaite/
Il faut commencer par renforcer les paramètres par défaut de GnuPG. Plusieurs méthodes existent pour cela, mais le plus simple est d'éditer le fichier de configuration. Celui-ci se trouve à l'endroit suivant :
Linux : ~/.gnupg/gpg.conf Windows : %AppData%\Roaming\gnupg\gpg.conf
# Limite les informations diffusées no-emit-version no-comments export-options export-minimal # Permet d'afficher le format long de l'ID des clefs et leurs empreintes keyid-format 0xlong with-fingerprint # Affiche la validité des clefs list-options show-uid-validity verify-options show-uid-validity # Limite les algorithmes utilisés personal-cipher-preferences AES256 personal-digest-preferences SHA512 default-preference-list SHA512 SHA384 SHA256 RIPEMD160 AES256 TWOFISH BLOWFISH ZLIB BZIP2 ZIP Uncompressed cipher-algo AES256 digest-algo SHA512 cert-digest-algo SHA512 compress-algo ZLIB disable-cipher-algo 3DES # weak-digest SHA1 peut poser problème avec d'anciennes versions de GPG. weak-digest SHA1 # Paramètres S2K (String-to-Key) de la phrase de passe des clefs # Le paramètre s2k-count peut être réduit sur les machines peu puissantes s2k-cipher-algo AES256 s2k-digest-algo SHA512 s2k-mode 3 s2k-count 65011712
gpg --full-gen-key --expert
gpg (GnuPG) 2.4.3; Copyright (C) 2023 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Sélectionnez le type de clef désiré :
(1) RSA and RSA
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC (sign and encrypt) *default*
(10) ECC (signature seule)
(11) ECC (set your own capabilities)
(13) Existing key
(14) Existing key from card
Quel est votre choix ? 11
Possible actions for this ECC key: Signer Certifier Authentifier
Actions actuellement permises : Signer Certifier
(S) Inverser la capacité de signature
(A) Inverser la capacité d'authentification
(Q) Terminé
Quel est votre choix ? s
Possible actions for this ECC key: Signer Certifier Authentifier
Actions actuellement permises : Certifier
(S) Inverser la capacité de signature
(A) Inverser la capacité d'authentification
(Q) Terminé
Quel est votre choix ? q
Sélectionnez le type de courbe elliptique désiré :
(1) Curve 25519 *default*
(2) Curve 448
(3) NIST P-256
(4) NIST P-384
(5) NIST P-521
(6) Brainpool P-256
(7) Brainpool P-384
(8) Brainpool P-512
(9) secp256k1
Quel est votre choix ? 1
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
Pendant combien de temps la clef est-elle valable ? (0) 1y
La clef expire le 04/31/34 13:37:00 Paris, Madrid
Est-ce correct ? (o/N) o
GnuPG doit construire une identité pour identifier la clef.
Nom réel : Albirew GIT
Adresse électronique : me@jeandeauh.fr
Commentaire : GIT signing key
Vous avez sélectionné cette identité :
« Albirew GIT (GIT signing key) <me@jeandeauh.fr> »
Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o
pub ed25519/0x0123456789ABCDEF 2024-05-01 [C]
Empreinte de la clef = 0123 4567 8987 6543 210F EDCB 0123 4567 89AB CDEF
uid Albirew GIT (GIT signing key) <me@jeandeauh.fr>
gpg --edit-key 89ABCDEF
gpg (GnuPG) 2.4.3; Copyright (C) 2023 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
sec ed25519/0x0123456789ABCDEF
créé : 2024-05-01 expire : 2034-04-31 utilisation : C
confiance : ultime validité : ultime
[ ultime ] (1). Albirew GIT (GIT signing key) <me@jeandeauh.fr>
gpg> adduid
Nom réel : Albirew GIT
Adresse électronique : gerard@jeandeauh.fr
Commentaire : GIT sign
Vous avez sélectionné cette identité :
« Gerard (GIT sign) <gerard@jeandeauh.fr> »
Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o
sec ed25519/0x0123456789ABCDEF
créé : 2024-05-01 expire : 2034-04-31 utilisation : C
confiance : ultime validité : ultime
[ ultime ] (1) Albirew GIT (GIT signing key) <me@jeandeauh.fr>
[ inconnue] (2). Albirew GIT (GIT sign) <gerard@jeandeauh.fr>
gpg> save
gpg --edit-key 89ABCDEF
gpg (GnuPG) 2.4.3; Copyright (C) 2023 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
sec ed25519/0x0123456789ABCDEF
créé : 2024-05-01 expire : 2034-04-31 utilisation : C
confiance : ultime validité : ultime
[ ultime ] (1) Albirew GIT (GIT signing key) <me@jeandeauh.fr>
[ ultime ] (2). Albirew GIT (GIT sign) <gerard@jeandeauh.fr>
gpg>addkey
Sélectionnez le type de clef désiré :
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(10) ECC (signature seule)
(12) ECC (encrypt only)
(14) Existing key from card
Quel est votre choix ? 10
Sélectionnez le type de courbe elliptique désiré :
(1) Curve 25519 *default*
(4) NIST P-384
(6) Brainpool P-256
Quel est votre choix ? 1
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
0 = la clef n'expire pas
<n> = la clef expire dans n jours
<n>w = la clef expire dans n semaines
<n>m = la clef expire dans n mois
<n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 0
La clef n'expire pas du tout
Est-ce correct ? (o/N) o
Faut-il vraiment la créer ? (o/N) o
sec ed25519/0x0123456789ABCDEF
créé : 2024-05-01 expire : 2034-04-31 utilisation : C
confiance : ultime validité : ultime
ssb ed25519/0x0123456789ABCDE2
créé : 2024-05-01 expire : jamais utilisation : S
[ ultime ] (1) Albirew GIT (GIT signing key) <me@jeandeauh.fr>
[ ultime ] (2). Albirew GIT (GIT sign) <gerard@jeandeauh.fr>
gpg> addkey
Sélectionnez le type de clef désiré :
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(10) ECC (signature seule)
(12) ECC (encrypt only)
(14) Existing key from card
Quel est votre choix ? 12
Sélectionnez le type de courbe elliptique désiré :
(1) Curve 25519 *default*
(4) NIST P-384
(6) Brainpool P-256
Quel est votre choix ? 1
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
0 = la clef n'expire pas
<n> = la clef expire dans n jours
<n>w = la clef expire dans n semaines
<n>m = la clef expire dans n mois
<n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 0
La clef n'expire pas du tout
Est-ce correct ? (o/N) o
Faut-il vraiment la créer ? (o/N) o
sec ed25519/0x0123456789ABCDEF
créé : 2024-05-01 expire : 2034-04-31 utilisation : C
confiance : ultime validité : ultime
ssb ed25519/0x0123456789ABCDE2
créé : 2024-05-01 expire : jamais utilisation : S
sec ed25519/0x0123456789ABCDE3
créé : 2024-05-01 expire : jamais utilisation : E
[ ultime ] (1) Albirew GIT (GIT signing key) <me@jeandeauh.fr>
[ ultime ] (2). Albirew GIT (GIT sign) <gerard@jeandeauh.fr>
gpg>save
Passons maintenant à une étape importante : celle qui consiste à créer une sauvegarde de vos clefs. Ici, on passera par des fichiers qui sont à mettre en sécurité, mais il est possible de passer par des sauvegardes papier, sous forme de QR Code ou autre selon vos préférences. Des outils comme Kleopatra proposent même désormais directement une option d'impression
Celui-ci vous permettra de révoquer votre clef complète en cas de problème. Si jamais elle venait à être découverte ou perdue, il sera possible de l'utiliser pour indiquer qu'elle ne doit plus être utilisée.
Dans les versions récentes de GPG il est généré automatiquement, vous le retrouverez dans le répertoire openpgp-revocs.d situé dans celui contenant votre fichier gpg.conf (voir ci-dessus). Sinon vous pouvez toujours le générer avec la commande suivante (à utiliser avec le nom, l'ID, l'empreinte ou l'email) :
gpg --output revocation.asc --gen-revoke 89ABCDEF
gpg -a --export-secret-keys 89ABCDEF > secret_keys.gpg gpg -a --export-secret-subkeys 89ABCDEF > secret_subkeys.gpg
gpg -a --export 89ABCDEF > public.gpg gpg --keyserver eu.pool.sks-keyservers.net --send-key 0x0123456789ABCDEF