Je profite de ces temps de merdification de reddit pour essayer de faire connaître quelque chose qui me tient à cœur : XMPP (ou Jabber, pour son nom un peu plus sexy). Pour faire simple, c’est à Whatsapp (et Discord, etc.), ce que lemmy est à Reddit (ou ce que Mastodon est à Twitter, ou ce qu’internet est au minitel), bref, si vous êtes ici, vous devriez être sensibles à l’intérêt de ce truc.
Concrètement, c’est un protocole de communication. Il faut choisir (ou créer) une instance, s’y faire un compte (ou pas, les accès anonymes aux salons publics sont également possibles), et voilà, on peut tchatcher avec d’autres blaireaux personnes du monde entier !
Il existe également des passerelles vers les silos propriétaires, dont certaines que je développe. C’est comme ça que j’ai initialement découvert XMPP, j’aime l’idée d’avoir tous mes chats dans une seule appli, aussi bien sur mon ordiphone que sur mes ordipasphones.
Les points forts de XMPP selon moi :
- léger (donc écolo) : un serveur peut tourner sur un petit raspberry pi avec un bon paquet d’utilisateurs, ce n’est pas du tout un souci ;
- chiffrements de bout-en-bout : à la signal/whatsapp, facile à utiliser pour tout le monde, opengpg possible pour les plus nerds d’entre vous
- tout le monde participe à l’évolution du protocole, les entreprises n’ont pas plus de voix au chapitre que les petits devs ;
- amical avec la vie privée (huhuhu) : je n’ai pas les services google sur mon téléphone, et pourtant j’ai des notifications pushs, et ça bouffe pas particulièrement ma batterie.
Le moins bien :
- Les clients traînent un peu à implémenter les fonctionnalités « modernes » (réactions, réponses, fils…) de messagerie instantanée… mais ça vient !
- Les clients iphone un peu en dessous des autres, à cause de l’hostilité d’apple au devs. Là aussi ça s’améliore petit à petit.
Mon utilisation :
- Un serveur prosody hébergé sur le VPS le moins cher d’OVH.
- Les passerelles que je développe (https://sr.ht/~nicoco/slidge/) pour accéder à Whatsapp, Discord, Telegram, Signal, Messenger, Steam chat, Skype et Mattermost installées au même endroit. (EDIT: j’ai également biboumi comme passerelle IRC).
- Conversations sur mon android dégooglé : ce client est parfaitement adapté aux noobs, grâce à lui ma famille (et quelques copains proches) utilisent mon instance sans trop se poser de questions.
- Gajim ou Dino selon l’humeur sur mes ordis de bureau et Beagle sur le macbook (😭️) du boulot; ma femme non geek aime bien gajim sous windows aussi.
- Mes copains avec iphone utilisent siskin.
Je vais finir par quelques liens utiles si vous voulez creuser un peu plus:
- de la doc destiné aux novices : https://joinjabber.org/fr/
- autohébergement facile : https://snikket.org/
- un client web avec des fonctionnalités « réseau social » : https://movim.eu/
- un autre : https://libervia.org/
- une longue liste de logiciels XMPP : https://xmpp.org/software/
- un service commercial pour avoir un numéro de téléphone pour appels voix et SMS sur XMPP : https://jmp.chat/
- une appli (liée à une instance) où l’inscription se fait avec numéro de tel/OTP par SMS (comme sur whatsapp/signal/telegram/etc.): https://quicksy.im/
Viendez, on est bien.
EDIT: j’oubliais un autre point fort de XMPP, assez important. C’est un protocole qui existe depuis un bail (fin des années 90) et qui a fait ses preuves. Whatsapp par exemple, utilise le protocole XMPP légèrement modifié (et surtout non fédéré avec les autres) et gère… beaucoup, beaucoup, d’utilisateurs. Ça passe à l’échelle sans souci.
Merci pour cette description. J’aimerais demander, comment cela se compare à Matrix (si tu connait cette dite différence).
D’à cette description, les deux sont plutot proche. Deux différences que je remarque: Les performances. Matrix est plutot consomatteur avec tout ses truc cryptographique bien sympa. J’ai eux du mal avec FOSDEM sur ma raspi 3 avec une microSD pas très performante (mais pas de probleme sur mon VPS à OVH avec 1 processeur plutot rapide et un stockage rapide).
Cependant, il a également ce dit système de synchronisation impressionant garantissant un remplissage arrière total et permanent (avec potentiellement une latence potentielle, bien que je ne sais pas comment XMPP marche sur ce point)
Et Element est vraiment un client lourd et pas très réactif.
Matrix implémente plus un système de base de données fédérée qu’un protocole de communication temps réel. Avoir l’ensemble de l’historique des conversations disponibles sur tout périphérique, y compris les nouveaux, est au cœur du fonctionnement du truc. Ça explique en partie pourquoi c’est beaucoup plus gourmand en ressource, notamment côté serveur. Pour ma part, je ne trouve pas que ça soit une fonctionnalité cruciale. La messagerie instantanée n’est pas le système le plus adapté pour ça à mon avis : les wikis et forum sont bien supérieurs, notamment en terme de « recherchabilité » et organisation de la base de connaissances. Mais tout le monde n’est pas de mon avis, sinon discord ne serait pas aussi populaire. :-) Cependant, c’est également possible avec XMPP, rien n’empêche un administrateur de configurer son serveur avec archives qui ne sont jamais purgées. J’ai pas particulièrement envie de faire ça, et sur mon serveur, j’ai une semaine d’archivage et je trouve ça bien suffisant. De toutes façons les clients ont généralement aussi une copie locale de l’historique. D’autres administrateurs choisissent des durées plus longues. En pratique, récupérer l’historique est beaucoup plus rapide que sur Matrix, dû à la simplicité/légèreté du protocole.
Une autre différence, c’est que le protocole de chiffrement bout en bout actuellement le plus utilisé sur XMPP a fait le choix philosophique de la confidentialité persistante, ce qui explique pourquoi, si les messages sont chiffrés de bout en bout, et que tu connectes un nouveau client à ton compte, il ne peut pas déchiffrer les messages passés : ton (tes) correspondant(s) doivent « faire confiance à ce nouveau périphérique » et commencer à chiffrer les messages pour celui-ci. Je ne suis pas du tout expert en chiffrement, mais je sais que certains bossent sur simplifier ce processus, avec la spec Automatic Trust Management. Précisons quand même ici que l’on parle du chiffrement de bout en bout (e2ee), ie, ce qui empêche les administrateurs des serveurs de lire les messages qui passent. Même lorsqu’un message n’est pas chiffré e2ee, il ne transite pas pour autant en clair sur le réseau, les communications entre serveurs et clients sont chiffrées par TLS dans tous les cas.
Enfin, pour moi, l’atout principal de XMPP, c’est que ce n’est pas une boite dans laquelle des investisseurs ont injecté du capital risque qui donne la direction du projet, mais bien la communauté, ce qui protège contre sa merdification future. Pour matrix, elle a déjà commencé, puisque le fait de filer des sous (et donc d’être une grosse entité commerciale…) permet d’avoir plus de poids lors des votes sur les specs:
Je suis content de répondre à d’autres questions si tu en as.
Merci pour la réponse détaillée
Merci de cette comparaison. Pour information, le chiffrement de Matrix correspond fortement avec ce que tu décrit: Il y a bien du chiffrement de bout en bout, avec chaque appareil une clé unique, mais il y a système (je sais pas comment ça marche) qui permet a un appareil avec une clé d’en attester une autre aprés vérification manuelle par l’utilisateur.
J’utilise pas mal Matrix à travers Element, et je trouve que c’est quand plus proche d’un WhatsApp/Signal que XMPP, notamment justement pour la gestion de la crypto sur du multi-terminal (pour moi, c’est une fonctionnalité importante et ça m’a l’air galère à gérer avec XMPP mais je me goure peut-être).
Mais je suis d’accord qu’Element est un peu lourd et qu’on manque de clients sympas et complets alternatifs!
En pratique, la plupart des utilisateurs non tech veulent juste un client sur leur téléphone et Quicksy est ce qui offre l’expérience la plus proche de signal/whatsapp/telegram dans le monde XMPP.
Avoir plusieurs clients n’est pas plus galère que sur matrix dans mon expérience (où la « vérification des autres appareils » n’a jamais fonctionné pour moi — YMMV). Quand tu connectes un nouveau client, ton contact sur Quicksy voit une modal « confiance automatique dans les nouvelles clefs de sécurité » (ou qqch du genre) mais ça me semble raisonnable. De toute façon, le e2ee sans vérification manuelle des empreintes via un autre canal, c’est plutôt une illusion de confidentialité forte qu’autre chose àmha.
Après, utiliser matrix c’est déjà environ 9000 fois mieux que les jardins emmurés de meta, on est bien d’accord. J’ai une passerelle matrix que j’essaye de terminer quand j’aurais le temps (pour l’instant elle est non fonctionnelle).