--- title: "gpg, manuel simplifié d'utilisation" date: 2022-01-26 tags: - gpg - rsa4096 - ecc2559 categories : - commandline draft: false description : "Utilisation de gpg" --- Cette page est un mémo sur **gpg**, pour aider ma mémoire. Je mettrai certainement à jour cette page, selon mes usages. # RSA ou ECC ? RSA est le format le plus répandu, mais il n'est pas le plus adapté aux environnement actuels. Le choix entre RSA et ECC se fait en fonction de votre environnement. Si vous utilisez des vieux trucs, il faut du RSA, sinon ECC sera parfait. Pour une sécurité équivalente, ECC nécessite une clé plus petite que RSA, et donc moins de cycle CPU, donc moins de ressources CPU consommées sur smartphone ou sur vieux pc ou équipements de faible puissance. # Création de la clé maitre Cette clée sera utilisée pour créer les sous clés, pour les révoquer ou pour augmenter leur durée de vie. Faut-il lui donner une durée de vie à la clé maître ? Perso, j'ai choisi d'avoir une date d'expiration d'un an pour ma clé Pro, et une date d'expiration proche de mon espérance de vie imaginaire pour ma perso. L'expiration sur la clé primaire n'est pas bloquant. Comme on utilise pas au quotidien la clé primaire, cela protège notre environnement en cas de perte, vol etc... La date d'expiration d'une sous clé, empêche son utilisation. Il est facile de la prolonger. # Puis-je supprimer une sous clée ? Oui ! Pour cela, il suffit de sélectionner la sous clé, puis on la supprime. gpg2 --list-keys gpg2 --edit-key --expert F136FE1BA10321C71D4D0646091E0FFD2A6E770F La sélection de clé se fait par la commande **key** suivi d'un numéro d'ordre. Le compteur commence à 0. 0 étant la clé maitre. Une clé apparait sélectionnée par l'adjonction du caractère ** * ** après **ssb** Pour supprimer les clés ainsi sélectionner il suffit de tapper la commande **delkey** # Puis-je supprimer une clée maitre ? Lorsque l'on crée une nouvelle clée, on crée une partie public et une partie privée. Il faut d'abord supprimer la partie privée, puis la partie public : gpg --delete-secret-key F136FE1BA10321C71D4D0646091E0FFD2A6E770F gpg --delete-keys F136FE1BA10321C71D4D0646091E0FFD2A6E770F ou les 2 à la fois : gpg --delete-secret-and-public-key F136FE1BA10321C71D4D0646091E0FFD2A6E770F Ces commandes suppriment la clée primaire (public et privée) et les sous clés publics. Les sous clées privées restent présentent dans le répertoire **.gnupg/private-keys-v1.d/** Il faut également penser à supprimer l'ancien certificat de révocation : rm .gnupg/openpgp-revocs.d/F136FE1BA10321C71D4D0646091E0FFD2A6E770F.rev Les certificats de révocation sont automatiquement générés à la création de la clé ou de la sous-clé # Création de la clé maitre gpg2 --quick-generate-key 'Alexandre LUCAZEAU monmail@domaine.com' ed25519 cert 1y Ici on a créé une clée ellyptique du type ed25519 capable de certifier des sous clés et qui expire dans 1 an. # Création des clées secondaires On crée une sous-clée pour signer, une sous-clée pour chiffrer et une sous-clée pour l'authentification. Il m'arrive de devoir me connecter sur du matériel un peu ancien. J'ai donc une seconde sous-clé dédiée à l'authentification, mais en RSA4096 gpg --quick-addkey F136FE1BA10321C71D4D0646091E0FFD2A6E770F ed25519 sign 1y gpg --quick-addkey F136FE1BA10321C71D4D0646091E0FFD2A6E770F ed25519 encr 1y gpg --quick-addkey F136FE1BA10321C71D4D0646091E0FFD2A6E770F cv25519 auth 1y gpg --quick-addkey F136FE1BA10321C71D4D0646091E0FFD2A6E770F rsa4096 auth 1y # Mise en sécurité Notre clée primaire est la plus importante, c'est celle qui ne doit pas disparaitre ou être volée. La deuxième donnée importante, ce sont les certificats de révocation. Vous en aurez besoin en cas de compromission. La littérature sur internet conseil même d'imprimer sur papier les éléments. ## Sauvegarde et suppression de la clé primaire ### Export de la clée privée et des sous clés : gpg --export-options backup --export-secret-keys $KEYID|gpg --symmetric > masterkey.key ### Suppression de la clée primaire, car elle n'est plus nécessaire sur notre poste : gpg --delete-secret-keys $KEYID ## Restauration et définition du niveau de confiance ### Test de restauration des clés privées Ce test est à faire avant toute exploitation de la clé ;-) #### Dechiffrer notre **masterkey.key** en clé gpg gpg -o export.gpg -d masterkey.key ##### Importer dans le trousseau gpg --import-options restore --import backup-cle-prive.gpg ### Définition du niveau de confiance de la clé Il est possible d'établir un niveau de confiance à la clé. Pour cela, il suffit de l'éditer, puis d'utiliser la commande **trust** et de valider le choix. **5** étant le niveau ultime. # Révocation ## Générer un certificat de révocation pour la clé principale gpg --output revoke.asc --gen-revoke $KEYID ## Révoquer une sous clé Afficher les id des clés et de leurs sous clés : gpg --list-secret-keys --keyid-format LONG Editer la clée principale gpg --expert --edit-key Sélectionner la sous clé à révoquer (par exemple la deuxième clé) et la révoquer gpg> key 2 gpg> revkey y gpg> quit Save changes (y/N) y gpg --list-secret-keys --keyid-format LONG