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

MSC4147: Including device keys with Olm-encrypted events #4147

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

uhoreg
Copy link
Member

@uhoreg uhoreg commented May 29, 2024

Rendered

disclosure: I am on the Spec Core Team and employed by Element. This MSC is written as part of my work in the Crypto team at Element


FCP tickyboxes

@uhoreg uhoreg changed the title MSCxxxx: Including device keys with Olm-encrypted events MSC4147: Including device keys with Olm-encrypted events May 29, 2024
@turt2live turt2live added proposal A matrix spec change proposal kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels May 29, 2024
Copy link
Member

@turt2live turt2live May 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Client sending this information
  • Client using this information
  • Demonstration of the core problem being solved (likely covered by the above tasks)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been implemented in the Rust matrix-sdk-crypto crate, both sending and using. Demonstration of the problem being solved: https://youtu.be/b1jJlT2ENT8?feature=shared&t=345

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few links to the implementation.

On the sender side, the field is added here.

On the receiver side, it is deserialized after decryption into a DecryptedOlmV1Event. It is then used in SenderDataFinder whose job it is to construct a SenderData which records our knowledge about the sending device for a given session.

poljar pushed a commit to matrix-org/matrix-rust-sdk that referenced this pull request Jun 27, 2024
This patch implements MSC4147[1].

Signed-off-by: Hubert Chathi <hubertc@matrix.org>

[1]: matrix-org/matrix-spec-proposals#4147
@richvdh
Copy link
Member

richvdh commented Nov 2, 2024

I think this is ready for FCP, so:

@mscbot fcp merge

@mscbot
Copy link
Collaborator

mscbot commented Nov 2, 2024

Team member @mscbot has proposed to merge this. The next step is review by the rest of the tagged people:

Concerns:

  • implementation-needs-checking label

Once at least 75% of reviewers approve (and there are no outstanding concerns), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for information about what commands tagged team members can give me.

@mscbot mscbot added proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. disposition-merge labels Nov 2, 2024
}
```

We propose to add a new property: `device_keys`, which is a copy of what the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did wonder if we could improve the name here; in particular, to reflect the fact that these are the keys for the sender device.

Suggested change
We propose to add a new property: `device_keys`, which is a copy of what the
We propose to add a new property: `sender_device_keys`, which is a copy of what the

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the payload, we have also have recipient_keys and keys properties. Given that we've raised the possibility that keys could be removed in a future version, it seems like sender_device_keys would provide some symmetry with recipient_keys.

@turt2live turt2live added implementation-needs-checking The MSC has an implementation, but the SCT has not yet checked it. and removed needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Nov 4, 2024
@turt2live
Copy link
Member

@mscbot concern implementation-needs-checking label

(the needs-implementation label was not removed when the FCP was proposed or implementations listed, so I am assuming they have not been checked out of an abundance of caution)

@mscbot mscbot added the unresolved-concerns This proposal has at least one outstanding concern label Nov 4, 2024
@richvdh
Copy link
Member

richvdh commented Nov 5, 2024

I've looked at the implementation, and checked that it matches the proposal to the best of my ability.

@richvdh richvdh removed the implementation-needs-checking The MSC has an implementation, but the SCT has not yet checked it. label Nov 5, 2024
@turt2live
Copy link
Member

@mscbot resolve implementation-needs-checking label

@mscbot mscbot removed the unresolved-concerns This proposal has at least one outstanding concern label Nov 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge kind:maintenance MSC which clarifies/updates existing spec proposal A matrix spec change proposal proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period.
Projects
Status: Ready for FCP ticks
Development

Successfully merging this pull request may close these issues.

7 participants