Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proxy wirklich nötig? #161

Open
mlangguth opened this issue Feb 8, 2023 · 9 comments
Open

Proxy wirklich nötig? #161

mlangguth opened this issue Feb 8, 2023 · 9 comments

Comments

@mlangguth
Copy link

Ich weiß nicht, ob diese Diskussion schon geführt wurde. Wenn ja, gerne Verweis auf die "Protokolle / Notizen" ☺

Ausgelöst durch die Diskussion in der letzten Sprechstunde, dass auf Grund verschlüsselter Kommunikation der Proxy Anforderungen nicht prüfen kann, möchte ich die Frage stellen, wofür wir den Proxy eigentlich zwingend brauchen?

Nach einem Verständnis dient er zwei Zielen:

  1. Absicherung der "Blase" - nur TIM-eigene Domänen dürfen untereinander timmen (Stufe 1)
  2. Berechtigungsprüfung Freigabeliste (Stufe 2)

Wenn ich keine weiteren Ziele übersehen habe, dann können beide Ziele mit "Boardmitteln" erreicht werden.

Mir ist nicht bekannt, dass der Bundeswehrmessenger oder die Behördenlösung Frankreichs einen Proxy benötigt, damit die Matrix-Kommunikation ausschließlich in der eigenen Blase stattfindet. Das Filtern auf bekannte TIM-Domänen könnte auch in den Clients und den Homeservern umgesetzt werden. Beide durchlaufen auch das Zulassungsverfahren und können daher Kommunikationseinschränkungen verlässlich durchsetzen.

Hinsichtlich der Berechtigungsprüfung haben wir auch in der letzten Sprechstunde (und über einige Tickets) darüber gesprochen, dass die harte Einschränkung und insbesondere die Vorgabe, dass ein Anfragender vom Angefragten vor der Kontaktaufnahme in eine Whiteliste eingetragen werden muss, den Anwendern nicht zu vermitteln ist.
Eventuell (!!) vom Nutzer gewünschte Einschränkungen der Erreichbarkeit, sollten in account_data gespeichert und durch die Clients durchgesetzt werden, wie dies derzeit bei m.ignored_user_list bereits der Fall ist.

Habe ich ein drittes Ziel übersehen?
Was spricht dagegen, auf den Proxy zu verzichten?

@benkuly
Copy link

benkuly commented Feb 8, 2023

Ausgelöst durch die Diskussion in der letzten Sprechstunde, dass auf Grund verschlüsselter Kommunikation der Proxy Anforderungen nicht prüfen kann

Das stimmt so nicht. Es ist möglich und wir haben das so auch umgesetzt (siehe auch Diskussion hier).

Unabhängig davon stimme ich zu, dass nicht vorgeschrieben werden müsste, wo die Föderationsprüfung stattfindet, da dies in einem Homeserver direkt, aber auch in einem Proxy geschehen kann.

@mlangguth
Copy link
Author

Danke für den Link zur anderen Diskussion. Der dortige Fachaustausch zeitig mir aber, dass es ohne Proxy einfacher ginge... 😉

@benkuly
Copy link

benkuly commented Feb 8, 2023

Kann ja jeder Hersteller für sich entscheiden. Für uns war es keine Woche Arbeit zur Umsetzung (davon größenteils Einarbeitung, was überhaupt benötigt wird).

@mlangguth
Copy link
Author

Ich sehe zwei Probleme:

  1. Wenn die gematik einen Proxy beschreibt, werden die Prüfer nach einem Proxy schauen. Setzt man es ohne um, produziert das unnötig Aufwand. Da hilft, wenn nur die fachlich/technischen/sicherheitstechnischen Ziele an der Außenschnittelle des Fachdienstes durch die gematik festgelegt würden und so etwas wie ein Proxy dann nur eine Beschreibung einer möglichen Umsetzung wäre
  2. Das aktuell spezifizierte Berechtigungskonzept welches am Proxy hängt ist fachlich zu eng (siehe anderes Issue)

@jcgruenhage
Copy link

Eine Umsetzung mit Boardmitteln in Synapse ist meiner Meinung nach in der Form nicht möglich. Ich stimme aber zu, dass einer Umsetzung im Homeserver, zum Beispiel mit einem Plugin in Synapse, durchaus machbar ist, und eine Auslagerung der vorgeschriebenen Prüfungen in einen Proxy nicht notwendig ist.

@spilikin
Copy link

spilikin commented Feb 8, 2023

Hi @benkuly ! Welchen Matrix server nimmt ihr dafür?

@benkuly
Copy link

benkuly commented Feb 9, 2023

Hi @benkuly ! Welchen Matrix server nimmt ihr dafür?

Synapse.

@gem-lat
Copy link
Contributor

gem-lat commented Feb 9, 2023

Wie bereits @ jcgruenhage beschrieben hat unterstützt der Referenz Matrix-Homeserver die Domainprüfung nicht. In wie weit die Matrix Foundation an einen MSC arbeitet ist uns aktuell nicht bekannt. Weitere Funktionen neben den genannten sind die TLS-Terminierung und die Prüfung auf zugelassene TI-Messenger-Clients.

Kurzer Reminder: Wie bereits angekündigt wird im CR_006 noch eine Anpassung am Server-Server Proxy durchgeführt. Bei der Föderationszugehörigkeit wird am Server-Server Proxy der durch den Matrix-Homeserver hinzugefügte Authorization-Header die "origin" bei eingehender und "destination" bei ausgehender Kommunikation geprüft.

@mb010865
Copy link

mb010865 commented Feb 9, 2023

Synapse ist eine "Blackbox" unter der Governance der Matrix Foundation. Der Messenger Proxy setzt gematik Anforderungen zusätzlich zum Matrix-Kern um.
Es wurde uns vor einem Jahr zu Beginn der Entwicklung mitgeteilt, dass es möglich und erlaubt ist, den Messenger Proxy in den Matrix-Server zu integrieren. Aufgrund der obigen Tatsache sehr schwer dauerhaft mit Synapse umsetzbar.

U.a. aus Gründen der Governance, Security und der Wartbarkeit sowie der Erfordernis, Zehntausende von Matrix-Servern für Praxen effizient bereitzustellen haben wir uns vor einiger Zeit entschieden, einen Matrix-Server selbst from scratch zu entwickeln.

Diesen erstellen wir in zwei Varianten:
Ein purer Matrix-Server sowie eine gematik-Variante mit einem Interceptor-Layer für die Messenger-Proxy Funktionalitäten sowie im Kern umgesetzten Regeln der gematik Spezifikation, um auch Fehlkonfigurationen schon im Kern auszuschliessen (keine Gastzugänge, Registrierung von Matrix-Usern auf dem Server nur mit OrgAdmin-Rechten etc.).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants