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

  1. Savoir se servir d'un éditeur de texte standard
  2. Avoir installé KMail 1).
  3. Avoir une paire de clef (voir la documentation sur GnuPG)
  4. 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.conf2).

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 DEADBEEF5)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/GnuPG6) 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.

  1. Quitter sa session
  2. [Ctrl]-[Alt]-[←] (Backspace)
  3. Se connecter

Sous Gnome

  1. Aller dans Système/Préférences/Session
  2. Cliquer sur le bouton Nouveau
  3. Dans Nom, indiquer gpg-agent
  4. Dans Commande, indiquer eval "$(gpg-agent –daemon)"
  5. Valider
  6. Vérifier que la case de gpg-agent est cochée
  7. Fermer la fenêtre
  8. 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

Contributeur : Traduit et adapté par Didier

2)
s'il n'existe pas, cf. Prérequis, et si malgré cela il n'existe toujours pas, n'hésitez pas à le créer vous même.
3)
enlever le dièse (#) et l'espace de début de ligne
4)
désolé pour ceux qui n'aiment pas ça, mais c'est vraiment le moyen le plus simple dans ce cas
5)
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. :-P
6)
si le dossier Autostart n'existe pas, le créer. Si le dossier .kde n'existe pas, voir sous Gnome