Next Previous Contents

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 <leto@vilya.org> 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 <leto@vilya.org> 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 <leto@parinux.org> uid Loïc Bernable <leto@vilya.org> 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 <benoit@parinux.org>

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 <leto@parinux.org> uid Loïc Bernable <leto@vilya.org> sub 1024g/52AF5615 2001-07-12 pub 1024D/CE63A2E7 2000-02-23 Benoit <benoit@parinux.org> 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).


Next Previous Contents

 :

 :

 :