Page suivante
Page précédente
Table des matières
4. Utilisation
Dans un premier temps, nous allons voir ensemble une série de commandes utiles
à taper dans un terminal, puis nous verrons qu’il est possible de coupler les
commandes de GnuPG avec des logiciels indépendants.
Dans tous les cas, en guise d’aide mémoire, un recours à gpg –help ou à
man gpg ne pourra qu’être conseillé …
4.1 Bien gérer son trousseau
Tout d’abord, nous venons de créer notre clé, mais nous allons voir qu’il est
possible d’importer les clés publiques d’autres personnes dans notre trousseau
de clés publiques (pubring). Afin de lister les clés qui sont dans notre
keyring (porte-clés), il suffit de taper la simple commande :
$ gpg --list-keys /home/leto/.gnupg/pubring.gpg ----------------------------- pub 1024D/A0BBED3B 2001-07-12 Loïc Bernable <[email protected]> sub 1024g/52AF5615 2001-07-12
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 : la première pour valider les
signatures que l’on émet, et la deuxième pour que d’autres personnes puissent
nous chiffrer des messages (que l’on déchiffrera donc avec notre clé secrète).
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 leto [...] pub 1024D/B844D5E8 created: 2001-07-12 expires: never trust: -/u sub 1024g/63CB897E created: 2001-07-12 expires: never (1). Loïc Bernable <[email protected]> Command>
À ce stade, il est possible de taper la commande help pour avoir la liste
des sous-commandes disponibles.
Command> 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.
Command> 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/leto/.gnupg/pubring.gpg ----------------------------- pub 1024D/A0BBED3B 2001-07-12 Loïc Bernable <[email protected]> uid Loïc Bernable <[email protected]> sub 1024g/52AF5615 2001-07-12
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 la partie 5 sur les réseaux de confiance.
Il existe plusieurs serveurs de clés usuels. Citons par exemple les serveurs
pgp.mit.edu, www.keyserver.net, wwwkeys.pgp.net,
wwwkeys.us.pgp.net, wwwkeys.uk.pgp.net, etc. (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. Une recherche
rapide sur le site web de pgp.mit.edu (par exemple) nous donne
pub 1024/CE63A2E7 2000/02/23 Benoit <[email protected]>
Il suffit donc de taper la commande suivante afin d’importer la clé publique
du serveur de clés vers notre trousseau :
$ 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, lorsqu’on listera les clés de notre trousseau, on aura une clé
supplémentaire :
$ gpg --list-keys /home/leto/.gnupg/pubring.gpg ----------------------------- pub 1024D/A0BBED3B 2001-07-12 Loïc Bernable <[email protected]> uid Loïc Bernable <[email protected]> sub 1024g/52AF5615 2001-07-12 pub 1024D/CE63A2E7 2000-02-23 Benoit <[email protected]> sub 2048g/B5A97C83 2000-02-23
4.2 Bon, c’est bien joli, d’avoir des clés, mais quand et comment puis-je les utiliser ?
On peut séparer son utilisation en deux cas distincts : l’utilisation de
manière brute ou l’utilisation automatisée au sein d’un programme.
Commençons par cette dernière. Certains logiciels de messagerie comme
mutt, pine, ou encore elm ont des fonctionnalités pour utiliser
GnuPG pour toutes les fonctionnalités de cryptographie.
Prenons l’exemple de mutt. En règle générale, mutt est livré avec un ficher
d’exemple appelé gpg.rc, et qu’il suffit de sourcer dans le .muttrc
(ajouter la ligne source ~/.mutt/gpg.rc dans le .muttrc en
adaptant le chemin où trouver le fichier gpg.rc).
Maintenant, lorsqu’un mail a été écrit, et est prêt à envoyer (menu d’envoi),
une simple pression de la touche p affiche un menu de cryptographie,
permettant de signer et/ou chiffrer un message. De la même manière, lorsqu’un
mail signé arrive, il est automatiquement vérifié en fonction des clés
présentes dans le trousseau.
Si la clé correspondante n’existe pas dans le trousseau, un message l’indique
au début du corps du message. On peut alors forcer le rappatriement
automatique de la clé publique correspondant à un mail signé en modifiant les
commandes dans le fichier gpg.rc (il suffit d’ajouter l’option
–keyserver pgp.mit.edu ou –keyserver wwwkeys.pgp.net par exemple
après les commandes commençant par gpg). On peut aussi lui spécifier d’aller
vérifier les signatures mais sans garder les clés publiques dans le trousseau
si elles n’étaient pas présentes (option –no-auto-key-retrieve).
Pour plus de détails concernant l’utilisation de GnuPG dans mutt, voir la page
GnuPG sur le site Muttfr.org (
http://www.muttfr.org/mutt/mutt.php3?inc=mutt-7.html ).
Ceci dit, il est possible d’utiliser GnuPG directement en ligne de commande.
Pour signer un fichier :
$ gpg --clearsign --armor mon_fichier
un fichier mon_fichier.asc est créé, qui commence par les lignes
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
et qui finit par la signature du fichier :
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD4DBQE7W46rX1807qC7PesRAk7RAJi4QF2t7nlvJkeoZKLcD9BcANhHAKCIz/gp kNFatbp77Si64SvtfzCfvQ== =aPzJ -----END PGP SIGNATURE-----
Pour chiffrer un fichier, en le signant :
$ gpg --sign --armor --encrypt mon_fichier
Ici, en plus de la passphrase, il est demandé l’ID pour lequel le message sera
chiffré.
Pour voir les différentes possibilités, se référer à la page de manuel de
GnuPG (man gpg).