Zum Thema Matrix gibt es im Wiki folgende Artikel

  1. MatrixAnmeldung: Kurzanleitung für die Registrierung
  2. Matrix: Allgemeine Informationen zu dem System Matrix
  3. MatrixSupport: Hilfen zu der Benutzung von Matrix
  4. Matrixbuch: Ein Liste mit Matrix-Räumen

Direkte Hilfe zum diesem Thema erhaltet ihr in folgenden Matrix-Raum #MatrixSupport:piratenpartei.de


Vorlage:WP ist ein HTTP-basiertes Kommunikationsprotokoll für föderierte Echtzeitkommunikation. Es hat in der Piratenpartei Lattenrost (Mattermost) abgelöst.

gerahmt|Login auf dem Server

Einleitung - wozu dient Matrix

Matrix ist wie andere Team-Messenger (Discord, Mattermost, MS-Teams, Slack, ..) eine browserbasierte Kommunkationsplattform mit klarem Fokus auf Gruppenchats ("Räume"). Dies geht so weit, dass auch Zwiegespräche (Direktnachrichten) als Räume mit nur zwei Personen umgesetzt wurden.
Im Unterschied zu anderen Systemen kann Matrix nicht nur selbst betrieben werden (wie Mattermost), sondern sich auch mit anderen Servern verbinden (wie XMPP). Das bedeutet, mit einem Account auf einem Server können auch Räume auf anderen Servern betreten werden - sofern diese "föderieren". Räume, die nicht föderieren, können dagegen nur mit einem Account des jeweiligen Servers betreten werden.

Falls du also noch kein Pirat bist, ist das öffentliche Oberdeck eine gute erste Anlaufstelle.

Server

Neben dem Unternehmen hinter Matrix betreiben auch einige Organisationen eigene Server. So beispielsweise die Piratenpartei Österreich: pirateriot.net

Inzwischen gibt es auch bei uns einen Server, der den Lattenrost als bundesweites Vernetzungstool abgelöst hast. Der Login auf matrix.piratenpartei.de erfolgt dabei über den Piraten-Login. (Ankündigung mit Screenshots)

Achtung, Verwirrungspotenzial: auch wenn die Adresse des Homeservers matrix.piratenpartei.de heißt, lautet der Server-Teil der Raumadressen und Accounts nur :piratenpartei.de

Adressen

Da es wie bei E-Mail oder XMPP mehrere Server gibt, bestehen auch bei Matrix die Benutzernamen aus zwei Teilen: @nutzerin:server.tld
Raumadressen sehen so aus: #raumname:server.tld

Eine kleine Liste mit Räumen, auch außerhalb unseres Servers, findest du hier:

Matrixbuch

Clients

Auch wenn Matrix an sich browser-basiert ist (https://piratenmatrix.de funktioniert auch auf Smartphones), gibt es eine Reihe von lokal installierbaren Web-Apps. Die folgende Auflistung kann nur unvollständig sein, da sich noch einige Clients in der Entwicklung befinden. Die hier genannten haben allerdings ein benutzbares Stadium erreicht und werden aktiv weiterentwickelt.

Desktop (Windows, Linux, Mac)

  • Cinny.in (sieht aus wie Discord; nutzt vorhandene Browser-Engine)
  • Element (hieß früher Riot, wird vom Unternehmen hinter Matrix entwickelt; nutzt Electron)
  • FluffyChat (Sieht eher so aus wie Telegram. Dieser Client kann mehrere Accounts verwalten [die Funktion ist aber noch im Betastadium])
  • Nheko (nativ und gut auf Linux; mit @name:piratenpartei.de anmelden)
  • NeoChat (Verschlüsselung noch nightly; mit @name:piratenpartei.de anmelden)
  • SchildiChat (Ein Fork von Element)

Android

  • Element (früher Riot, wird vom Unternehmen hinter Matrix entwickelt)
  • FluffyChat (Sieht eher so aus wie Telegram. Dieser Client kann mehrere Accounts verwalten [die Funktion ist aber noch im Betastadium])
  • SchildiChat (Ein Fork von Element)

Die Android Clients gibt es übrigens auch im F-Droid Store.

iOS

  • Element (früher Riot, wird vom Unternehmen hinter Matrix entwickelt)
  • FluffyChat (Sieht eher so aus wie Telegram. Dieser Client kann mehrere Accounts verwalten [die Funktion ist aber noch im Betastadium])

Verschlüsselung

Die meisten Räume sind nicht verschlüsselt. Eine Ausnahme bilden jedoch Räume, die zur Kommunikation lediglich zweier Personen genutzt werden. Diese werden standardmäßig verschlüsselt.

Damit verschlüsselte Nachrichten auch bei erneutem Login im Browser oder auf anderen Geräten gelesen werden können, ist es möglich, die Schlüssel passwortgesichert auf dem Server abzulegen ("Sicherheitspassphrase"). Alternativ können sie auch heruntergeladen und lokal gespeichert werden.

Achtung: hast du einmal ein Sicherheitsmerkmal gesetzt, gibt es kein Zurück mehr! Du musst in Zukunft jeden Login verifizieren!

Verifizieren (Quersignierung / Cross Signing)

Bei Matrix hat jede Sitzung auf einem Endgerät (PC, Handy, Tablet, ...) einen eigenen Schlüssel.

Damit du von jeder Sitzung aus alle verschlüsselten Räume lesen kannst, musst du jede neue Sitzung mit den anderen Sitzungen verbinden (verifizieren).

Am einfachsten funktioniert das, wenn du gleichzeitig deinen Account im Webclient geöffnet hast, wenn du dich bei einem neuen Endgerät anmelden willst. Bei der Anmeldung auf dem neuen Endgerät fragt Matrix dann, ob du das neue Endgerät verifizieren willst, was du dann vom Webclient aus bestätigen kannst.

Wenn der neue Client nicht von selbst eine Verifizierung anbietet, dann kann man diesen Prozess unter Einstellungen (Links oben auf den eigenen Account klicken) / Sicherheit selbst starten.

Wenn man gerade in keiner anderen Sitzung online ist, dann muss man sich mit der Sicherheitspassphrase verifizieren - das geht natürlich nur, wenn man sie vorher angelegt hat.

Einer ist immer der Admin

Wenn man bei Matrix einen Raum eröffnet, dann ist man immer automatisch der Admin!

Das hat einen ganz einfachen technischen Grund. Matrix benötigt für jeden Raum eine ID (einen Account), damit der Raum konfiguriert werden kann.

Deshalb erhält der Raumersteller den höchstmöglichen Status, den ein User in einem Raum erhalten kann und das ist der Admin (es gibt auch noch Moderator und Standard (normaler User)).

Jeder User, der nach dem Admin in den Raum kommt, erhält den Status "Standard" und hat erst mal keine besonderen Rechte.

Ein Admin hat sehr umfassende Rechte in einem Matrix-Raum.

  • Er kann andere User zum Moderator oder Admin erheben.
  • Er kann Moderatoren wieder zu Standard Usern degradieren.
  • Er kann einen anderen Admin NICHT wieder degradieren, weil dieser ja die gleichen Rechte hat wie er selbst.
  • Er kann User stumm schalten, aus dem Raum entfernen (der User fliegt aus dem Raum, kann aber wieder zurückkommen), Bannen (der User fliegt für immer aus dem Raum) und aktuelle Nachrichten entfernen.
  • Er kann alle möglichen Einstellungen in dem Raum ändern.

Immer wenn ein Admin eine Veränderung in einem Raum vornimmt, dann wird dazu in dem Raum eine Meldung generiert. Jeder User kann also immer sehen, was der Admin verändert hat.

Bei Matrix hat es sich deshalb in Räumen, in denen größere Gruppen kommunizieren sollen, so eingebürgert, dass der Raumersteller noch mindestens einen Moderator oder einen Admin benennt, damit die Verantwortung für einen Raum nicht nur bei einer Person liegt.

ACHTUNG: Als Admin kann man sich selbst zum User degradieren. Wenn man zu diesem Zeitpunkt der einzige Admin in diesem Raum ist, dann hat der Raum danach keinen Admin mehr und kann nicht mehr betreut werden.

Das verteilte Datenmodell von Räumen in Matrix

Bei unserem neuen Messenger Matrix besteht das zugrundeliegende Datenmodell eigentlich nur aus dem Grundkonzept RAUM!

In so einem Raum können viele User sein, aber auch nur einer (perfekt für die eigenen verschlüsselten Lesezeichen). So ein Raum kann verschlüsselt oder unverschlüsselt sein. Man kann ihn so eröffnen, dass er von außen auch für User von anderen Servern erreichbar ist (offen / dann föderiert der Raum), oder so, dass er nur von Usern des eignen Servers betreten werden kann (intern).

Im Gegensatz zu Signal, Threema, Telegram oder WhatsApp ist Matrix ein Netzwerk von tausenden von Servern, die über die Föderation miteinander verbunden sind.

Jeder, der will, kann sich mit der Serversoftware Synapse selbst einen Server installieren. Alle Accounts auf so einem Server (oder einer Instanz) haben dann in ihrem Accountnamen die Domain dieser Instanz, damit die IDs aller Nutzer über das ganze Netzwerk eindeutig sind (bei uns zum Beispiel @name:piratenpartei.de).

Wenn man bei Matrix einen Chat (einen Raum mit nur einer anderen Person) eröffnet, dann wird dieser Raum immer verschlüsselt und offen erstellt, damit er von außen erreichbar ist.

Der Raum muss deshalb offen (von außen erreichbar) sein, damit immer sichergestellt ist, dass zwei Accounts auf unterschiedlichen Instanzen miteinander kommunizieren können.

Wenn so ein Chat mit Accounts auf verschiedenen Instanzen erstellt wird, dann wird der zugehörige Raum auch auf beiden Instanzen abgelegt, seine Daten stehen somit in den Datenbanken von beiden Servern.

Das ist ganz allgemein immer so, wenn man einen offenen Raum anlegt.

Wenn man zum Beispiel einen offenen Raum auf der Instanz A eröffnet und erst einmal nur User vom eigenen Server teilnehmen, dann liegt der Raum auch zunächst nur in der Datenbank des eigenen Servers. Wenn dann aber der erste User den Raum von einer anderen Instanz B betritt, dann wird der Raum automatisch auf diesen Server kopiert und liegt dann auf den beiden Servern A und B.

Es ist also ganz allgemein so, dass Räume mit Usern von N Instanzen, auch wirklich physikalisch auf N Servern gespeichert werden.

Das bedeutet insbesondere für offene Räume, dass dann die Admins aller N Instanzen in der jeweiligen Datenbank die Datensätze zu diesem Raum einsehen können.

Wenn die Räume verschlüsselt sind, sehen sie hierbei jedoch "nur" die Metadaten - wer ist Teilnehmer dieses Raums, wer hat wann etwas gesagt - aber sie können nicht den Inhalt der Nachrichten oder Kommunikationsinhalte einsehen, solange sie nicht selbst Teil des Raumes sind.

Matrix als Teil unserer SSO Infrastruktur

Unser neuer Matrix-Server ist ein wichtiger Teil der https://sso.piratenpartei.de Infrastruktur. Seine vorrangige Funktion ist die signierte Zustellung von Benachrichtigungen für den BEO (Basisentscheid Online und offline). Um sicherzustellen, dass nur Parteimitglieder auf unserem parteiinternen Matrixserver angemeldet sind, wurde der Login so eingestellt, dass man sich alle 12 Wochen neu anmelden muss. Nur so kann die Parteimitgliedschaft regelmäßig über den Piratenlogin bestätigt werden. Langfristig soll dieser Mechanismus durch eine automatisierte Abmeldung für ausgetretene Mitglieder ersetzt werden.