devture / matrix-corporal

Matrix Corporal: reconciliator and gateway for a managed Matrix server
GNU Affero General Public License v3.0
143 stars 14 forks source link

Add option to force disable all E2EE stuff on Matrix homeserver #8

Open MurzNN opened 4 years ago

MurzNN commented 4 years ago

When Synapse implement E2EE features, there are still no ways to disable all E2EE stuff on per-server level, here is issue about this https://github.com/matrix-org/synapse/issues/4401. For example, some corporate instances need that all messages will be available on server, so want to force disable all abilities to encrypt messages.

Before this will fixed in Synapse (and SPEC), for solve this problem will be good to implement some middleware in Matrix Corporal, that will stop all client-server messages, related to using E2EE stuff.

Is this possible and hard to implement via current Matrix Corporal features?

spantaleev commented 4 years ago

It should be possible to intercept and reject certain endpoints (/key related APIs) and also prevent sending of some room messages (at least submitted from users on your server) which pertain to enabling encryption.

While possible, it's not really a single thing to intercept and block, so it is a little complicated. For now, I'm refraining from chasing these various things and working on such a feature. It should be possible though. And if there's demand or someone willing to work on it, that'd be nice.

Hopefully a Synapse feature will land, which would let people disable it there, so we wouldn't have to bother.

For completeness, I should mention that besides the Synapse thing, there's also a way to tell Riot clients to avoid E2EE (see https://github.com/vector-im/riot-web/pull/13914 and https://github.com/vector-im/riot-web/issues/13705). Of course, this only works with Riot and is more of a hint and not something that gets enforced.