12 février 2024 - Le collectif IndieHosters
Voici un petit article dans lequel nous parlons de messageries instantanées et évidemment de logiciel libre. Nous avions déjà écrit un article en juin 2022 ou nous comparions différents services chat (Matrix, Rocket.Chat et Nextcloud Talk). Il est temps de mettre à jour nos observations et expérimentations sur ce type de service.
Au revoir Rocket.Chat
Cela fait maintenant presque 8 ans, que nous déployons et hébergeons le logiciel Rocket.Chat pour différentes organisations (10353 personnes au total sont passées par nos instances). Après ces années de bons et loyaux services nous ne proposons plus ce logiciel aujourd’hui dans notre service liiibre.
Pourquoi nous quittons Rocket.Chat ?
Tout a basculé un soir d’août, ou plutôt un matin de septembre en rentrant de vacances. Dans notre boite mails nous avons reçu les informations sur la dernière mise à jour de leur logiciel Rocket.Chat (version v6). Cette nouvelle version s’accompagne d’une modification radicale dans la disponibilité des fonctionnalités. Concrètement il n’est plus possible par exemple de faire du multi-instances et donc de mettre en place un chat haute disponibilité avec plus de 100-200 utilisateurs en simultanés. D’autres fonctionnalités à la marge ne sont aussi plus disponibles dans la version communautaire (non propriétaire) comme des fonctionnalités pour le live chat, l’application mobile…
Avec ces derniers développements de Rocket.Chat et le modèle économique qui a été choisi par l’entreprise, la dépréciation des fonctionnalités disponibles, et leur mise sous modèle open-core (c’est-à-dire propriétaire), les valeurs soutenus par Rocket.Chat ne sont plus en accord avec les nôtres. Nous ne pouvons donc plus maintenir l’usage de ce logiciel.
Une migration des outils de chat est donc inévitable. Cette migration était envisagée depuis plusieurs mois, mais nous ne savions pas que RocketChat allait changer si brusquement son calendrier. Ce qui a bouleversé le nôtre (et celui de nos organisations contributrices) par la même occasion. Mais vers où aller ?
Bref aparté sur Mattermost
Mattermost est en effet un service de messagerie instantanée et donc une alternative à Rocket.Chat, avec globalement le même type d’usage. Cependant, Mattermost se rapproche aussi de Rocket.Chat sur un autre point moins souhaitable, il s’agit du même modèle économique open-core. C’est-à-dire que certaines fonctionnalités sont libres dans la version communautaire, mais d’autres restent propriétaires. Par exemple, il n’y a pas de SSO (service d’authentification de session et d’utilisateur) dans la version communautaire de Mattermost ce qui est malheureusement essentiel pour nous afin d’optimiser le déploiement et faciliter les connexions. Pour nous, l’alternative Mattermost présente donc le même risque de perte de disponibilité que Rocket.Chat. Nous ne voyons actuellement pas les garanties qui (r)assurent que les fonctionnalités restent ouvertes. Mais pas de panique, d’autres alternatives existent !
Pourquoi aller sur [Matrix] Element
Depuis quelque temps déjà, nous essayons en interne un autre logiciel de chat baptisé Element. Nous avons opté pour cette solution puisque c’est une solution open source et même libre (une évidence pour nous) et surtout car le logiciel est basé sur Matrix.
Mais qu’est-ce que Matrix ?
Matrix c’est un projet qui vise à créer un protocole standardisé pour l’envoi de messages instantanés. Son objectif principal est l’interopérabilité.
Un exemple d’interopérabilité bien connu aujourd’hui est l’envoi de mails. Il n’est pas nécessaire de savoir si l’envoi de mail passe par Google Gmail, Protonmail, Gandi ou Privianet (notre super prestataire mail :) ), pour recevoir un mail. Matrix vise à créer la même chose pour les messages instantanés ; un réseau standardisé pour communiquer avec les différents services de messagerie instantanée.
Le super pouvoir de la fédération
Un autre avantage que permet le protocole Matrix, c’est la fédération. Étant un protocole, Matrix permet de construire un réseau de communication décentralisé et utilisé par plusieurs logiciels et organisations. Dans la grande majorité des services de chat, comme Rocket.Chat, Discord, Mattermost…, les messages sont centralisés sur un serveur unique, propriétaire de l’entreprise qui déploie et maintient le logiciel. A l’inverse Matrix, permet justement de communiquer entre plusieurs serveurs fédérés. Ainsi chaque communauté peut choisir la configuration de sa propre instance (chiffrement des messages, modération, sauvegardes des messages…) et continuer de communiquer avec d’autres communautés. Cette fonctionnalité nous semble importante dans nos écosystèmes où la collaboration entre collectifs est importante. La fédération permet de maintenir son indépendance (propriétaire de son serveur) tout en étant interdépendant avec son écosystème (plusieurs serveurs fédérés).
Sortir d’une vision centrée logiciel
Ces deux fonctionnalités, l’interopérabilité et la fédération, permettent aussi de repenser un peu l’usage de nos outils, ici la messagerie instantanée. De la même manière qu’aujourd’hui nous voyons les emails comme un usage d’envoi de lettres électroniques, Matrix vise à faciliter de manière plus général l’usage qu’est l’envoi de messages instantanés. Le logiciel d’envoi n’est alors qu’un outil ou une option à choisir en fonction de ses préférences ; une interface pour faciliter un usage et non un logiciel à apprendre, imposé par son organisation. De la même manière, pas besoin de séparer ses comptes en fonction de la communauté à laquelle on adresse le message, un seul compte permet de dialoguer sur les différents chats.
Et Element dans tout ça
Vous l’aurez compris, Element utilise le protocole Matrix et, par extension, permet les différentes fonctionnalités expliquées plus haut. Element est en fait le principal logiciel qui utilise Matrix. C’est-à-dire le plus stable, mature et utilisé. Récemment une version Element X est sortie permettant entre autres d’optimiser et d’accélérer le chargement et l’envoi de message.
Un autre avantage que nous voyons dans Element, c’est le chiffrement. Contrairement à Rocket.Chat, Element permet la sécurisation des messages par le chiffrement de bout en bout. Element offre en effet la possibilité de sécuriser ses messages avec une authentification par double clés (publiques et privées). Sans entrer dans les détails techniques (qui donneront peut-être lieu à un deuxième article), cela signifie que les messages échangés sur Element sont (très) difficilement accessibles à une tierse personne non désirée. De plus, même en cas d’un piratage ou d’une corruption qui permettrait d’accéder à un message, cela ne serait valable que pour ce message déchiffré. Même si le chiffrement peut sembler complexe à première vue et qu’il peut être désactivé, il nous semble important, dans nos contextes actuels de se sensibiliser collectivement le plus tôt possible à ces enjeux de sécurisation de nos moyens de communication.
LA solution parfaite n’existe pas (encore ?)
Pour être tout à fait honnêtes et transparent.e.s, il nous semble important de signaler que Matrix comme Element ne sont pas des solutions parfaites.
D’abord, concernant la sécurité, même si Element permet le chiffrement, cela n’est pas forcément une garantie permanente. En effet, puisqu’Element permet aussi la fédération avec d’autres instances, les configurations de sécurité peuvent changer. De manière générale, la fédération avec d’autres serveurs inconnus amoindrit forcément la sécurité des communications. Il est donc nécessaire de connaître les règles et configurations avant de se fédérer à un serveur, encore plus lorsqu’il est accessible publiquement.
Concernant l’entreprise Element (anciennement New Vector), il serait faux de dire qu’Element est à l’abri de toute dynamique propriétaire ou open core qui nous pousse à ne pas choisir Mattermost et à quitter Rocket.Chat.
L’organisation Element a d’ailleurs récupéré les dépôts de code de leurs implémentations et a aussi ajouté l’obligation de signer un contrat d’engagement pour les contributions à leur code libre (CLA). De plus, actuellement, Element est le principal financeur de Matrix ce qui peut entraîner une position de monopole ou de pouvoir sur ce protocole de réseau décentralisé.
Néanmoins, le protocole Matrix sur lequel se base Element a vocation à être standardisé par IETF (organisation oeuvrant pour la standardisation des proces sur Internet) ce qui implique donc d’être utilisé, documenté et accessible très largement. Ainsi, même dans l’hypothèse de privatisation d’Element, il nous semble plus facile de repartir du protocole Matrix que de repartir de zéro. Il y a par ailleurs déjà aujourd’hui d’autres logiciels qui utilisent le protocole Matrix comme FluffyChat par exemple (voir la liste complète). De la même façon, côté serveur plusieurs options sont possibles (Synapse pour le plus connu, mais il existe aussi Conduit, Dendrite…)
Et enfin, de grandes institutions et acteur.ice.s privés et publics se mettent à utiliser Matrix. C’est notamment le cas de l’administration publique qui a sorti Tchap son service de messagerie instantanée pour les plus de 400 000 agents public, qui utilise… Matrix.
Gouvernance & Matrix
Pour clôturer cet article, il nous semble important de parler brièvement de la gouvernance de Matrix. Le projet Matrix est maintenu par la fondation Matrix.org. Cette fondation anglaise a été lancée en 2018 et est garante de la gouvernance ouverte du projet Matrix. Cette dernière est financée par les contributeur.rice.s et donateur.rice.s, comme Element notamment. A IndieHosters, nous avons aussi fait le choix de soutenir et de rejoindre la fondation Matrix en tant que silver member. (nous attendons leur réponse). Dans tous les cas, nous rejoignons le projet Matrix, en privilégiant une messagerie basée sur Element à présent dans notre offre Liiibre.