Sécurisez vos discussions avec Jabber et GnuPG
Vous connaissez tous le service propriétaire de messagerie de Microsoft. Mais connaissez-vous Jabber ?
Jabber est entre autres, également un service de messagerie instantanée mais pas seulement. En effet, il est un ensemble de protocoles et permet ainsi de réaliser un bon nombre de choses. Pour plus d'informations vous pouvez consulter la page qui lui est dédiée sur l'encyclopédie libre Wikipedia.
Sans s'attarder sur le sujet, il est tout de même important de préciser qu'il présente de nombreux avantages également énumérés dans le lien ci-dessus, mais dont voici les points importants :
Inscription au serveur Jabber :
L'inscription à l'un des très nombreux serveurs Jabber ne prend que quelques secondes, car ne requiert que peu d'informations. Vous pouvez vous inscrire directement depuis cette page ou depuis votre client (si celui-ci propose la fonctionnalité d'inscription).
Choix du client de messagerie :
Là aussi, il existe une multitude de clients supportant Jabber, que ce soit sous GNU/Linux, Mac OS X, ou encore Microsoft Windows. La liste est réellement impressionnante et trop longue pour être entièrement listée, cependant certains clients libres se démarquent du lot sous GNU/Linux :
Pour ce petit guide, nous allons utiliser deux combinaisons différentes, Kopete + Kgpg (pour KDE) dans un premier temps et Gajim + GPA ensuite. (pour GNOME).
Installation des paquets :
L'installation de ces paquets est très simple car ceux-ci se trouvent dans les dépôts (toutes branches) :
# aptitude install kopete kgpgSi vous possédez l'environnement GNOME par contre :
# aptitude install gajim gpa
Générer une paire de clefs :
Essayez toutefois de garder en tête quelques règles :
Pour générer une paire de clef avec Kgpg, vous pouvez vous aider de ce guide.
La méthode est sensiblement la même avec GPA : Menu Keys -> New Key..., il ne vous reste plus qu'à indiquer les informations demandées.
N.B : Par défaut, l'algorithme utilisé par GPA est la combinaison DSA + Elgamal (1024 bits), pour modifier cela, il faut activer le mode avancé (Édition -> Préférences puis cochez Yes à la question Utiliser le mode avancé ?).

Importer/Exporter les clefs publiques :
Une fois la paire créée et signée, il vous faudra exporter la clef publique dans un endroit sûr. Cette clef permettra à vos contacts de déchiffrer vos messages. En revanche, la clef privée de cette même paire vous servira à les chiffrer, mais nous allons le voir dans la partie concernant la configuration des clients de messagerie.
Dans GPA, l'exportation/importation de clefs publiques s'effectuent depuis le même menu alors qu'avec Kgpg, vous avez juste à sélectionner la clef à exporter puis presser la combinaison de touches CTRL+C ou choisir de passer par le menu Clefs :



Lorsque vous importez une clef publique d'un de vos contacts, il est important de ne pas oublier de régler le niveau de confiance que vous accordez à celui-ci. Si vous oubliez cette étape, normalement le client de messagerie refusera tout simplement le mot de passe que vous lui indiquerez pour déchiffrer les messages de ce contact.
Pour ce faire, effectuez un clic droit sur la clef en question et dans GPA, choisissez Set Owner Trust... puis dans la liste cochez le niveau de confiance qui convient (souvent complète voir Ultime).
Dans Kgpg en revanche, sélectionnez la clef importée dans la liste et pressez la touche Entrée, une fenêtre s'affiche, il suffit de modifier le contenu du menu déroulant correspondant à l'information Confiance dans le possesseur :

Configurer le client Kopete :
Une fois que les clefs publiques et privées sont prêtes et qu'un compte Jabber est créé, il ne reste plus qu'à configurer Kopete préalablement installé.
Lors de la première exécution de celui-ci, vous devez remplir les champs concernant votre compte Jabber (identifiant, mot de passe, ...). Dans le deuxième onglet Connexion, veillez à cocher Utiliser le chiffrement du protocole (SSL). Cela va permettre de chiffrer la connexion avec le serveur. Ensuite, dans l'onglet Confidentialité, cochez Cacher les informations systèmes et client, ainsi vos interlocuteurs n'auront pas accès à certaines informations vous concernant.
Une fois la personnalisation du compte effectuée, rendez-vous dans le menu Configuration puis sélectionnez Configurer les modules.... S'affiche alors une liste de différents modules (outils additionnels), activez le module Cryptographie (deuxième en partant du haut). Dans la fenêtre correspondante, cochez Chiffrer les messages sortants avec cette clé. Enfin, le plus important, il faut désormais choisir la clef privée de la paire que vous avez générée :

Pressez OK et appliquez les changements.
Maintenant, supposons que votre ami Lefty vous envoie sa clef publique. Une fois celle-ci importée dans Kgpg (voir plus haut). Il ne vous reste plus qu'à attribuer cette clef à Lefty dans la liste de vos contacts. Pour cela, sélectionnez-le dans la liste, puis faites un clic droit et choisissez Sélectionnez une clé publique de cryptographie... :


Le principal est fait. Désormais, lorsque Lefty vous enverra un message, un mot de passe vous sera demandé :

Si celui-ci a fait les manipulations comme vous, ce sera identique de son côté, un mot de passe (celui de sa clef privée) lui sera réclamé pour qu'il puisse déchiffrer le message que vous lui enverrez. Ce mot de passe n'est demandé qu'une seule fois tant que le client reste ouvert.
Configurer le client Gajim :
Nous allons maintenant configurer le client Gajim. Une fois que vous l'avez lancé, vous devez entrer les informations basiques concernant votre compte Jabber.
Ensuite, rendez-vous dans le menu Édition puis cliquez sur Comptes puis Modifier. Dans le quatrième onglet informations personnelles, cliquez sur Choisissez une clé... et choisissez donc votre clef privée.

Ensuite, comme pour Kopete, il vous faudra attribuer les clefs publiques aux contacts correspondants après les avoir importées dans GPA. Un clic droit sur le contact puis Assigner une clé OpenPGP :

Choisissez donc la clef publique correspondante au contact en question.
Contrairement à Kopete, avec Gajim, le mot de passe de la clef privée est demandé au démarrage du client et non à chaque début de conversation.

N.B : Certains puristes pourraient se demander pourquoi utiliser des logiciels graphiques pour gérer et générer les paires de clefs. Je répondrais que je trouve cela plus pratique lorsque l'on manipule beaucoup de clefs. C'est également moins repoussant pour certains utilisateurs.