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

embedded TUF root file should be updated #1138

Open
jku opened this issue May 3, 2023 · 7 comments
Open

embedded TUF root file should be updated #1138

jku opened this issue May 3, 2023 · 7 comments
Labels
bug Something isn't working

Comments

@jku
Copy link
Member

jku commented May 3, 2023

It looks like the embedded TUF root metadata that cosign uses comes from this repository: https://github.com/sigstore/sigstore/blob/main/pkg/tuf/repository/root.json
(I'm not super familiar with Go or this code base so please correct if that's not right)

This embedded metadata file doesn't have to match the current published repository, but it would make sense to keep it fairly up-to-date: most network traffic on the sigstore TUF repository seems to be cosign instances downloading old root metadata files. Updating the embedded root would decrease the traffic on the repository and improve the cosign user experience.

I'll be filing another issue to improve the process (so it would be easier to keep this file updated in future) but this bug is just about updating the embeddded root to current one from https://github.com/sigstore/root-signing/tree/main/repository/repository .

(EDIT: "bug" might be the wrong label: nothing is strictly speaking broken)

@bobcallaway
Copy link
Member

@asraa @haydentherapper @kommendorkapten

@kommendorkapten
Copy link
Member

I can take a look tomorrow morning my time!

@asraa
Copy link
Contributor

asraa commented May 3, 2023

I'll be filing another issue to improve the process (so it would be easier to keep this file updated in future) but this bug is just about updating the embeddded root to current one from https://github.com/sigstore/root-signing/tree/main/repository/repository .

I really like the idea on the cross issue you posted about auto-filing issues in clients. We can perhaps add a list of client repositories to a workflow and ask clients who are onboarding to add their repository to that.

@haydentherapper
Copy link
Contributor

+1 to updating this! Originally the thought was that we'd want to use the V1 root, because users could audit that root and check it matches what was publicly signed. Given this would require a manual step anyways, for performance, it's best to just include the latest root, and if a user really wants to check that it chains up to the publicly documented V1 signing, they can do so still.

Also note that the target files should be updated too to include trusted_root.json (even though cosign doesn't use it currently)

@asraa
Copy link
Contributor

asraa commented May 4, 2023

Originally the thought was that we'd want to use the V1 root, because users could audit that root and check it matches what was publicly signed.

Yes - but speaking of, most clients (including the Go one now) are incompatible with our V1 root due to specification inconsistencies with the go-tuf repository tooling at the time - so keeping things at latest simplifies that. We should have a chart though that specifies where client compatibility was reached for each client impl.

@haydentherapper
Copy link
Contributor

We should also provide a script to verify a root against V1, handling the incompatibilities. It’ll either need to check out an old version of go-TUF or configure using the hex keys (I don’t recall if that was removed)

@asraa
Copy link
Contributor

asraa commented May 4, 2023

We should also provide a script to verify a root against V1, handling the incompatibilities. It’ll either need to check out an old version of go-TUF or configure using the hex keys (I don’t recall if that was removed)

We have a script like that in the root-signing repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants