Next Previous Contents

2. Quelques commandes pour commencer à utiliser PGP ou GnuPG

Ces exemples d'utilisation sont décrits pour être utilisés en ligne de commande. L'interfacage ultérieurement peut se faire à travers les divers logiciels d'email (voir alors la documentation propre) pour rendre plus facile l'usage de pgp ou gpg.

2.1 PGP et GnuPG

Cette documentation est écrite pour pgp5i ou aussi pgp6.x qui est proche, mais dont les commandes en version 5 de la forme :

$ pgpx -option  
se retrouvent en version 6 sous la forme :
$ pgp -x -option

La syntaxe de gpg est un peu différente. Quoiqu'il en soit, l'aide en ligne se trouve pour ces différents logiciels comme habituellement avec l'option -h.

De même d'une façon générale l'option -a permet de générer un fichier ascii et non pas "binaire" (comportement par défaut). Les fichiers générés sont compressés.

Compiler l'archive :

Il n'y rien de particulier, que cela soit pour PGP ou GnuPG, (voir les sites ftp en fin de texte pour récuperer la dite-archive, en particulier il est important de vérifier que la signature des sources est correcte pour éviter tout risque de "backdoor").

$ ./configure ; make ; su  
# make install 

$ touch ~/.pgp/pgp.cfg (je n'ai rien mis dedans dans un premier temps...)

Générer ses propres clés en répondant aux questions :

$ pgpk -g (ver5)
$ pgp -kg (ver6)
$ gpg --gen-key (gpg)

Avec une un ID_utilisateur_soit-meme avec ce type de forme :

Nom Prenom <pnom@provider.fr> 
(en ligne de commande les entourer de guillemets).

NB : choisir les protocoles et choix par défaut sauf si vous savez ce que vous faites. Par ailleurs la passphrase doit être choisie correctement, elle doit concilier deux choses : (1) être retenue facilement par vous, mais (2) pas par les autres. Elle ne doit évidement n'être écrite nul part (quoiqu'il soit possible de le faire dans le fichier pgp.cgf pour éviter de la taper chaque fois, c'est à priori dangeureux).

Et extraire sa clé dans le fichier_de_clé :

$ pgpk -x ID_utilisateur_soit-meme -o fichier_de_clé_soit-meme  (ver5)
$ pgp -kx ID_utilisateur_soit-meme (ver6)
$ gpg --export -a (gpg)
Ce qui permet d'obtenir un fichier_de_clé_public sous la forme :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP 6.5.1i

mQGiBDjY7q8RBADfRjutlbo6vUtGhX3A3q2ND0eodh6ABryK0P0cibhyzOiyTvoW
z3F076Hyn/fVRpXSMdEKgAtrF9ZpejJCADo3NbAd92S06FGBPLPx1HpsdILiLTiV

[cut de plusieurs lignes]

RgQYEQIABgUCONjuvAAKCRCr+8SyXuR23pZlAJwOBY3uOqZ2YmfoOtRNb3kZ7+vo
ZQCfb3Mbx9JyOcoglFoLGTxw9kOod1M=
=frQn
-----END PGP PUBLIC KEY BLOCK-----

Les clés privés sont dans les répertoires ~/.pgp ou ~/.gnupg.

Rajouter un fichier_de_clé_autre d'un correpondant à son trousseau :

Avec comme ID_utilisateur :

"Correpondant Prenom <correspondant@provider.fr>" 
$ pgpk -a fichier_de_clé_autre (ver5)
$ pgp -ka fichier_de_clé_autre (ver6)
$ gpg --import fichier_de_clé_autre (gnupg)

Chiffrer un message avec la clé publique d'un correspondant (userid) :

$ pgpe -a -r "Correpondant Prenom <correspondant@provider.fr>" fichier.txt (ver5)
$ pgp -ea fichier.txt "Correpondant Prenom <correspondant@provider.fr>"  (ver6)
Si plusieurs correspondants :
$ pgpe -a fichier.txt userid1 userid2 userid3 etc... (ver5)
$ pgp -ea fichier.txt userid1 userid2 userid3 etc... (ver6)

Déchiffrer :

$ pgpv fichier.asc (ver5)
$ pgp fichier.asc (ver6)

Signer :

$ pgps -ba fichier (ver5)
$ pgp -sta fichier (ver6)
$ gpg --sign fichier (gpg)

Cela génère un petit fichier de signature ayant cette structure (quand on choisit le format ascii) :

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.0i for non-commercial use
MessageID: vhZ6Ww2+tYXLJ80SrRjYm7IX9zmWVgZU

iQA/AwUAOQzfDVl+mm/GOS8wEQJDTQCeOLWY/JEVBcdew2TtEJO5jH9v84oAoPP8
X5h/F1M6t9B6ui5aqs56xCRq
=GPEf
-----END PGP SIGNATURE-----

Vérifier la signature d'un fichier :

$ pgpv fichier.asc (ver5)
ou
$ pgpv fichier.asc fichier.sig (si en deux fichiers séparés)
$ pgp -sta fichier (ver6)
$ gpg --verify toto.asc (gpg)

Lister les clés que l'on possède :

Faire suivre du nom d'un utilisateur le cas échéant

$ pgpk -ll (ver5)
$ pgp -kl (ver6)
$ gpg --fingerprint (gpg)

Permet en particulier de voir les clés et les empreintes

Enlever sa clé :

$ pgp -kd "Nom Prenom <pnom@provider.fr>" (ver6)
$ pgpk -ru userid (ver5)

2.2 Avec les logiciels de mail

PGP ou peuvent être bien sûr utilisés avec votre logiciel de mail, regarder la documentation spécifique. Pour la configuration avec Mutt voir le lien ftp. Pour ce qui est de pgp 5 et gnus/emacs, j'ai rajouté dans mon .emacs :

;; mailcrypt avec pgp ou gnupg.
(setq load-path (cons "/usr/local/share/emacs/site-lisp/" load-path))
(load-library "mailcrypt")
(mc-setversion "5.0") 
;(mc-setversion "gpg") ; à décommenter pour gnupg (non testé)
(autoload 'mc-install-write-mode "mailcrypt" nil t)
(autoload 'mc-install-read-mode "mailcrypt" nil t)
(add-hook 'mail-mode-hook 'mc-install-write-mode)
(add-hook 'gnus-summary-mode-hook 'mc-install-read-mode)
(add-hook 'message-mode-hook 'mc-install-write-mode)
(add-hook 'news-reply-mode-hook 'mc-install-write-mode)
;; fin mailcrypt


Next Previous Contents