Matrix

- Lesezeit: 6 Minuten / ganze Rubrik: 9 Minuten -

„Matrix“ wird seit 2012 entwickelt und ist wie XMPP ein freies, föderales Messenger-Protokoll. Matrix selbst wird von einer gemeinnützigen Organisation in London entwickelt - dass Team wird jedoch von „Amdocs“ bezahlt.
Quelle (englischsprachig): https://en.m.wikipedia.org/wiki/Amdocs (extern)

In der Philosophie von Matrix ist grundsätzlich jeder Chat ein Raum - auch wenn 2er-Chats nicht so gekennzeichnet werden. Für einen Chat mit egal wie vielen Nutzern (auch in eigenen Chats für sich selbst, um sich bspw. selbst Notizen über mehrere Clients zu senden) wird also ein Raum erstellt. Auf Grund dieses Umstand kann also jederzeit ein persönliches Gespräch um weitere Teilnehmer ergänzt werden.

Matrix soll Benutzern mit Konten bei einem Kommunikationsdiensteanbieter erlauben, mit Benutzern anderer Diensteanbieter per Chat, IP-Telefonie und Video-Telefonie zu kommunizieren. Es soll eine nahtlose Kommunikation zwischen verschiedenen Diensteanbietern ermöglichen.

Konzeptionell ist das Programm auf der Serverseite monotlitsch (aus einem Guß) und besteht nicht aus unterschiedlichen Modulen. Für den Benutzer am Endgerät ist dies jedoch nicht relevant.

Quellen (alle englischsprachig):

Matrix-ID

Aufbau der Benutzerkennung im Echtbetrieb: @user:exmaple.org
Für Verbindungen, die über IRC in anderen Systeme gehen: #channel%ircserver@xmpp_component

Ende-zu-Ende-Verschlüsselung

Die Matrix-Ende-zu-Ende-Verschlüsselung (e2e-Verschlüsselung) befindet sich noch im Betastadium und ist deswegen auch noch nicht standardmäßig aktiviert. Sie muss manuell aktiviert werden.

Der praktische Einsatz gestaltet sich so, dass der Administrator eines Matrix-Chat-Raumes die Verschlüsselung aktiviert. Technisch basiert die Verschlüsselung auf „Olm“ bzw. „Megolm“. Es ist eine Implementierung des Double Ratchet-Verfahrens, das auch Grundlage der bei Jabber bekannten OMEMO-Verschlüsselung ist.

Eine Auditierung (Prüfung durch eine unabhängige Stelle) ist noch offen. 2016 wurde die Olm-Implementierung von der ncc group geprüft.
Quelle: muß noch ergänzt werden!

Brücken („Matrix-Bridges“)

Matrix bietet verschiedene Brücken („bridges“) an, um mit anderen Systemen (IRC, Slack, Gitter oder auch XMPP) Daten auszutauschen. Es wird also versucht - wie bei unterschiedlichen Sprachen - zwischen diesen zu übersetzten. Ideal für die Nutzer wäre es, wenn diese von diesem Vorgang überhaupt nichts mitbekommen und alle Funktionen wie gewohnt nutzen könnten. Es ist jedoch sehr schwer bzw. aufwändig, zwei unterschiedliche Systeme mit allen jeweiligen Regeln („Protokollen“) komplett kompatibel zu machen. Deshalb kann eine Brücke i.d.R. nur eine begrenzte Schnittmenge an Funktionen bereitstellen.

XMPP-Bridge

Mit entsprechenden Anpassungen auf den Servern ist es möglich, eingeschränkt Nachrichten zwischen Matrix- und XMPP-Räumen auszutauschen. Der Dienst auf dem Matrix-Server ist somit wie ein Benutzer zu sehen, der sich im Jabber-Raum als „normaler“ Nutzer anmeldet und wie ein Roboter einfach alle Einträge in den Matrix-Raum weiterleitet bzw. auch in die andere Richtung sendet.

Anmerkung: In XMPP werden Bridges „XMPP Transports“ genannt.

Einschränkungen (Stand 09/2018)

  • Eine direkte 1:1-Kommunikation zwischen Matrix und XMPP (eine Person nutzt Matrix, die andere Person Jabber/XMPP) ist nicht möglich.
  • Die Kommunikation in dem Raum darf nicht Ende-zu-Ende-verschlüsselt sein.
  • Personen im jeweils anderen Raum können nicht direkt angeschrieben werden, so wie dies ansonsten mit der Angabe des Namens und der darauf folgenden Nachricht (z.B. “namexy: Ja, bis gleich.“) möglich wäre. Der Angesprochene erhält somit über die an ihn gerichtete Nachricht keine Benachrichtigung auf seinem System.

Zukunftsgedanken XMPP-Bridge

Grundsätzlich sind für Verbindungen von Matrix zu XMPP drei Möglichkeiten für künftige Entwicklungen einer Verbindung (bridge/transport) denkbar:

  1. Eine echte, direkte Brücke (wo ein Matrix-User im XMPP-Raum einen eigenen Namen („nickname“) bekommt und umgekehrt)

  2. Ein Automatismus in Form eines einzeln angelegten Benutzers, der die Nachrichten weiterleitet - als Roboter (=robot = bot)

  3. Kommunikation über eine dritte Stelle
    z.B. über IRC. Vorteil ist, daß man den “matrix app service” (-> WAS IST DAS??) nutzen kann.
    Ablauf: Der Matrix-Server geht über einen matrix-irc-appservice, der sich mit einem IRC-Kanal verbindet. Das Selbe müsste dann von xmpp aus (z.B. per „biboumi“ in den selben IRC-Kanal.
    Dies hätte jedoch einen entscheidenden Nachteil: Kommunikation über eine Drittes System und somit mehr Komplexität und Fehleranfälligkeit.

Ideal wäre ein sog. XMPP Transport mit Unterstützung für Chaträume. Der könnte sehr weitgehend mit Matrix integriert werden und auch Benutzer wären dann von beiden Seiten direkt ansprechbar. Das ist allerdings sehr viel aufwändiger zu implementieren als ein „bot“ und muss direkt in der Serversoftware integriert werden. Es würde allerdings reichen, wenn eine Seite eine richtige Brücke implementiert. Entweder also ein XMPP Server mit „Transport“ zu Matrix, weil es für den Matrix-Server wie ein anderer valider Matrix Server aussehen würde - oder alternativ könnte der Matrix-Server eine „Bridge“ implementieren, die wie ein echter XMPP Server aussieht und sich so verhält.

Chatverlauf

Im Moment ist der Chatverlauf auf dem eigenen Matrix-Server nur bedingt löschbar. Das heißt, es ist nicht möglich, den Gruppen-/Nachrichtenverlauf zu löschen, solange das Matix-Konto besteht.

Server

Bei der Server-Installation werden zunächst selbst signierte TLS-Zertifikate erstellt, die dann jedoch problemlos durch Let’s Encrypt-Zertifikate ersetzt werden können. Dies muss manuell vorgenommen werden.

Externe Artikel

https://www.kuketz-blog.de/messenger-matrix-das-xmpp-fuer-hobby-admins/ (extern)

Matrix Logo