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

If a server specifies multiple active verify keys, which one(s) are required to sign an object? #1471

Open
turt2live opened this issue Mar 21, 2023 · 1 comment
Labels
A-S2S Server-to-Server API (federation) clarification An area where the expected behaviour is understood, but the spec could do with being more explicit

Comments

@turt2live
Copy link
Member

turt2live commented Mar 21, 2023

Link to problem area:

Issue
Nowhere do we actually say which of the server's keys have to sign a given message, though the general case is that a server has exactly 1 active (not-old) key in play.

@turt2live turt2live added clarification An area where the expected behaviour is understood, but the spec could do with being more explicit A-S2S Server-to-Server API (federation) labels Mar 21, 2023
@richvdh
Copy link
Member

richvdh commented Mar 22, 2023

Yes, it's never made explicit, but for the record: it is sufficient for an object to be signed by any one active key.

Additionally: neither https://spec.matrix.org/v1.6/server-server-api/#request-authentication nor https://spec.matrix.org/v1.6/server-server-api/#validating-hashes-and-signatures-on-received-events say anything about validity. Again for the record, the expectation is that:

  • the time when a S-S API request was received, or
  • the origin_server_ts on an event

... must lie within the validity period of the key used for the signature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-S2S Server-to-Server API (federation) clarification An area where the expected behaviour is understood, but the spec could do with being more explicit
Projects
None yet
Development

No branches or pull requests

2 participants