Donnerstag, Mai 2, 2024

Das böse Büro

Uriel Fanellis Blog in deutscher Sprache

Uriel Fanelli

Matrix (das Protokoll)? Nein Danke.

Matrix (das Protokoll)? Nein Danke.

Ich sehe, dass in der Gemeinschaft derjenigen, die sagen, dass sie die Privatsphäre lieben, das Matrix-Protokoll weiterhin hochgehalten wird, was sie glauben lässt, dass es so sicher wie Signal ist (das heißt, so viel wie Signal wäre, wenn es nicht einige Bibliotheken verwendet hätte). build the server) mit einer missbräuchlichen Absurdität des Wortes E2EE.

Was mich bei all dem besonders stört, ist, dass diejenigen, die die Matrix verwenden oder die Verwendung vorschlagen, weiterhin so reden, als seien sie sich des Signal-Protokolls ebenso sicher, was sie nicht sind: Matrix ist ein Kompromiss.

Ich versuche zu erklären, warum.

Das Signal/Olm/Double Ratchet-Kryptografieprotokoll verwendet je nach verwendetem Fachjargon eine rekursive Methode zur Generierung eindeutiger Schlüssel. Was heißt das?

Das bedeutet, dass Sie während des Gesprächs Ihre Nachricht nicht immer mit demselben Schlüssel verschlüsseln, sondern dass sich der Schlüssel mit jeder gesendeten Nachricht ändert (aktualisiert).

  1. Hallo (Schlüssel: 6f0378f21a495f5c13247317d158e9d51da45a5bf68fc2f366e450deafdc8302)
  2. Wie geht es dir (Schlüssel: 615452c145c402b73764ddecdd5a76e59faa25b68258474cfd259536c1c39a06)
  3. Er ist zu Hause? (Schlüssel: 5c2fb30bed30bd2cce6700122cae3c8b839cbffbca29a6e95408b32290a16ba4)

der trick wird auch beim googleauthenticator verwendet, also eine funktion die nur "vorwärts" funktioniert aber nicht "zurück". Das Ergebnis ist, dass selbst wenn jemand Schlüssel Nummer zwei stiehlt, er die Nachricht Nummer drei nicht lesen kann, weil der Schlüssel anders ist.

Offensichtlich müssen der Server und der Client synchronisiert werden, sodass Sie beim Eröffnen eines Kontos nichts anderes tun, als den Anfangswert und die Anzahl der verwendeten Nachrichten festzulegen.

So weit, ist es gut. Aber Sie wissen, dass Chat-Protokolle nicht verwendet werden, um von Person zu Person zu kommunizieren, sondern von Client zu Client: Das bedeutet, dass Sie vielleicht einen Client auf Ihrem Computer haben, einen auf Ihrem schönen Mobiltelefon, einen auf dem sgrauso und bald.

Und jetzt stellt sich die Frage: Wie lassen sich alle Clients synchronisieren? Ich meine, wenn Sie mehrere Handys haben und in denselben Raum schreiben, aber die Handys nicht genau wissen, wie viele Nachrichten es sind, wie ordnen sie sich an? Und wenn sie sich anstellten, wie würden sie sicher sein, dass sie sich richtig aufstellten?

Die gewählte Lösung besteht fast immer darin, Ihr Mobiltelefon (die MSISDN, also die Telefonnummer) dem Client zuzuordnen. Dann können Sie mit einem QRCODE andere Geräte hinzufügen, aber nur, um eine Webschnittstelle zu verwenden: Dann kümmert sich der Server, der immer mit dem primären Client ausgerichtet ist, um den Schlüssel und die Iteration, in der Sie sich befinden.

Aber nicht nur. Selbst wenn Ihnen ein Laptop gestohlen wird, stellen Sie zum Ausschneiden sicher, dass er vom Schlüssel getrennt wird und einen anderen generiert, der stattdessen für die anderen Clients funktioniert, und hier könnte der gestohlene Laptop nicht mehr kommunizieren oder lesen irgendetwas.

Zusamenfassend:

  • Jede Nachricht wird mit einem anderen Schlüssel verschlüsselt. Wenn ein Angreifer den Schlüssel zu einer Nachricht erhält, kann er diese Nachricht nur entschlüsseln.
  • Wenn der Client nicht jeden dieser Schlüssel aufbewahrt, kann jede Nachricht nur einmal entschlüsselt werden, da sich der Schlüssel bei jedem Lesen ändert.
  • Wenn ein Angreifer Zugriff auf die Daten erhält, die die Schlüssel generieren (die Schlüsselratsche), kann er die Nachrichten nur entschlüsseln, bis die Teilnehmer an der Konversation einen Sende-Antwort-Zyklus abschließen (weil die DH-Klammer, die zum Generieren des Schlüsselmoduls verwendet wird). ausgetauscht werden).
  • Der Angreifer kann vergangene Nachrichten nicht entschlüsseln, da er die übergebenen Schlüssel nicht hat
  • Nach der Entschlüsselung befinden sich die Nachrichten in „Leugnbarkeit“: Es ist nicht möglich zu beweisen, dass die andere Partei sie gesendet hat.

Gut.

Alles ist gut? Nein.

Wir sprechen über ein Protokoll, das zwischen Mir und Dir funktioniert. Wenn wir nur zu zweit sind, ist es absolut sicher, und außerdem kann ich immer sicher sein, dass Sie wirklich Sie sind, da jemand anderes die Passwörter nicht hätte, und selbst wenn er das Client-Gerät (Mobiltelefon) gestohlen hätte oder Laptop) , bei der ersten Nachricht wären die beiden falsch ausgerichtet und ein neuer DH würde generiert.

Aber wenn wir zum Beispiel einen Raum mit vielen Leuten betreten und wir zwei Kunden haben, was passiert dann? Wenn die beiden Clients wie Signal oder WhatsApp sind, haben wir in Wirklichkeit NUR EINEN DH, der über Qcode über das Web geteilt und im Moment generiert wird, und daher hätten wir keine Probleme.

Aber insbesondere, da wir das DH nicht mit jedem der Teilnehmer geteilt haben und es mit jeder Nachricht geändert wurde, wie entschlüsseln wir vergangene Nachrichten und wie unterscheiden wir zwei Clients derselben Person?

Matrix löst das Problem mit einem Kompromiss: Es hört auf, den "harten" Algorithmus, den sicheren, zu verwenden, und lässt Sie einen weniger leistungsfähigen Algorithmus verwenden, um einen Algorithmus zu finden. Dieser Algorithmus heißt "MegOlm". ( https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md )

Das Problem von MegOlm ist, dass diese Implementierung im Vergleich zum klassischen Double Ratchet (wie Signals) weniger robust ist und einige Sicherheitsfunktionen verliert.

Sie können es hier unter Einschränkungen sehen: https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md#limitations


Warum ist das schlecht für den Benutzer?

  • da die Verschlüsselungsanforderungen entfallen, haben Sie beispielsweise nicht mehr die gleiche Gewissheit, mit dem zu sprechen, von dem Sie glauben, dass Sie sprechen, wie Sie dies bei OLM / Double Ratchet tun würden.
  • ES WIRD DEM BENUTZER NICHT MITGETEILT.

Wenn Sie die Sicherheits- und Datenschutzcazzari lesen, die überall sprechen, werden Sie sehen, dass sie Matrix als Alternative zu Signal beschreiben, was bedeutet, dass Sie das gleiche Sicherheitsniveau haben wie ein Kunde, der darauf achtet, OLM und einen einzigen DH zu behalten.

Und das Traurigste ist, dass das Problem gelöst werden konnte: Anstatt ein DH mit jemandem mit einer bestimmten verifizierten Telefonnummer zu teilen, könnte die Verifizierung mit einem OTP (One Time Password) wie Google Authenticator oder einem Open-Source-OTP erfolgen.

Matrix (das Protokoll)? Nein Danke.
Diese, um klar zu sein.

Wenn Sie also Signal ablehnen, weil „es nicht transparent ist“, und dann zu Matrix gehen, die den Benutzer nicht darüber informiert, dass er möglicherweise nicht wirklich mit dem spricht, mit dem er zu sprechen glaubt, scheint es mir nur richtig zu sein Heben Sie Ihre Hand und sagen Sie „äh … nein“.

Matrix (das Protokoll)? Nein Danke.

Warum das schlecht für die Community ist:

Nach diesem "Kompromiss" an Sicherheit ist MegOlm sicher, wenn ein XMPP / Jabber-Server verwendet wird, wenn ein Client (z. B. Dino) mit OMEMO und OpenPGP verwendet wird.

In der Tat etwas weniger, da Sie mit Dino festlegen können, ob Sie standardmäßig "Blind Trust" möchten oder nicht, während Matrix IMMER Blind Trust tut:

Matrix (das Protokoll)? Nein Danke.
Auf Dino (XMPP / Jabber) können Sie Blind Trust standardmäßig deaktivieren.

Aber der Unterschied besteht darin, dass jeder mit einem einfachen RaspBerry einen leichtgewichtigen Server wie Prosody in seinem Haus über den Heimrouter hosten kann. Es ist einfach, sich selbst zu hosten, und auf einem Raspi 4 kann es mit Hunderten von Benutzern umgehen.

Wenn wir jedoch über Matrix sprechen, sprechen wir über eine Implementierung, die mindestens 4 GB RAM und einen sehr leistungsstarken Prozessor benötigt, um EINEM Benutzer gerecht zu werden. Und ich scherze nicht.

Kurz gesagt, Self-Hosting wird immer schwieriger (was es verschiedenen Organisationen ermöglichen würde, Hosts für ihre Benutzer einfach und kostengünstig zu bauen, auf Kosten von Communities, die möglicherweise alles mit wenig Geld betreiben müssen. Länder, in denen die wichtigsten Chat-Server werden alle überwacht.


Generell finde ich den Hype pro Matrix extrem schädlich, denn:

  • vermittelt ein falsches Sicherheitsgefühl
  • informiert den Benutzer nicht richtig über die Kompromittierung
  • Beschränken Sie Selfhosting auf diejenigen, die reich genug sind, um für einen leistungsstarken Server zu bezahlen

und deshalb tut es mir leid … aber die Matrix tut es nicht.


Schreibe einen Kommentar

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