Skip to content

Conversation

codedust
Copy link

@codedust codedust commented Aug 3, 2025

  • do not use the term 'cross-signing keys' anymore: Previously, the term 'cross-signing keys' was used to refer to the master, user-signing and self-signing keys. This is not ideal since the master key is used for cross-signing but may also be used to sign the backup key, for example. In these contexts, the master key is not used for cross-signing. The term 'cross-signing keys' has therefor been replaced by 'keys used for cross-signing' or, more explicitely, by 'master, user-signing and self-signing key'.
  • the naming of the master key has been harmonised (no more 'master cross-signing key' or 'master signing keys'). Also the abbr. 'MSK' has been replaced by 'MK'.
  • in the QR code example, the term 'cross-signing key' has been replaced by 'master key' since in mode 0x00, the current user's own master key and what the device thinks the other user's master key is used.
  • it has been made more explicit that private keys used for cross-signing can be stored on the server are stored as described in the secrets module (as opposed to store them in unencrypted form)

Pull Request Checklist

Preview: https://pr2188--matrix-spec-previews.netlify.app

@codedust codedust requested a review from a team as a code owner August 3, 2025 16:20
- do not use the term 'cross-signing keys' anymore: Previously, the term
  'cross-signing keys' was used to refer to the master, user-signing and
  self-signing keys. This is not ideal since the master key is used for
  cross-signing but may also be used to sign the backup key, for example.
  In these contexts, the master key is not used for cross-signing.
  The term 'cross-signing keys' has therefor been replaced by 'keys used
  for cross-signing' or, more explicitely, by 'master, user-signing and
  self-signing key'.
- the naming of the master key has been harmonised (no more 'master
  cross-signing key' or 'master signing keys'). Also the abbr. 'MSK' has been
  replaced by 'MK'.
- in the QR code example, the term 'cross-signing key' has been replaced
  by 'master key' since in mode 0x00, the current user's own master key and
  what the device thinks the other user's master key is used.
- it has been made more explicit that private keys used for cross-signing can
  be stored on the server are stored as described in the secrets module (as
  opposed to store them in unencrypted form)

Signed-off-by: codedust <[email protected]>
@codedust codedust force-pushed the clarify-keys-used-for-cross-signing branch from 1c78feb to f42ce28 Compare August 3, 2025 16:21
Authentication Codes (MACs) for:
* Each of the keys that they wish the other user to verify (usually their
device ed25519 key and their master cross-signing key).
device ed25519 key and their master key, see below).
Copy link
Member

Choose a reason for hiding this comment

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

hrm, I am not sure I love the term "master key". In some respects, the secret storage key is more of a "master key" since it allows access to all the other keys.

Maybe we should stick with a "master signing key"?

Alternatively, we could call it "master identity key" (see also: matrix-org/matrix-spec-proposals#4161).

Copy link
Contributor

Choose a reason for hiding this comment

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

I feel similarly. If I understand the motivation correctly, the issue is that the MSK is not only used for cross signing. It's still always(?) used for signing, however, so the term "master signing key" seems somewhat fitting to me. Given that "MSK" is already an established term, we might actually cause more harm than good by rebranding it "MK".

Copy link
Author

Choose a reason for hiding this comment

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

In API endpoints, the key is already named master_key. Hence, the current situation is super confusing (master_key in the API endpoints, master key in textual explainations, MSK as its abbreviation).

Copy link
Contributor

Choose a reason for hiding this comment

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

Hm, that's true and changing API identifiers feels quite unfeasible. 🫤

Copy link
Member

Choose a reason for hiding this comment

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

In API endpoints, the key is already named master_key.

True, but as @Johennes says, changing that is hard. The text of the spec does not need to be constrained by the poor choices of the API.

If necessary, we can use words of the form "master signing key (sometimes known, for historical reasons, simply as master_key)", but to be honest I don't think that's necessary.

Co-authored-by: Richard van der Hoff <[email protected]>
Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

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

👎 to renaming to "master key"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants