Echtzeitkommunikation ausprobiert: Willkommen in der Matrix

Mit einem offenen Netzwerk föderierter Server will das Projekt Matrix(öffnet im neuen Fenster) eine quelloffene Alternative zu den Insellösungen für die Kommunikation im Internet bieten. Durch die Einbindung existierender Kommunikationsplattformen wie IRC, Slack, Twitter und sogar Apples iMessage über sogenannte Bridges soll ein großes, dezentrales Netz der Netze geschaffen werden, in dem jeder mit jedem kommunizieren kann.
Matrix ist eindeutig als Tool für die Gruppenkommunikation in Teams oder Chaträumen konzipiert. Das sieht man sofort an der Benutzeroberfläche, die Slack- und IRC-Aficionados bekannt vorkommen dürfte. Aber auch für private Gespräche hält Matrix spannende Funktionen wie zum Beispiel Ende-zu-Ende-verschlüsselte Videotelefonie bereit. Dazu aber später mehr.
Was Matrix kann
Der Kern von Matrix sind die Homeserver(öffnet im neuen Fenster) . Jeder Homeserver verwaltet die dort angelegten Nutzerkonten und speichert alle Chats, an denen die dort registrierten Nutzer beteiligt sind. Selbstverständlich ist die Kommunikation über Homeserver hinweg möglich, ähnlich wie bei dezentralen Systemen wie E-Mail oder XMPP. Das Neue an Matrix ist also nicht das Prinzip, sondern die versprochenen Funktionen.

Wir haben Matrix mit den Riot-Apps(öffnet im neuen Fenster) getestet, den Referenz-Clients, die zeigen sollen, was Matrix alles kann. Riot steht derzeit als Desktop-Variante für Windows, MacOS und Linux sowie als Smartphone-App für iOS und Android zur Verfügung. Letztere ist auch über F-Droid zu haben. Außerdem gibt es bereits mehr als ein Dutzend inoffizielle Clients, darunter auch solche für die Kommandozeile.









Die Bedienung der Riot-Apps ist nicht nur für Slack-Freunde leicht zu erlernen: Links befindet sich eine Liste der Konversationen und Gruppen, an denen man teilnimmt, mittig die Inhalte des jeweils ausgewählten Chats und rechts eine Liste der Teilnehmer desselben. Matrix bietet außerdem alle Funktionen eines modernen Chatsystems: eine serverseitige Suchfunktion, Lesebestätigungen, Schreibnotifizierung und Präsenzanzeige für Kontakte.
Matrix soll aber mehr sein als ein Slack-Klon. Über sogenannte Bridges lassen sich bestehende Tools wie IRC, Gitter, Github oder eben Slack in die Matrix-Oberfläche einbinden. So ist es möglich, über Matrix in IRC-Räumen mitzudiskutieren oder Teil einer Slack-Gruppe zu sein. Die Community arbeitet außerdem offenbar bereits(öffnet im neuen Fenster) an Bridges zu Facebooks Messenger, Whatsapp und Twitter. Matrix soll so in einer einzigen Anwendung eine freie, netzwerkübergreifende Kommunikations- und Informationszentrale bieten.
Leichte Installation, einfache Bedienung
Um herauszufinden, ob das gelingt, installieren wir Riot auf einem Linux-Desktop, einem Macbook Air, einem aktuellen Android-Smartphone und einem iPhone. Überall werden wir in freundlichen Farben empfangen und können problemlos ein Konto anlegen. Persönlich identifizieren muss man sich dabei nicht, ein frei wählbarer Benutzername (die Matrix-ID) und ein Passwort reichen aus.
Ähnlich wie bei anderen föderierten Netzwerken - beispielsweise XMPP - können sich Nutzer bei der Anmeldung aussuchen, auf welchem Matrix-Server sie ihren Account anlegen wollen. Standardmäßig wird der Hauptserver von Matrix.org angeboten, der als Referenzserver kostenlos zur Verfügung steht. Unter dem Punkt "Custom" lassen sich aber beliebige viele andere Server eintragen. So lässt sich Matrix auch daheim oder auf einem fremdgehosteten Server selbst betreiben.
Anschließend erhält der Nutzer eine interne Matrix-ID nach dem Prinzip @name:server, also etwa @musterfrau:matrix.org. Auch Gast-Sessions, mit denen Matrix unkompliziert ausprobiert werden kann, sind möglich.
Contact Discovery und Datenschutz
Eigentlich, so erklärt uns Matrix-Mitbegründer Matthew Hodgson im Gespräch, sollten die Matrix-IDs nach außen gar nicht mehr sichtbar sein. Stattdessen sollen Nutzer neue Kontakte über bekannte Merkmale wie etwa die E-Mail-Adresse finden können. Bereits jetzt ist es möglich, die eigene Matrix-ID freiwillig mit einer E-Mail-Adresse zu verknüpfen. Später sollen auch Telefonnummern oder andere bekannte Merkmale wie Skype- oder Facebook-Namen hinzukommen.
Allerdings ist das Zusammenführen solch sensibler Informationen in einem föderierten Netz wie Matrix eine (datenschutz-)technische Herausforderung. Aktuell speichert Matrix die mit den Matrix-Konten verknüpften Informationen auf einem zentralen Identity-Server. "Das ist ein Desaster" , sagt Hodgson. In einem föderierten Netz "solltest du nicht dazu gezwungen werden, einem zentralen ID-Server zu vertrauen" .
Hodgson und sein Team seien auf der Suche: "Wir müssen das in diesem Jahr lösen" . Angedacht ist demnach ein hierarchischer Ansatz, ähnlich der Funktionsweise des Domain Name Systems (DNS). Eine schnelle Lösung des Problems scheint aber eher unwahrscheinlich, denn das Matrix-Team ist mit drängenderen Arbeiten beschäftigt: Aktuell werden die Identitätsinformationen des zentralen Servers noch nicht einmal gehasht.
Ende-zu-Ende-Verschlüsselung
Alle innerhalb des Matrix-Netzes geführten Konversationen können mit einem Klick Ende-zu-Ende-verschlüsselt werden. Dabei erhält jedes mit einem Nutzerkonto verknüpfte Gerät einen eigenen Schlüssel, dessen kryptographischer Fingerabdruck manuell über die App verifiziert werden kann und sollte. Obwohl sich die Verschlüsselungsfunktion offiziell noch in der Betaphase befindet, funktionierte sie in unseren Tests reibungslos. Ist sie einmal für einen Chatraum aktiviert, wird das durch ein kleines grünes Schlosssymbol angezeigt. Noch nicht verifizierte Geräte bekommen dagegen ein gelbes Warndreieck.
Ziemlich überrascht waren wir dagegen, als wir uns einmal testweise aus der Riot-App ausloggten. Dabei löschte der Client ohne Vorwarnung den zum Account gehörenden Schlüssel und machte damit nach dem Wiedereinloggen die Historien aller verschlüsselten Chats für immer unlesbar. Dabei gingen auch alle bis dahin durchgeführten Schlüsselverifizierungen verloren. Dadurch soll wohl verhindert werden, dass private Schlüssel auf Fremdgeräten gespeichert bleiben.
Dass diese Vorgehensweise etwas zu extrem sein könnte, hat das Matrix-Team schnell gemerkt, im Quellcode ist das Verhalten bereits korrigiert, die Korrektur soll bald als Update verteilt werden. "Als nächstes steht die Implementierung eines automatischen Schlüsseltransfers an" , sagt uns Hodgson. "Und in einigen Monaten wollen wir Multiaccount-Unterstützung einführen."
Signal-Protokoll für große Chats
Die Macher haben sich den Double-Ratchet-Algorithmus(öffnet im neuen Fenster) von Moxie Marlinspikes Signal-Protokoll zum Vorbild genommen und dieses für Matrix implementiert. Dabei herausgekommen sind zwei neue Verschlüsselungsprotokolle namens "Olm" für Zweiergespräche und "Megolm" für große Chaträume. Beide setzen wie Signal auf AES und die erst im vergangenen Jahr durch die Internet Engineering Task Force (IETF) standardisierte elliptische Kurve Curve25519(öffnet im neuen Fenster) .
Vor allem die Anpassung der Verschlüsselung an große Chaträume war Hodgson zufolge nicht ganz einfach: Das originale Signal-Protokoll implementiert nämlich Forward Secrecy, eine Eigenschaft, die verhindert, dass ein Verlust des geheimen Schlüssels auch alle früher gesendeten Nachrichten kompromittiert. Das kann in großen Chaträumen zum Problem werden, weil später hinzugekommene Teilnehmer so die Chathistorie nicht mehr entschlüsseln können. Megolm lässt Nutzern daher die Wahl: Für jeden Raum lässt sich bestimmen, wer die Chathistorie lesen können soll. Noch ist die Verschlüsselung in neuen Chaträumen nicht standardmäßig aktiviert, das soll aber folgen, sobald die Betaphase von Olm und Megolm offiziell beendet ist.









Wie der Rest des Matrix-Codes ist die Verschlüsselung quelloffen und steht Interessierten zur Inspektion auf Github zur Verfügung(öffnet im neuen Fenster) . Einen vollen Code-Audit hat Matrix zwar nicht hinter sich, Olm und Megolm wurden dank finanzieller Unterstützung durch den Open Technology Fund aber bereits professionell geprüft(öffnet im neuen Fenster) .
Video- und Gruppentelefonie per WebRTC
Neben der Chatfunktion bietet Matrix verschlüsselte VoIP-Telefonie mit Videounterstützung und Gruppen-Calls. Genutzt wird dazu der von Mozilla und Google vorangetriebene WebRTC-Standard, der Videotelefonie per Javascript ohne Plugins direkt im Browser implementiert. Die Sprach- und Videoqualität war in unseren Tests sowohl in der Desktop-Anwendung als auch in den Apps für Android und iOS sehr gut.
Vorsicht ist allerdings bei der Verschlüsselung der Anrufe geboten. Bisher können über WebRTC nur 1:1-Anrufe wirklich Ende-zu-Ende-verschlüsselt werden. Bei Gruppen-Calls entschlüsselt der Server die Datenströme aller Teilnehmer und bündelt sie aus Effizienzgründen in einen einzigen Strom. Sowohl Signaling als auch die eigentlichen Sprach- und Videodaten sind in diesem Fall also maximal per TLS bis zum Server gesichert.
Wem gehört die Matrix?
Hinter Matrix.org steht eine gemeinnützige Organisation mit Sitz in London. Die beiden Gründer des Projekts, Matthew Hodgson und Amondine Le Pape, sowie ein kleines Kernentwicklerteam werden aber vom US-Softwaredienstleister Amdocs bezahlt, der auch die Rechte an Riot hält.
Amdoc habe bei der Entwicklung natürlich ein kommerzielles Interesse, bestätigt Hodgson. Ziel sei vor allem, Hosting- und Supportdienste für Geschäftskunden zu entwickeln und so die Matrix-Plattform zu vermarkten. Erste Erfolge scheint es bereits zu geben: Der Netzwerkausrüster Ericsson hat offenbar ein auf Matrix basierendes Produkt im Portfolio(öffnet im neuen Fenster) . Ein weiteres Geschäftsfeld für Amdoc könnten kostenpflichtige Bridges für Geschäftsanwendungen sein.









Der Quellcode von Matrix, versichert Hodgson, solle aber immer frei bleiben. Nicht nur der Matrix-Server, auch der Quellcode der Riot-Clients steht unter der Apache-Lizenz auf Github zur Verfügung(öffnet im neuen Fenster) . Die Offenheit scheint sich auszuzahlen. Alleine der Matrix-Referenzserver beherbergt nach Angaben des Projekts inzwischen über 700.000 Accounts, die an rund 70.000 Chaträumen beteiligt sind. Außerdem gebe es bereits 1.500 föderierte Matrix-Server, 50 davon würden von Unternehmen betrieben. Mit einem solchen freien Netz will Matrix vor allem resilient gegen Zensur sein.
Es bleibt viel zu tun, es tut sich viel
So ausgereift und funktionsreich Matrix-Server und Riot-Clients bereits sind, einige Funktionen lassen noch auf sich warten. Aufgefallen ist uns die aktuelle Umsetzung der Schlüsselverifizierung. Sie sei nur ein "Platzhalter" für eine bessere Lösung, an der man arbeite, versprach Hudgson auf der Open-Source-Konferenz Fosdem. Man prüfe derzeit QR-Codes, wie sie zum Beispiel Signal oder Threema nutzen, oder das Cross-Signing von öffentlichen Schlüsseln.
Bis es soweit ist, müssen Nutzer mit dem manuellen Abgleich der über 40 Zeichen langen kryptographischen Fingerabdrücke vorlieb nehmen, was bei einem Dutzend Gesprächspartnern mit je zwei bis drei Geräten natürlich alles andere als nutzerfreundlich ist.
Außerdem speichert Matrix zwar die Chaträume dezentralisiert, die Nutzerkonten aber nicht. Ein Konto, das auf Matrix.org angelegt wurde, ist nur dort gespeichert und: Es steckt dort fest. "Du kannst noch nicht von einem Server auf einen anderen migrieren. Das ist ziemlicher Mist" , gab Hodgson schon in seinem Vortrag auf der Fosdem(öffnet im neuen Fenster) offen zu. Das zu ändern, stehe ganz oben auf der Prioritätenliste.
In unseren Tests hat Matrix mit den Riot-Apps trotz seines jungen Alters insgesamt aber einen sehr reifen Eindruck gemacht. Probleme werden schnell behoben und das Entwicklerteam scheint immer ein offenes Ohr für Fragen und Anregungen zu haben. Wer nicht davor zurückschreckt, etwas Neues auszuprobieren und mit einer hohen Update-Frequenz für Desktop-Anwendungen und Apps leben kann, der findet mit Matrix ein faszinierendes und vor allem freies Kommunikationswerkzeug für große und kleine Teams.



