2.3 KiB
2.3 KiB
Per-Layer DSSE Attestations
Module
Attestor
Status
IMPLEMENTED
Description
Layer-specific DSSE attestations with batch signing for efficiency, generating individual attestations per container image layer linked to layer-specific SBOM subjects.
Implementation Details
- DSSE Envelope Signing:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs(with.Verification) -- signs per-layer attestations into DSSE envelopes. Supports batch signing for multi-layer images. - DSSE Envelope:
Signing/DsseEnvelope.cs-- envelope model with payload, payloadType, and signatures array. - DSSE Signature:
Signing/DsseSignature.cs-- individual signature within an envelope. - Statement Builder:
Builders/StatementBuilder.cs(with.Extended) -- builds in-toto statements with layer-specific subjects (layer digest as subject). - Proof Subject:
Builders/ProofSubject.cs-- subject model with name (layer digest) and digest map. - Attestation Bundler:
__Libraries/StellaOps.Attestor.Bundling/AttestationBundler.cs-- bundles per-layer attestations into a single container-level bundle. - OCI Attachment:
__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs-- attaches per-layer attestations to container image digests via OCI Referrers API. - Signing Key Profile:
Signing/SigningKeyProfile.cs-- key profile used for signing (supports per-layer key selection). - Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/DsseSigningTests.cs
E2E Test Plan
- Create per-layer in-toto statements for a 3-layer container image with layer digests as subjects and sign each via
ProofChainSigner - Verify each per-layer DSSE envelope has the correct layer digest in the subject
- Batch-sign all 3 layer attestations and verify all envelopes are produced efficiently
- Bundle per-layer attestations into a container-level bundle via
AttestationBundlerand verify the bundle references all layers - Attach per-layer attestations to the container image via
OrasAttestationAttacherand verify they are discoverable as referrers - Verify each per-layer attestation signature independently via
ProofChainSigner.Verification - Create a per-layer attestation linking to a layer-specific SBOM and verify the SBOM subject reference