به Nostr بپیوندید
2026-08-27 10:19:39 UTC
in reply to

npub1a6…avwgl on Nostr: Alors, de base XMPP est un protocole qui n'a aucun chiffrement de bout-en-bout. La ...

Alors, de base XMPP est un protocole qui n'a aucun chiffrement de bout-en-bout. La communication est chiffrée entre le client et le serveur ainsi qu'entre les serveurs. C'est la base, mais pour les serveurs des différentes parties disposent des messages en clair.

Afin d'éviter ça, est arrivé le chiffrement de bout-en-bout, c'est à dire qu'un client envoie des messages que seul le destinataire est capable de déchiffrer, ainsi les serveurs n'ont jamais la discussion en clair. Dit comme ça c'est simple, mais en réalité c'est extrêmement complexe car il faut gérer l'échange de clés entre les clients. Pour une discussion privée entre 2 personnes ça se fait bien, mais en revanche pour les groupes de discussion c'est immensément plus complexe.

En résumé : avoir du chiffrement de bout-en-bout est complexe et nécessite forcément des problèmes de gestion des clés de chiffrement.

Une première différence de taille apparaît donc entre XMPP et Matrix : XMPP est un protocole qui de base n'a aucun chiffrement de bout-en-bout, ça lui est ajouté par un protocole supplémentaire, OMEMO, qui est facultatif. Le chiffrement de bout-en-bout est donc opportuniste et il existe d'ailleurs des clients XMPP qui ne supportent pas du tout OMEMO. À l'inverse, Matrix a été construit autours du chiffrement de bout-en-bout et c'est donc le paramètre par défaut. Il est possible de créer des salons Matrix sans le chiffrement de bout-en-bout, mais c'est un choix explicite à faire.

Mais parlons un peu de l'évolution du protocole.

Sur Signal l'infra est centralisée donc ça simplifie grandement le problème. Signal introduit de temps en temps des breaking-changes dans son protocole et ça passe car il y a une seule app officielle à mettre à jour, et les apps alternatives ont l'air de suivre (à vérifier pour ce dernier point). Je suspecte aussi que c'est aussi une des raisons qui a poussé Signal a vérifier régulièrement les mises à jour et à envoyer des tonnes de notifications si on ne met pas à jour.

Pour Matrix et XMPP, la nature décentralisée de ces protocoles empêche de tels breaking-changes.

Pour Matrix, c'est versionné, ce qui fait que chaque salon utilise une version du protocole de chiffrement de bout-en-bout. Afin d'éviter que les clients ne prenant pas encore en charge les versions les plus récentes ne soient dégagés de ces salons faute de compatibilité du protocole, les administrateurs d'un salon doivent faire la montée en version manuellement pour le salon en question. Le bon point est que ça permet d'ajuster au cas par cas. Le mauvais est que peu d'administrateurs du salon savent ça et donc qu'il y a des oublis de montée en version.

Pour XMPP c'est encore pire. La quasi-totalité des clients supportant OMEMO utilisent la version 0.3.0 de 2018. Cette un défaut majeur qui est l'absence de versioning : une montée en version est donc un breaking-change qui casse les clients, ce qui n'est pas acceptable dans un contexte décentralisé. Le versioning est arrivé dans OMEMO depuis, mais très peu de clients implémentent ces versions plus récentes. De plus, OMEMO 0.3 a des faiblesses cryptographiques qui ont été corrigées dans les versions plus récentes,… qui ne sont donc quasiment pas utilisées.

Maintenant concernant la gestion des clés.

Tout chiffrement de bout-en-bout bien fait a des problèmes de gestion de clés. Sur Signal ça va encore, il faut y aller pour perdre totalement ses clés et donc ses messages. Dans mon souvenir ça peut arriver mais il faut un peu le chercher quoi.

Pour Matrix, c'est un sujet assez complexe. Oui, historiquement ce n'est pa super bien fait et on a de temps en temps des problèmes de synchro qui font que certains messages ne sont pas déchiffrables. Je n'ai pas trop suivi le détail des évolutions à ce sujet, mais je n'ai pas vu ce genre de soucis depuis quelques temps. Il faut dire que maintenant il y a la possibilité de stocker ses clés de manière chiffrée sur le serveur et d'avoir une clé de récupération afin de pouvoir les utiliser sur l'ensemble de ses appareils. Avec ce système, j'ai envie de dire que les soucis de gestion des clés sont de l'histoire ancienne, mais il peut y avoir des subtilités que j'ignore.

Pour OMEMO, je ne connais pas suffisamment le mécanisme de gestion des clés pour me prononcer dessus. En revanche, je peux dire qu'il y a peu de chances pour qu'une version ancienne avec des faiblesse ai géré ça à la perfection. En conséquent, s'il n'y a pas de problèmes de gestion des clés c'est probablement qu'il existe des problèmes sous-jacents. En clair, ça ne m'inspire pas confiance du tout.