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

Inviting a user to an E2EE room does not share keys for history with them, causing UISIs everywhere. #1496

Open
ara4n opened this issue Aug 15, 2023 · 5 comments
Labels
A-E2EE Encryption A-Timeline O-Frequent Affects or can be seen by most users regularly or impacts most users' first experience S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements X-Needs-Rust This issue needs a Rust SDK change. It must have a link to a Rust SDK issue

Comments

@ara4n
Copy link
Member

ara4n commented Aug 15, 2023

Steps to reproduce

  1. In EX, Invite a user to an E2EE room.
  2. The user accepts the invite
  3. They never receive the keys for the shared history, so will not be able to catch up on history.
  4. EX will show these messages as UISIs rather than surpressing them.

Outcome

What did you expect?

If you invite a user to a room, you should share them the keys they need to decrypt the messages they have permission to. (RHUL might have undermined this, given it lets malicious servers fake invites to steal keys, in which case we might instead need to wait until we have client-controlled group membership).

What happened instead?

UISIs everywhere.

Your phone model

No response

Operating system version

No response

Application version

343

Homeserver

No response

Will you send logs?

No

@ara4n ara4n added the T-Defect label Aug 15, 2023
@Velin92 Velin92 added A-Timeline S-Major Severely degrades major functionality or product features, with no satisfactory workaround O-Frequent Affects or can be seen by most users regularly or impacts most users' first experience X-Needs-Rust This issue needs a Rust SDK change. It must have a link to a Rust SDK issue labels Aug 16, 2023
@kegsay
Copy link

kegsay commented Nov 16, 2023

I don't think this is true anymore. The complement-crypto tests at least pass for invited users.

@manuroe manuroe added A-E2EE Encryption T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements and removed T-Defect labels Mar 1, 2024
@stefanceriu
Copy link
Member

I think K is right, closing

@ara4n ara4n changed the title Inviting a user to an E2EE room does not share keys with them, causing UISIs everywhere. Inviting a user to an E2EE room does not share keys for history with them, causing UISIs everywhere. Jun 25, 2024
@ara4n
Copy link
Member Author

ara4n commented Jun 25, 2024

Sorry, it looks like the bug wasn't clear enough - this bug is definitely still open. When you invite a user into a room, EX does not share the historical keys with the user.

This is:

...but is snarled in RHUL fallout still. But from a product perspective, it's a real black eye.

@ara4n ara4n reopened this Jun 25, 2024
@kegsay
Copy link

kegsay commented Jun 25, 2024

Ah, it would help if you didn't mention invites then. This is a general "we don't share historical keys" bug, invites are not a pre-req.

@ara4n
Copy link
Member Author

ara4n commented Jun 25, 2024

but this is specifically about invites! the missing behaviour is that when Alice invites Bob to a room with shared hist viz, she should (in theory) use MSC3061 to send a tonne of keyshares for the history in that room so that Bob can actually read history.

In other words, it's the EX implementation of:

Now, i think these got backed out post-RHUL, which is why this is now all in limbo, but from a product perspective i'm trying to point out that it's an awful experience and we've regressed here without a clear path forwards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-E2EE Encryption A-Timeline O-Frequent Affects or can be seen by most users regularly or impacts most users' first experience S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements X-Needs-Rust This issue needs a Rust SDK change. It must have a link to a Rust SDK issue
Projects
None yet
Development

No branches or pull requests

6 participants