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

Pinned Fulcio and Rekor root certs should be updatable via TUF #60

Open
patflynn opened this issue Jul 11, 2022 · 4 comments
Open

Pinned Fulcio and Rekor root certs should be updatable via TUF #60

patflynn opened this issue Jul 11, 2022 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@patflynn
Copy link
Collaborator

Currently we have statically included the Rekor and Fulcio public keys into the library. These keys should be updatable via TUF.

@patflynn patflynn added the enhancement New feature or request label Jul 11, 2022
@patflynn patflynn self-assigned this Jul 11, 2022
patflynn pushed a commit that referenced this issue Sep 9, 2022
WIP towards #60

Signed-off-by: Patrick Flynn <patrick@chainguard.dev>
@patflynn
Copy link
Collaborator Author

patflynn commented Sep 9, 2022

Here is a list of follow on items that I need to do:

  • Handle upcoming addition of PEM headers to role public keys. (ex)[https://github.com/sigstore/sigstore/compare/main...asraa:sigstore:test-migrate-root?expand=1]
  • Implement local store interface to replace direct filesystem read/write
  • Implement snapshot update
  • Implement timestamp update
  • Implement target updates
  • move to consistent snapshots
  • add support for creating/managing map.json. I suspect we want to isolate our map.json repos from other clients.
  • API for fetching TUF targets (rekor and fulcio public keys) with meta support for service url -> root mapping. See client design (here)[https://docs.google.com/document/d/1QWBvpwYxOy9njAmd8vpizNQpPti9rd5ugVhji0r3T4c/edit]
  • client should have configurable timeouts

Obviously as we add more resource types we need to refactor. The good news is most of the weirdness in the parsing and verification has been tackled so the rest of the resources should be pretty quick. (famous last words).

@vlsi
Copy link
Collaborator

vlsi commented Jan 28, 2023

The question is how the default caching should work.
It would be weird if every signing would require TUF update.
On the other hand, if we claim $HOME/.sigstore-java/caches/tuf, then we would need to plan for concurrent access (e.g. multiple sigstore-java trying to update TUF concurrently).
On the other hand, it might be fun to have cross-ecosystem TUF cache, so the cache folder could be like .sigstore/caches/tuf

@patflynn
Copy link
Collaborator Author

@vlsi take a look at https://docs.google.com/document/d/1QWBvpwYxOy9njAmd8vpizNQpPti9rd5ugVhji0r3T4c/edit for the way the local store is supposed to work. We expect to store the local cache under ~/.sigstore by default and then there's going to probalby be a sub-directory per client-spec (map.json), that we would probably create from the client.

@loosebazooka
Copy link
Member

done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants