Matrix

Was ist Matrix?

undefined

Matrix ist eine offene Standardsoftware für sichere, dezentralisierte Kommunikation im offenen Web und hat sich in den über neun Jahren ihres Bestehens enorm entwickelt. Sie wird von einer wachsenden Anzahl von Regierungen, NGOs und Fortune-100-Unternehmen eingesetzt, um sichere, dezentralisierte und standardbasierte selbständige Kommunikation zu ermöglichen.

Ein wesentlicher Vorteil von Matrix ist die Unterstützung der Dezentralisierung. In einer Zeit, in der die Risiken zentralisierter Internetdienste, wie staatliche Zensur, umfassende Überwachung und zentralisierte Datenverletzungen, immer deutlicher werden, bietet Matrix eine Alternative, die Sicherheit und Datenschutz in den Vordergrund stellt.

Matrix wird durch die Europäische Union und ihre Digital Markets Act (DMA) unterstützt, die vorschreibt, dass große zentralisierte Messaging-Anbieter in der EU interagieren müssen, um dort tätig zu sein. Matrix arbeitet daran, diese Realität zu machen, einschließlich der Teilnahme an der IETF im MIMI-Arbeitskreis, um zu demonstrieren, wie beispielsweise Android Messages nativ Matrix sprechen könnte, um mit anderen Diensten zu interagieren, während die Ende-zu-Ende-Verschlüsselung erhalten bleibt.

Matrix 2.0 stellt einen großen Schritt nach vorne in Bezug auf Leistung, Benutzerfreundlichkeit und Stabilität dar. Zu den Neuerungen gehören Sliding Sync (schnelleres Login und Synchronisation), Native OIDC (standardisierte Authentifizierung), Native Group VoIP (Ende-zu-Ende-verschlüsselte großflächige Sprach- und Videokonferenzen) und Faster Joins (schnelleres Beitreten zu Räumen).

Matrix 2.0 wurde in enger Zusammenarbeit mit dem realen Kundenstamm entwickelt, um sicherzustellen, dass das neue Protokoll den Anforderungen der realen Welt entspricht. Element X, ein Produkt von Element, ist der Haupttreiber für die neuen Funktionen von Matrix 2.0, und es wird demonstriert, dass Matrix in der Lage ist, die Kommunikation für Milliarden von Benutzern zu steuern.

Ein Beispiel für die Anwendung von Matrix in der Regierung ist das Projekt Tchap der französischen Regierung. Tchap ist ein verschlüsselter Messaging-Dienst, der für öffentliche Bedienstete entwickelt wurde, um vertrauliche Informationen auszutauschen und die Sicherheit des Kommunikationsnetzwerks zu gewährleisten. Die französische Regierung wählte Matrix und Element, um die Interoperabilität des Dienstes zu gewährleisten und eine Alternative zu anderen Messaging-Anwendungen wie WhatsApp oder Telegram zu bieten, die Sicherheits- und digitale Souveränitätsrisiken darstellen, wenn sie auf öffentlichen Geräten installiert werden. Ebenso hat die Agentur für die Digitalisierung des deutschen Gesundheitssystems begonnen, auf Matrix umzusteigen, um eine umfassende Kommunikation zwischen Krankenhäusern, Versicherungsgesellschaften und Kliniken zu ermöglichen.

Insgesamt bietet Matrix eine zukunftsweisende Lösung für die Herausforderungen der modernen digitalen Kommunikation, insbesondere im Hinblick auf Sicherheit, Dezentralisierung und Interoperabilität, und wird von einer wachsenden Zahl von Regierungen und großen Unternehmen weltweit eingesetzt.

 

Vergleich mit der Konkurrenz

An illustration showing a comparison of various team collaboration software platforms like Microsoft Teams, Slack, and Element. The image depicts a modern, high-tech conference room with three large screens on the wall, each displaying a different interface. One screen shows the Microsoft Teams interface with its features, another shows the Slack interface with its unique chat and integration functions, and the third shows the Element interface, emphasizing its security and customization options. The room is filled with professionals in business attire, interacting and discussing, symbolizing collaboration and communication. The atmosphere is dynamic and productive, with a futuristic, digital vibe.

Matrix unterscheidet sich von seinen Konkurrenten durch seine Fokussierung auf Dezentralisierung und Sicherheit. Im Gegensatz zu zentralisierten Plattformen wie Slack und Microsoft Teams, ermöglicht Matrix eine dezentralisierte und selbstverwaltete Kommunikation. Dies bedeutet, dass Nutzer ihre eigenen Server hosten können, was mehr Kontrolle über Daten und Datenschutz bietet.

Ein weiteres Schlüsselmerkmal von Matrix ist die Ende-zu-Ende-Verschlüsselung (E2E), die in allen privaten Kommunikationskanälen Standard ist. Im Gegensatz dazu bieten Slack und Microsoft Teams diese Verschlüsselung nicht standardmäßig in allen Kommunikationsformen. WhatsApp bietet zwar E2E-Verschlüsselung, ist aber in einem zentralisierten System verankert, was bedeutet, dass Nutzer weniger Kontrolle über ihre Daten haben.

Matrix bietet auch eine hohe Interoperabilität, indem es die Integration mit anderen Plattformen wie Slack, IRC, Gitter und sogar WhatsApp über Brücken ermöglicht. Diese Offenheit für Integrationen ist bei proprietären Plattformen wie Microsoft Teams und WhatsApp weniger ausgeprägt.

 

Vergleichstabelle

Feature Matrix Slack Microsoft Teams WhatsApp
Dezentralisierung Ja Nein Nein Nein
Ende-zu-Ende-Verschlüsselung Ja (standard) Eingeschränkt Eingeschränkt Ja (standard)
Open Source Ja Nein Nein Nein
Selbst-Hosting Möglich Nicht möglich Nicht möglich Nicht möglich
Interoperabilität mit anderen Diensten Hoch Mittel Niedrig Niedrig
Sprach- und Videokonferenzen Ja Ja Ja Ja
Plattformübergreifend Ja Ja Ja Ja
Benutzerdefinierte Integrationen Hoch Hoch Mittel Niedrig
Datensicherheit und Kontrolle Hoch Mittel Mittel Niedrig
Community-Support Hoch Mittel Mittel Niedrig
Anpassbare Benutzeroberfläche Ja Eingeschränkt Eingeschränkt Nein
Dateiübertragung und -speicherung Ja Ja Ja Ja

 

Matrix in Action

Matrix wird heute in einer Vielzahl von Bereichen eingesetzt, darunter in großen Unternehmen, Regierungsorganisationen und im Gesundheitswesen. Zu den bemerkenswertesten Einsätzen von Matrix gehören:

  1. Regierungen und staatliche Einrichtungen:
    • Französische Regierung: Frankreich hat Matrix für seinen verschlüsselten Messaging-Dienst Tchap ausgewählt, der speziell für den Austausch vertraulicher Informationen zwischen öffentlichen Bediensteten entwickelt wurde. Tchap zielt darauf ab, die Sicherheit des Kommunikationsnetzwerks zu verbessern und die Interoperabilität zwischen verschiedenen Verwaltungseinheiten zu erhöhen​​.
    • Deutsche Bundeswehr und öffentliche Verwaltung: In Deutschland hat die Bundeswehr einen auf Matrix basierenden Krypto-Messenger für die Übermittlung von Informationen der Schutzklasse „Verschlusssache – Nur für den Dienstgebrauch“ eingeführt. Auch der Bundesmessenger für die öffentliche Verwaltung, eine zivile Version des Bwmessengers, basiert auf Matrix und befindet sich derzeit in einem Testlauf​​.
  2. Gesundheitswesen:
    • Deutsches Gesundheitssystem (Gematik): Gematik, der Anbieter digitaler Lösungen für das deutsche Gesundheitswesen, hat das Matrix-Protokoll gewählt, um eine neue Instant-Communication-Plattform zu untermauern. Diese Plattform wird von über 150.000 Organisationen wie Arztpraxen, Krankenhäusern und Versicherungsorganisationen genutzt​​.
  3. Private Unternehmen und Plattformen:
    • Zahlreiche große Unternehmen und Plattformen haben Matrix in ihre Kommunikationsinfrastruktur integriert. Der E-Mail-Client Thunderbird unterstützt das Protokoll, und auch Reddit arbeitet an einer Chat-Funktion, die auf Matrix basiert​​.

Diese Beispiele zeigen, wie vielseitig Matrix eingesetzt wird – von der Regierungskommunikation über das Gesundheitswesen bis hin zu großen Unternehmen und technischen Plattformen. Die Flexibilität, Sicherheit und Dezentralisierung, die Matrix bietet, macht es zu einer attraktiven Option für eine Vielzahl von Anwendungsfällen.

Tchap, la messagerie instantanée des agents de l'Etat | Académie de Paris

 

Matrix-Clients

Matrix-Clients sind die Schnittstellen, durch die Benutzer auf das Matrix-Netzwerk zugreifen. Sie spielen eine entscheidende Rolle in der Art und Weise, wie Menschen kommunizieren und interagieren.

Diversität: Es gibt eine breite Palette von Matrix-Clients, die für unterschiedliche Bedürfnisse und Vorlieben entwickelt wurden. Beispiele sind Element, FluffyChat, Nheko und Mirage.
Spezialisierung: Einige Clients sind auf bestimmte Funktionen oder Benutzergruppen zugeschnitten, wie z.B. FluffyChat, das sich auf eine einfache, benutzerfreundliche Oberfläche konzentriert.

Kommunikationsfunktionen
Textnachrichten: Standardfunktion aller Matrix-Clients, mit Unterstützung für Gruppenräume und Direktnachrichten.
Sprach- und Videoanrufe: Viele Clients bieten integrierte Möglichkeiten für Sprach- und Videoanrufe, sowohl in privaten Chats als auch in Gruppenräumen.
Dateiübertragung: Benutzer können Dateien verschiedener Formate und Größen austauschen.

Ende-zu-Ende-Verschlüsselung: Viele Clients implementieren standardmäßig Ende-zu-Ende-Verschlüsselung, um die Sicherheit der Kommunikation zu gewährleisten.
Dezentrale Authentifizierung: Authentifizierungsprozesse werden durch das dezentrale Netzwerk von Matrix gesteuert, was zu einer erhöhten Sicherheit führt.

Anpassbarkeit und Integration
Benutzeroberfläche: Die Benutzeroberfläche vieler Matrix-Clients kann angepasst werden, um den Bedürfnissen und Vorlieben der Benutzer zu entsprechen.
Integrationen: Durch die Nutzung von Bridges können Benutzer ihre Erfahrung durch die Integration mit anderen Diensten und Plattformen erweitern.

Verfügbarkeit: Matrix-Clients sind auf verschiedenen Plattformen verfügbar, einschließlich Desktop-Betriebssystemen und mobilen Geräten.
Synchronisation: Benutzer können nahtlos zwischen verschiedenen Geräten wechseln, wobei ihre Nachrichten und Einstellungen über das Matrix-Netzwerk synchronisiert werden.

Community-Driven: Viele Matrix-Clients werden von einer engagierten Community entwickelt und gepflegt, was zu einer ständigen Verbesserung und Anpassung führt.
Transparenz: Als Open-Source-Projekte sind die Codebasen der Clients für jeden zugänglich, was Vertrauen und Sicherheit fördert.

Matrix-Clients sind ein wesentlicher Bestandteil des Matrix-Ökosystems. Sie bieten eine Vielzahl von Funktionen und Anpassungsmöglichkeiten, die sie für ein breites Spektrum von Benutzern attraktiv machen. Ihre Fähigkeit, sichere, anpassbare und plattformübergreifende Kommunikation zu ermöglichen, macht sie zu einer wichtigen Wahl für Benutzer, die nach einer zuverlässigen und flexiblen Kommunikationslösung suchen.

 

 

Matrix Bridges

All your chats in one app - Self-host Matrix with Bridges and Cloudflare

Matrix Bridges sind essenziell, um die Kommunikationslücken zwischen verschiedenen Messaging-Plattformen zu schließen. Einige der bekanntesten
Bridges sind:

Slack Bridge: Ermöglicht die Integration von Matrix in Slack, wodurch Nachrichten und Dateien zwischen beiden Plattformen synchronisiert werden.

Telegram Bridge: Diese Bridge verbindet Matrix mit Telegram und erlaubt es Nutzern, Telegram-Chats direkt über Matrix-Clients zu führen.

WhatsApp Bridge: Sie verbindet WhatsApp mit Matrix, was besonders herausfordernd ist, da WhatsApp eine sehr geschlossene Plattform mit eigenen Sicherheitsprotokollen ist. So ist dafür ein Client nötig der auf Android läuft

IRC Bridge: Eine der älteren Bridges, die Matrix mit verschiedenen IRC-Netzwerken verbindet und so die Nutzung traditioneller IRC-Chats über Matrix ermöglicht.

Die Bridges müssen unterschiedliche Messaging-Protokolle in das Matrix-Protokoll umwandeln, dies beinhaltet die Handhabung verschiedener Nachrichtenformate, Dateiübertragungen und Benachrichtigungen. Um eine nahtlose Kommunikation zu gewährleisten, müssen die Bridges Nachrichten in Echtzeit synchronisieren, was eine Herausforderung bei unterschiedlichen Netzwerkgeschwindigkeiten und -verzögerungen darstellt. Da Matrix ein dezentrales Netzwerk ist, können Bridges auf verschiedenen Servern gehostet werden. Die Skalierung, um mit einer großen Anzahl von Benutzern und Nachrichten umzugehen, ist eine technische Herausforderung.

Limitierungen und Herausforderungen
Geschwindigkeit und Zuverlässigkeit: Die Verarbeitung und Übersetzung von Nachrichten in Echtzeit kann zu Verzögerungen führen. Außerdem können Netzwerkprobleme oder Ausfälle bei einer der verbundenen Plattformen die Gesamtkommunikation beeinträchtigen.

Datenschutz und Sicherheit: Da Bridges oft Daten zwischen verschiedenen Plattformen übertragen, sind Datenschutz und Sicherheit große Anliegen. Es muss sichergestellt werden, dass die Bridges die Datenschutzrichtlinien aller beteiligten Plattformen einhalten.

Abhängigkeit von Drittanbieter-APIs: Viele Bridges sind von den APIs der Zielplattformen abhängig. Änderungen an diesen APIs können die Funktionalität der Bridges beeinträchtigen oder zusätzliche Anpassungen erforderlich machen.

Feature-Kompatibilität: Unterschiedliche Plattformen bieten unterschiedliche Funktionen an. Die Bridge muss entscheiden, wie sie mit Funktionen umgeht, die in einer Plattform vorhanden sind, aber in der anderen fehlen.

 

Matrix Server Intstallation:

Diese Installation ist eine sehr sehr wartungsfreie Installation, aus Sicht der IT-Sicherheit sollte unbedingt davon abgeraten werden, LTS-Versionen benutzt werden etc.

oAuth ist machbar, aber ….

Ausgangspunkt: LXC Container eines Debian Testing (late 2023)

Zuerst werden die grundlegenden Abhängigkeiten installiert und Repositorys eingetragen.

apt-get install unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades

 

sudo apt install -y lsb-release wget apt-transport-https sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg echo „deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main“ | sudo tee /etc/apt/sources.list.d/matrix-org.list sudo apt update sudo apt install matrix-synapse-py3

sudo sh -c ‚echo „deb https://apt.postgresql.org/pub/repos/apt sid-pgdg main“ > /etc/apt/sources.list.d/pgdg.list‘

 

Dann wird die Datenbank vorbereitet

su – postgres
createuser –pwprompt synapse_user

createdb –encoding=UTF8 –locale=C –template=template0 –owner=synapse_user synapse

 

Danach nocht die grundlegendsten Einstellungen in der /etc/matrix-synapse/homeserver.yaml:

bind_addresses: [‚::1‘, ‚0.0.0.0‘]

enable_registration: true
enable_registration_captcha: true
recaptcha_public_key: „xxx“
recaptcha_private_key: „xxx“
recaptcha_siteverify_api: „https://www.google.com/recaptcha/api/siteverify“

 

Service neustarten und fertig

systemctl restart matrix-synapse.service

Matrix Protokoll

 

1. Datenübertragung und API-Interaktion

  • Client-Server-API: Clients kommunizieren mit dem Homeserver über die Client-Server-API. Diese API verwendet HTTP(S) als Transportprotokoll und JSON für die Strukturierung der Daten. Beispielsweise sendet ein Client eine Nachricht an einen Raum, indem er eine POST-Anfrage an /rooms/{roomId}/send/{eventType}/{txnId} sendet, wobei der Body der Anfrage die Nachricht im JSON-Format enthält.
  • Server-zu-Server-API (Federation): Ermöglicht Homeservern, Nachrichten und Synchronisationsinformationen auszutauschen. Wenn ein Nutzer eine Nachricht sendet, verteilt sein Homeserver diese Nachricht an alle anderen Server, die Räume mit Mitgliedern haben, die an der Konversation teilnehmen. Dies geschieht über die /_matrix/federation/v1/send/{txnId}-API.

2. Synchronisation

  • Event- und Raumzustand: Jede Aktion in einem Raum wird als Event dargestellt (z.B. Nachrichtenversand, Namensänderung des Raums). Räume sind durch ihren Zustand definiert, der eine Sammlung von Events ist, die den aktuellen Zustand des Raums beschreiben. Clients synchronisieren ihren lokalen Zustand mit dem des Servers durch die /sync-API, die alle neuen Events seit der letzten Synchronisation zurückgibt.

3. Verschlüsselung

  • Ende-zu-Ende-Verschlüsselung: Matrix verwendet das Olm/Megolm-Verschlüsselungsprotokoll für die Ende-zu-Ende-Verschlüsselung, um sicherzustellen, dass nur die Teilnehmer einer Konversation den Inhalt der Nachrichten lesen können. Megolm ist für Gruppenchats optimiert und generiert für jede Nachricht einen neuen Sitzungsschlüssel, wobei die Schlüssel periodisch rotiert werden.
  • Geräte- und Identitätsmanagement: Jeder Nutzer kann mehrere Geräte haben, und jedes Gerät hat seine eigenen Schlüsselpaare. Nutzer verifizieren ihre Identitäten und die ihrer Gesprächspartner, indem sie ihre öffentlichen Schlüssel vergleichen und bestätigen. Das Protokoll unterstützt auch das Cross-Signing, wobei ein Nutzer seine eigenen Geräte sowie die Geräte anderer Nutzer verifizieren kann.

4. Persistenz und Datenhaltung

  • Datenbank-Speicherung: Homeserver speichern Nutzerdaten, Raumzustände, Events und Historien in einer Datenbank. Die Wahl der Datenbanktechnologie kann variieren (z.B. PostgreSQL, SQLite für kleinere Installationen), und die Datenstruktur ist optimiert, um schnelle Abfragen für Synchronisationsanfragen und Zustandsresolution zu ermöglichen.

5. Federation und Discovery

  • Domain Name System (DNS): Matrix verwendet das DNS, um die Homeserver-Adressen anderer Domains zu entdecken. Ein Homeserver, der eine Nachricht an Nutzer in einem anderen Domain senden möchte, löst die SRV-Einträge im DNS auf, um die Adresse des Ziel-Homeservers zu finden.
  • Zustandsresolution: Bei Konflikten, z.B. wenn zwei Server unterschiedliche Zustände für einen Raum haben, kommt ein Zustandsresolutionsalgorithmus zum Einsatz, der auf einem gerichteten azyklischen Graphen (DAG) der Raumgeschichte basiert, um einen konsistenten Raumzustand herzustellen.

6. API-Rate-Limiting und Abuse-Management

  • Rate-Limiting: Um Missbrauch zu verhindern und die Serverlast zu verwalten, implementieren Homeserver in der Regel Rate-Limiting für API-Anfragen. Dies stellt sicher, dass ein einzelner Client oder Server nicht in der Lage ist, den Dienst durch zu viele Anfragen zu überlasten.

 

Protokoll Layer

 

Architekturübersicht des MATRIX-Chat-Protokolls

  • Application Layer: Dies ist die oberste Schicht, auf der die Chat-Anwendung läuft. Hier werden die Nutzerinteraktionen, wie das Senden von Nachrichten und der Empfang von Benachrichtigungen, verarbeitet. Die Anwendung kommuniziert mit dem Transport Layer, um Nachrichten zu senden und zu empfangen.
  • Transport Layer: Diese Schicht ist verantwortlich für die End-to-End-Kommunikation zwischen den Chat-Clients und dem Homeserver. Sie kann auf Protokollen wie HTTP/S oder WebSockets aufbauen, um eine kontinuierliche Verbindung für Echtzeit-Kommunikation zu ermöglichen.
  • MATRIX Routing Protocol: Hier wird das eigentliche Matrix-Routing-Protokoll implementiert, das die Logik für das Routing von Nachrichten zwischen verschiedenen Homeservern (im Rahmen der Server-zu-Server-Federation) enthält. Es behandelt auch die Synchronisation von Nachrichten und Raumzuständen zwischen Clients und Servern.
  • Link Layer & Physical Layer: Diese beiden Schichten sind in diesem Kontext weniger spezifisch für das Matrix-Protokoll, da sie allgemeine Netzwerkkommunikationsschichten darstellen, die für die physische Datenübertragung und Datenlinkprotokolle (wie Ethernet, WLAN usw.) zuständig sind.

Die Komponenten im Bild können wie folgt in Bezug auf das Matrix-Protokoll beschrieben werden:

  • Data Plane: Umfasst die Forwarding Engine, welche die Entscheidungen des Routing-Protokolls umsetzt, um Nachrichten durch das Netzwerk zu leiten. Dies schließt das Weiterleiten von Chat-Nachrichten an die richtigen Empfänger ein.
  • Control Plane: Beinhaltet Logik und Protokolle zur Verwaltung des Netzwerkzustands und der Topologie. Für das Matrix-Protokoll würde dies die Discovery von anderen Homeservern und die Verwaltung von Routing-Tabellen einschließen.
    • CTparent & IParent: Diese könnten Konzepte repräsentieren, die für die Hierarchie und Priorisierung innerhalb des Netzwerks verantwortlich sind, wie z.B. die Bestimmung von übergeordneten Homeservern oder die Verwaltung von Netzwerkprioritäten.
    • Aggregation: Dies könnte sich auf die Aggregation von Netzwerkadressen oder Chaträumen beziehen, um die Effizienz und Skalierbarkeit des Netzwerks zu erhöhen.
    • Addr. Assignment: Steht für die Zuweisung von Adressen, was im Kontext von Matrix die Zuweisung von eindeutigen Identifikatoren für Nutzer, Geräte oder Räume sein könnte.
    • Alternative Routing Table & Routing Table: Diese Tabellen enthalten Informationen über die besten Wege, um Nachrichten zu bestimmten Zielen zu leiten. Im Matrix-Protokoll könnten dies die besten Wege sein, um Nachrichten zu anderen Homeservern zu senden.
  • Upper Layer Interface: Dies ist die Schnittstelle, die die Datenplane mit der Anwendungsschicht verbindet, und stellt sicher, dass Nachrichten korrekt an die Anwendungsschicht übergeben werden.

 

Quellen:

  • https://matrix.org/?ref=thestack.technology [abgerufen am 12.12.2023]
  • https://itsfoss.com/best-matrix-clients/   [abgerufen am 16.12.2023]
  • https://www.securityweek.com/meet-matrix-open-standard-de-centralized-encrypted-communications/ [abgerufen am 23.12.2023]
  • https://spec.matrix.org/latest/ [abgerufen am 28.12.2023]
  • https://discord.com/ [abgerufen am 01.12.2023]

 

  •  

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert