Skip to content

E2EE and Public Rooms

MilkManzJourDaddy edited this page May 26, 2018 · 3 revisions
  • New members will not be able to read messages from before they joined as they don't have the keys for them. Also, room members may send where others may not have keys for decryption. It is said that clicking on the Avatar of a recipient with an issue renegotiates a key exchange.

  • Every time you attempt to send a message, after a new person has joined, or after they add a new device, or login again with other devices, you will be asked to verify each and every device key. Most people just click "Send Anyway".

  • It may take longer for encryption-decryption cycles in large public rooms, as it must be done so for all users. And certainly if you choose to Verify all keys, for all members' devices, your time will be spent, but perhaps not well spent.

  • Homeservers do not have the decryption keys to search rooms when you want to use the Search function.

  • Matrix already does use transport encryption. Those in clients like Riot-Web look at the URL/URI, the protocol is https://*, so it is not like legacy IRC on port 6667. And Matrix ENFORCES the use of TLS during message transport. Setting E2EE in a room is like adding GPG/PGP to a mailto: (e-mail), which is great for a small Private Room/Direct Chat. Matrix TLS is not opportunistic like mailto: where STARTTLS may be stripped off in transit. And, yes it keeps Homeserver Dev'Op's from reading room messages, similar to using GPG/PGP to keep mailto: providers from reading your messages. However, worrying about Homeserver Dev'Op's reading messages in a Public Room is absurd as they are able to join the room.

  • In Rooms that are public, anyone may join, including those who have administrative access on Homeservers, or the American NSA. Many people do not realize that many Public Rooms are on https://view.matrix.org . That does have TLS security ala https://*, but no privacy as Google® indexes view.matrix.org.

  • However, one argument for setting E2EE in a medium to large group room is that no Homeserver will have the room contents decrypted, and therefore in an oppressive, tyrannical political landscape, no Homeserver will have decrypted room contents, nor keys, and rooms can not be compromised via Homeservers. However, members or their devices could be compromised far easier. Communities with such worries would be better served with invite-only rooms, possibly not listed in any Homeserver Directory, making such not a Public Room.

  • In a Public Room, even with E2EE enabled, an opponent could easily record all room traffic, using a tool like Matrix Recorder: https://matrix.org/docs/projects/other/matrix-recorder.html

  • Metadata, i.e. with whom you chat, and when, is still able to be observed, despite setting E2EE.

  • It seems E2EE in Public Rooms, probably where the user has not verified other devices, gives a "noisy" notification e.g. including a message counter, with every new message.  There might be an open issue for this.

  • Regarding IRC, enabling E2EE in a room will break the integration for bridging with IRC. Even IRCv3 does not have E2EE.

  • Also it makes things difficult, if not impossible, for other integrations, such as RSS Feed 'Bots.

  • Calls, video or voice, are not currently supported in Public Rooms with E2EE enabled.

  • JollyRoger's comment on the issue:

Having end to end encryption enabled in a public room is like building a 50-foot high wall around your yard, demanding visitors check IDs, conducting background checks, then not even shutting the gate when you go to sleep at night. 

The End To End Encryption in Matrix is as of this point in time, in beta. It requires each device be verified out of band individually, across every device that the user owns, across every single device everyone ELSE owns in that room. If we were to turn it on, then what would happen would be that the server wouldn't be able to decipher the messages, and people wouldn't be able to read room history from that point forward until they joined, but if the server really wanted to read our messages, they could do something as simple as just click join and all the trouble of using E2EE would be for nothing.

Clone this wiki locally