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

E2EE clarifications in the aftermath of the 2022-09-28 disclosure #1275

Closed
4 tasks
dkasak opened this issue Oct 6, 2022 · 0 comments · Fixed by #1294
Closed
4 tasks

E2EE clarifications in the aftermath of the 2022-09-28 disclosure #1275

dkasak opened this issue Oct 6, 2022 · 0 comments · Fixed by #1294
Assignees
Labels
A-E2EE Issues about end-to-end encryption clarification An area where the expected behaviour is understood, but the spec could do with being more explicit

Comments

@dkasak
Copy link
Member

dkasak commented Oct 6, 2022

In the aftermath of https://matrix.org/blog/2022/09/28/upgrade-now-to-address-encryption-vulns-in-matrix-sdks-and-clients, we should make some spec clarifications so that it's harder for a new implementer to repeat the same mistakes. Listing some random ones I've thought of, feel free to edit more in.

  • Specify explicitly that all encrypted to-device messages must be encrypted with Olm, not Megolm.

    • Specify mitigations against SAS attack. Namely that

      • An implementation should fix the list of keys it's attempting to verify at the beginning of the operation.
      • The implementation should from that point on refer to those keys solely by citing the public keys themselves, not by their "key IDs".
      • The implementation should first check whether a given key ID is a MSK (referring to a cross-signing user identity), and only then check whether it matches a device.
    • Specify that secrets should only be accepted from your own, trusted devices.

      • Note explicitly that when receiving a secret in an (Olm-encrypted) to-device message, the receiver must check that the device key of the other side of the Olm session ("sender key") matches an own, trusted device.

        It's not enough to check the device ID.

    • Specify what it means for a device to be trusted (i.e. it's when it's verified using cross-signing. Is it anything else?)

@dkasak dkasak added clarification An area where the expected behaviour is understood, but the spec could do with being more explicit A-E2EE Issues about end-to-end encryption labels Oct 6, 2022
@uhoreg uhoreg self-assigned this Oct 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-E2EE Issues about end-to-end encryption clarification An area where the expected behaviour is understood, but the spec could do with being more explicit
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants