-
Notifications
You must be signed in to change notification settings - Fork 51
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
Verifying GitHub specific claims #157
Comments
See https://github.com/jku/sigstore-python/commits/github-verify for a prototype. It's a bit rough but I'll open a draft PR one of these days... In my branch I've included the certificate in the VerificationSuccess result: this could be made private but as public would also make it possible to implement this kind of functionality outside of the sigstore-python codebase, assuming Verifier is public API. Usage:
The API is not quite final - e.g. |
Agreed that we should allow users to verify any information that's available and not artificially prevent them from doing so. I do have concerns about this becoming unwieldy given the number of claims/args we'd need to support (multiplied by all the different OIDC providers) so I'd definitely want to think about this in the context of #124 and with a thought towards how we can make this easily generalizable (i.e., not require changes to the CLI if we introduce a new supported OIDC provider with different claims). |
Agreed with #157 (comment). One thing I'm particularly afraid of is a |
Yeah, it is a very valid concern and the main reason for not just creating a PR... I've played with the configuration format idea as well and see two problems with it:
A potential path forward is to make the Verifier API generally useful, and implement the provider specific tools as separate from the main |
So I've come back to this after a bit of a break and I think this is still the state of things:
I think the last item could be fairly easy to fix. I'll open a draft PR to get some opinions on this approach. |
@di ^ this is what I was referring to in earlier discussion. The context here is a "Python Packaging & Release Using Continuous Deployment" tutorial we're planning where I would really like to use sigstore-python to sign the release on GitHub... but it feels wrong to recommend signing if it's still impossible to verify the signature (in a meaningful way): that's just cargo cult signing. I will plug sigstore-python as the future tool in any case, but if I could show how to actually verify these GitHub signatures (even with an external script shown in my PR comment) I think we'd include |
Yes, I think we're blocked on some movement on sigstore/cosign#1964 so we can resolve #108 and have a way to verify arbitrary extensions (without needing to provide some GitHub-specific mechanism). |
The --cert-email/--cert-identity issue is clearly solvable... but I'm not sure exposing arbitrary extensions can lead to acceptable UX (whether the extensions are exposed to user via a command line interface or a configuration file that the verifier writes)? If it can be successfully done then that would certainly solve the problem. Some issues I've seen with exposing extensions (examples for GitHub obviously):
|
FYI this was added in sigstore/cosign#1626 for Cosign. We went with individual flags for each GitHub claim. |
I think the UX isn't ideal, and that the long-term solution would be a policy file. For one-off verifications, I think flags are fine. |
I'm going to include the backing work for this in #250. |
The API is done here, so I'm closing this in favor of #322 for tracking the CLI support. |
It would be very useful if it was possible to verify the GitHub specific claims in the certificate that we produce when using GitHub Actions. This is because the claims allow verifying that:
This completely defines the build process in an auditable way.
This issue is related to #106 and #124 but I figured it would make sense to have a specific issue as I have prototype code...
I've said this before but I'll restate: this GitHub-specific functionality does not have to live in sigstore-python but we should make sure it's somehow possible.
The text was updated successfully, but these errors were encountered: