Weekly backup.
This commit is contained in:
105
20220226100700-matrix.org
Normal file
105
20220226100700-matrix.org
Normal file
@@ -0,0 +1,105 @@
|
||||
:PROPERTIES:
|
||||
:ID: 2e51f7e7-cf37-45d3-b7c4-c136d4e3cc64
|
||||
:mtime: 20220313180139
|
||||
:ctime: 20220226100700
|
||||
:END:
|
||||
#+title: matrix
|
||||
|
||||
* Introduction
|
||||
* Protocole de communication ouvert (specs ouvertes) pour la communication en temps réel (messagerie).
|
||||
* Passerelle avec différents fournisseurs de services (xmpp, Skype, IRC, ...).
|
||||
* Sécurisé (chiffrement de bout en bout activé par défaut).
|
||||
* Décentralisé (possibilité d'héberger son propre serveur).
|
||||
* Distribué/fédéré: chaque participant conserve l'historique de ses conversations (réplication entre les différents serveurs).
|
||||
* Appels voix & vidéo basés sur WebRTC.
|
||||
* Contrairement à XMPP (envoi de messages), Matrix fonctionne comme git : synchronisation de serveurs (conversation complète).
|
||||
* Matrix is /transport agnostic/: JSON/HTTP pourrait être remplacé.
|
||||
|
||||
#+DOWNLOADED: https://upload.wikimedia.org/wikipedia/commons/b/bd/Diagramme_Matrix_fr.svg @ 2022-02-26 10:29:56
|
||||
#+ATTR_ORG: :width 400
|
||||
[[file:Introduction/Diagramme_Matrix_fr_2022-02-26_10-29-56.svg]]
|
||||
|
||||
* Long-term secret = private key.
|
||||
|
||||
* Les serveurs Home
|
||||
** API
|
||||
* Synchro des messages et de l'état des rooms entre serveurs, en temps réel.
|
||||
* Synchro de l'historique des messages sur d'autres serveurs (à la git pull) : en cas d'offline, le serveur peut
|
||||
récupérer les historiques auprès d'autres serveurs afin de combler le trou.
|
||||
* Récupérer le profil et la présence d'un utilisateur.
|
||||
** Implémentations
|
||||
* Synapse (implémentation de référence) en Python/twisted.
|
||||
* Dendrite (implémentation de 2nd génération - plus scalable/performant) en Go.
|
||||
* Conduit (simple/rapide/reliable) en Rust.
|
||||
* Construct (orienté performances avec un min de deps) en C++.
|
||||
|
||||
* Les serveurs d'application
|
||||
** API
|
||||
* Possède un accès privilégié à un serveur Home.
|
||||
* Peut souscrire au trafic d'un server.
|
||||
* Peut /mascarade/ comme un utilisateur virtuel.
|
||||
|
||||
** Serveurs d'intégration
|
||||
* Permet d'intégrer de nouveaux services.
|
||||
*** Exemples
|
||||
* Etherpad:
|
||||
* RSS bot:
|
||||
* Grafana: publication de dashboards grafana pour un affichage directement sur les clients.
|
||||
* Jitsi:
|
||||
* Matrix-content-scanner:
|
||||
|
||||
** Les bridges
|
||||
* Unifier différents /réseaux/ ensemble (ie: signal, IRC, ...).
|
||||
*** Types de bridges
|
||||
* /Bridgebot/:
|
||||
* /Puppeted/: L'usage du bridge est transparent pour les utilisateurs.
|
||||
|
||||
* Les clients
|
||||
** API client-server
|
||||
* Conçue pour être user-friendly.
|
||||
** Implémentations UI
|
||||
* Element (implémentation de référence avec le plus de features) pour WebApp/desktop(electron)/IOS/Android.
|
||||
* Ditto (réalisé avec React) pour IOS/Android.
|
||||
* Nio (réalisé avec Switch) pour IOS.
|
||||
* Pattle (réalisé avec flutter) pour IOS/Android.
|
||||
* FluttyChat.
|
||||
* Seaglass: client matrix pour IOS.
|
||||
* Spectral: client matrix desktop écrit en c++ avec QtQuick control.
|
||||
* Quaternion: client IM desktop écrit en c++ avec Qt5.
|
||||
* Nheko reborn: client matrix desktop écrit en c++17 avec Qt.
|
||||
* Mirage: client matrix desktop configurable et opérable avec le clavier (à la Emacs).
|
||||
* Fractal: client matrix desktop écrit en rust.
|
||||
** Implémentations console
|
||||
* weechat-matrix:
|
||||
* gomuks: client matrix pour terminal écrit en go.
|
||||
* matrixcli: client matrix en ligne de commande.
|
||||
* matrix-commander: client matrix cli simple supportant le chiffrement E2E et la vérif. emoji.
|
||||
* tchap: client développé par le gouvernement français (inclus l'intégration du matrix-content-server).
|
||||
|
||||
* Les espaces (TODO)
|
||||
* Public /space/: l'annuaire hiérarchisé et public de Matrix.org.
|
||||
* Restricted /space/: pour les organisations, permet de regrouper des /rooms/ dans un même domaine.
|
||||
* private /space/: pour un usage personnel
|
||||
|
||||
* P2P (TODO)
|
||||
|
||||
* OSS
|
||||
Matrix utilise les OSS suivants:
|
||||
* olm: Librairie implémentant un /double-ratchet/ (basé sur les specs de Signal).
|
||||
* [[https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md][megolm]]: Librairie réalisant un /ratchet/ crypto basé sur AES pour les communications de groupe.
|
||||
|
||||
* Inconvénients
|
||||
* Backward secrecy (/future secrecy/ ou /post-compromise security/, le vol de la clé privée d'un correspondant ne
|
||||
compromet pas la confidentialité des communications futures) faible (tant que la session n'est pas renouvellée).
|
||||
* [[https://fr.wikipedia.org/wiki/Confidentialit%C3%A9_persistante][Confidentialité persistante]] (/forward secrecy/ ou /perfect forward secrecy/, le vol de la clé privée d'un
|
||||
correspondant ne compromet pas la confidentialité des communications passées) faible (dépend de la fréquence de
|
||||
renouvellement des clés).
|
||||
|
||||
* Optimisations réalisées
|
||||
* Lazy loading members: Ne charger les métadonnées que des personnes communiquant dans la /room/ (réduction de la RAM consommée).
|
||||
|
||||
* Références
|
||||
* [[https://fr.wikipedia.org/wiki/Matrix_(protocole)][Wikipedia]]
|
||||
* [[https://www.youtube.com/watch?v=cD8xbci4wAY][Matrix - Open, Secure, Decentralised, Real-Time Communication Across Networks - Oleg Fiksel]]
|
||||
* [[https://www.youtube.com/watch?v=9cjUzftDuoQ][Matrix in the French State What happens when a government adopts open source & open standards for all its internal communication? by Matthew Hodgson]]
|
||||
* [[https://2021.commcon.xyz/talks/matrix-101][Matrix 101 - Thibault Martin]]
|
Reference in New Issue
Block a user