Gérer son porte-clefs, c'est :
Voici comment lister ses différentes clés :
Pour que vos correspondants puissent vérifier la validité des informations que vous leur envoyez, il faut leur donner la clef publique.
$ gpg --export --armor votre-clef > clefpublique.asc
Cette commande génèrera un fichier .asc, qui est finalement un fichier texte. Alors, plusieurs solutions s'offrent à vous...
Il faut limiter absolument le nombre d'intermédiaires non sécurisés. Rien que l'exportation dans un fichier sur votre disque n'est pas sûr !
Il existe une commande qui permet d'exporter votre clef, de façon sécurisée, directement sur le serveur de clés :
$ gpg --send-keys --keyserver pgp.mit.edu clef-publique
Pour importer une clé publique :
$ gpg --import clef.asc
Pour pouvoir réimporter sa propre clef privée, après une réinstallation par exemple, il faut l'avoir précédemment exporté avec la commande suivante :
$ gpg --export-secret-key -a > fichier
Alors, pour l'importer, on procède comme suit :
$ gpg --import --allow-secret-key-import fichier
Cette opération étant relativement peu sécurisée, il vaut mieux l'éviter.
Pour révoquer sa clé, il faut au préalable avoir constitué un certificat, comme suit :
$ gpg --gen-revoke votre-clef
Cette commande créera un certificat, vous permettant de révoquer, un jour, votre clef. Il faudrait le conserver dans un fichier.
Si vous souhaitez révoquer une clé, il faut déposer votre certificat de révocation sur les serveurs de clefs où se trouvent ladite clé.
Supposons que le certificat de révocation se trouve dans le fichier revocation.txt. On doit commencer par importez ce fichier, comme suit :
$ gpg --import revocation.txt
Ensuite, on l'exporte au serveur de clefs :
$ gpg --keyserver pgp.mit.edu --send-keys votreclef
Si tout s'est bien passé, votre clef est maintenant invalide.
On remarque que notre propre clé publique est déjà dans le trousseau, et qu'elle est elle-même séparée en deux parties :
On peut aussi noter l'ID de notre clé, qui référence cette clé de manière unique : il est situé sur la première ligne, après le premier '/' : ici l'ID de notre clé est 0xA0BBED3B.
Si on le désire, il est possible d'ajouter une adresse email à notre clé. On va éditer notre clé et ajouter un uid :
$ gpg --edit-key christophe gpg (GnuPG) 1.4.9; Copyright (C) 2008 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. La clé secrète est disponible. pub 1024D/B52FF09E créé: 2009-01-30 expire: jamais utilisation: SC confiance: ultime validité: ultime sub 4096g/5552598C créé: 2009-01-30 expire: jamais utilisation: E [ ultime ] (1). Christophe Guyeux (Clé du boulot) <christophe.guyeux@univ-fcomte.fr> Commande>
À ce stade, il est possible de taper la commande help pour avoir la liste des sous-commandes disponibles. On constate que la commande recherchée est adduid...
Commande> adduid
Grâce à cette commande on peut ajouter un uid de la même façon qu'on avait créé l'utilisateur initial. On remarque dès maintenant l'appel à la passphrase pour autoriser la modification.
Reste à sauvegarder les changements...
Commande> save
Après les changements sauvés, on remarque qu'une nouvelle entrée est apparue dans notre trousseau (l'ordre des adresses email importe peu) :
$ gpg --list-keys /home/guyeux/.gnupg/pubring.gpg ...
On pourra maintenant signer et se faire envoyer des mails chiffrés en utilisant indifféremment l'une ou l'autre de ces adresses email.
Maintenant que notre clé publique est complète, on peut la diffuser.
L'usage veut que les clés publiques soient envoyées sur des serveurs de clés qui eux-mêmes communiquent entre-eux.
Ainsi, lorsqu'on reçoit un message signé d'une personne dont on n'a pas la clé dans notre trousseau, il est possible d'aller chercher la clé publique sur un serveur de clés afin de vérifier l'authenticité du message.
De la même façon, si on veut envoyer un message chiffré à une personne, on peut récupérer sa clé publique afin de l'utiliser pour chiffrer le message.
ATTENTION ! Cette méthode n'est pas sûre. Avant de faire confiance à une clé récupérée de cette manière, bien lire ce qui concerne les réseaux de confiance.
Il existe plusieurs serveurs de clés usuels. Citons, par exemple, les serveurs
La commande
$ host -l pgp.net | grep wwwkeys
donne une liste, non exhaustive, de serveurs de clés.
Envoyons notre clé sur le serveur pgp.mit.edu, par exemple :
$ gpg --keyserver pgp.mit.edu --send-key 0xA0BBED3B gpg: success sending to `pgp.mit.edu' (status=200)
Notre clé est donc maintenant disponible sur ce serveur, et par la suite, elle sera normalement répliquée sur les autres serveurs de clés.
Maintenant, nous souhaitons ajouter un ami à notre trousseau. Il nous faut son id...
$ gpg --search-key christophe guyeux gpg: recherche de « christophe guyeux » du serveur hkp keys.gnupg.net (1) Christophe Guyeux <guyeux@ens-cachan.org> 1024 bit DSA key E8CEA9F2, créé: 2007-12-12 (2) Christophe Guyeux <guyeux@iut-bm.univ-fcomte.fr> 1024 bit DSA key 347AE5F2, créé: 2007-12-10 Keys 1-2 of 2 for "christophe guyeux". Entrez le(s) nombre(s), S)uivant, ou Q)uitter >
Il suffit donc de taper le numéro correspondant à la clé recherchée, afin d'importer la clé publique du serveur de clés vers notre trousseau.
On peut aussi effectuer une recherche rapide en se connectant sur le site web de pgp.mit.edu (par exemple), puis importer la clé trouvée comme suit :
$ gpg --keyserver pgp.mit.edu --recv-key 0xCE63A2E7 gpg: requesting key CE63A2E7 from pgp.mit.edu ... gpg: key CE63A2E7: public key imported gpg: Total number processed: 1 gpg: imported: 1
Maintenant, lorsque l'on listera les clés de notre trousseau, on aura une clé supplémentaire :
$ gpg --list-keys /home/guyeux/.gnupg/pubring.gpg ------------------------------- pub 1024D/B52FF09E 2009-01-30 uid Christophe Guyeux (Clé du boulot) <christophe.guyeux@univ-fcomte.fr> sub 4096g/5552598C 2009-01-30 pub 1024D/E8CEA9F2 2007-12-12 uid Christophe Guyeux <guyeux@ens-cachan.org> sub 2048g/06A37D6A 2007-12-12