SimpleX: Eindrücke vom Messenger ohne Identifier

Ein paar Tage lang habe ich den Messenger SimpleX getestet. Meine Eindrücke möchte ich nachfolgend wiedergeben.

SimpleX lässt sich über den App Store, Google Play, direkt von der GitHub-Projektseite oder einem eigenen F-Droid-Repository beziehen. Das Projekt startete erst Anfang des Jahres – befindet sich aktuell aber schon in der Version 4.2.2. SimpleX wird wie folgt beworben:

The first messengerwithout user IDs.

Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc. SimpleX does not, not even random numbers. This radically improves your privacy.

Wie der Messenger ohne Identifier auskommt und welche Crypto zum Einsatz kommt, ist im Whitepaper erklärt.

Zu Testzwecken habe ich SimpleX von der GitHub-Seite bezogen und installiert. Um nun mit jemanden in Verbindung zu treten, gibt es zwei Möglichkeiten:

  • Einen einmaligen Einladungslink/QR-Code erstellen und dann über einen anderen Kanal wie E-Mail versenden
  • Die eigene SimpleX-Kontaktadresse (QR-Code) teilen – dies ermöglicht eine Mehrfachverwendung

Ich habe mich für die Verteilung meiner SimpleX-Kontaktadresse (QR-Code) per Mastodon entschieden. Wer diesen QR-Code dann gescannt hat, konnte mich bei SimpleX hinzufügen bzw. einen Chat mit mir beginnen. Grundlegende Funktionen wie Nachrichten-Schreiben und auch Bilder/Dateien versenden sind implementiert. Aber auch Audio- und Videoanrufe sind möglich. Benachrichtigungen über neue Nachrichten erfolgen über einen Hintergrunddienst, der standardmäßig immer aktiv ist. Man kann diesen auch wie folgt konfigurieren:

  • Wird ausgeführt, wenn die App geöffnet ist
  • Startet regelmäßig

Vermutlich werden die meisten den Standard belassen, um direkt über das Eintreffen neuer Nachrichten informiert zu werden. Allerdings geht diese Standardeinstellung mit einem Nachteil einher: Der Akku-Verbrauch. Das mag von Gerät zu Gerät unterschiedlichen ausfallen, bei mir lag der Akku-Verbrauch deutlich über jenem, den Messenger wie Signal, Threema oder Element benötigen.

Über die Einstellung Netzwerk & Server kann SimpleX so konfiguriert werden, dass die gesamte Kommunikation über das Tor-Netzwerk geleitet wird. In Kombination mit dem fehlenden (eindeutigen) Identifier und dem Simplex Messaging Protocol (SMP) ist aus meiner Sicht eine anonyme Nutzung möglich, die es schwer bis unmöglich macht, per Metadaten herauszufinden, wer mit wem in Kontakt steht. Und dennoch: Anders als bspw. bei Briar muss ein Kontakt bzw. das Gerät nicht dauerhaft online sein, um eine Nachricht empfangen zu können. Diese werden vorübergehend auf den SimpleX-Relay-Servern gehalten, bis sie empfangen werden können. Diese SimpleX-Relay-Server sind übrigens föderiert – jeder kann einen betreiben.

Im Oktober hat Trail of Bits ein Security-Audit von SimpleX durchgeführt und den Bericht im November 2022 veröffentlicht. Der Fokus des Audits:

  • Entspricht die Implementierung des End-to-End-Verschlüsselungsprotokolls der Signal Spezifikation?
  • Ist die Implementierung anfällig für bekannte kryptografische Angriffe?
  • Wird das Schlüsselmaterial so gespeichert und verarbeitet, dass es so wenig wie möglich preisgegeben wird?
  • Halten sich die Codebasen an die Best Practices der Haskell-Programmierung?

Das Ergebnis: Zwei mittelschwere und zwei leichte Schwachstellen. Bis auf eine mittelschwere Schwachstelle (Keys are stored in unpinned memory and not cleared after their lifetime), deren Ausnutzung bald durch die Verwendung der secure-memory-Bibliothek erschwert/verhindert werden soll, wurden alle zeitnah gefixt. Zum Audit sollte man dennoch wissen, dass dieser einen begrenzten Fokus hatte und es kein Full-Audit war, der die komplette Client- und Servercodebasis inkl. aller Protokolle geprüft hat.

Als problematisch empfinde ich die fehlende Verifikationsmöglichkeit der Chat-Partner. Klar, man kann einen Einladungslink/QR-Code an jemanden über einen sicheren Kanal übermitteln. Dennoch ist es aktuell in SimpleX aktuell nicht möglich, seinen Kommunikationspartner zu authentifizieren. Wer eine Authentifizierung seines Gegenübers nicht durchführt, kann nie wirklich sicher sein, ob er tatsächlich mit dem gewünschten Kommunikationspartner Nachrichten austauscht oder womöglich mit einem unbekannten Dritten. Über die interne SimpleX-Funktion Senden Sie Fragen und Ideen habe ich dann direkt Kontakt mit dem Hauptentwickler Evgeny Poberezkin aufgenommen und ihn mit der fehlenden Verifikationsmöglichkeit konfrontiert.

Frage:

Is it possible to validate a contact? Right now you can only send a qr code or link out-of-band.

Antwort:

Not yet, we have it in the plan for the next serveral months. I assume you mean passing some other link or code via some other channel (or additional qr code scan) to validate that the first link wasn’t substituted.

Frage:

Does a user get a notification if another contacts fingerprint changes? Is there anything like a fingerprint at all?

Antwort:

No, contacts do not have anything that identifies them, and what Signal refers to »security code / device change« is Double Ratchet re-initialization.

Wir haben uns dann noch etwas ausgetauscht und über die Bewertung von SimpleX in der Messenger-Matrix geplaudert. Bottomline: Insgesamt halte ich den Messenger für eingeschränkt empfehlenswert, das liegt insbesondere an der fehlenden Verifikationsmöglichkeit für Kontakte, dem hohen Akku-Verbrauch, Instabilitäten des Clients und einem noch ausstehenden Full-Audit. An all den genannten Punkten wird bereits gearbeitet.

Insgesamt legt SimpleX seinen Fokus sehr auf Privatsphäre, wie auch die Aufzählung unter Privacy: technical details and limitations verdeutlicht. Ob der Messenger infrage kommt, muss letztendlich jeder für sich selbst entscheiden.

Hilf mit die Spendenziele zu erreichen! Mitmachen ➡