Signal statt XMPP

Mein Freundeskreis wünscht sich einen einheitlichen Messenger und trotz vieler Jahre gab ich meinen Widerstand auf. Ein Bericht und Praxisvergleich, warum Signal gar nicht so schlecht ist.

Nicht Jabber?

Ich liebe nicht nur OpenSource und Dezentralität, sondern halte sie sogar für jede große Infrastruktur für essentiell. Obwohl das bei EMail von Anfang an durch eine Vielzahl von Server-Betreibern und Mailprogrammen völlig normal war, war genau das bei den damaligen Messangern (ICQ, MSN, …) problematisch. Das später erschiene offene XMPP / Jabber-Protokoll holte all dies nach. Es verwundert nicht, dass ich trotzdem bereits zeigte, das das somit der Messenger meiner Wahl ist (siehe Hallo Gajim!).

Conversations, ein fortschrittlicher XMPP-Messanger

Allerdings wurde in den letzten Jahren verpasst, wichtige Features zu ergänzen, welche Nutzer von WhatsApp nun gewohnt sind.  Denn obwohl Funktionen wie Gruppenchats, Photos, Emojis, und natürlich Verschlüsselung mittlerweile unterstützt werden, gab es in meinem Umfeld doch auch öfters Probleme, offenbar weil Clients und die Server nicht fehlerfrei zusammenspielten. Dies sind nicht nur Probleme wie die ausgefallene Verschlüsselung, oder die unvollständige Syncronisation mit dem Desktop. Denn leider können sogar Nachrichten verloren gehen. Insbesondere instabile mobile Datenverbindungen scheinen dies zu forcieren. Aber auch genrell die vielen einzelnen Schritte (Account klicken, Verschlüsselungsmethode entscheiden, Keys verifizieren, …) und Einstellungsmöglichkeiten sind für normale Endnutzer (sprich: Familie, Freunde und nicht-Techniker) noch viel zu kompliziert. Und einige Komfort-Funktionen, wie das Zurücknehmen von Nachrichten, das Individualisieren von Gruppen, … fehlen derzeit leider noch komplett.

Da aus diesen Gründen mittelfristig niemand zu XMPP wechseln wollte, musste also eine gemeinsame Alternative gefunden werden, welche möglichst viele mobile Plattformen und idealerweise auch Desktop Betriebssysteme unterstützt. Da die meisten Vergleiche im Netz nicht gut recherchiert sind, werden dort oft wichtige Einschränkungen unterschlagen. Die fallen einem leider erst nach ein paar Tagen auf, weshalb es ohne eigenes Ausprobieren nicht geht. Hierbei entstand der folgende Vergleich.

Anforderungen

Die Wünsche an die Software lässt sich ganz übersichtlich zusammenfassen:

  • OpenSource Clients für Android und Windows, Linux
  • Läuft auf Android LineageOS, deshalb auch ohne Google Play Bestandteile / Google Cloud Messaging
  • permanente Ende-zu-Ende Verschlüsselung , hoher Datenschutz
  • Robustheit für online / offline Betrieb
  • Basic-Funktionen wie kein Nachrichtenverlust, Gruppenchats, Bilder, …
  • erweiterte Funktionen wie remote Nachrichten löschen, Avatar für Gruppen, …

Einige dieser Funktionen sind natürlich scheinheilig, denn Informationen von fremden Geräten zu löschen ist in Netzwerken nicht zuverlässig möglich. Es geht hier aber auch eher darum mal das falsch gewählte Photo zu tilgen, oder eine falsche Formulierung zu korrigieren. Ähnlich verhält es sich mit selbst-zerstörenden Nachrichten und der Verschlüsselung. Denn wenn niemand den Code anschauen und die App selber bauen kann, ist sowas meist nur graue Theorie und wenig robust. Eine energiesparende push-notifcation ohne die Google Hintergrunddienste ist derzeit wohl ebensowenig zu erreichen.
Leider nutzen die meisten Messenger die Handynummer als Kontaktinformation und deshalb werden alle Nummern des eigenen Telefonbuchs transferiert und auf den Servern abgeglichen. Das führt dann dazu, dass man auch Kontakt zu Leuten erlangt, denen man eigentlich gerne aus dem Weg gegangen wäre. Sei es der eigene Chef oder der Ex. Und leider muss man neuen Kontakten dann immer gleich die Telefonnummer mitteilen, was natürlich auch eine (spätere) Identifikation weit über den Messenger hinaus ermöglicht.

Für die Messenger werden natürlich auch Server benötigt. Zum einen für das Auffinden der Kontakte, aber auch für das Weiterleiten / Zwischenspeichern der Nachrichten selbst. Oft werden diese bei einem großen Cloud-Anbieter gehostet, was zwar die Skalierbarkeit verbessert, aber eben auch die Abhängigkeit und Zensierbarkeit erhöht. Und natürlich muss man sich fragen, wie der Anbieter solche Kapazitäten gegen finanzieren, wenn jeder Nutzer bis zu 1,5GB für die Ablage von Video/Audio/Photos nutzen kann und es zusätzlich auch noch SMS-Gateways bedarf. Werden alle Server von nur einem Anbieter betrieben, können so außerdem mißliebige Inhalte entfernt werden (z.B. Sticker bei Telegram), was immer mißliebig dabei heißen mag.

Nicht Telegram!

Bereits die Verschlüsselung und freie Verfügbarkeit des Quellcodes lässt die Auswahlmöglichkeiten beträchtlich schrumpfen. Von den bekannteren Whats-App Alternativen ist Theema leider nicht kostenlos und Telegram schied nach einigen einigen Tagen aus:
Man findet die App zwar im freien F-Droid repo und auch bei Ubuntu, doch die Verschlüsselung ist nur mit Einschränkungen möglich. Konkret lässt sie sich nur mit live-Chats (p2p) nutzen und nicht offline und auch die multi-device Syncronisation funktioniert dann nicht. Das Ganze ist also nur optional….

Der Mobile Client hat leider auch recht unsichere Voreinstellungen (alle dürfen Infos haben / kontaktieren, ext. Inhalte werden nachgeladen / …) und auch einige merkwürdige Bugs (kein Avatar-Photo aus den Telefon-Kontakten, …). Ganz allgemein halte ich die in-App Erweiterungen wie etwa Spiele für ein bisschen gefährlich, gerade weil Telegram viele App-Berechtigung von Android haben möchte.
Aber natürlich sind auch viele nette Features dabei:

  • Voicecalls möglich (p2p)
  • Link-Previews
  • individualisierbare Sticker-Addons z.B. Star Trek, …
  • Replys direkt auf einzelne Nachrichten -> Threads möglich
    Weiterleiten von Nachrichten

Auch die vielen Ähnlichkeiten zu XMPP Clients wie Conversations (look & feel, tg:// Links zum verteilen, Standort versenden, …) machten die Nutzung durchaus angenehm. Aber Sicherheit geht vor, also wurde das nichts mit uns!
Ein letzer Wehmutstropfen ist zum Schluss, dass man dort das Konto nur sehr umständlich löschen kann.

Signal

Final bin ich bei Signal gelandet. Denn obwohl dieser nicht im F-Droid auftaucht, kann man die App direkt von der Webseite herunterladen und diese funktioniert sehr gut mit LineageOS. Ein völlig offener Fork namens Libresignal wurde aber schon wieder eingestellt.

Die App erklärt sich selbst sehr gut, z.B. welche Berechtigungen warum erforderlich sind und welche Konsequenzen gewisse Aktionen haben. Zusätzlich ist in der Online-Doku auch vieles erklärt, etwa wie einfach man ein Konto löschen kann. Da Verschlüsselung per default und opportunistisch (zunächst ohne Schlüssel-Verfikation) genutzt wird, ist der Client trotzdem für Normalsterbliche sehr einfach zu nutzen. Teilweise wird man überrascht, wenn der Messenger meldet, dass nun weitere Nutzer aus dem Telefonbuch auch neu bei Signal hinzugekommen sind. Aber das hatte ich ja schon als generelles Problem kritisiert.
In den letzten Wochen sind mir auch nur ein paar kleine Einschränkungen gefunden:

  • Standort senden klappt nicht
  • keine Threads für Diskussionen (nur quotes möglich)
  • Sticker sind vorkonfiguierte GIFs (was viel Traffic verursacht und keine Favorisierung zulässt)
  • verifizieren ist unnötig kompliziert (Diskussion – Einstellungen – Sicherheitsnummer anzeigen. Dann QR Code scannen bzw. Fingerprint vergleichen)

Der Signal Desktop ist für Linux / Windows verfügbar und kann einfach mit dem Smartphone gekoppelt werden. Bei mir läuft er als snap aus dem Store in Version 1.11 unter Linux Mint 18.3 völlig stabil. Er übernimmt dort auch automatisch die Avatare des Smartphones und miemt die Optik des Android-Clients weitestgehend nach.
Es scheint aber leider so, als würde er etwas stiefmütterlicher behandelt werden, als die App. Das zeigt sich zum einen in konzeptionellen Sicherheits-Problemen [1], [2], aber auch darin, dass einige Funktionen hier noch fehlen:

  • kann Audio/Video Chats nicht
  • kann Gruppen nicht bearbeiten
  • Diskussion können nicht stumm geschaltet werden
  • Kontakte können nicht verizifizert werden (?)
  • nur sporadisch übersetzt

Lässt man beide Clients parallel laufen, sieht man dann auch deutliche Zeitverzögerungen, was ich von Jabber eigentlich nicht kenne. Auch bereiten schmalbandige Verbindungen (Bahn, Freifunk, …) der Software offenbar Probleme. Dann kommt entweder kein Login zustande, oder es werden Fotos nicht zuverlässig geladen. Allgemein dauert die Synchronisation einiger dutzend Nachrichten durchaus ein paar Minuten. Das dies schneller geht wäre sehr wünschenswert!
Möchte man den Messenger für Automatisierung nutzen, scheint es nur die Möglichkeit zu geben per signal-cli einen neuen Client mit dem Konto zu verknüpfen und Kontakte zu benachrichtigen. Spezielle Bot-Accounts o.Ä. sind nicht vorgesehen.
Auch ein Weitergeben / verlinken von Gruppen ist leider nicht möglich, lediglich ein „Freunde einladen“ ist eingebaut, was SMS mit Verweis auf die App verschickt und die Telefonnummer natürlich mitliefert.
Da mir selbst die Zeit und das Wissen fehlt, um hier aktiv an Verbesserungen mitzuwirken, bleibt mit nur für das Projekt und den Betrieb der Server zu spenden.

Fazit

Die letzten Wochen zeigten mir, dass Signal eine super Ergänzung zu Jabber sein kann. Es ist schnell eingerichtet und funktioniert weitestgehend problemlos. Die Verbreitung ist signifikant größer, so dass man Familie & Freunde deutlich einfacher dazu bewegt kriegen sollte, diesen Messanger anstatt WhatsApp zu nutzen. Summa summarum sind die Funktionen der Dienste (aber auch ihre Einschränkungen) weitestgehend vergleichbar.
XMPP könnte all dies sicherlich auch, aber setzt einheitlich gut gewartete Server und einfach gehaltene Clients voraus, die passende Erweiterungen automatisch unterstützen (XEP-Erweiterungen, siehe compliance suite). Derzeit ist das aber für Normalverbraucher schlicht noch zu fummelig & störanfällig. Ich setzte da noch etwas Hoffnung, wenn die Community dies als gemeinsames Ziel erkennt und z.B. OMEMO als Verschlüsselung konsequent unterstützt.

Ein völlig neuer Aspekt kommt übrigens hinzu, wenn der ganze Freundeskreis vernetzt ist. Da man nun viele Kontakte- und Gruppen-Diskussionen hat, erfordert dies auch eine gewissen Fokus, quasi Funkdisziplin. Das Ganze ist aber ja schon seit IRC bekannt und kann man wohl auch heutzutage nur über Stummschalten einzelner Kanäle erreichen. Getreu dem Motto: Wenn es wichtig ist, wird schon jemand anrufen 😉

Author: Matthias
Betreibt dies Blog und probiert so einiges aus Technik herauszuholen. Oft mit Bezug zur Wirklichkeit, aber manchmal auch weil es eben geht ;-) Hat sich von Robotron über Basic, ASM, qC, ... soweit hochgearbeitet, dass er eigentlich gar nicht mehr so oft codet.

20 thoughts on “Signal statt XMPP

    1. Die Kritik an dem Ansatz mit Telefonnummern hatte ich ja schon im Artikel geschrieben. Aber natürlich ist die Nutzung eines existierenden Kontakt-Handles sehr komfortabel und erspart es neue Konten anlegen und neu miteinander austauschen zu müssen.

  1. Ein paar Ergänzungen bzw. Korrekturen:

    Eine energiesparende push-notifcation ohne die Google Hintergrunddienste ist derzeit wohl ebensowenig zu erreichen.

    Das ist falsch. Ich habe Conversations aus dem F-Droid-Store installiert (ergo: Google-frei) und es taucht in den Akku-Statistiken nicht auf und falls doch, dann nur mit 1% Verbrauch. Das bestätigt auch der Entwickler von Conversations.

    Die Probleme mit dem Vertrauen der Schlüssel bei OMEMO kann ich teilweise bestätigen, aber ich denke, dass sich in Zukunft die Unterstützung der Clients stabilisieren wird. Als Ergänzung sei erwähnt, dass OMEMO im Gegensatz zu Telegram das Rad nicht neu erfindet, sondern auf das Signal-Protokoll zurückgreift.

    Ich habe gerade angefangen, primär Conversations als Client und Jabber mit OMEMO zum Einsatz in Familie und Freundeskreis zu evaluieren. Auf dem Desktop hab eich aktuell Dino in Beobachtung.

    Ich sehe Signal fast genauso kritisch wie Telegram. Man darf Signal bzw. Moxie Marlinspike für die Entwicklung für einer modernen E2E-Verschlüsselung für Instant-Messaging sehr dankbar sein, jedoch gefällt mir das Gebaren von Moxie Marlinspike überhaupt nicht:
    Dritt-Clients mag er nicht (die sollen gefälligst ihren eigenen Server aufsetzen) – mit einem solchen ließe sich die Abhängigkeit von Electron beseitigen – und Föderation findet er auch doof. Dass Signal sagt, dass sie die Metadaten (die sind nämlich das eigentlich interessante!) nicht speichern, ist schön und gut, mir ist es dennoch lieber, wenn die Metadaten einen begrenzten Kreis gar nicht verlassen können, indem ich den Server selbst betreibe und mein Bekanntenkreis größtenteils diesen Server nutzt. Eine geringe Verbreitung von Jabber kann auch mal Vorteile haben 😉

    Auch, dass Signal im Gegensatz zu XMPP zwingend die Angabe einer Telefonnummer voraussetzt, ist für mich ein KO-Kriterium.

    In meinen Augen ist Signal nur ein weiterer Walled Garden, der ein bisschen Datenschutz-freundlicher als der Rest ist.

    1. Danke für deine Ergänzungen!
      Wegen GCM und dem Akku-Problem, das las ich schon an verschiedenen Stellen und nahm an, dass das noch aktuell ist. Mir selbst fehlt der Vergleich, aber wenn das OS nur eine Verbindung zu einem einzigen Notification-Server halten muss (anstatt das jede App das selbst macht).

      Das Signal deutlich anders als Telegram ist, habe ich ja oben beschrieben, von daher kann ich dem so nicht zustimmen.
      Ich liebe Federation, kann aber die Sorger der Heterogenität auf Server/Clientseite durchaus nachvollziehen. Man merkt es eben leider bei XMPP, dass sich Änderungen nur sehr langsam durchsetzen, weil sehr viele Entwickler und Admins sich kümmern müssen.

      Der Einsatzzweck für mich sind nicht-Techniker und da erscheint mit Signal ein ausgewogener Kompromiss. Jabber werde ich natürlich trotzdem weiter nutzen und meinen Server lebendig halten. Auch ich hoffe ja, dass da noch einiges passiert 🙂

  2. Hallo Matthias,

    persönlich bin ich bei matrix.org mit dem Client riot.im gelandet. Wäre das keine Alternative für euch?

    Es ist ein dezentraler Betrieb möglich. Funktioniert mit Nutzername und nicht mit Telefonnummer- Am Desktop nutze ich den Webclient. Smartphone und Desktop sind synchron. Audiochat gibt es auch.

    Grüße Max

  3. Die Anforderung auf dem Desktop zu laufen erfüllt Signal praktisch nicht. Die Signal-Desktop-App erfordert eine Koppelung mit einem Android-Smartphone. Damit sind Menschen, die kein Smartphone haben (wollen) bei Signal schonmal ausgeschlossen. Ich zum Beispiel.

    Das Thema Rufnummer hast Du schon als Problem genannt. Freunde/Familie haben meine Festnetznummer (mobil habe ich wie gesagt nicht) sowieso, aber ich gebe meine JID auch an einigermaßen „fremde“ Personen, denen ich nie und nimmer einfach meine Rufnummer gäbe. Das wäre ein zusätzliches Problem, selbst wenn ich Signal überhaupt ohne Smartphone nutzen könnte. Und mehrere Accounts werden ganz schwierig. Anonym? Ich habe mal spaßeshalber versucht, eine anonyme Rufnummer zu ergattern. Habe ich nicht geschafft, aber vielleicht bin ich nur zu doof.

    Der zentrale Server in der Amazon-Cloud ist ein dritter Grund für mich nicht Signal zu nutzen. In meiner Firma haben wir einen eigenen, internen Jabber-Server (d.h. Chat zwischen Kollegen funktioniert sogar noch, wenn unser DSL vom Bagger ramponiert wurde), in meinem Free-Software-Projekt haben wir einen anderen, außerdem habe ich weitere Accounts. Diese Verteilung auf verschiedene Accounts verhindert einigermaßen zuverlässig, daß man mir das IM abschneiden kann. Signal wäre mir einfach zu leicht zu killen, wenn POTUS es so will. Mehrere unabhängige Accounts, bei verschiedenen Servern, teilweise auch pseudonym und anonym, sind besser für den Datenschutz.

    Jeder der drei Gründe ist für mich alleine schon hinreichend es nicht zu nutzen.

    Dazu kommen noch Kleinigkeiten: Die Desktop-App ist eine „Elektron-App“, d.h. sie ist gigantisch groß, bringt einen eingebetteten Web-Browser mit, und hatte ja daher auch schon Sicherheitsprobleme.

    Was also tun? Die Probleme, die Du bzgl. XMPP beschreibst kann ich 100% nachvollziehen. Wählt man nicht den richtigen Server und die besten Clients aus (Gajim!), gibt’s Probleme, vor allem Nachrichten, die nicht oder extrem verspätet ankommen. Ich hoffe, daß diese Probleme nach und nach gelöst werden, die Community ist ja seit einigen Jahren wieder sehr aktiv, jedenfalls viel aktiver als vorher.

    Daß Signal mit den mehrstelligen Millionenbeträgen, die sie von Whatsapp, Microsoft etc. erhalten haben natürlich viel mehr schaffen können als alle XMPP-Entwickler zusammen, ist kein Wunder. Die meisten XMPP-Entwickler die ich kenne, sind Hobbyisten, nur wenige können von ihrer Arbeit an XMPP leben. Aus diesem Grund wird Signal immer mehr schaffen als XMPP. Geld regiert die Welt.

    Ansonsten bin ich als XMPP-Nutzer auch nicht unglücklich, wenn sich Alternativen entwickeln, die es vielleicht besser machen als Jabber: Matrix, Ring, Tox, etc. Hauptsache es läuft auch ohne Smartphone auf meinem Linux-System, will keine Telefonnummer haben und ist frei und federiert bzw. dezentral. Da kann der Walled Garden von Whisper noch so schön verschlüsselt angemalt sein… :~)

    1. Vielen Dank für deinen Kommentar, der sich ja sehr auf die Technik fokussiert. Prinzipiell teile ich viele deiner Gedanken viele hatte ich schon angesprochen, einige nicht direkt (Desktop Client schwergewichtig, …) und einige habe ich bei meiner persönlichen Einschätzung auch noch gar nicht in Betracht gezogen (Nutzer ohne Smartphones).
      Ich will gerne noch einmal darauf hinweisen, dass auch die nicht-nerds in meinem Umfeld teilweise auf Jabber eingelassen haben. Mittelfristig ist es aber doch noch zu unzuverlässig und auch von der Komplexität her wohl noch nicht für die Massen. Trotzdem benutze ich es gerne weiter, nur möchte ich für meinen engeren Freundeskreis auch per Signal erreichbar sein. Vielleicht ist diese Hürde geringer, um so Leute von WhatsApp weg zu bekommen. Auch wenn das nicht gleich die „reine Lehre ist“ 😉

  4. Nutze auch Riot seit mehr als 6 Monaten und all die angesprochenen Probleme wie bei XMPP gibt es nicht.

    Als Bonus bekommt man einen Skype Ersatz, der auch von der Qualität bei Videocalls zu überzeugen weiß. Einzig beim Verbindungsaufbau von Videocalls hakt es noch regelmäßig. Aber nach 2-3 Versuchen gehts dann immer.

    Die französische Regierung hat sich auch zur internen Kommunikation zur Nutzung einer Riot Variante entschieden. (als Whatsapp Ersatz) Damit sollte eine kontinuierliche Entwicklung gewährleistet sein.

  5. Da einige den riot.IM / Matrix-Protokoll ins Spiel gebracht haben:

    Nach einigen Tests bin ich leider ziemlich ernüchtert: ende-zu-ende Verschlüsselung ist nur optional, ebenso VoIP und varriert je Client sehr stark. Die Usability is ok, aber auch nicht überragend (leiderimmer Chaträume, bietet Sticker, …) und es gibt deutlich weniger Server ..
    * Die Vorteile gegenüber XMPP wären für mich am ehesten, dass es offenbar etwas robuster bei schlechten Verbindungen ist. Für einfache Nutzer (Familie, non-Techies, …) sind beide Lösungen in meinen Augen immernoch deutlich zu kompliziert.

    1. Ergänzend noch angemerkt:
      Es gibt auch einen Desktop-Client, aktuell nur für Linux, der sich mit der Android-App synchronisiert, aber auch ohne Android-App zu nutzen ist.

    2. Naja aber auf einen aufgeblasenen Standard wie eMail noch weiter zu nutzen und für Zwecke der Echtzeit-Kommunikation zweck zu entfremden … ich weiß nicht …

      Tatsächlich hätte mir die Idee von Matrix sehr gut gefallen (wie XMPP nur klarer standartisiert und aus den Erfahrungen gelernt). Nur leider sind auch da viele grundlegende Sachen einfach optional und werden von zu wenigen Messangern unterstützt …

  6. Habe das dringend zu lösende Problem, eine angelegte Gruppe (zu Testzwecken angelegt) wieder zu löschen oder den Gruppenadmin zu wechseln. Kann mie jemand hilfreiche Tips geben? Meine Englischkenntnisse sind = Null !)

  7. Hi,

    geht mir genauso. Schweren Herzens habe ich jetzt Threema installiert.
    XMPP bräuchte einfach mal einen Steve Jobs (also im übertragenen Sinn) und einen Entwicklungspuffer. Also nicht xmpp, sondern ordentliche Clients für Windows, Linux, Android, iOs, sailfish 😉
    Die eben alles verschlüssel, absolut kompatibel sind und zuverlässig funktionieren.

    Grüße
    Thoys

    1. Ja klar kenne ich quicksy und es ist auch eine schöne Sache. Allerdings kauft man sich auch da für zentralisierte Infrastruktur und Kontakte auf Telefonnummer-Basis ein. Obwohl sehr gut maintained, haben alle mit alternativen Clients, oder schlechter gewarteteten Jabber-Servern auch dort leider das Nachsehen …

Schreibe einen Kommentar

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