Création de clés GPG --- Sauce: https://next.ink/10925/102685-gpg-comment-creer-paire-clefs-presque-parfaite/ ====== Renforcer l'environnement depuis lequel la clef est générée ====== 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 ====== Création de la clef de base ====== 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)  » 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) ====== Ajout d'une adresse mail supplémentaire pour la même clé ====== 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) gpg> adduid Nom réel : Albirew GIT Adresse électronique : gerard@jeandeauh.fr Commentaire : GIT sign Vous avez sélectionné cette identité : « Gerard (GIT sign)  » 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) [ inconnue] (2). Albirew GIT (GIT sign) gpg> save ====== Ajout des sous-clefs de chiffrement et de signature ====== 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) [ ultime ] (2). Albirew GIT (GIT sign) 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 = la clef expire dans n jours w = la clef expire dans n semaines m = la clef expire dans n mois 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) [ ultime ] (2). Albirew GIT (GIT sign) 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 = la clef expire dans n jours w = la clef expire dans n semaines m = la clef expire dans n mois 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) [ ultime ] (2). Albirew GIT (GIT sign) gpg>save ====== La sauvegarde des clefs ====== 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 ==== Certificat de révocation ==== 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 ==== Clef primaire et sous-clefs ==== gpg -a --export-secret-keys 89ABCDEF > secret_keys.gpg gpg -a --export-secret-subkeys 89ABCDEF > secret_subkeys.gpg ==== Clef publique et envoi sur un serveur de clefs ==== gpg -a --export 89ABCDEF > public.gpg gpg --keyserver eu.pool.sks-keyservers.net --send-key 0x0123456789ABCDEF