gpg, manuel simplifié d'utilisation

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 <key-id>

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
Généré avec Hugo
Thème Stack conçu par Jimmy