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

Clarify where to use SLSA Provenance vs. VSA #974

Open
joshuagl opened this issue Oct 3, 2023 · 6 comments
Open

Clarify where to use SLSA Provenance vs. VSA #974

joshuagl opened this issue Oct 3, 2023 · 6 comments
Labels
clarification Clarification of the spec, without changing meaning

Comments

@joshuagl
Copy link
Member

joshuagl commented Oct 3, 2023

In the SLSA specification meeting on 2023-10-02 @MarkLodato suggested to clarify in the specification that:

  • SLSA Provenance format makes sense when the consumer can see the source (i.e. is within the same company as the attestor, or is consuming open source).
  • When closed source crosses organizational boundaries, SLSA Provenance isn’t especially meaningful. A Verification Summary Attestation (VSA) to claim a SLSA check was performed makes most sense to convey SLSA implementation in this case.
    • It was also noted that the VSA could include a hash of the provenance, which could later be used to prove to an auditor that a provenance attestation matches the claims in a VSA.
@joshuagl joshuagl added the clarification Clarification of the spec, without changing meaning label Oct 3, 2023
@joshuagl
Copy link
Member Author

joshuagl commented Oct 3, 2023

This feels like a good thing to add to the specification soon, i.e. v1.1

@joshuagl
Copy link
Member Author

joshuagl commented Oct 3, 2023

  * It was also noted that the VSA _could_ include a hash of the provenance, which could later be used to prove to an auditor that a provenance attestation matches the claims in a VSA.

The inputAttestations field can be used for this purpose, we just need to recommend that.

@arewm
Copy link
Member

arewm commented Oct 13, 2023

When closed source crosses organizational boundaries, SLSA Provenance isn’t especially meaningful. A Verification Summary Attestation (VSA) to claim a SLSA check was performed makes most sense to convey SLSA implementation in this case.

It is not just when crossing organizational boundaries. In the specification, the SLSA Provenance format is only a recommendation. It might be too generic to just indicate that VSAs can be used when crossing boundaries, but maybe there can be an additional recommendation if the provenance does not conform to the SLSA Provenance format.

@TomHennen
Copy link
Contributor

Note that the VSA is also especially useful when you want to do recursive/transitive evaluation of a policy against an artifact (and this is in fact why it was originally developed).

Would it be worth noting that as well?

CC @AdamZWu

@kpk47
Copy link
Contributor

kpk47 commented Oct 13, 2023

* SLSA Provenance format makes sense when the consumer can see the source (i.e. is within the same company as the attestor, or is consuming open source).

This concept generalizes to future SLSA tracks as well, so perhaps the phrasing should be about whether the consumer has sufficient context to evaluate an attestation? For example, even if you can see a repo's source code, you may not be able to see the configuration that determines its Source level. In that case, a signed VSA from the source control system or some other trusted party should be sufficient for verifying Source level.

@joshuagl
Copy link
Member Author

This concept generalizes to future SLSA tracks as well, so perhaps the phrasing should be about whether the consumer has sufficient context to evaluate an attestation?

Absolutely agree, great suggestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarification Clarification of the spec, without changing meaning
Projects
Status: 🆕 New
Development

No branches or pull requests

4 participants