Matrix ist ein offenes Instant-Messaging-Protokoll. Es wurde entwickelt, um Benutzern die Kommunikation über Online-Chat, Voice-over-IP und Video-Chat zu ermöglichen.
Kürzlich veröffentlichten die Entwickler der dezentralen Kommunikationsplattform „Matrix“ eine Warnung vor mehreren kritischen Sicherheitslücken , die in den Bibliotheken matrix-js-sdk, matrix-ios-sdk und matrix-android-sdk2 entdeckt wurden und es Serveradministratoren ermöglichen, sich als andere Benutzer auszugeben und Ende-zu-Ende-verschlüsselte (E2EE) Chatnachrichten zu lesen.
Es wird darauf hingewiesen, dass für einen erfolgreichen Angriff der Zugriff auf einen vom Angreifer kontrollierten Heimserver erforderlich ist (Heimserver: ein Server, der zur Speicherung von Client-Verlauf und -Konten dient). Die clientseitige Ende-zu-Ende-Verschlüsselung verhindert zwar, dass der Serveradministrator die Nachrichtenübermittlung manipuliert, die identifizierten Schwachstellen ermöglichen jedoch die Umgehung dieses Schutzes.
Die Probleme betreffen den Hauptclient von Element Matrix (ehemals Riot) für Web, Desktop, iOS und Android sowie Client-Anwendungen von Drittanbietern wie Cinny, Beeper, SchildiChat, Circuli und Synod.im.
Die Schwachstellen treten nicht in den Bibliotheken matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go und matrix-nio sowie Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Gomuks und Pantalaimon-Anwendungen.
Beachten Sie, dass Probleme mit dem kritischen Schweregrad Implementierungsprobleme in Matrix-js-sdk und Derivaten und keine Protokollprobleme in Matrix sind. Die neueste Version des Forschungspapiers, das wir gesehen haben, stellt Element fälschlicherweise als „den Benchmark-Matrix-Client“ dar und verwechselt Implementierungsfehler mit höherem Schweregrad mit Protokollkritik mit geringerem Schweregrad.
Es gibt drei Hauptangriffsszenarien :
- Der Matrix-Serveradministrator kann die Emoji-basierte Verifizierung (SAS, Short Authentication Chains) unterbrechen, indem er Kreuzsignaturen verwendet und sich als ein anderer Benutzer ausgibt. Das Problem wird durch eine Schwachstelle (CVE-2022-39250) im matrix-js-sdk-Code verursacht, die sich auf die Kombination von Geräte-ID-Verarbeitung und Cross-Signing-Schlüsseln bezieht.
- Ein Angreifer, der den Server kontrolliert, kann sich als vertrauenswürdiger Absender ausgeben und einen gefälschten Schlüssel weitergeben, um Nachrichten von anderen Benutzern abzufangen. Das Problem ist auf eine Schwachstelle in matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) und matrix-android-sdk2 (CVE-2022-39248) zurückzuführen, die verursachte Der Client akzeptiert fälschlicherweise Nachrichten, die an verschlüsselte Geräte gerichtet sind, die das Megolm-Protokoll anstelle von Olm verwenden, und schreibt die Nachrichten dem Megolm-Absender statt dem tatsächlichen Absender zu.
- Durch Ausnutzen der im vorherigen Absatz erwähnten Schwachstellen kann der Serveradministrator dem Benutzerkonto auch einen Dummy-Ersatzschlüssel hinzufügen, um die Schlüssel zu extrahieren, die zum Verschlüsseln von Nachrichten verwendet werden.
Die Forscher, die die Sicherheitslücke identifizierten, demonstrierten auch Angriffe, die einen Drittnutzer zu einem Chat hinzufügen oder ein Drittgerät mit dem Nutzer verbinden. Diese Angriffe nutzen die Tatsache aus, dass die Dienstnachrichten, die zum Hinzufügen von Nutzern zum Chat verwendet werden, nicht mit den Schlüsseln des Chat-Erstellers verknüpft sind und vom Serveradministrator generiert werden können.
Die Entwickler des Matrix-Projekts stuften diese Schwachstellen als geringfügig ein , da solche Manipulationen nicht spezifisch für Matrix sind und nur Clients betreffen, die auf dem Protokoll basieren. Dies bedeutet jedoch nicht, dass sie unbemerkt bleiben: Wenn ein Benutzer ersetzt wird, wird dies in der Chat-Benutzerliste angezeigt, und wenn ein Gerät hinzugefügt wird, wird eine Warnung angezeigt und das Gerät wird als nicht verifiziert markiert (in diesem Fall beginnt das nicht autorisierte Gerät unmittelbar nach dem Hinzufügen, die öffentlichen Schlüssel zu empfangen, die zum Entschlüsseln der Nachrichten erforderlich sind).
Sie werden feststellen, dass matrix-rust-sdk, hydrogen-sdk und andere SDKs der XNUMX. und XNUMX. Generation nicht von den Fehlern in der Hauptursache kritischer Probleme hier betroffen waren. Genau aus diesem Grund haben wir daran gearbeitet, die SDKs der ersten Generation durch eine saubere, sorgfältig geschriebene Implementierung von Rust in Form von matrix-rust-sdk zu ersetzen, komplett mit einer laufenden unabhängigen öffentlichen Prüfung.
Die Sicherheitslücken beruhen auf Fehlern in einzelnen Implementierungen des Matrix-Protokolls und sind keine Probleme des Protokolls selbst. Das Projekt hat bereits Updates für die betroffenen SDKs und einige darauf basierende Client-Anwendungen veröffentlicht.
Wenn Sie schließlich mehr darüber erfahren möchten , finden Sie die Details unter folgendem Link.