gematik / api-ti-messenger

API specification for gematik's TI-Messenger - a messaging standard, which will enable healthcare personnel in the German healthcare sector to communicate interoperable via DSGVO-conform messaging-services. The TI-Messenger builds on matrix, the open standard for interoperable, decentralised, real-time communication over IP.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Analyse von Nachrichten der ServerServerAPI im Messenger-Proxy nicht möglich

ff-wl opened this issue · comments

In einigen Anwendungsfällen (z.B. AF_10062) sollen im Messenger-Proxy auf der Senderseite der Inhalt der Nachrichten der Matrix-Server-Server-API untersucht werden, um z.B. die Domain des Empfängers zu prüfen (ML-123665 - AF_10062).

Die einzige Möglichkeit, einen Synapse-Homeserver dazu zu bringen, ausgehende Nachrichten über den Messenger-Proxy zu leiten, ist es, den Messenger-Proxy als Forward-HTTP-Proxy zu konfigurieren. Da die Server-Server-API nach Matrix-Spezifikation TLS erfordert, wird der Forward-Proxy über das HTTP-Kommando "CONNECT" angesprochen. Dadurch wird der TLS-Handshake aber zwischen Homeserver und dem Messenger-Proxy des Empfängers ausgehandelt. Allerdings hat dann der Messenger-Proxy des Senders keine Möglichkeit, auf den unverschlüsselten Inhalt der Nachrichten zuzugreifen und seine Analysen durchzuführen.

Eine Terminierung des TLS-Kanals im Messenger-Proxy des Senders ist nicht möglich, da der Homeserver ein Zertifikat erwartet, welches auf den Namen des Empfängers ausgestellt ist.

Es müssen Zertifikate vom Proxy on the fly erstellt werden mit einer CA, die hier hinterlegt werden kann.

Ein dafür implementierter Ende-zu-Ende-Integrationstest mit zwei Synapse Servern, die über den Proxy kommunizieren funktioniert mit unserer Implementierung.

Ich bin an dieser Stelle etwas zurückhaltend, dass Zertifikate für beliebige Server ausgestellt werden sollen und sich so der Messenger-Proxy z.B. als "matrix.bsi.de" ausgibt.
Sicherlich funktioniert das. Ob das sicherheitstechnisch sinnvoll ist, ist eine andere Frage. Daher würde ich da gerne einen (offiziellen) Kommentar seitens der gematik haben

Der Proxy übernimmt das Überprüfen der richtigen Zertifikate. Die Kommunikation zwischen Proxy und Homeserver ist interne Kommunikation und muss deshalb lediglich mit internen Zeritifkaten abgesichert werden (auf dem selben Host sogar ohne Zertifikate, jedoch kann synapse kein http über Föderation). Sicherheitstechnisch gibt es hier also keinerlei Bedenken.

Ich habe das nochmal intern mit einem SI-Kollegen besprochen. Hier gibt es von gematik-Seite keine Bedenken. Wie in #161 (comment) erklärt muss der Proxy aber nicht zwangsweise als physische Komponente implementiert werden sondern kann auch in den Homeserver integriert sein.