Matrix 2.0 est disponible. Le protocole permettrait de crer des applications de communication ouvertes, dcentralises et scurises. Cette nouvelle version s’articule autour de 4 principes : Connexion instantane, lancement instantan et synchronisation instantane (Simplified Sliding Sync), Authentification de nouvelle gnration (OIDC natif), VoIP/vido multipartite chiffre native de Matrix (MatrixRTC), et chiffrement invisible. Matthew Hodgson, co-fondateur de Matrix, affirme que « les applications construites sur Matrix 2.0 peuvent srieusement surpasser les alternatives courantes. »
Matrix fonctionnerait un peu comme le courrier lectronique, mais de manire instantane et scurise : il faut ouvrir un compte auprs d’un fournisseur, mais quel que soit le fournisseur, il est possible de parler des personnes utilisant d’autres fournisseurs. De la mme manire qu’Outlook ou Thunderbird avec le mme compte de messagerie, il est possible d’utiliser diffrentes applications Matrix pour le mme compte Matrix.
Depuis sa cration, l’objectif de Matrix a t de fournir un protocole permettant de crer des applications de communication ouvertes, dcentralises et scurises, plus performantes que les solutions centralises classiques. Mais son parcours a t sem d’embches : son quipe a essay de faire fonctionner Matrix en 2014, puis la version bta de Matrix 1.0 est sortie en 2019. Maintenant, ses dveloppeurs veulent rendre Matrix rapide, utilisable et prt pour le grand public avec Matrix 2.0.
Afin d’assurer la transition vers le grand public, Matrix 2.0 a t construit sur 4 principes :
- Connexion instantane, lancement instantan et synchronisation instantane (Simplified Sliding Sync).
- Auth de nouvelle gnration (OIDC natif)
- VoIP/vido multipartite chiffre native de Matrix (MatrixRTC)
- Chiffrement invisible.
Avec ce lancement de la version 2.0, Matrix peut dsormais tre utilis pour crer des applications qui surpasseraient les alternatives courantes. Fait intressant, Matrix 2.0 arrive dans un contexte o la dcentralisation commence s’acclrer. Par exemple, Bluesky a montr qu’il tait possible de crer des applications sociales dcentralises suffisamment conviviales pour que les prsidents les recommandent ; Elon Musk continue de dtruire Twitter et de montrer l’importance de la dcentralisation tout le monde, et mme Meta s’essaie aux mdias sociaux dcentraliss et la communication dcentralise.
Voici l’tat actuel de cette version :
1. Simplified Sliding Sync
Simplified Sliding Sync ou synchronisation coulissante simplifie est la version finale de Sliding Sync – l’API qui permet la connexion, le lancement et la synchronisation instantans dans Matrix 2.0. Pourtant l’API a connu de nombreuses itrations, mais cette version finale simplifie l’API Sliding Sync originale en supprimant entirement le concept d’ordre de la liste des salles dtermin par le serveur, et en laissant le client trier la liste des salles selon ses besoins (tout en laissant le client paginer dans la liste des salles de manire incrmentielle, pour assurer une ractivit instantane, quelle que soit la taille de votre liste de salles).
Le Simplified Sliding Sync est dsormais implmente nativement dans Synapse partir de la version 1.114, et il n’est donc plus ncessaire d’excuter un Sliding Sync Proxy pour utiliser l’API. En fait, le Sliding Sync Proxy est obsolte et l’ancien code Sliding Sync sera supprim de matrix-rust-sdk dans un futur proche. Malheureusement, c’est sans la bande passante pour maintenir la fois l’implmentation native Synapse et le proxy shim – et le proxy a invitablement souffert de nombreuses limitations (par exemple, avoir faire une synchronisation initiale v2 complte pour les nouvelles connexions, les ralentissant jusqu’ la performance v2 – ainsi que la duplication du stockage entre Synapse et le proxy).
En termes de performances, la synchro simplifie native dans Synapse est meilleur. Fini donc le temps d’attente o l’application se synchronise, mme en tant hors ligne depuis des semaines/mois ; fini le temps d’attente pour ouvrir une session.
2. Auth de nouvelle gnration
Auth de nouvelle gnration (Next Gen Auth) est la migration vers l’utilisation du standard industriel OpenID Connect comme API d’authentification dans Matrix 2.0, s’loignant de l’API d’authentification personnalise que Matrix a historiquement utilise. Beaucoup de gens pensaient tort qu’adopter OpenID Connect pour l’authentification signifiait des connexions sociales tierces ou l’authentification unique, mais ce n’est pas le cas pour Next Gen Auth.
Next Gen Auth remplace simplement les anciennes API d’authentification personnalises de Matrix par des quivalents dfinis par l’OpenID Foundation ; aprs tout, Matrix est un protocole de communication, pas un protocole d’authentification. Cela permet des API d’authentification beaucoup plus matures et scurises – et l’accs l’ensemble de l’cosystme du fournisseur d’identit OpenID, y compris la prise en charge de l’authentification deux facteurs et de l’authentification plusieurs facteurs, des jetons d’authentification matriels, des passkeys et des flux de connexion bass sur l’appareil (alias QR Login).
Les clients et les serveurs Matrix n’ont plus besoin d’implmenter l’ancienne surface d’API d’authentification Matrix, ce qui garantit que les utilisateurs ne transmettent le mot de passe de leur compte qu’ leur serveur d’authentification, plutt que d’avoir faire confiance leurs clients pour le grer en toute scurit, ce qui est beaucoup plus pratique pour les gestionnaires de mots de passe (qui n’ont qu’ se rappeler comment s’authentifier auprs du serveur d’authentification, plutt qu’auprs d’une myriade de clients diffrents). Il permet galement de partager l’authentification entre les applications, et offre le rafrachissement des access_tokens pour viter que les access_tokens de longue dure ne tranent dans le coin, et l’avenir, il supportera galement les scopes OIDC afin de limiter l’accs de certains clients au compte.
En bref, Next Gen Auth est une transformation, et l’implmentation initiale matrix-authentication-service (MAS) est prte tre dploye et utilise par les administrateurs, mais elle n’est pas encore disponible sur matrix.org. L’un des avantages immdiats les plus vidents de Next Gen Auth est probablement la possibilit d’effectuer une connexion complte , y compris la mise en place d’un chiffrement de bout en bout, simplement en scannant un code QR sur un client existant. En d’autres termes, vous n’avez pas besoin de spcifier un serveur, ni votre nom d’utilisateur, ni le mot de passe de votre compte, ni votre cl de rcupration – il vous suffit de scanner un code QR et c’est parti.
3. VoIP/vido native du groupe Matrix : MatrixRTC
MatrixRTC, c’est des confrences vocales et vido de groupe chiffres de bout en bout sur Matrix. Historiquement, la VoIP de groupe dans Matrix s’est appuye sur des systmes de confrence tiers – ne fournissant aucun support pour le chiffrement de bout en bout de Matrix, ni d’ailleurs pour les identits d’utilisateur, la dcentralisation ou le contrle d’accs dcentralis de Matrix.
MatrixRTC offre donc un moyen standard d’tablir des appels vido de groupe chiffrs de bout en bout grande chelle via Matrix, en tirant parti de tous les avantages de l’infrastructure de chiffrement de bout en bout de Matrix, de l’identit des utilisateurs, des autorisations d’accs aux salles, etc. Il prend galement en charge diffrentes piles mdia pour grer la confrence mdia – aujourd’hui, l’implmentation principale utilise LiveKit SFU, mais il existe galement une implmentation WebRTC exprimentale maillage complet.
Element Call a t le moteur de MatrixRTC et, avec la v2, il est activ dans les versions d’Element Web/Desktop et d’Element X pour fournir un appel MatrixRTC natif intgr dans les applications : si vous appuyez sur le bouton d’appel vido, vous aurez maintenant la possibilit de lancer un appel MatrixRTC via Element Call plutt que via Jitsi ou l’appel 1:1 hrit, et si la salle est chiffre de bout en bout, toute la confrence le sera galement.
Par ailleurs, MatrixRTC ne se limite pas Element Call : Famedly a montr une interoprabilit exprimentale avec FluffyChat au FOSDEM en fvrier, et Element a montr une interoprabilit exprimentale avec BigBlueButton en aot. tant donn que de plus en plus d’outils de confrence convergent vers LiveKit en tant que meilleur SFU de sa catgorie, c’est une opportunit extraordinaire d’utiliser Matrix et MatrixRTC pour assurer le chiffrement et la dcentralisation de bout en bout et obtenir une interoprabilit voip/vido standardise ds le dpart.
Cela dit, il y a quelques mises en garde l’heure actuelle :
- Il n’y a pas d’interoprabilit entre les appels voix/vido 1:1 de Matrix et MatrixRTC (et il n’est pas clair si/quand cela arrivera) – mais les clients Matrix 2.0 comme Element X utilisent exclusivement MatrixRTC pour la VoIP/vido, y compris pour les appels 1:1. Ceci afin de ne maintenir qu’une seule pile VoIP et d’obtenir gratuitement un support multi-appareils et multi-utilisateurs, mme pour les appels 1:1.
- iOS 18 a cass CallKit + WebRTC, donc Element X iOS a d dsactiver les appels MatrixRTC intgrs de manire native dans le systme d’exploitation ; un problme de support est ouvert avec Apple pour essayer de le rsoudre.
- Il y a galement quelques problmes initiaux cause du volume de signalisation dans MatrixRTC exposant certains bugs de synchronisation. Cela signifie probablement que MatrixRTC devrait encore tre considr comme une version bta pendant quelques jours jusqu’ ce que les correctifs atterrissent.
4. Chiffrement invisible
Le dernier pilier de Matrix 2.0 est le chiffrement invisible – rendant le chiffrement de bout en bout de Matrix aussi transparent et invisible que les alternatives centralises (Signal, WhatsApp, iMessage, etc). Cela ne signifie pas que la scurit est rduite de quelque manire que ce soit, bien au contraire. Il s’agit de :
- Veiller ce que les bogues de type « Unable To Decrypt » (UTD) ne se produisent jamais.
- Exclure de Matrix les appareils ne portant pas de signature croise. Le fait que Matrix ait jamais soutenu l’ide d’utilisateurs activant le chiffrement sur un dispositif sans prouver qu’ils en sont les propritaires valides en le signant (en le vrifiant avec un autre dispositif, ou en fournissant leur cl de rcupration/passkey) est un mauvais souvenir datant d’avant l’introduction de la signature croise. Aujourd’hui, le fait qu’il existe des dispositifs sans signature croise a pour effet de rduire la scurit et de compliquer l’interface utilisateur et les implmentations avec de gros avertissements rouges effrayants chaque fois qu’un dispositif non vrifi se joint une conversation. Au lieu de cela, la nouvelle norme permettra d’exclure compltement les dispositifs non vrifis – ne pas chiffrer vers eux et ne pas dchiffrer partir d’eux.
- Rsoudre les avertissements droutants du « bouclier gris » : « L’authenticit de ce message ne peut tre confirme sur cet appareil » et autres avertissements similaires. Il s’agit d’avertissements vitables causs par des cls de message qui ne peuvent plus tre retraces jusqu’ l’expditeur d’origine – par exemple, si elles sont restaures partir d’une sauvegarde ou si le dispositif d’envoi d’origine a t supprim. Ces problmes devraient tre corrigs avec la sauvegarde authentifie et l’inclusion des cls de dispositif sur les vnements Olm.
- Passer la confiance ds la premire utilisation (TOFU). Cela signifie que mme si vous n’avez pas explicitement vrifi un autre utilisateur, vous serez averti si son identit change (contrairement ce qui se passait auparavant, o l’on n’en tenait pas compte). Une premire implmentation a atterri dans matrix-rust-sdk il y a quelques semaines, et les avertissements appropris au niveau de l’application devraient donc arriver sous peu – correspondant aux avertissements quivalents de Signal ou WhatsApp « l’identit de cet utilisateur a chang », bien qu’ils ne soient pas encore synchroniss entre les appareils.
La version 2.0 montre dj des amliorations de la fiabilit et de la robustesse du chiffrement de Matrix. Une fois que les autres lments seront mis en place, l’exprience utilisateur d’un client Matrix devrait tre que le chiffrement est presque entirement invisible pour l’utilisateur.
Quelles sont les prochaines tapes ?
Il y a videmment encore un peu de suivi faire :
- Mise en ligne de MAS sur matrix.org
- Grer le manque d’interoprabilit entre les anciens appels Matrix et MatrixRTC
- Raliser les diffrents composants restants d’Invisible Crypto
- largir la base de mise en uvre de ces API et la dployer dans l’ensemble de l’cosystme.
Au-del de Matrix 2.0, il y a un grand nombre d’autres domaines qui ncessitent une attention particulire :
- Amliorer la rsolution des tats.
- Confiance et scurit. Les abus sont de plus en plus proccupants, et le travail sur la modration et les outils de confiance et de scurit a fini par tre fragment et balkanis.
- Tous les MSC habituels qui se sont accumuls – Emoji personnaliss, profils extensibles, prsence personnalise, etc.
- Raliser tous les avantages en termes de performances d’une connexion plus rapide aux salles…
Matthew Hodgson commente l’annonce de Matrix 2.0 :
S’il y a jamais eu un moment pour dire vos amis donner une nouvelle chance Matrix, c’est bien celui-ci.
Matrix 2.0 se fait attendre depuis longtemps, et nous devons faire savoir que le pas en avant est enfin arriv, et que les applications construites sur Matrix 2.0 peuvent srieusement surpasser les alternatives courantes.
Idalement, ce pourrait tre le moment Firefox de Matrix – lorsque des cendres d’un ancien code source ouvert, une nouvelle gnration apparat, capable de faire le poids face aux oprateurs historiques propritaires.
Pour l’instant, le seul client Matrix 2.0 est Element X (et Element Web/Desktop si vous activez l’implmentation exprimentale Simplified Sliding Sync dans les laboratoires sur les builds de nuit/dveloppement), mais nous nous attendons voir au moins les clients bass sur matrix-rust-sdk et matrix-js-sdk utiliser les nouvelles API comme une vidence dans les mois venir, et ensuite, nous l’esprons, tous les autres.
Donc : si vous utilisez un serveur Matrix, pensez dployer MAS pour activer l’authentification next-gen et ajoutez Element Call pour essayer MatrixRTC. Dans les mois venir, nous devrions voir plus de support dans plus de distributions Matrix, jusqu’ ce que nous vivions tous dans un monde Matrix 2.0 !
Nous tenons remercier chaleureusement tous ceux qui ont particip la conception, la construction et l’itration de Matrix 2.0, ainsi que tous ceux qui ont gard la foi pendant que nous mettions tout cela en place. Nous remercions galement l’IBB, qui a contribu financer une grande partie du travail d’Element sur ce projet, au bnfice de Matrix dans son ensemble.
Enfin, si vous voulez que Matrix l’emporte, rejoignez la Fondation et soutenez financirement le projet. Nous avons un besoin urgent de membres organisationnels, surtout aprs les cots d’organisation de la confrence Matrix, et surtout si votre organisation est commercialement dpendante de Matrix, vous devez tout simplement devenir membre. Bien qu’il soit trs flatteur que Matrix soit trait comme un bien commun de nos jours, sans soutien financier, le projet Matrix sous-jacent mourra et votre projet chouera. En revanche, si tous ceux qui travaillent sur Matrix nous soutenaient, nous avancerions beaucoup plus vite et avec moins de contraintes – alors n’hsitez pas vous impliquer et nous aider.
Merci de voyager avec Matrix !
Matthew
Source : Annonce de Matrix 2.0
Et vous ?
Pensez-vous que cette nouvelle version Matrix 2.0 est crdible ou pertinente ?
Quel est votre avis sur ce protocole ?
Voir aussi :