Nous allons éditer notre clé afin d'y apporter quelques modifications.
Cette commande nous permet d'entrer dans le mode interactif de GPG
# gpg --edit-key 0D6FE738
gpg (GnuPG) 1.4.16; Copyright (C) 2013 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.
Secret key is available.
pub 2048R/0D6FE738 created: 2015-09-11 expires: never usage: SC
trust: ultimate validity: ultimate
sub 2048R/1C51C149 created: 2015-09-11 expires: never usage: E
[ultimate] (1). Jean Michel A Peu Près <jm@apeupres.fr>
gpg>
Le mode édition nous permet de voir notre clé plus en détail.
Nous voyons, par exemple, que la clé privée est disponible (Secret key is available).
Nous voyons également, au niveau du champ usage, que notre clé maitresse 0D6FE738 peut-être utilisée pour certifier ou signer la clé publique d'un utilisateur (lettre C) et signer un document [mail / fichier] (lettre S).
Nous voyons que nous avons une sous-clé 1C51C149 qui va nous permettre de chiffrer un document [mail / fichier] (lettre E dans le champ usage).
Pour finir, nous voyons tous les détails concernant la date de création (created), la date d'expiration (expires) et le niveau de confiance (trust).
quit - Quitte le menu
save - Sauvegarde les modifications et quitte le menu
help - Affiche l'aide
fpr - Affiche l'empreinte de la clé sur 40 caractères
list - Affiche le détail de la clé
uid - Permet de sélectionner l'uid désiré
key - Permet de sélectionner la sous-clé désirée
check - Vérifie les signatures
sign - Signe l'uid sélectionné
adduid - Ajoute un uid
addphoto - Ajoute une photo
deluid - Supprime l'uid sélectionné
addkey - Ajoute une sous-clé
delkey - Supprime la sous clé sélectionnée
delsig - Supprime la signature de l'uid sélectionné
expire - Change la date d'expiration de la clé ou sous-clé sélectionnée
toggle - Bascule la liste clé publique / clé privée
passwd - Change la phrase de passe
trust - Modifie le niveau de confiance
revsig - Révoquer la signature de l'uid sélectionné
revuid - Révoquer l'uid sélectionné
revkey - Révoquer la clé ou sous-clé sélectionnée
enable - Active la clé
disable - Désactive la clé
Notre clé maitresse 0D6FE738 ayant deux usages (certification/signature de clé publique et signature de documents), nous allons ajouter une sous-clé qui nous permettra, uniquement, la signature de documents.
De la même manière que notre sous-clé 1C51C149 nous permet uniquement le chiffrement de documents.
gpg> addkey
Key is protected.
You need a passphrase to unlock the secret key for
user: "Jean Michel A Peu Près <jm@apeupres.fr>"
2048-bit RSA key, ID 0D6FE738, created 2015-09-11
Il faut obligatoirement saisir la phrase de passe
gpg: gpg-agent is not available in this session
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
Your selection? 4
Nous allons choisir l'option 4 qui nous permet de créer une sous-clé RSA uniquement pour la signature.
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Nous laissons le choix par défaut pour la longueur de la clé (2048 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
Choisir une date d'expiration
Je choisi le choix par défaut (n'expire jamais)
Really create? (y/N) y
Je confirme la création
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.
pub 2048R/0D6FE738 created: 2015-09-11 expires: never usage: SC
trust: ultimate validity: ultimate
sub 2048R/1C51C149 created: 2015-09-11 expires: never usage: E
sub 2048R/219FE958 created: 2015-09-11 expires: never usage: S
[ultimate] (1). Jean Michel A Peu Près <jm@apeupres.fr>
gpg>
Et voilà, je me trouve en possession d'une paire de clé maitresse 0D6FE738 (privée/publique) pour la certification ou la signature de clé publique chacune ayant deux sous-clés, une pour le chiffrement de documents 1C51C149 (usage: E) et une pour la signature de documents 219FE958 (usage: S).
Une fois les modifications terminées, quitter le mode interactif en sauvegardant.
gpg> save
(A faire uniquement dans le cas où la ou les sous-clés sont compromises)
Il faut éditer la clé maitresse correspondante.
# gpg --edit-key 0D6FE738
gpg (GnuPG) 1.4.16; Copyright (C) 2013 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.
Secret key is available.
pub 2048R/0D6FE738 created: 2015-09-11 expires: never usage: SC
trust: ultimate validity: ultimate
sub 2048R/1C51C149 created: 2015-09-11 expires: never usage: E
[ultimate] (1). Jean Michel A Peu Près <jm@apeupres.fr>
gpg>
Sélectionner la sous-clé correspondante à l'aide de la commande key suivi du numéro d'index de la sous-clé.
Pour sélectionner la sous-clé 1 (index)
gpg> key 1
Même commande pour la désélectionner
gpg> key 1
L'index des clé/sous-clés commence à 0 (zéro).
Dans mon exemple, ma clé maitresse 0D6FE738 correspond à l'index 0, la sous-clé 1C51C149 à l'index 1 etc etc...
On sait qu'une sous-clé est sélectionnée quand un asterisk est présent sur la ligne (à coté de sub)
gpg> key 1
pub 2048R/0D6FE738 created: 2015-09-11 expires: never usage: SC
trust: ultimate validity: ultimate
sub* 2048R/1C51C149 created: 2015-09-11 expires: never usage: E
sub 2048R/219FE958 created: 2015-09-11 expires: never usage: S
[ultimate] (1). Jean Michel A Peu Près <jm@apeupres.fr>
Je sélectionne ma sous-clé 1C51C149 index 1 (un asterisk m'indique la clé sélectionnée)
gpg> revkey
Do you really want to revoke this subkey? (y/N) y
Please select the reason for the revocation:
0 = No reason specified
1 = Key has been compromised
2 = Key is superseded
3 = Key is no longer used
Q = Cancel
Your decision? 0
Enter an optional description; end it with an empty line:
>
Reason for revocation: No reason specified
J'exécute la commande revkey et je choisi l'option 0 (aucune raison spécifique)
Saisir une description optionnelle
(No description given)
Is this okay? (y/N) y
Valider
You need a passphrase to unlock the secret key for
user: "Jean Michel A Peu Près <jm@apeupres.fr>"
2048-bit RSA key, ID 0D6FE738, created 2015-09-11
Saisir la phrase de passe de la clé privée.
gpg: gpg-agent is not available in this session
pub 2048R/0D6FE738 created: 2015-09-11 expires: never usage: SC
trust: ultimate validity: ultimate
This key was revoked on 2015-09-11 by RSA key 0D6FE738 Jean Michel A Peu Près <jm@apeupres.fr>
sub 2048R/1C51C149 created: 2015-09-11 revoked: 2015-09-11 usage: E
sub 2048R/219FE958 created: 2015-09-11 expires: never usage: S
[ultimate] (1). Jean Michel A Peu Près <jm@apeupres.fr>
gpg>
L'indication revoked apparait bien sur la ligne de ma sous-clé.
Une fois les modifications terminées, quitter le mode interactif en sauvegardant.
gpg> save
Pour annuler les modifications
gpg> quit
Ne pas sauvegarder les modifications sinon vous allez révoquer la sous-clé et on ne pourra plus l'utiliser par la suite.