SimpleX

- Lesezeit: 13 Minuten -

Inhalt

Allgemein

Evgeny Poberezkin (extern) ist der Gründer von SimpleX Chat - einer Messaging- und Anwendungsplattform, die ohne jegliche Benutzerkennungen auskommt. Nicht einmal Zufallszahlen werden zur Identifizierung von Benutzerprofilen verwendet.

Werbeversprechen

SimpleX ist 100% privat, by Design! Der erste Messenger ohne Benutzerkennungen Die privateste und sicherste Chat- und Anwendungsplattform. SimpleX Chat ist die nächste Generation der dezentralen Kommunikation, die zur Abwechslung mal NICHT auf Kryptowährungen basiert.

Auf der Projektseite ist ein interessanter Vergleich zu anderen Protokollen (extern) und auch in den FAQ (extern) gibt es dazu Informationen:

Was ist der Unterschied zu Matrix, Session, Ricochet, Cwtch usw., die ebenfalls keine Benutzeridentitäten erfordern?
Obwohl diese Plattformen keine echte Identität erfordern, stützen sie sich auf anonyme Benutzeridentitäten, um Nachrichten zu übermitteln - dies kann z. B. ein Identitätsschlüssel oder eine Zufallszahl sein. Die Verwendung einer dauerhaften Benutzeridentität, auch wenn sie anonym ist, birgt das Risiko, dass der Verbindungsgraph des Benutzers den Beobachtern und/oder Dienstanbietern bekannt wird, und kann dazu führen, dass einige Benutzer deanonymisiert werden. Wenn dasselbe Benutzerprofil verwendet wird, um sich mit zwei verschiedenen Personen über einen anderen Messenger als SimpleX zu verbinden, können diese beiden Personen bestätigen, dass sie mit derselben Person verbunden sind - sie würden in den Nachrichten dieselbe Benutzerkennung verwenden. Bei SimpleX gibt es keine gemeinsamen Metadaten zwischen Ihren Unterhaltungen mit verschiedenen Kontakten - eine Eigenschaft, die keine andere Messaging-Plattform hat.

Einschätzung

Die pauschale Formulierung “privateste und sicherste Chat- und Anwendungsplattform” ist ein Extrem und läßt wie immer aufhorchen. Es sollte tatsächlich jeder für sich selbst prüfen, ob das “privateste und sicherste” tatsächlich den eigenen Anforderungen entspricht. Denn es gibt viele mögliche Kriterien zur Sicherheit und Privatsphäre/Anonymität, die jeder individuell sehen und unterschiedlich bewertet werden kann! Insgesamt ist SimpleX jedoch trotzdem sehr interessant.

Konzept

SimpleX ist ein relativ junger Messenger mit einem unkonventionellen Konzept zur Vermeidung von Metadaten. Benutzerprofile, Kontakte und Gruppen werden nur auf dem Client und nicht auf einem Server gespeichert.

Um das Abgreifen einer kompletten Konversation auf dem Verbindungsweg zu erschweren, sind Verbindungen nicht bidirektional. Das bedeutet, daß über eine Verbindung Nachrichten entweder nur gesendet oder nur empfangen werden können. Zur Kommunikation sind somit 2 voneinander unabhängige Verbindungen erforderlich und die beteiligten Server bekommt jeweils von den Nachrichten in die andere Richtung nichts mit. Diese Sicherheit hat jedoch nichts mit Anonymität zu tun!

Bewertung

  • positiv: es gibt keine Benutzerkennungen, so wie das bei anderen Systemen der Fall ist!
  • positiv: gute Ende-zu-Ende-Verschlüsselung mit „doppelter Ratsche (double ratchet)“
  • Vollständige Unabhängigkeit von Anbietern („providern“). Also nicht nur in dem Sinne, daß man (wie bei Mastodon oder XMPP) auch mit Nutzern (sowie der Software) anderer Anbieter kommunizieren kann. Sondern eben auch in dem Sinn, dass das Konto (besser das Gerät für den Zugang) nicht an einen Anbieter gebunden ist.
  • positiv: Messaging-Apps für Konsole (Desktop), iOS und Android
  • positiv: Client ist durchgängig quelloffen
  • positiv: Client für Smartphone, Desktop und auch Terminal
  • positiv: Server ist durchgängig quelloffen
  • positiv: eigene Server sind möglich (und erwünscht)
  • positiv: unterschiedliche (eigene) Anzeigenamen für jeden Kontakt im Inkognito-Modus
  • positiv: kein Google reCAPTCHA (Infos: https://dr-dsgvo.de/google-recaptcha (extern))
  • positiv: ohne Mindestalter nutzbar
  • positiv: Authentifizierung des Kommunikationspartners ist möglich
  • positiv: keine Kryptowährung
  • positiv: einfache Textformatierung durch Markdown
  • positiv: tragbare verschlüsselte Datenbank - das Profil kann auf ein anderes Gerät verschoben werden
  • positiv: keine Tracker in der Android-App (16 Berechtigungen): Exodus (extern)
  • positiv: lt. webbkoll (extern) keine Cookies von Dritten auf der Internetseite
  • positiv: deutsche Projektseite/Hilfe
  • neutral: Interoperabilität bzw. eine Schnittstelle zum Chatstandard XMPP ist designbedingt nicht gewünscht/möglich
  • pos./neg.: externe Sicherheitsprüfung (Audit) (extern; PDF) (audit), die im November 2022 veröffentlich wurde - ist jedoch kein „full audit“
  • pos./neg:: „Simplex ist eine relativ neue Entwicklung (die Apps wurden im März 2022 veröffentlicht)“ (extern)
  • negativ: lt. webbkoll (extern) 2 Drittanfragen (third-party) auf der Internetseite
  • negativ: Audio- und Videotelefonie sind nur möglich, wenn kein Tor verwendet wird

Funktionsweise

Kennung/ID

Die Identität, das Profil, die Kontakte und Metadaten sollen dadurch geschützt werden, daß es im Gegensatz zu anderen Messaging-Plattformen keine Identifikatoren gibt, die den Benutzern zugeordnet werden. Es werden weder Telefonnummern, Domain-basierte Adressen (wie E-Mail oder XMPP), Benutzernamen, öffentliche Schlüssel oder sogar Zufallszahlen verwendet, um Benutzer zu identifizieren. Niemand weiß, wie viele Leute die SimpleX-Server benutzen.

The first messenger without user IDs Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc. SimpleX does not, not even random numbers.

Das stimmt - allerdings werden für Verbindungen dann doch Kennungen benötigt:

uses temporary anonymous pairwise identifiers of message queues, separate for each of your connections — there are no long term identifiers.

Es gibt also keine Benutzerkennungen wie bei anderen Systemen - die Art und Weise der verbindungsbezogenen Kennungen bzw. das Konzept ist jedoch in der Tat einmalig und verspricht nicht umsonst mehr Privatsphäre.

Da es keine feste/serververwaltete Benutzerkennungen oder Chatkonten gibt, werden beim Aufbau eines Chats Ende-zu-Ende verschlüsselte Sitzungen zwischen zwei SimpleX Clients eingerichtet. Die Server schieben nur die Datenpakete von A nach B durch das Netz und ermöglichen den Austausch von Offlinenachrichten.

Darüber hinaus gibt es die Möglichkeit, mit der SimpleX-Desktop-App direkt die Profile vom mobilen Gerät zu verwenden. Das ist allerdings nur möglich, wenn sich beide Geräte im selben Netzwerk befinden - ein wirkliche Synchronisation zwischen den Geräten (wie beim Chatstandard XMPP) gibt es jedoch nicht.

Kontakte hinzufügen

Das Hinzufügen von Kontakten (extern) kann per einmaligen Einladungslink/QR-Code geschehen, der dann über einen anderen Kanal wie E-Mail versendet wird - oder mann kann seine SimpleX-Kontaktadresse als QR-Code teilen, was eine Mehrfachverwendung ermöglicht.

Nachrichtenübermittlung

Da es keine klassischen Benutzerkennungen/Chatkonten gibt, gibt es auch keine Verifikation von Kommunikationspartnern. Um sicherzustellen, dass man wirklich mit dem gewünschten Gesprächspartner verbunden ist, kann der Aufbau einer Chat-Verbindung durch Scannen eines One-Time-QR-Code bei einem persönlichen Treffen erfolgen oder durch Versendung einer Einladung über einen sicheren, verifizierten Kanal.

Um Nachrichten zu übermitteln, verwendet SimpleX temporäre, anonyme, paarweise Identifikatoren von Nachrichten-Warteschlangen, getrennt für empfangene und gesendete Nachrichten - es gibt keine langfristigen Identifikatoren. Die Nutzung ist quasi so, als ob für jeden Kontakt eine eigene E-Mail oder ein eigenes Telefon genutzt würde.

Nachrichten werden per doppelter Ratsche Ende-zu-Ende-verschlüsselt und über offengehaltene Verbindungen per „push“ übertragen.

Server

Systembedingt werden für ein- und ausgehende Nachrichten getrennte Verbindungen benutzt und hierfür können unterschiedliche Server (SMP-Relays) verwendet/vorgegeben werden. Damit man Nachrichten erhält, verbindet sich der eigene Server (genauer: ein Server aus der eigenen Serverliste) mit einem Server aus der Liste des Kommunikationspartners - auch dann, wenn diese Adresse nicht in der eigenen Serverliste steht. Jeder kann nur seinen eigenen Empfangs-/Sende-Server definieren.

In der App sind zwar Server vorkonfiguriert - man kann jedoch einen beliebigen anderen SimpleX-Server oder auch einen selbst betriebenen SimpleX-Server eintragen. Man kann also selbst festlegen welcher Server für den Empfang der Nachrichten verwendet werden soll und jede Konversation kann so auf zwei verschiedene und voneinander unabhängige Server aufgeteilt werden.

Um die eigene IP-Adresse vor dem Empfänger zu verbergen ist es jedoch sinnvoll, für den Versand nicht einen eigenen privaten SMP-Server zu verwenden (der ja wieder zugeordnet werden könnte), sondern einen der SMP-Standard-Server.

Offlinenachrichten

… sind möglich. Die Zustellung von Offlinenachrichten (mehr Infos dazu bei Github (extern)) erfolgt über individuelle „Relay-Server“:

SimpleX speichert alle Benutzerdaten auf den Client-Geräten, die Nachrichten werden nur temporär auf den SimpleX-Relay-Servern gehalten, bis sie empfangen werden. …

Ist der Empfänger nicht gleichzeitig online, so werden die Nachrichten auf einem SMP-Server bis zur Abholung/Löschung maximal 21 Tage zwischengespeichert, danach verworfen. Größere über XFTP geroutete Dateien werden maximal 48 Stunden zur Abholung beim XFTP-Server aufbewahrt. Die Aufbewahrungswerte können von Serverbetreibern für ihre eigenen SMP-/XFTP-Server verändert werden.

Push-Benachrichtigung

Dieser Blog-Beitrag behandelt das Design für Benachrichtigungen auf den Plattformen Android und iOS: https://simplex.chat/blog/20220404-simplex-chat-instant-notifications.html (extern)

In der Kürze:
Android: SMP-Server pushen die Nachrichten selbst, es werden keine Metadaten mit anderen Diensten geteilt, und es wird nichts verwendet, was nicht mit unseren Apps selbst gehostet werden kann.
iOS: Erfordert einen dedizierten Benachrichtigungsserver pro App, der ein Gerätetoken hat und einige Metadaten beobachten kann; Benutzer können ihn nur selbst hosten, wenn sie die App modifizieren und die App bei Apple registrieren (sie muss nicht im App Store sein, und Apple mag dort eigentlich keine Kopien, sie kann intern für eine Gruppe von Benutzern / Unternehmen sein - es gibt keinen Genehmigungsprozess für solche Apps).

Technischer Hintergrund bei iOS

Damit Sofortbenachrichtigungen unter iOS funktionieren, muß der Benutzer bei der Anmeldung entscheiden, ob Push-Benachrichtigungen verwendent werden sollen. Falls ja, erfolgt beim Starten der App eine DNS-Anfrage an den iOS-Push-Benachrichtigungsserver (ntf2.simplex.im / 139.162.221.251). Das ist nicht abschaltbar.

Der Entwickler schreibt dazu (per E-Mail): Es ist ein Kompromiss zwischen Privatsphäre und Bequemlichkeit. Für sicherheits- und datenschutzrelevante Szenarien sollte iOS eigentlich nicht verwendet werden.

Expertenwissen

Dieser Abschnitt zur Anonymität ist speziell für technisch Interessierte: Nur lesen, wenn einem die Begriff wie IP-Adresse, Hop, Relais etwas sagen - sonst verzweifelt man!

Verkehrsanalyse

Unter (Daten-)Verkehrsanalyse wird die Analyse des Datenverkehrs verstanden, um doch Metadaten (wer, wann mit wem, wie lange oder auch nicht kommuniziert hat) zu erlangen. Eine solche Analyse ist bei dem für mich als Laien als vorteilhaft gesehene Trennung von Sendeweg und Empfangsweg anscheinend jedoch potentiell einfacher als bei unidirektionaler Kommunikation. Dafür ‘paddet’ SimpleX jede Nachricht (auch beim Schlüsseltausch) auf die selbe Länge (16k Zeichen), was wiederum sehr gut ist.

Um die eigene IP-Adresse zu schützen, gibt es dafür folgende Lösung:

2-Hop-Routing mit vom Absender gewählten Sende-Relais und vom Empfänger gewählten Empfangs-Relais … Es löst nicht nur den Schutz von IP-Adressen, sondern verbessert auch das Bedrohungsmodell für Absender, da die empfangenden Relays keine Sitzungen mehr mit den Absendern haben und keine gemeinsamen Metadaten zwischen verschiedenen Nachrichten-Warteschlangen (vorausgesetzt, die sendenden Relays geben die Daten nicht an die empfangenden Relays weiter).


Entwicklung

Es gibt häufig neue Funktionen und Updates; es wird zügig auf gemeldete Punkte oder Benutzerwünsche reagiert. Aus der Vision (extern) von SimpleX:

In Zukunft planen wir, die grundlegende Nutzung der Plattform kostenlos zu halten und gleichzeitig die Vorteile für die Projektsponsoren bereitzustellen. Zum Beispiel wird es zusätzliche App-Symbole und Benutzerprofilabzeichen geben. Außerdem wird es höhere Limits für den Dateitransfer geben - derzeit beschränken wir ihn überhaupt nicht, sondern nur die Dateigröße, aber das ist wahrscheinlich nicht nachhaltig. In jedem Fall wird die App weiterhin für jedermann kostenlos nutzbar und vollständig quelloffen sein. Mehrere andere Apps werden bereits auf der Grundlage unseres App-Kerns entwickelt, was zu einem vollständig dezentralisierten Netzwerk führen wird.

Der Entwickler hat eine eigene Auffassung zur Privatsphäre und definiert diese neu. Privatsphäre ohne Risikokapital wäre nicht möglich:

https://www.poberezkin.com/posts/2022-12-07-why-privacy-needs-to-be-redefined.html https://www.poberezkin.com/posts/2023-10-31-why-privacy-impossible-without-venture-funding.html

Es sind weitere Funktionalitäten geplant wie:

  • SMP queue redundancy and rotation (manual is supported)
    Auch bei bestehenden Kontakten können durch eine automatische Rotation zufällige Server genutzt werden, was die Nachverfolgung der Kommunikation weiter erschweren wird.
  • Large groups, communities and public channels
    Die jetzigen Gruppen sind eigentlich nur für kleinere Teilnehmerzahlen gedacht.
  • Feeds/broadcasts
  • Web widgets for custom interactivity in the chats
  • Programmable chat automations / rules (automatic replies/forward/deletion/sending, reminders, etc.)

Sitz

Die SimpleX Chat Ltd wurde am 20.10.2021 gegründet und hat den Sitz in Londen (20-22 Wenlock Road, London N1 7GU).


Verweise

Projektseite: https://simplex.chat/de (extern)
Quellcode: https://github.com/simplex-chat (extern)
F-Droid: https://f-droid.org/de/packages/chat.simplex.app/ (extern)
Aktueller Stand/Planung: Roadmap (extern)
Zum SimpleX-Protokoll: Dokumentation (extern), Github (extern)
Vergleich mit anderen Protokollen: Github (extern) und Diskussion dazu bei Reddit (extern)
Zum Angriffsszenario: Thread-Modell (extern)

Bericht und Kurztest von Kuketz (extern)
Im Privacy-Handbuch (extern) wird SimpleX als „Exot mit besonderen Privacyfeatures“ geführt.

Fazit

SimpleX wird stark entwickelt und ist ein Messenger, der gewisse Vorteile von serverbasierten Systemen (Offlinenachrichten) und serverlosen Systemen (Anonymität) verbindet.


SimpleX Logo