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

proposal: Use TUF-on-CI to maintain root-signing #929

Open
jku opened this issue Aug 22, 2023 · 7 comments
Open

proposal: Use TUF-on-CI to maintain root-signing #929

jku opened this issue Aug 22, 2023 · 7 comments
Labels
enhancement New feature or request

Comments

@jku
Copy link
Member

jku commented Aug 22, 2023

Hi root-signing contributors and interested bystanders,

@kommendorkapten and I have been working on TUF-on-CI for the past few months -- it's a more "productized" TUF signing system that works on top of git and GitHub like root-signing. I'd like to propose gradually moving the maintenance of Sigstore root-signing to happen with TUF-on-CI.

Summary

  • I believe moving root-signing to TUF-on-CI is good not just for Sigstore but also for other projects looking for similar artifact delivery solutions (see Thoughts around if this is generalizable for other root/key signing ceremonies? #762)
  • I'd like to start by creating a separate (but almost identically operating) TUF repository (that I'll refer to as root-signing-staging here but I'll take better names). The purpose is to have a low-risk test environment not just for this change but any future root-signing design changes. This new repository would be maintained with TUF-on-CI and would replace "staging" directory in this git repository.
  • root-signing-staging would be where missing features and bugs are ironed out. Based on experience from root-signing-staging we can then decide whether to maintain production root-signing with TUF-on-CI as well.

More details

Next steps

  • arrange a meeting where folks who are interested can ask questions and state opinions on the open design questions
  • find a couple of volunteers to help out with the final root-signing-staging repository design details and to be root-signing-staging signers willing to test drive things

I'll start a thread on slack (sigstore-keyholders maybe?) about this: comments are welcome here or in slack

@jku jku added the enhancement New feature or request label Aug 22, 2023
@joshuagl
Copy link
Member

This is great! I fully support the proposal to use TUF-on-CI to maintain this repository.

For the keyholder audience, it would likely be useful to be able to compare the current ceremony to how the ceremony should work after the change. That would be a good demo and an even better diagram/document.

@jku
Copy link
Member Author

jku commented Sep 4, 2023

I forgot to update this issue:

  • I've proposed 6pm EEST (11am EDT) on Wed Sept 6 as meeting time about this
    • feel free to suggest another time, especially if you're interested in being a guinea pig (a signer for the staging repository)
    • Just a couple of interested keyholders should be enough to give us the feedback needed, but everyone interested is welcome
  • I've written some more about how the different processes work: https://docs.google.com/document/d/1Omnym92RcEBijauDiwobsMuO2alUavKAWA62rGuMSPw/edit?usp=sharing

@jku
Copy link
Member Author

jku commented Oct 10, 2023

I'll need to find the right place to file an issue for this but:

  • I'd like to get a new project under the sigstore org: root-signing-staging is the best name I have so far (but I'll take other options): the purpose as documented above is a separate TUF repository that operates like root-signing but allows testing new processes and tools without affecting production service level
  • Project maintainers could include @kommendorkapten and me (@jku) to start with
  • the project needs access to one online (GCP KMS) key: preferably a new key only used for this purpose, but a generic testing key works too. Preferably I'd also like roles/cloudkms.publicKeyViewer for myself to make the setup easier but if that is difficult I'll think of another solution
  • Plan is to start publishing the repository in GitHub Pages (so sigstore.github.io/root-signing-staging/) -- maybe change this to match production root-signing later. This means we'll need to be able to modify settings->pages and settings->environments (or I can document what needs changing here)

@jku
Copy link
Member Author

jku commented Jan 12, 2024

for reference: sigstore/root-signing-staging#1 is ongoing but the TUF repository is not functional yet (KMS is not working). Next steps for sigstore/root-signing-staging are:

  • get online signing working in the new project
  • test the result with various clients, ensure smooth upgrade from current root-signing-staging TUF metadata
  • setup publishing from the new project to the root-signing-staging GCS bucket
  • remove staging metadata (and publishing) from this repository

@jku
Copy link
Member Author

jku commented Jan 19, 2024

sigstore/root-signing-staging is now technically operational (provisional, not published to the official GCS bucket yet).
Next steps:

  • client smoke tests are ongoing
  • some small improvements to tuf-on-ci would make sense before adding more signers
  • Arrange a show-and-tell for interested signers, add a few more signers
  • Implement publishing to GCS

@jku
Copy link
Member Author

jku commented Apr 18, 2024

Update:

  • sigstore/root-signing-staging is working OK with four signers
  • sigstore-probers has a PR to make it compatible with future changes
  • root-signing-staging tests are now IMO more comprehensive than what we have here

My next step is a dry-run of importing the production repo into tuf-on-ci:

  • there's an open issue with npmjs.org delegation handling but other than that I'm not aware of any blockers.
  • the deprecated roles in snapshot.json should not be an issue but I'd like to be sure

@jku
Copy link
Member Author

jku commented May 22, 2024

Update:

Next:

  • write a migration plan, get it reviewed

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

2 participants