« GnuPG : Créer la paire de clé gpg parfaite : clé maitre, subkeys et support smartcard (yubikey) » : différence entre les versions

Aller à la navigation Aller à la recherche
(42 versions intermédiaires par le même utilisateur non affichées)
Ligne 79 : Ligne 79 :
     #Name-Comment:
     #Name-Comment:
     Name-Email: testuser@domain.tld
     Name-Email: testuser@domain.tld
     Expire-Date: 0
     Expire-Date: 10y
     Passphrase: tmppassphrasepleaseedit
     Passphrase: tmppassphrasepleaseedit
     # Do a commit here, so that we can later print "done"
     # Do a commit here, so that we can later print "done"
Ligne 86 : Ligne 86 :
EOF
EOF
</pre>
</pre>
Notez qu'ici, notre clé maitre est configurée de manière à ne pouvoir réaliser que des opérations de certification d'autres clés (flag <code>C</code> ou <code>cert</code>).<br>
Notre clé maître est définie avec une expiration de 10 ans. Je vous conseil de toujours définir une date d'expiration à vos clés afin qu'elles expirent d'elles-mêmes si jamais vous la perdiez. Notez que la date d'expiration d'une clé gpg est modifiable a souhait, y compris après expiration, du moment que vous n'avez pas perdu la clé maître.


Générez la clé maître dans le trousseau gpg maître que nous avons créé :
Générez la clé maître dans le trousseau gpg maître que nous avons créé :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --batch --gen-key --enable-large-rsa -a newkey</pre>
<pre>gpg --batch --gen-key --enable-large-rsa -a newkey</pre>


Dans cet exemple, la clé créé a l'identifiant <code>7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</code>.
Dans cet exemple, la clé créée a l'identifiant <code>7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</code>.


==Ajout et modification des UIDs de la clé maître==
Vous pouvez ajouter des <code>uid</code> à votre clé maître en utilisant la commande <code>adduid</code> du prompt gpg. Vous devez pour cela commencer par éditer votre clé maître :
Vous pouvez ajouter des <code>uid</code> à votre clé maître en utilisant la commande <code>adduid</code> du prompt gpg. Vous devez pour cela commencer par éditer votre clé maître :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
Puis entrer la commande <code>adduid</code> au prompt gpg. Terminez avec <code>save</code>.
Puis entrer la commande <code>adduid</code> au prompt gpg. Terminez avec <code>save</code>.
<pre>
<pre>
Ligne 101 : Ligne 105 :


Si vous rencontrez un problème lors de la génération d'un uid, éditez la clé avec l'argument <code>--allow-freeform-uid</code>
Si vous rencontrez un problème lors de la génération d'un uid, éditez la clé avec l'argument <code>--allow-freeform-uid</code>
Pour définir l'uid par défaut, ouvrez la clé avec <code>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</code>. Vous devriez voir la liste des uids ainsi qu'un numéro. Il faut sélectionner le numéro de l'uid souhaité avec <code>uid</code> puis le valide avec <code>primary</code> :
<pre>
gpg> uid 2
gpg> primary
gpg> save
</pre>
=Facultatif: signer votre nouvelle clé avec votre ancienne clé (si vous en possédiez une)=
Si vous possédez une précédente clé, et qu'elle est dans le même trousseau maître :
<pre>
gpg --default-key OLDKEYID --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
gpg> sign
Really sign all user IDs? (y/N) y
<vérifier les informations>
Really sign? (y/N) y
gpg> save
</pre>
Vous pouvez vérifier les signatures :
<pre>gpg --check-signatures</pre>
Ou voir la liste complète :
<pre>gpg --list-signatures</pre>


=Ajout des sous-clés (subkeys)=
=Ajout des sous-clés (subkeys)=
Ligne 107 : Ligne 137 :


Pour commencer, nous allons créer une subkey de signature. Commencez par ouvrir votre clé maître :
Pour commencer, nous allons créer une subkey de signature. Commencez par ouvrir votre clé maître :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --expert --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


Au prompt gpg, utilisez la commande <code>addkey</code>. Utilisez le type <code>RSA (sign only)</code>, la taille <code>4096</code> et éventuellement une date d'expiration (dans mon cas, je n'en spécifie aucune (0)). Terminez en sauvegardant la clé (<code>save</code>) :
Au prompt gpg, utilisez la commande <code>addkey</code>. Utilisez le type <code>RSA (sign only)</code>, la taille <code>4096</code> et éventuellement une date d'expiration (dans mon cas, 1 an). Terminez en sauvegardant la clé (<code>save</code>) :
<pre>
<pre>
addkey
gpg> addkey
(4) RSA (sign only)
(4) RSA (sign only)
4096
4096
0
1y
save
gpg> save
</pre>
</pre>


Ligne 121 : Ligne 151 :


Nous allons maintenant créer une subkey de chiffrement. Commencez par ouvrir votre clé maître :
Nous allons maintenant créer une subkey de chiffrement. Commencez par ouvrir votre clé maître :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --expert --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


Au prompt gpg, utilisez la commande <code>addkey</code>. Utilisez le type <code>RSA (encrypt only)</code>, la taille <code>4096</code> et éventuellement une date d'expiration (dans mon cas, je n'en spécifie aucune (0)). Terminez en sauvegardant la clé (<code>save</code>) :
Au prompt gpg, utilisez la commande <code>addkey</code>. Utilisez le type <code>RSA (encrypt only)</code>, la taille <code>4096</code> et éventuellement une date d'expiration (dans mon cas, 1 an). Terminez en sauvegardant la clé (<code>save</code>) :
<pre>
<pre>
addkey
gpg> addkey
(6) RSA (encrypt only)
(6) RSA (encrypt only)
4096
4096
0
1y
save
gpg> save
</pre>
</pre>


==Clé d'authentification==
==Clé d'authentification==
Enfin, créons une subkey d'authentification. Commencez par ouvrir votre clé maître avec l'argument <code>--expert</code> :  
Enfin, créons une subkey d'authentification :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --expert --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --expert --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


Au prompt gpg, utilisez la commande <code>addkey</code>. Utilisez le type <code>RSA (set your own capabilities)</code>, désactivez les flags de signature et de chiffrement, activez le flag d'authentification. Pour la taille, 4096 bits et éventuellement une date d'expiration (dans mon cas, je n'en spécifie aucune (0)). Terminez en sauvegardant la clé (<code>save</code>). Au prompt gpg on obtient :
Au prompt gpg, utilisez la commande <code>addkey</code>. Utilisez le type <code>RSA (set your own capabilities)</code>, désactivez les flags de signature et de chiffrement, activez le flag d'authentification. Pour la taille, 4096 bits et éventuellement une date d'expiration (dans mon cas, 1 an). Terminez en sauvegardant la clé (<code>save</code>). Au prompt gpg on obtient :
<pre>
<pre>
addkey
gpg> addkey
(8) RSA (set your own capabilities)
(8) RSA (set your own capabilities)
(S) Toggle the sign capability                    (on désactive la signature activé par défaut)
(S) Toggle the sign capability                    (on désactive la signature activé par défaut)
Ligne 145 : Ligne 175 :
(Q) Finished
(Q) Finished
4096
4096
0
1y
save
gpg> save
</pre>
</pre>


Ligne 152 : Ligne 182 :
A ce stade, vous devriez vous retrouver avec quelque chose comme ça :
A ce stade, vous devriez vous retrouver avec quelque chose comme ça :
<pre>
<pre>
$ gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --keyid-format LONG --list-keys 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
$ gpg --list-keys 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
pub  rsa8192/99FD9BFE6F9B8951 2017-07-07 [C]
pub  rsa8192/0x99FD9BFE6F9B8951 2017-07-07 [C]
      Key fingerprint = 7EBA 8211 BFF5 31EE 59E2 5CBD 99FD 9BFE 6F9B 8951
uid                [ultimate] testuser <testuser@domain.tld>
uid                [ultimate] testuser <testuser@domain.tld>
sub  rsa4096/0B4D29418F92CF1D 2017-07-07 [S]
sub  rsa4096/0x0B4D29418F92CF1D 2017-07-07 [S]
sub  rsa4096/91B74A739D6A4242 2017-07-07 [E]
sub  rsa4096/0x91B74A739D6A4242 2017-07-07 [E]
sub  rsa4096/256A58F8E560F1D7 2017-07-07 [A]
sub  rsa4096/0x256A58F8E560F1D7 2017-07-07 [A]
</pre>
</pre>


<pre>
<pre>
$ gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --keyid-format LONG --list-secret-keys 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
$ gpg --list-secret-keys 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
sec  rsa8192/99FD9BFE6F9B8951 2017-07-07 [C]
sec  rsa8192/0x99FD9BFE6F9B8951 2017-07-07 [C]
      Key fingerprint = 7EBA 8211 BFF5 31EE 59E2 5CBD 99FD 9BFE 6F9B 8951
uid                [ultimate] testuser <testuser@domain.tld>
uid                [ultimate] testuser <testuser@domain.tld>
ssb  rsa4096/0B4D29418F92CF1D 2017-07-07 [S]
ssb  rsa4096/0x0B4D29418F92CF1D 2017-07-07 [S]
ssb  rsa4096/91B74A739D6A4242 2017-07-07 [E]
ssb  rsa4096/0x91B74A739D6A4242 2017-07-07 [E]
ssb  rsa4096/256A58F8E560F1D7 2017-07-07 [A]
ssb  rsa4096/0x256A58F8E560F1D7 2017-07-07 [A]
</pre>
</pre>


=Facultatif: signer votre nouvelle clé avec votre ancienne clé (si vous en possédiez une)=
Vous pouvez vérifier l'état de votre installation au moyen du paquet <code>hopenpgp-tools</code> :
 
<pre>gpg --export 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951 | hokey lint</pre>
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --default-key OLD_KEY_ID --sign-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


=Générer un certificat de révocation pour la clé maître=
=Générer un certificat de révocation pour la clé maître=


Créez un certificat de révocation pour votre clé maître. Utilisez le flag <code> 1 = Key has been compromised</code> comme raison de révocation, et entrez un descriptif supplémentaire spécifiant que ce certificat de révocation a été créé lors de la création de la clé. Terminez par une ligne vide.
Créez un certificat de révocation pour votre clé maître. Utilisez le flag <code> 1 = Key has been compromised</code> comme raison de révocation, et entrez un descriptif supplémentaire spécifiant que ce certificat de révocation a été créé lors de la création de la clé. Terminez par une ligne vide.
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey.gpg-revocation-certificate --gen-revoke 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
<pre>gpg --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey.gpg-revocation-certificate.key --gen-revoke 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
Decision : 1 = Key has been compromised
Decision : 1 = Key has been compromised
> This revocation certificate was generated when the key was created.
> This revocation certificate was generated when the key was created.
Ligne 187 : Ligne 218 :


* Sauvegarde des clés privés :
* Sauvegarde des clés privés :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey_and_subkey_$(date +%Y%m%d).priv.gpg --export-secret-keys --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey_and_subkey_$(date +%Y%m%d).priv.key --armor --export-secret-keys 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --export-secret-subkeys --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951 > /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/subkey_only_$(date +%Y%m%d).priv.gpg</pre>
<pre>gpg --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/subkey_only_$(date +%Y%m%d).priv.key --armor --export-secret-subkeys 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


* Sauvegarde des clés publiques :
* Sauvegarde des clés publiques :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey_and_subkey_$(date +%Y%m%d).pub.gpg --export --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey_and_subkey_$(date +%Y%m%d).pub.gpg --armor --export 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
 
=Publication de la clé maîtres et des sous-clés sur les keyservers=
 
<pre>
gpg --keyserver hkp://keyserver.ubuntu.com --send-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
gpg --keyserver hkp://pool.sks-keyservers.net --send-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
gpg --keyserver hkp://keys.openpgp.org --send-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
gpg --keyserver hkp://pgp.mit.edu --send-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
</pre>
 
Vous pouvez aussi la publier localement sur votre site en WKD : [[GnuPG Web Key Directory : partage de clés gpg par le web]]


=Utilisation de votre clé=
=Utilisation de votre clé=


==Directement sur votre machine (sans smartcard)==
==Directement sur votre machine (sans smartcard)==
Sortez de votre trousseau maître :
<pre>
unset GNUPGHOME
gpgconf --kill gpg-agent
</pre>
Attention, désormais vous travaillerez dans le trousseau principal votre machine (<code>/home/USER/.gnupg/</code>)


Importez les subkeys dans votre trousseau gpg local :
Importez les subkeys dans votre trousseau gpg local :
<pre>gpg --import /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/subkey_only.priv.gpg</pre>
<pre>gpg --import /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/subkey_only_$(date +%Y%m%d).priv.key</pre>


<br>
<br>
Ligne 207 : Ligne 257 :
<pre>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>
<pre>
trust
gpg> trust
5
5
save
gpg> save
</pre>
</pre>


Ligne 227 : Ligne 277 :
==Avec une smartcard==
==Avec une smartcard==


Branchez votre smartcard puis editez la avec gpg :
Dans ce cas, nous continuons à travailler sur le trousseau maître (variable <code>GNUPGHOME</code>).
<pre>gpg --card-edit</pre>
Branchez votre smartcard, éditez la avec gpg et activez les commandes admin :
<pre>
gpg --card-edit
gpg> admin
</pre>


Configurez ces différentes options :
Configurez ces différentes options :
<pre>
<pre>
admin          (active les commandes admin)
passwd          (changer le pin, admin pin et reset code)
passwd          (changer le pin, admin pin et reset key)
                 (le pin sera demandé a chaque opération avec la clé)
                 (le pin sera demandé a chaque opération avec la clé)
name            (définir son nom)
name            (définir son nom)
Ligne 241 : Ligne 294 :
</pre>
</pre>


Attention, modifiez puis sauvegardez bien les différents pins.
Le PIN par défaut est <code>123456</code> tandis que le ADmin PIN et <code>12345678</code>. Les PINs peuvent être définis jusqu'à 127 caractères ASCII pour une longueur minimale de 6 caractères (PIN) et 8 caractères (Admin PIN).
* Le pin par défaut sera demandé pour les opérations de chiffrement, signautre ou authentification avec la yubikey. Il se bloque après 3 essais infructueux.
 
* Le admin pin permet de débloquer le pin et de modifier les clés stockés.
Attention, modifiez puis sauvegardez bien les différents PINs :
* La reset key permet de remettre à zero la smartcard.
* Le Pin sera demandé pour les opérations de chiffrement, signature ou authentification avec la smartcard. Il se bloque après 3 essais infructueux.
* Le Admin PIN permet de débloquer le pin, le modifier, et modifier les clés stockés.
* Le Reset code permet de remettre à zéro le compteur du PIN principal si vous avez fait 3 essais infructueux.


<br>Créez un backup du dossier contenant votre trousseau maître (car lors du transfert des subkeys vers la smartcard, les privkey sont effacés du trousseau gpg..) :
<br>Créez un backup du dossier contenant votre trousseau maître (car lors du transfert des subkeys vers la smartcard, les privkey sont effacés du trousseau gpg..) :
Ligne 254 : Ligne 309 :


Ouvrez votre clé maître :
Ouvrez votre clé maître :
<pre>gpg --home /media/veracrypt1/GNUPG_HOME/HOME/ --edit 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


Afin de transférer chaque sous-clé sur la smartcard, il faut activer la selection avec la commande <code>toggle</code> puis les sélectionner une à une avec la commande <code>key <NUMÉRO></code>. La clé sélectionné s'affichera suivi d'une étoile (*). Pour la transférer, on lance la commande <code>keytocard</code> puis on sélectionne le bon slot sur la smartcard. Pour savoir quelle clé doit aller dans quel slot, aidez vous de la ligne <code>usage</code> : S pour Signature, E pour Encryption, A pour Authentification.
Afin de transférer chaque sous-clé sur la smartcard, il faut activer la sélection avec la commande <code>toggle</code> puis les sélectionner une à une avec la commande <code>key <NUMÉRO></code>. La clé sélectionné s'affichera suivi d'une étoile (*). Pour la transférer, on lance la commande <code>keytocard</code> puis on sélectionne le bon slot sur la smartcard. Pour savoir quelle clé doit aller dans quel slot, aidez vous de la ligne <code>usage</code> : S pour Signature, E pour Encryption, A pour Authentification.


===Transfert de la clé de signature===
===Transfert de la clé de signature===
Ligne 389 : Ligne 444 :


gpg> key 3              (desélectionne la clé)
gpg> key 3              (desélectionne la clé)
gpg> save
</pre>
</pre>
===Finalisation du transfert===
<pre>gpg> save</pre>


===Vérification après transfert===
===Vérification après transfert===


La commande suivante :
La commande suivante :
<pre>gpg --home /media/veracrypt1/GNUPG_HOME/HOME/ --list-secret-keys</pre>  
<pre>gpg --list-secret-keys</pre>  


Devrait retourner :
Devrait retourner quelque chose ressemblant à :
<pre>
<pre>
sec  rsa8192 2017-07-07 [C]
sec  rsa8192 2017-07-07 [C]
Ligne 414 : Ligne 472 :
<pre>
<pre>
cd /media/veracrypt1/GNUPG_HOME/
cd /media/veracrypt1/GNUPG_HOME/
srm -r HOME/
srm -vr HOME/
tar -xf HOME_$(date +%Y%m%d).tar
tar -xf HOME_$(date +%Y%m%d).tar
cd
cd
Ligne 422 : Ligne 480 :


Exportez votre clé publique depuis votre trousseau maître :
Exportez votre clé publique depuis votre trousseau maître :
<pre>gpg --home /media/veracrypt1/GNUPG_HOME/HOME/ --armor --export 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951 > ~/gpg_pubkey.gpg</pre>
<pre>gpg --armor --export 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951 > ~/gpg_pubkey.gpg</pre>


<br>
<br>
Ligne 428 : Ligne 486 :
<br><br>
<br><br>


Puis importez la dans le trousseau par défaut de gpg  
Arrêtez de travailler dans votre trousseau maître :
<pre>gpg --import < ~/gpg_pubkey.gpg</pre>
<pre>
unset GNUPGHOME
gpgconf --kill gpg-agent
</pre>
 
Puis importez votre clé publique dans le trousseau par défaut de gpg. Il est nécessaire de lancer un card-status pour que gpg détecte les clés privées.
<pre>
gpg --import < ~/gpg_pubkey.gpg
gpg --card-status
</pre>


Accordez une confiance totale à votre clé :
Accordez une confiance totale à votre clé :
<pre>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>
<pre>
trust
gpg> trust
5
5
save
gpg> save
</pre>
</pre>


Ligne 452 : Ligne 519 :


Notez encore une foi le symbole dièse (<code>#</code>) qui signifie que la clé privée maître n'est pas disponible dans ce trousseau, et le symbole <code>></code> qui signifie que les sous-clés privés sont stockés sur une smartcard.
Notez encore une foi le symbole dièse (<code>#</code>) qui signifie que la clé privée maître n'est pas disponible dans ce trousseau, et le symbole <code>></code> qui signifie que les sous-clés privés sont stockés sur une smartcard.
==Yubikey: Imposer de toucher la yubikey pour les opérations openpgp==
Par défaut, lors d'une première opération avec le smartcard, le PIN vous sera demandé. Le PIN sera ensuite mis en cache dans la yubikey (pas dans gpg-agent), et le seul moyen de vider le cache est de débrancher/rebrancher la smartcard. Vous pouvez ajouter une coucher de sécurité en imposant de touche la yubikey afin de valider l'opération (ainsi, une action physique est nécessaire).<br><br>
Cela n'est possible que depuis les Yubikeys 4.<br>
Pour chaque type de clé, vous pouvez définir 4 statut :
<pre>
  Off (default)  No touch required
  On              Touch required
  Fixed          Touch required, can't be disabled without a full reset
  Cached          Touch required, cached for 15s after use
  Cached-Fixed    Touch required, cached for 15s after use, can't be disabled
                  without a full reset
</pre>
Attention, notez bien que si vous activez le mode <code>Cached-Fixed</code> ou <code>Fixed</code>, vous ne pourrez plus modifier cette configuration sans remettre à zéro totalement la smardcard de la yubikey !
<pre>
ykman openpgp keys set-touch sig on
ykman openpgp keys set-touch enc on
ykman openpgp keys set-touch aut on
ykman openpgp keys set-touch att on
</pre>
Sous linux, vous pouvez installer https://github.com/maximbaz/yubikey-touch-detector pour être averti visuellement de la nécessité de toucher la yubikey
Note : il semblerait que killer l'agent (<code>gpgconf --kill gpg-agent</code>) ou le smartcard daemon (<code>gpgconf --kill scdaemon</code>) permette à GPG de redemander le pin. Néanmoins dans les faits cela provoque uniquement une désynchronisation entre l'état de l'applet GPG de la yubikey (qui est déverrouillé) et l'état connu par gpg-agent (qui pense l'applet verrouillé). Pour preuve, constatez que vous pouvez taper autant de pin erroné que souhaité (normalement après 3 erreurs, le PIN est bloqué)


=En pratique=
=En pratique=
Ligne 457 : Ligne 553 :
Pour les opérations de signature/vérification, chiffrement/déchiffrement et d'authentification, seul votre trousseau local (et votre smartcard si vous avez décidé d'en utiliser une) sont nécessaires.<br>
Pour les opérations de signature/vérification, chiffrement/déchiffrement et d'authentification, seul votre trousseau local (et votre smartcard si vous avez décidé d'en utiliser une) sont nécessaires.<br>


Les opérations suivantes nécessitent d'être réalisées avec votre trousseau maître (celui stocké sur le média usb) (<code>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/</code>) :
Les opérations suivantes nécessitent d'être réalisées avec votre trousseau maître (celui stocké sur le média usb) (<code>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/</code> ou alors avec la variable d'environnement <code>GNUPGHOME=/media/veracrypt1/GNUPG_HOME/HOME/</code> définie) :
* Ajouter une identité/uid (par exemple si vous changez d'adresse mail) à votre clé
* Ajouter une identité/uid (par exemple si vous changez d'adresse mail) à votre clé
* Signer la clé de quelqu'un d'autre : <code>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --sign-key 0xKEY_TO_SIGN</code> puis exporter la signature et la renvoyer à votre ami.
* Signer la clé de quelqu'un d'autre : <code>gpg --sign-key 0xKEY_TO_SIGN</code> puis exporter la signature et la renvoyer à votre ami.
* Révoquer une sous-clé  
* Révoquer une sous-clé  
* Créer une nouvelle sous-clé
* Créer une nouvelle sous-clé
'''Notez que pour chacune des opérations précédentes, après l'avoir réalisé, il faudra re-publier votre clé maître publique sur les serveurs de clé''' (afin que le monde entier soit mis au courant de votre nouvel uid/clé/signature) : <code>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --send-keys --keyserver <serveur de clé> 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</code>
'''Notez que pour chacune des opérations précédentes, après l'avoir réalisé, il faudra re-publier votre clé maître publique sur les serveurs de clé''' (afin que le monde entier soit mis au courant de votre nouvel uid/clé/signature) : <code>gpg --send-keys --keyserver <serveur de clé> 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</code>


==Exemple pour révoquer une sous-clé==
==Exemple pour révoquer une sous-clé==
<pre>
<pre>
gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
gpg --edit-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
key 1              (selectionne la subkey numéro 1)
key 1              (selectionne la subkey numéro 1)
revkey
revkey
Ligne 473 : Ligne 569 :


Mettez également à jour le backup de votre clé publique, afin qu'il reflète le nouvel état :
Mettez également à jour le backup de votre clé publique, afin qu'il reflète le nouvel état :
<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey_and_subkey_$(date +%Y%m%d).pub.gpg --export --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --output /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/masterkey_and_subkey_$(date +%Y%m%d).pub.gpg --export --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


Une fois la révocation effectuée, vous devrez à nouveau publier votre clé maître publique sur les serveurs de clé (afin que le monde sache que vous avez révoqué une sous-clé)
Une fois la révocation effectuée, vous devrez à nouveau publier votre clé maître publique sur les serveurs de clé (afin que le monde sache que vous avez révoqué une sous-clé)
4 203

modifications

Menu de navigation