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

Repository workflows: document how a repository recovers from compromise #186

Open
joshuagl opened this issue Sep 21, 2021 · 2 comments
Open

Comments

@joshuagl
Copy link
Member

This may be in secondary literature #91 or it may belong as part of the specification, but either way, we should capture more guidance for repository operators (and repository tooling implementers).

Specifically for this issue, what should a repository do to recover from compromise?

For fast forward attacks, the Mercury paper makes some suggestions in section 5.3 and there's some more thoughts in https://github.com/theupdateframework/specification/pull/150/files#r710834950 and #150 more generally.

@jku
Copy link
Member

jku commented Nov 11, 2021

In addition (not sure if this is another issue as it's not strictly about compromise), I don't think the key rotation strategies are spelled out anywhere:

  • root rotation typically requires two root versions: First an intermediate one that changes roles keys and signs with "old" and "new" keys, then a final one that signs with new keys only
  • other rotations do not require this but there is a slightly similar case with online keys: if uncompromised keys are being rotated (because maybe policy says so) without urgency, the snapshot/metadata files could first be signed with both new and old keys and then (significantly later) a new root version would add the new key and remove the old key to the role. This process would give clients the possibility to actually do rollback checks for next timestamp and snapshot: if keys are changed without adding signatures beforehand, that would mean the local snapshot/timestamp cannot be valid and cannot be used for rollback checks).

The second item is a bit obscure and not massively important but it is something I've only realised after a year and a half so 🤷 ...

@joshuagl
Copy link
Member Author

joshuagl commented Jan 7, 2022

This comment from @jku in #150 is especially relevant to this discussion.

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

No branches or pull requests

2 participants