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

Add support for key rotation / change for providers #35

Open
adewes opened this issue Dec 1, 2021 · 0 comments
Open

Add support for key rotation / change for providers #35

adewes opened this issue Dec 1, 2021 · 0 comments
Assignees
Labels
discuss Issue for discussion, do not implement yet!

Comments

@adewes
Copy link
Member

adewes commented Dec 1, 2021

We should add a way for providers to regularly rotate / change their key pairs. This can e.g. be done as follows:

  • A provider marks a key pair as inactive.
  • The API will no longer distribute appointments from the provider with the inactive key pair, but appointment details will still be available for users as well as the provider.
  • The provider creates a new key pair and submits it to the backend for review.
  • A mediator signs the new key pair and provider data but marks it as initializing.
  • The provider app re-publishes all appointments using the new key pair, including the re-keyed booking data.
  • The provider app asks the backend to set the key pair status to active.

This process will still need some adjustments as it will break some functionality for the user app e.g. when checking the status of an appointment. It might be necessary to either re-add an independent provider ID (currently we use the hash of the public signing key) or link public keys via a data structure in the backend (i.e. when asking for a given provider ID for a public key the endpoint checks a link table and return the currently active provider ID).

@adewes adewes self-assigned this Dec 1, 2021
@adewes adewes added the discuss Issue for discussion, do not implement yet! label Dec 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Issue for discussion, do not implement yet!
Projects
None yet
Development

No branches or pull requests

1 participant