-
Notifications
You must be signed in to change notification settings - Fork 72
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
Add Release Attestation #319
Conversation
Signed-off-by: Zach Steindler <steiza@github.com>
After more discussions I withdrawn this comment, I jumped the gun here 😄 |
Signed-off-by: Zach Steindler <steiza@github.com>
This is one of the use cases I've imagined for VSAs.
I've heard feedback that one reason folks might not want to use VSAs for this purpose is that they don't want be in position of evaluating SLSA policy themselves (fair). The VSA format is also currently probably more complex than it needs to be (I'm working on how it can be significantly simplified). Is there any other reason you wouldn't use a VSA for this purpose? |
Yes, so from the proposal we said: "Perhaps surprisingly, this predicate does not depend on SLSA Provenance, but they are better together." We want ecosystems to be able to use release attestations completely independently from if they support SLSA provenance or not. This isn't because we don't like SLSA provenance (quite the opposite!) Rather, we're looking for security capabilities that are easier for ecosystems to make use of on their way towards SLSA provenance. |
Signed-off-by: Zach Steindler <steiza@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again
…easeId Signed-off-by: Zach Steindler <steiza@github.com>
Ah, I think there may be some misunderstanding. I'm not asking about the SLSA provenance, but rather the verification summary attestation which doesn't have to imply any SLSA evaluation has taken place (there's some discussion of making it more abstract and making it a more generic attestation), and can communicate other details about package. The thing that I think is most helpful about a VSA is the ability to apply arbitrary tags (via |
Do note that in the update I pushed today I added an option predicate, |
Making VSA more abstract is an interesting idea. But today, the top line of https://slsa.dev/spec/v1.0/verification_summary says:
I'm happy to follow along as the VSA conversation continues, but I don't think we should block this proposal of release attestations as an in-toto predicate on those VSA conversations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
… text Signed-off-by: Zach Steindler <steiza@github.com>
Signed-off-by: Zach Steindler <steiza@github.com>
I've added the proto definition (but not the generated code) to this pull request - let me know if you'd like the generated code as well.
I'm not sure I understand this process, but I took a stab at this with in-toto/in-toto.io#23 |
We have a workflow for generating the language bindings from the protos, so you're all set!
This is a new part of the process for us, so we're still finalizing some of the details, but the PR you opened in that repo is definitely in line with how we want this to work. Thanks!! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the updates @steiza ! I think we're almost there. Can you please also fix the linter errors?
Signed-off-by: Zach Steindler <steiza@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the updates @steiza ! LGTM. One more (optional) improvement could be to show an example of how one would convert an npm publish attestation into this release attestation, for extra clarity.
Signed-off-by: Zach Steindler <steiza@github.com>
Signed-off-by: Zach Steindler <steiza@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's go 🚀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
couple of comments but looks good overall!
Signed-off-by: Zach Steindler <steiza@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @steiza!
Co-authored-by: Marcela Melara <marcela.melara@intel.com> Signed-off-by: Zach Steindler <steiza@github.com>
df0caf7
to
1b21574
Compare
This pull request proposes a Release Attestation, following the process outlined by ITE-9.
The purpose of this attestation is to authoritatively link from a specific release name and version string in a registry, to the artifact names and hashes that make up that release. This allows consumers of that release version to ensure the artifacts they are consuming have not been tampered with.
This is a formalization of what npm does today with what it calls the publish attestation.
Feedback welcome!