Utiliser OpenPGP et PGP/MIME avec KMail
Introduction
Cette manipulation va permettre d'étendre le support de Kmail pour OpenPGP, PGP/MIME (via GnuPG) à l'aide de l'agent de GnuPG. Ceci permet d'envoyer des messages signés (déjà avec KMail de base) mais aussi de déchiffrer les messages chiffrés (ce qui provoquait des messages types Bad Passphrase
).
Prérequis
- Savoir se servir d'un éditeur de texte standard
- Avoir une paire de clef (voir la documentation sur GnuPG)
- Savoir lancer une console
Installation
Voici la liste des paquets à installer (s'ils ne le sont pas)
gnupg-agent
Et l'un des deux suivants:
pinentry-qt
(plutôt pour KDE) (Testé, marche parfaitement)pinentry-gtk2
(plutôt pour GNOME) (Testé, marche parfaitement)
A priori, les deux devraient fonctionner autant avec KDE qu'avec GNOME. Question de goût.
Configuration
La configuration se fait par utilisateur. Il faut donc la répéter pour chaque utilisateur qui désire utiliser GnuPG et KMail.
Modification de la configuration de GnuPG
Tout d'abord, il faut modifier la configuration de GnuPG pour lui dire d'utiliser l'agent au lieu de son propre système de vérification de mot de passe. À cet effet, il faut éditer le fichier ~/.gnupg/gpg.conf
2).
Il faut ensuite décommenter3) la ligne suivante :
# use-agent
Configuration de GnuPG-agent
Ensuite, il faut configurer l'agent GnuPG. Il faut créer le fichier ~/.gnupg/gpg-agent.conf
et lui donner le contenu suivant :
pinentry-program "/usr/bin/pinentry-qt" no-grab default-cache-ttl 1800
N.B: Si c'est pinentry-gtk2
qui a été installé, il faut évidemment remplacer pinentry-qt
par pinentry-gtk-2
N.B 2 : correction de synthaxe : ajout des apostrophes
Dans les nouvelles distribution ⇒ Natty, nous pouvons utiliser kwallet avec pinentry.
Pour se faire, il faut Installer le paquet kwalletcli
puis remplacer dans .gnupg/gpg-agent.conf
#pinentry-program "/usr/bin/pinentry-qt" pinentry-program "/usr/bin/pinentry-kwallet"
Premier test
Nous allons à présent tester si l'installation et la configuration fonctionnent correctement.
Il faut pour ça lancer une console 4). Donc, après avoir ouvert une console, taper les commandes suivantes :
$ eval "$(gpg-agent --daemon)"
Cette commande permet de lancer le démon gpg-agent
. On y reviendra plus tard.
Ensuite, afin de tester si l'agent est bien utilisé, il faut taper cette commande:
echo "Test" | gpg -ase -r 0xDEADBEEF | gpg
N.B. Évidemment, il faut remplacer DEADBEEF
5)par l'identifiant de votre clé !
Cette commande envoie la chaîne Test
pour être codée (| gpg -ase
) avec votre clé privée (-r 0xDEADBEEF
), puis envoie le tout pour être décodé (| gpg
). Par conséquent, le mot de passe devrait être demandé deux fois via l'interface graphique. Finalement, le mot Test
devrait apparaître dans la console (si le bon mot de passe a été entré correctement).
Si le test s'est bien déroulé, passez à la suite.
NB: Sur Natty, le daemon gpg est lancé automatiquement à l'ouverture de session X. Il faut donc rebooter pour tester la configuration et ne pas tenter de lancer un nouveau daemon avec
$ eval "$(gpg-agent --daemon)"
Démarrer le démon à chaque session
Sous KDE
Il faut créer un fichier ~/.kde/Autostart/GnuPG
6) qui doit contenir les lignes suivantes :
#!/bin/sh if grep -q '^use-agent' ~/.gnupg/gpg.conf; then eval "`gpg-agent --daemon`" fi
Ce petit programme teste si une le fichier ~/.gnupg/gpg.conf
contient une ligne qui commence par use-agent
. Si c'est le cas, il démarre le démon gpg-agent
.
Il faut rendre ce fichier exécutable :
chmod +x ~/.kde/Autostart/GnuPG
Grâce à ce fichier, le démon devrait être lancé à chaque démarrage de session.
Afin de pouvoir tester sous KMail, le mieux est de redémarrer sa session graphique.
- Quitter sa session
[Ctrl]-[Alt]-[←]
(Backspace)- Se connecter
Sous Gnome
- Aller dans Système/Préférences/Session
- Cliquer sur le bouton Nouveau
- Dans Nom, indiquer gpg-agent
- Dans Commande, indiquer eval "$(gpg-agent –daemon)"
- Valider
- Vérifier que la case de gpg-agent est cochée
- Fermer la fenêtre
- Redémarrez la session pour que cela soit pris en compte
Conclusion
Normalement, cette manipulation devrait, après redémarrage de la session graphique, permettre de :
- Envoyer des messages signés
- Recevoir des messages chiffrés
DEADBEEF
pourrait se traduire par BŒUFMORT
, mais les identifiants de clés sont des suites de caractères hexadécimaux (de 0 à 9 et de A à F). Si quelqu'un a une suite rigolote de 8 lettres en français, merci de modifier.