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

Add definition for Sigstore's DSSE signature extension #145

Merged
merged 1 commit into from
Jan 8, 2024

Conversation

adityasaky
Copy link
Member

@adityasaky adityasaky commented Sep 26, 2023

Summary

Addresses sigstore/sig-clients#9

This PR adds a definition for Sigstore's DSSE signature extension. The definition is a subset of the current VerificationMaterials message, omitting the option for a key ID in place of the cert chain. This is because the sigstore signature extension in a DSSE signature must only be used to communicate the intermediate certs and timestamp / tlog info.

secure-systems-lab/dsse#61 introduces extensions to the DSSE specification.

Release Note

Define DSSE signature extension for Sigstore signatures.

Documentation

None.

@haydentherapper
Copy link
Collaborator

cc @jku @loosebazooka @TomHennen too

@haydentherapper haydentherapper self-requested a review September 26, 2023 19:02
@adityasaky
Copy link
Member Author

I've re-emphasized that the public_key field must match the keyid in the dsse signature per #148. I've also cleaned up my commits etc.

haydentherapper
haydentherapper previously approved these changes Jan 3, 2024
Copy link
Collaborator

@haydentherapper haydentherapper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with this! Thanks for all the discussion (and patience) on this. Tagging a few more maintainers: @woodruffw @kommendorkapten @mnm678 @bdehamer

@haydentherapper
Copy link
Collaborator

@adityasaky Not sure why the tests didn't catch this, but can you run make all to update the comments in the generated files?

DSSE is adding support for signature extensions where a signature can
include signing-ecosystem specific information for each signature. The
first extension is for Sigstore. This commit allows for using
VerificationMaterial as the structure for the DSSE extension.

Signed-off-by: Aditya Sirish <[email protected]>
@adityasaky
Copy link
Member Author

Done!

Copy link
Member

@woodruffw woodruffw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM -- one clarifying comment!

(Given that this changes only the docs, I'm a little bit hazy on what this does, since the doc change doesn't seem actionable to a Sigstore client implementer. But that is possibly just an audience thing.)

Comment on lines +51 to +58
// signatures. This message may be embedded in a DSSE envelope as a signature
// extension. Specifically, the `ext` field of the extension will expect this
// message when the signature extension is for Sigstore. This is identified by
// the `kind` field in the extension, which must be set to
// application/vnd.dev.sigstore.verificationmaterial;version=0.1 for Sigstore.
// When used as a DSSE extension, if the `public_key` field is used to indicate
// the key identifier, it MUST match the `keyid` field of the signature the
// extension is attached to.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to make sure I'm not missing anything: this is the PR's only change, right? I don't see any protobuf definition changes 🙂

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the doc is the only change. This PR originally proposed a new message that was a subset of verification materials, but the feedback was to just use verification materials directly. The doc change unblocks secure-systems-lab/dsse#61 which introduces the sigstore DSSE extension.

the doc change doesn't seem actionable to a Sigstore client implementer

WRT a sigstore client, it's a question of whether it will support a DSSE envelope that uses the signature extension as an input to signature verification. See: sigstore/sig-clients#9 and the follow up sigstore/sig-clients#9 (comment).

@kommendorkapten kommendorkapten merged commit d96fa44 into sigstore:main Jan 8, 2024
25 checks passed
@adityasaky adityasaky deleted the add-dsse-extension branch January 8, 2024 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants