Cahier des charges

  1. Client utilisant un protocole de communication ouvert, standard, XMPP de préférence (Jabber, Google Talk).
  2. Logiciel libre (gratuité et disponibilité des sources) activement développé.
  3. Logiciel multiplate-forme (Windows, Linux) ou compatible avec les clients d'autres plates-formes.
  4. Chiffrement des connexions entre le client et le serveur (SSL/TLS).
  5. Chiffrement des messages entre les clients (chiffrement de bout en bout).

Pidgin avec module OTR (Off The Record Messenging)

Intérêt de Pidgin :

  • Logiciel libre multiplate-forme et multiprotocole, activement développé.
  • Facile à utiliser, bien documenté.
  • Chiffrement SSL des connexions entre le client et le serveur.
  • Multiprotocole, dont XMPP/Google Talk.
  • Deux modules permettant de chiffrer les messages de bout en bout : Pidgin-OTR et Pidgin-Encrypt.
  • Chiffrement des messages de bout en bout à l'aide d'un plug-in.

Fonctions du module OTR (Off The Record Messenging) :

  • Chiffrement des échanges.
  • Authentification des interlocuteurs pendant la conversation.
  • Contestabilité (deniability) : les messages ne sont pas signés numériquement, on peut donc nier après-coup les avoir écrits.
  • Inviolabilité des messages anciens (perfect forward secrecy) : même si la clé privée est divulguée, les messages anciens restent confidentiels.

Des modules OTR existent pour des clients sur diverses plates-formes (Windows, Linux et MacOS).

Documentation :

Installation de Pidgin avec module OTR pour se connecter à Google Talk

Ces notes sont peu détaillées, pour en savoir plus, consultez le guide cité ci-dessus. Versions installée : Pidgin 2.6.4 et Pidgin-OTR 3.2.0-1 sur Windows.

1. Installez Pidgin, puis le plug-in Pidgin-OTR.

2. Dans Pidging, créez un compte :

Onglet Essentiel :

  • Protocole : XMPP
  • Utilisateur : première partie de l'adresse électronique Gmail
  • Domaine : gmail.com
  • Ressource : "bureau", "domicile", ce que vous voulez
  • Mot de passe : celui de Gmail

Onglet Avancé :

  • Cocher Nécessite SSL/TLS.
  • Ne pas cocher Autoriser l'authentification en clair pour les flux cryptés.
  • Port de connexion : 5222.
  • Serveur de connexion : talk.google.com

Après diverses lectures, je comprends que :

  • Google Mail est accessible en TLS sur le port 5222 ( et sur 80, apparemment) : la connexion commence en clair, puis le client demande le chiffrement selon le protocole STARTTLS.
  • Les connexions chiffrées par SSL implicite (c'est-à-dire connexion chiffrée dès le départ, sur un port spécialisé) ont lieu sur les ports 5223 et 443. Pour utiliser ce mode, il faut cocher la case Forcer l'ancien SSL.
  • Enfin, si un proxy HTTP/HTTPS est la seule solution pour accéder à Internet, vous pouvez essayer d'utiliser une passerelle HTTP-BIND (protocole BOSH) en indiquant une adresse dans le champ URL BOSH. Encore faut-il disposer d'une passerelle de ce type ; les passerelles publiques ne semblent pas courantes. On peut toujours installer une passerelle privée (voir Punjab par exemple).

3) Configurez le plug-in : Outils > Plug-ins > Messagerie confidentielle "Off the record".

  • Mes clés privées : produire une clé.
  • Paramètres d'OTR par défaut : cocher les trois cases, Permettre messagerie privée, Commencer messagerie privée automatiquement et Exiger messagerie privée (seules les connexions chiffrées seront acceptées.)

4) Ajouter un contact dans la liste des contacts et essayer de le joindre. Lors de la première connexion chiffrée, les clés sont échangées. Elles doivent être vérifiées pour que les interlocuteurs soient identifiés avec certitude. Trois méthodes sont proposées : saisir un "secret" (un mot de passe convenu au préalable), jouer au jeu des questions/réponses (informations en commun entre les deux interlocuteurs) ou vérifier visuellement l'empreinte de la clé.

Limites et autres pistes à explorer

Limites :

  • Solution de chiffrement moins connue qu'OpenPGP/gpg.
  • A priori, pas de chiffrement des fichiers échangés.

Autres pistes :

  • Pidgin avec plug-in Pidgin-Encrypt - Inconvénient : les échanges sont apparemment limités aux interlocuteurs ayant le même logiciel et le même plug-in.
  • PSI avec OpenPGP - Intérêt : solution de chiffrement standard et éprouvée. Connexion SSL/TLS entre le client et le serveur. Messages chiffrés avec OpenPGP/gnupg (voir ce document). Limite : les fichiers sont échangés en clair (voir ce document).
  • Miranda avec OTR ou gnupg (voir cette page).
  • Le protocole SILC semble intéressant, mais il faut trouver un serveur SILC public (voir cette page par exemple) ou monter son serveur (voir Silc Server. Pidgin est client SILC. Echange de fichiers par SFTP.

Documentation générale