Greboca  

LinuxFr.org : les journaux  -  XMPP en 2021

 -  10 janvier - 

Sommaire

Salut nal,

Je profite de l’occasion de Whatsapp qui va bientôt tout partager à Facebook pour écrire ce petit journal sur XMPP, l’état des lieux, et ce qui est à venir pour 2021.

Tout d’abord je me présente, j’utilise XMPP depuis plus de 10 ans, je développe des trucs liés à XMPP depuis environ 10 ans (je suis notamment un des développeurs de Poezio et de Slixmpp), et je suis également un des administrateurs du serveur JabberFR.

Multimédia

Ça fait un bon paquet d’années qu’on peut partager des fichiers, quelques-unes de moins pour que ça marche à tous les coups (XEP-0363: Envoi de fichiers via HTTP). C’est maintenant pris en charge dans virtuellement tous les clients (non, Pidgin ne compte pas).

Un peu de la même façon, on peut théoriquement passer des appels audio/vidéo via XMPP depuis belle lurette, mais en pratique ça n’aboutissait pas trop, la faute à beaucoup de facteurs différents. Et puis depuis le milieu de l’année dernière environ, on peut passer des appels audio et vidéo depuis l’application Conversations, ainsi que Movim ou Siskin.

Les discussions en audio/vidéo font d’ailleurs partie des Compliance Suites 2021 (XEP-0443) qui servent de feuille de route aux développeurs pour savoir quoi implémenter.

À noter que la solution libre de visioconférence Jitsi Meet se base aussi sur XMPP, mais n’est pour l’instant pas compatible avec d’autres clients (une conversation multimédia à plus de 2 personnes est toujours complexe à mettre en place).

Le multi-plateformes

Des clients prenant en charge toutes les fonctionnalités majeures sont disponibles sur chaque plate-forme. L’exception notable est iOS, qui empêche toute utilisation en arrière-plan de TCP, ce qui n’incite pas tellement les développeurs à viser cette plate-forme pour un client XMPP. Mais les choses bougent, notamment avec les clients Monal ou Siskin qui, s’ils n’ont pas atteint la maturité de Conversations, reçoivent un développement actif.

Si je devais recommander des clients par plate-forme majeure :

  • Linux : Dino, ou Gajim
  • Windows : Gajim
  • Android : Conversations
  • iOS : Siskin, Snikket iOS (voir plus bas) recherche par ailleurs des beta-testeurs capables de fournir des rapports de bug en anglais
  • Mac OS : Beagle IM
  • Web (mais aussi n’importe quelle plateforme) : Movim
  • Interface terminal : Poezio (un certain conflit d’intérêts sur cette dernière entrée)

À titre personnel, j’utilise quasi exclusivement Poezio et Conversations, et de temps en temps Dino.

Chiffrement

Depuis 2014, année où la communauté a décidé de se débarasser de GMail qui empêchait de forcer l’utilisation de TLS en toutes circonstances, toutes les interactions XMPP sont chiffrées point-à-point (c’est-à-dire que la communication est chiffrée via TLS entre tous les acteurs du réseau).

Très tôt, XMPP a mis en place une forme de chiffrement bout-en-bout (communément appelé E2EE), par exemple avec la XEP-0027 qui utilise OpenPGP (attention, cette extension est actuellement obsolète, c’était juste un exemple). OTR, étant indépendant de la couche de transport, a toujours pu fonctionner également.

Mais depuis une petite quinzaine d’années, les choses évoluent (par exemple avec l’existence de smartphones), et dans ce contexte OTR dans sa version 3 n’était plus suffisant, tout comme l’extension définissant l’utilisation de GPG. Sont donc arrivées les extensions XEP-0384: OMEMO, et XEP-0374: OpenPGP pour la messagerie XMPP (OX).

La grande majorité des clients activement développés implémentent désormais OMEMO, et certains implémentent également OX (comme Gajim). Ces deux modes de chiffrement n’ont pas du tout les mêmes propriétés cryptographiques, et sont donc destinées à des publics différents.

Marketing

XMPP (pour eXtensible Messaging and Presence Protocol) n’est pas tout à fait agréable à entendre pour les non-habitués, c’est pourquoi il existe une initiative menée par plusieurs personnes de la communauté, appelée Snikket. Le but de Snikket est de mettre « sous le tapis » toute mention à XMPP et de mettre en avant la fédération, en incitant à monter des serveurs nécessitant des invitations, mais fédérés, pour une famille ou une communauté. Ils proposent également un service d’hébergement (payant) de serveurs Snikket, actuellement en beta limitée.

Le but final (l’initiative est jeune) étant de fournir à la fois un package clef en main aux administrateurs pour pouvoir installer et gérer leur serveur XMPP (basé sur Prosody) et les services qui en dépendant, mais également des applications unifiées pour toutes les plate-formes, ce qui manque cruellement aujourd’hui. L’application Android est déjà disponible et se base logiquement sur Conversations, l’application iOS est prévue pour cette année et se basera sur Siskin.

Le projet Snikket a notamment réussi à obtenir une donation pour financer le développement du chiffrement de groupes de discussions dans Siskin.

P. S. : Si vous avez un domaine et que vous voulez un service XMPP dessus sans pour autant le faire tourner vous-mêmes, à JabberFR on propose également ce genre de services, il nous suffit d’une demande et d’un CNAME qui pointe vers nous (mais merci de nous prévenir si vous décidez de le retirer, parce que ça fait foirer nos renouvellements letsencrypt après).

Attractivité

À cause de l’effet de réseau, il est toujours difficile de faire venir de nouveaux utilisateurs sur des réseaux alternatifs aux monopoles des GAFAM. Une des façons de simplifier la transition pour les utilisateurs qui n’ont pas un bagage technique suffisant pour pouvoir choisir un nom d’utilisateur, un mot de passe, ou un serveur (pour un réseau fédéré), est de leur proposer une première expérience qui ressemble à ce qu’ils connaissent en termes d’inscription.

Daniel Gultsch, l’auteur de Conversations, a donc développé Quicksy, un fork de Conversations qui ne propose plus le traditionnel choix "nom d’utilisateur/serveur/mot de passe". À la place il crée un compte sur quicksy.im en utilisant le numéro de téléphone et une validation SMS.

Contrairement à Conversations, Quicksy est gratuit sur le Play Store, et le modèle de rémunération se base sur l’annuaire interne de quicksy.im. En effet, une des idées de Quicksy est d’utiliser la liste de contacts pour découvrir d’autres utilisateurs de Quicksy (ou XMPP) et de les ajouter à la liste de contacts XMPP. Si on a un compte XMPP pré-existant et qu’on veut faire passer ses proches à Quicksy, il faut donc soit payer pour lier son numéro de téléphone à son adresse dans l’annuaire, soit faire soi-même les demandes d’ajout de contact. Bien entendu, les utilisateurs de Quicksy eux-mêmes n’ont pas besoin de payer pour être ajoutés à l’annuaire.

Quicksy étant un fork de Conversations maintenu par le même auteur, il a exactement les mêmes fonctionnalités, comme les appels audio/vidéo, le chiffrement OMEMO ou le partage de fichiers.

Côté administration

Historiquement, j’ai utilisé ejabberd quelques années avant de passer à Prosody pour des raisons de mémoire vive limitée, et depuis ça tourne. Rien à dire, l’entretien est vraiment minime, mais il faut penser à se tenir informé des nouveautés, par exemple la visio requiert en général un serveur STUN/TURN, certaines extensions modernes ont besoin de nouveaux plugins, etc…

À noter les modules "mod_measure_" pour Prosody qui ne sont pas si vieux qui permettent de facilement remonter des informations à Prometheus, comme on le fait sur JabberFR.

Passerelles

J’utilise une seule passerelle, Biboumi, afin de me connecter à IRC de façon entièrement transparente, avec un bouncer et un historique intégré à mon client XMPP (avec la XEP-0313: Gestion de l’archivage des messages). La dernière version a rajouté la prise en charge de SASL, qui était la seule chose qui me pénalisait un peu.

Je n’en utilise pas d’autres, mais je sais que beaucoup fonctionnent via Spectrum, et j’ai connaissance de celle-ci pour Whatsapp.

À venir

  • Gajim vient de sortir une version 1.3 beta avec un nombre significatif d’amélioration pour l’expérience utilisateur et la stabilité
  • Beaucoup d’extensions intéressantes ont été publiées l’an dernier et sont en cours d’implémentation ou déjà implémentées dans des clients (lire à ce sujet les excellentes dépêches de la Lettre d’informations XMPP mensuelle) :
    • Les stickers
    • Les réactions (emojis) à des messages
    • L’effacement de messages qu’on envoie
    • La modération avec suppression de messages (sur des groupes de discussion)
    • Une interface simplifiée pour les interactions avec les bots

Et bien d’autres choses encore, certaines un peu trop techniques qui rendraient ce journal encore plus long, d’autres plus mineures, mais on peut en discuter dans les commentaires bien sûr !

Commentaires : voir le flux Atom ouvrir dans le navigateur

par mathieui

LinuxFr.org : les journaux

LinuxFr.org : Journaux

Pourquoi et comment utiliser plusieurs profils d’utilisateurs dans LibreOffice Writer

 -  3 mai - 

Sommaire Le profil d'utilisateur de LibreOffice, kézako ? Où se cache ce profil et comment en créer de nouveaux ? Démarrer Writer avec un profil (...)


Unvanquished : Changements de gameplay à venir

 -  2 mai - 

Sommaire Évolution plus facile Désévolution Jet collant du granger Zone d’effet du tube d’acide Bots plus intelligents Retours Candidats à la (...)


nouvelle interface pour Firefox 89

 -  23 avril - 

Pour mon tout premier journal j'ai décidé de dénoncer grave. En me baladant sur plusieurs sites je tombe sur l'information que Firefox va activer (...)


Constexpr versus template

 -  23 avril - 

Bonjour 'nal, J'étais tranquille, en train de m'occuper de mes propres affaires, quand soudain je me suis demandé si l'utilisation de constexpr (...)


Une brève introduction à l'utilisation des données OpenStreetMap

 -  21 avril - 

Sommaire Introduction Vue d'ensemble de l'écosystème OpenStreetMapComment télécharger les données OSM Structure des données OSM brutes Un exemple: (...)