SwordArMor

XMPP et OTR avec irssi

Introduction à XMPP

Je vais reprendre la présentation que j’ai faite pour gozmail.net.
XMPP (ou Jabber) est un protocole de discussion instantanée, un peu comme IRC ou MSN à son époque. Par rapport à MSN, il a le gros avantage d’être libre et par rapport à IRC, il offre la possibilité de faire des appels audio et vidéo ainsi que les messages hors-ligne. Comme tout protocole, il nécessite un client. Jusqu’à présent j’utilisais pidgin en graphique mais il me fallait quelque chose que je puisse mettre à côté de mon client IRC dans mon tmux. Si vous voulez de plus amples informations sur le protocole, vous pouvez consulter le wiki de jabberfr.

Maintenant, la partie pratique

Pour utiliser irssi, il vous faut bien sûr l’installer : apt-get install irssi irssi-plugin-otr irssi-plugin-xmpp.
Ensuite, il faut que irssi charge les modules pour OTR et XMPP au démarrage : echo "load xmpp" >> ~/.irssi/startup && echo "load otr" >> ~/.irssi/startup. Si vous ne voulez pas redémarrer irssi, faites en plus /LOAD xmpp et /LOAD otr.
irssi doit savoir à quel serveur il doit se connecter. Il nous faut donc éditer ~/.irssi/config :

  • Dans la section servers, ajoutez
      {
        address = "gozmail.net";
        chatnet = "gozmail.net";
        port = "5222";
        password = "$votremotdepasse";
        use_ssl = "no";
        ssl_verify = "yes";	// mettre à no si irssi sort des erreur de vérification
    			// du certificat SSL (et que vous êtes sûr que ce n’est
    			// pas une attaque MITM)
        autoconnect = "yes";
      }
  • et dans la section chatnets, ajoutez
      "gozmail.net" = { type = "XMPP"; nick = "alarig@gozmail.net/irssi"; };

J’ai ici pris l’exemple du serveur gozmail.net, c’est bien évidement à ajuster chez vous. Pour connaître le serveur à mettre dans address, faites dig +short _xmpp-client._tcp.$votredomaine. Le troisième chiffre est le port à utiliser et ensuite vient le FQDN du serveur jabber. Si cela ne donne rien, mettez simplement votre domaine et le port 5222.
L’option chatnet de la section servers doit être en accord avec ce que vous mettez entre guillemets dans la section chatnets.

Lorsque vous démarrez irssi, vous devriez voir un truc du genre :

23:10 -!- Irssi: Loaded module xmpp/core
23:10 -!- Irssi: Loaded module xmpp/text
23:10 -!- Irssi: Loaded module xmpp/fe
23:10 -!- Irssi: Loaded module otr/core
23:10 [gozmail.net] -!- Irssi: Looking up gozmail.net
23:10 [gozmail.net] -!- Irssi: Connecting to gozmail.net [192.168.0.5] port 5222
23:10 [gozmail.net] -!- Irssi: Using STARTTLS encryption. 
23:10 [gozmail.net] -!- Irssi: Authenticated successfully. 
23:10 [gozmail.net] -!- Irssi: Requesting the roster. 
23:10 [gozmail.net] -!- Irssi: Connection to gozmail.net established

Les commandes de base

  • Se connecter à un serveur XMPP « en live » : /xmppconnect
  • Voir les contacts : /roster
  • Gérer les contacts : /presence
  • Parler à quelqu’un : /msg $debutdesonnom<tab> (de l’autocompletion en somme)

Je vous invite à lire une une doc plus complète.

Et la cerise sur le gâteau, OTR

OTR, pour Off-the-Record, permet de faire du chiffrement asymétrique pour de la messagerie instantanée. Au tout début, je vous ai fait installer irssi-plugin-otr et fait charger le plugin au démarrage d’irssi, il est donc d’ores et déjà utilisable. Si vous n’avez pas de clé OTR, générant vous une avec /otr genkey ${jig}@serveur. C’est un peu compliqué parce que le plugin croit que nous faisons de l’IRC, donc notre JID est pour lui notre nick et le paramètre address que nous avons spécifié au début, notre serveur. Pour moi ça donne donc /otr genkey alarig@gozmail.net@gozmail.net. Si vous avez déjà une clé, vous pouvez la mettre dans ~/.irssi/otr/otr.key en prenant garde de mettre le même format que pour la génération dans name et IRC pour le protocole. Ensuite pour l’échange de clé vous pouvez les faire avec /otr auth $secret ou alors avec /otr trust dans la fenêtre de discussion si vous voulez vérifier le fingerprint à la main. Je vous recommande également d’ajouter l’item otr à votre barre irssi : /statusbar window add otr, ça vous permettra de savoir si votre conversation est chiffrée ou pas.

Si vous avez des soucis, n’hésitez à passer me poser des questions sur IRC (vu que XMPP n’est pas encore sensé fonctionner), je suis alarig sur le chan #SwordArMor, serveur irc.swordarmor.fr