Skip to content

Cosign support for SLSA Source Track #4210

@steiza

Description

@steiza

Description

The draft of the SLSA Source Track includes an example in-toto statement. What are the gaps required to cover for cosign to be able to sign and verify these statements?

For signing, the attest-blob subcommand is close to what we want. It lets you specify the path to the predicate contents with --predicate and the predicate type with --type, but we don't have a way of setting the subject to match the example. And of course we'd use --new-bundle-format=true --bundle to get a protobuf bundle that the Sigstore clients have standardized on.

If we use attest-blob for signing, we should probably use verify-blob-attestation for verification. We'd use --bundle to supply the bundle from signing, but we also need some way to supply the hash we're expecting was used for signing (and again, likely it'd be SHA1 instead of SHA256). Here we have an advantage in that verify-blob-attestation will always use sigstore-go (which we already know can verify these in-toto statements) if a protobuf bundle is being used, but we need a way to supply the hash (and hash algorithm) to send to sigstore-go.

In this description of the problem, I am purposefully not suggesting solutions. But people should feel free to propose solutions in the issue discussion!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions