« 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
aucun résumé des modifications
Aucun résumé des modifications
Ligne 93 : Ligne 93 :


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 107 : Ligne 107 :


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 --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, je n'en spécifie aucune (0)). Terminez en sauvegardant la clé (<code>save</code>) :
Ligne 121 : Ligne 121 :


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 --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, je n'en spécifie aucune (0)). Terminez en sauvegardant la clé (<code>save</code>) :
Ligne 134 : Ligne 134 :
==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. Commencez par ouvrir votre clé maître avec l'argument <code>--expert</code> :  
<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, je n'en spécifie aucune (0)). Terminez en sauvegardant la clé (<code>save</code>). Au prompt gpg on obtient :
Ligne 152 : Ligne 152 :
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/99FD9BFE6F9B8951 2017-07-07 [C]
uid                [ultimate] testuser <testuser@domain.tld>
uid                [ultimate] testuser <testuser@domain.tld>
Ligne 161 : Ligne 161 :


<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/99FD9BFE6F9B8951 2017-07-07 [C]
uid                [ultimate] testuser <testuser@domain.tld>
uid                [ultimate] testuser <testuser@domain.tld>
Ligne 171 : Ligne 171 :
=Facultatif: signer votre nouvelle clé avec votre ancienne clé (si vous en possédiez une)=
=Facultatif: signer votre nouvelle clé avec votre ancienne clé (si vous en possédiez une)=


<pre>gpg --homedir /media/veracrypt1/GNUPG_HOME/HOME/ --default-key OLD_KEY_ID --sign-key 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>
<pre>gpg --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 --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 187 :


* 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.gpg --export-secret-keys --armor 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 --export-secret-subkeys --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951 > /media/veracrypt1/GNUPG_HOME/KEY_BACKUP/subkey_only_$(date +%Y%m%d).priv.gpg</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 --export --armor 7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951</pre>


=Utilisation de votre clé=
=Utilisation de votre clé=
Ligne 457 : Ligne 457 :
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 473 :


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