Linux- und Open Source-Entwicklung in Deutschland

Photo by Annie Spratt on Unsplash
Interview mit Tobias Fella zum Matrix-Client NeoChat

Dies ist die erste Folge einer lockeren Reihe von Interviews mit Linux- und Open Source-Entwicklern aus Deutschland und dem deutschsprachigen Raum. Heute erzählt Tobias Fella etwas über die Entwicklung des Matrix-Clients NeoChat.

LN: Carl Schwan und Du habt der Matrix-Community mit NeoChat einen neuen Client beschert, der ein konvergentes User-Interface aufweist und am Desktop wie unter Plasma Mobile eine gute Figur macht. Dabei habt Ihr das kaum mehr weiter entwickelte, in C++ und QtQuick Controls 2 realisierte Projekt Spectral geforked. Was waren Eure Beweggründe für einen neuen Client?

TF: Das hat hauptsächlich zwei Gründe: Wir arbeiten in KDE schon seit Längerem daran, unsere Kommunikation von IRC und Telegram wegzubringen, wobei ein eigener Client natürlich hilft, Leute zu Matrix hinzubewegen. Außerdem brauchen wir einen guten Matrix-Client für Plasma Mobile und da wir mit QtQuick und Kirigami eine gute Grundlage für konvergente Programme haben, hat sich das angeboten.

Und weil die wichtigen Teile von Qt und den KDE Frameworks auf vielen Plattformen funktionieren, gibt es damit auch noch einen neuen Matrix-Client für Windows, macOS und Android.

LN: Gerade ist mit Neochat 1.1.1 die dritte Version nach der stabilen 1.0 im Dezember erschienen. Ihr habt einige neue Funktionen implementiert, einige größere Brocken fehlen aber noch. Kannst du den Lesern etwas über eure Roadmap verraten?

TF: Der nächste größere Teil, den wir entwickeln, ist die Ende-zu-Ende Verschlüsselung, das wird einige Zeit brauchen. Danach kommen wahrscheinlich Sprach-/Videoanrufe, wobei da selbst die Matrixspezifikation und die meisten Matrix-Clients noch nicht sehr weit sind. Bei der Entwicklung von den Anrufen wollen wir mit den Entwicklern von Nheko (einem anderen Matrix-Client) zusammenarbeiten, da Nheko schon grundlegende Sprach- und Videoanrufe unterstützt und wir damit hoffentlich doppelte Arbeit bei neuen Features sparen können. Außerdem arbeiten wir natürlich immer an Verbesserungen im User Interface, an Bugfixes und Performanceverbesserungen. –

NeoChat als Flatpak
NeoChat 1.1

LN: Besonderes Augenmerk legen potenzielle Anwender auf Ende-zu-Ende-Verschlüsselung. Viele wollen NeoChat erst einsetzen, wenn E2EE umgesetzt ist. Viele Clients, die sich E2EE als Entwicklungsziel auf die Fahnen geschrieben hatten, existieren nicht mehr. Kannst Du etwas zu den Problemen der Implementierung sagen? Könnt ihr euch bei Element (ehemals Riot) diesbezüglich etwas abschauen?

TF: Das Problem bei der Implementierung von E2EE ist, dass es viel Arbeit ist: die grundlegenden kryptografischen Funktionen müssen implementiert werden, dann die Infrastruktur zur Schlüsselverwaltung. Das ganze muss dann so in den Client eingebunden werden, dass das Interface auf die entschlüsselten Events zugreifen kann, als wären es normale Events. Dann kommen noch andere Sachen dazu: Verifizierung von anderen Geräten und Benutzern, sicheres Speichern von den verschiedenen Schlüsseln und so weiter.

Und weil das ganze sicherheitskritisch ist, muss es natürlich gut getestet werden. Selbst wenn die Implementierung richtig ist, können einige Dinge schiefgehen, die dem Benutzer dann gut mitgeteilt werden müssen. Bei Element kann man sich dabei ein paar Sachen abschauen.

Die meisten kryptografischen Funktionen, die gebraucht werden, sind in einer Bibliothek implementiert, die von den meisten Matrix-Clients verwendet wird. Danach wird es etwas schwieriger, weil Element nicht in C++ programmiert ist und intern anders strukturiert ist als NeoChat und die Bibliothek libQuotient, wodurch man nicht alles direkt übernehmen kann. Im User Interface kann man sich dann wieder anschauen, wie andere Clients mit den Details der Verschlüsselung umgehen und sich davon inspirieren lassen.

Tobias, vielen Dank, dass Du Dir Zeit zur Beantwortung der Fragen genommen hast.

Kommentare

19 Antworten zu „Linux- und Open Source-Entwicklung in Deutschland“

  1. Avatar von tux.

    Schade, dass Projekte von IRC weg wollen, ohne das irgendwie zu erklären. IRC ist wesentlich Ressourcen schonender als Matrix.

    1. Avatar von Ferdinand

      Wenn wenigstens die Bridges von Matrix zum IRC ordentlich funktionieren würden…

      1. Avatar von Fuchs
        Fuchs

        Bestimmte Dinge, die Du vermisst / bemängelst? Also ich weiss, die Liste ist sehr lang, und wir (freenode) sind da auch regelmässig mit den Matrixleuten am kämpfen, aber aus Endanwendersicht wäre ggf. auch mal interessant zu wissen.

        Mir bekannte Probleme sind der Murks mit Formatierungen bei Quote, bei langen Nachrichten, bei Nachrichten die nicht dargestellt werden können, desync-Probleme und Probleme mit Kanal- und Usermodes, welche eigentlich ein Beitreten erlauben aber Matrix ignoriert. Dazu noch ab und zu eine sehr hohe Latency (die allerdings auch Matrix <> Matrix und Matrix <> Sonstwas betrifft, also vermtl. nicht die IRC bridge)

    2. Avatar von kamome
      kamome

      Ich freue mich über/auf Matrix – aber, solange Audio, Video, Screensharing nicht funktionieren, finde ich auch, dass man IRC oder XMPP noch nicht abschalten sollte (wenn überhaupt)!

      1. Avatar von no one
        no one

        Für einen IRC/XMPP Ersatz reicht die Funktionalität aber schon und speziell IRC funktioniert einfach nicht so, wie man das heute von einem Chat erwartet oder erfordert dazu Bouncer.

        Als nächstes sind dann die Mailinglisten dran.

        1. Avatar von tux.

          Wie erwartet „man“ das denn? Mir fehlt da nichts.

    3. Avatar von Fuchs
      Fuchs

      KDE will nicht weg von IRC, die Behauptung ist schlicht falsch. Es wurde entschieden, nach längerer Diskussion und Abstimmung, dass Matrix und IRC ein gleichberechtigtes Dasein fristen. Dass die Matrix-Seite hier erneut Fehlinformationen streut finde ich ehrlich gesagt ein bisschen schade.

      Von daher: keine Angst, KDE bleibt auf freenode erhalten.

      1. Avatar von Ferdinand

        …und auf OFTC mit #debian-kde und #debian-qt-kde

    4. Avatar von Tux
      Tux

      Matrix kann ja auch mehr als ein bisschen Text rumzuschubsen. Manchmal möchte man einen Emojipicker verwenden, Bilder oder Dateien in den Chat einbinden oder einen Anruf starten, natürlich mit E2EE. Deswegen ist IRC für mich nicht mehr relevant.
      Der Go-Server Dendrite soll schon jetzt schlanker und effizienter als Synapse sein. Zudem gibt es einen Low-Bandwidth-Modus im Matrix-Labor und man kann auch ein IRC-Design auswählen, dass den Text besser komprimiert. Dass aber noch viel getan werden muss, ist klar, aber das Team ist nicht riesig und hat keine 150 Millionen von der Hollywood-Mafia oder Tencent erhalten.

      1. Avatar von tux.

        Ich möchte niemals einen Emojipicker verwenden. Aber gute Nachrichten: Bis auf Anrufe (für die alles außer Telefon eh die falsche Wahl ist) können zeitgenössische IRC-Clients das alles. Und man muss dafür nicht mal das Sicherheitsproblem WebRTC freigeben.

  2. Avatar von Carl

    Kool interview 🙂

  3. Avatar von perko
    perko

    Das Protokoll vom Matrix ist ein kapitaler Designfehler, weil das auf HTTP aufsetzt und JSON als Datenformat verwendet. Erst darauf aufbauend das eigentliche Matrix Protokoll implementiert.
    HTTP Pakete kann man von JavaScript ausleicht erzeugen, welches einen größeren Angriffsvektor bietet und Firewalls das Leben schwer macht in Sachen Sicherheit. Das Signal Chat Protokoll ist vom Code her kaum größer als ein JSON Parser. Das Signal Protokoll verzichtet so auf komplexes Design, und Layer im Layer im Layer. Das führt zu weniger Datenverbrauch und weniger Ressourcenverschwendung auf der Client- und Serverseite. Also weniger komplex und dafür noch ressourcenfreundlich was man auf dem Mobile Phone auch wirklich haben möchte.
    Es geht hier darum zu zeigen wie man es richtig macht im Protokolldesign, ob das Signal ist ist hier uninteressant.

    Wenn Matrix ein eigenes Protokoll auf IP aufgebaut hätten oder TCP/UDP. HTTP wurde dafür entwickelt Webseiteninhalte darzustellen. Aber es für alles andere einzusetzen ist, speziell für sichere Kommunikation ist völlig ungeignet.

    Gutes Beispiel gegen den Einsatz von HTTP als Protokoll ist der slipstream https://github.com/samyk/slipstream Angriff.

    1. Avatar von Tux
      Tux

      Vor zwei Jahren hat sich das Matrix-Team der 100-Bit-Herausforderung gestellt und sie bewältigt. Die Lösung: CoAP + CBOR + Deflate + Noise
      https://matrix.org/blog/wp-content/uploads/2019/02/2019-02-03-FOSDEM-Low-Bandwidth.pdf

      Es fehlt halt an Geld und Mitarbeitern, um alle Baustellen gleichzeitig zu bewältigen. Aktuell wird an Spaces und Threading gearbeitet, weil viele Unternehmen und Regierungen darauf angewiesen sind. Zudem wird ein Go-Server namens Dendrite entwickelt (aktuell von Neil Alexander, der Yggdrasil-Entwickler), da Synapse nicht sonderlich performant ist.

      Ich würde mich auch wünschen, dass es schneller voranginge, aber mit begrenzten Mitteln kann man nicht so viel erreichen.

  4. Avatar von Jochen Geyer
    Jochen Geyer

    Ich kenne genügend Projekte die auch zukünftig auf xmpp, oder IRC setzen.
    Aber auch einige Projekte bei denen beispielsweise Mattermost zu Einsatz kommt.
    Nur weil ein paar Projekte (wenn auch mit zunehmender Beliebtheit) Matrix verwenden, ist Matrix zumindest im Moment noch kein Standard für die Projektkommunikation.

    1. Avatar von Tux
      Tux

      Matrix wird schon von etlichen Regierungen, öffentlichen Einrichtungen und Unternehmen benutzt.
      Zudem von vielen sicherheitsbewussten Privatanwendern und ITlern. Mehrere Millionen kommen da schon zusammen.

      1. Avatar von Jochen Geyer
        Jochen Geyer

        Matrix wird schon von etlichen Regierungen, öffentlichen Einrichtungen und Unternehmen benutzt.

        Das sind nun wirklich keine Neuigkeiten für mich, aber mir ging es einzig darum, dass es weiterhin den pluralen und dezentralen Ansatz in (F)OSS Projekten.

        Regierungen, öffentlichen Einrichtungen und Unternehmen sind mir ziemlich schnurz!

        Zudem von vielen sicherheitsbewussten Privatanwendern und ITlern. Mehrere Millionen kommen da schon zusammen.

        Auch hier wird vernachlässigt, dass Matrix Synapse deutlich mehr Ressourcen – auch wegen der Featuritis – benötigt, im Vergleich zu einem xmpp deamon, obwohl Matrix auch noch viele Probleme mit Bridges zu anderen Protokollen besitzt.

        Also wo sollte der Vorteil von Matrix sein?

        1. Avatar von no one
          no one

          Die Nutzung durch Regierungen usw. wird allerdings dazu beitragen, dass das alles halbwegs zügig weiterentwickelt wird.

          Auch ist mit Dendrite bereits ein deutlich ressourcenschonender Server in der Entwicklung.

          Zum Teil ist der höhere Ressourcen-Bedarf allerdings auch „gewollt“ und Teil des Matrix-Konzepts, da ein Räume nicht nur auf dem Server existieren, auf dem sie erstellt wurden, sondern auf alle beteiligten Server repliziert werden (sofern man Föderation erlaubt). Das soll die Verfügbarkeit der Chat-Historie auch nach einem Ausfall des ursprünglichen Host-Servers garantieren.

          Und wenn man XMPP mal mit ein paar Basisfeatures (Ende-zu-Ende-Verschlüsselung, Gruppenchats, Multi-Device-Fähigkeiten usw.) ausstattet, gibt es ein XEP/Kompatibilitäts-Chaos, das dem Normalo nicht mehr zu vermitteln ist.
          Im Fall von Matrix kann man sich dagegen einfach an die Referenz-Implementierungen halten.

          1. Avatar von Jochen Geyer
            Jochen Geyer

            Ich werde es kurz und schmerzvoll halten, denn auch meine Zeit ist endlich.

            Zum Teil ist der höhere Ressourcen-Bedarf allerdings auch “gewollt” und Teil des Matrix-Konzepts, da ein Räume nicht nur auf dem Server existieren, auf dem sie erstellt wurden, sondern auf alle beteiligten Server repliziert werden (sofern man Föderation erlaubt). Das soll die Verfügbarkeit der Chat-Historie auch nach einem Ausfall des ursprünglichen Host-Servers garantieren.

            Bekannt, aber dennoch ineffizient.

            dem Normalo nicht mehr zu vermitteln ist.

            Der sogenannte „Normalo“ ist mir ziemlich egal.
            Einen der ersten Leitsätze den ich in der IT verinnerlichte lautet: „Nimm den Leuten das Denken nicht ab!“

            Und wer meint, sich ein DAU System installieren zu müssen, wird bei mir immer abblitzen.

            Ich gebe maximal Hilfe zur Selbsthilfe!
            Also beispielsweise die Lösung eines konkreten Problems, betreutes Installieren, oder ähnliche Scherze, gibt es bei mir nicht.

          2. Avatar von no one
            no one

            Bekannt, aber dennoch ineffizient.

            Das ist einfach ein Trade-off. Ob die Vor- bzw. Nachteile für einen überwiegen, muss dann jeder selbst wissen.

            Der sogenannte “Normalo” ist mir ziemlich egal.

            Das führt zu Messengern, die niemand nutzt und damit dann auch für viele nicht-DAUs wertlos sind.

Schreibe einen Kommentar

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