matrix-org / matrix-org/matrix-spec

Add E2EE-Off Config to matrix spec

Open
#616 17 comments 11 reactions 0 assignees View on GitHub
A-Client-Server feature
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

End to End Encryption is complex and confusing for the average user. If a user doesn't understand all of the implications it is very easy for data to get locked behind encryption and inaccessible to the user.

In a business/corporate setting using a closed off non-federating server having data locked out in this manner is a deal breaker. Business policy can require data to remain accessible to the appropriate people at all times. As well as the support headache of having users getting locked out of business data with no way to rectify the problem.

Currently synapse has no official method to disable E2E Encryption https://github.com/matrix-org/synapse/issues/4401

The current workarounds to my knowledge are block the encryption calls with a reverse proxy and/or modify the default room power levels for enabling encryption https://github.com/matrix-org/synapse/issues/4367

Both result in errors being displayed to the user and IMO are fragile solutions.

After several discussions I have determined that people agree this is something that needs to be configurable and should be dealt with at the spec level so that it can be handled appropriately at every level.

I propose adding an option to the synapse server config that fully disables encryption and cross signing. This variable could then be communicated to the clients which would then in turn hide the encryption settings making for a seamless user experience. This variable could benefit from being non binary. ie. Have 4 options: enforced off, default off, default on, enforced on. This should cover the wide range of applications for a private server.

I apologize I didn't use the spec proposal process, I am not a developer and that process is far to complex for me to complete.

Another reference https://github.com/vector-im/riot-web/issues/13537

Contributor guide

Open the contributing guide

Research direction

Start with the Matrix spec proposal process, then review the linked Synapse issues 4401 and 4367 and the Riot Web issue 13537 for existing constraints and prior discussion. Done means a spec-level definition exists for the configurable encryption behavior, including how servers communicate it and how clients present the resulting settings.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.