matrix-org / matrix-org/matrix-spec

4S Secrets should be sent as part of the device verification exchange, not afterwards

Open
#2,209 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-E2EE improvement
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

Suppose a user has two devices, A and B. A is already verified and has access to the 4S secrets (private cross-signing keys, backup decryption key, etc).

Currently, if you perform an interactive verification between the devices, then once verification is complete, B must request the secrets from A, and wait for A to send them. This is problematic because the verification process isn't really "complete" until those secrets have been received, yet we may have to wait an unbounded amount of time for them to arrive.

(B must also wait for A's cross-signature to propagate: again this can take an unbounded amount of time.)

It would be much more robust if:

  • B indicated which secrets it expects early in the verification exchange (possibly even indicating the public keys), so that we can warn the user early on if some secrets are going to be missing
  • A sent the secrets within the verification exchange itself (part of the done message?)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or specification sections. Start by locating the interactive verification exchange and existing 4S secret-sharing flow in the Matrix specification; define the request and response semantics, including missing secrets, and document clear completion criteria.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.