Deterministic SBOM Composition

Status: Ready v1.0 (Sprint 136 linkage; fixtures dated 2025-12-03)
Owners: Scanner Guild · DevEx/CLI Guild · UI Guild · Docs Guild · Security Guild
Related Tasks: SCANNER-SURFACE-04, SURFACE-FS-07, SCANNER-EMIT-15-001, SCANNER-SORT-02, CLI-SBOM-60-001, CLI-SBOM-60-002, UI-SBOM-DET-01, UI-POLICY-DET-01, DOCS-SCANNER-DET-01, DOCS-POLICY-DET-01, DOCS-CLI-DET-01, SCANNER-CRYPTO-90-002, SCANNER-CRYPTO-90-003

1. Purpose

Guarantee that every container scan yields provably deterministic SBOM artifacts that can be verified offline. Each layer fragment is DSSE-signed before merge, _composition.json captures the canonical merge recipe, and the final CycloneDX inventory/usage SBOMs expose Merkle roots and stella.contentHash properties. CLI/UI/policy layers consume those signals to block non-deterministic releases and provide human-friendly diagnostics.

2. Scope

2.1 Fragment attestation

2.2 Canonical merge

2.3 Surface manifest extensions

2.4 Tooling impacts

3. Verification Flow (offline kit)

  1. Verify DSSE on each fragment (using verifiers.json).
  2. Recompute sha256(c14n(fragment)) and compare with _composition.json.
  3. Re-run composition locally (using canonical ordering) and compare sha256(c14n(composed)) against manifest.properties["stellaops:merkle.root"].
  4. Optionally validate provided Merkle proofs (leaf → root) and attest that the UI/Policy gate marked the scan as deterministic.

3.1 Reference fixture (deterministic-compose)

4. Deliverables Checklist

AreaDeliverable
Scanner WorkerDSSE per fragment, _composition.json, canonical fragment serializer, Surface manifest updates
Emit pipelineLayer-sorted composition, stella.contentHash, Merkle metadata, PQ-aware signing hooks
CLIstella sbomer layer/compose/drift, verification commands, documentation
UIDeterminism badge, drift diagnostics, policy gate wiring
DocsUpdated scanner/cli/policy guides, offline kit instructions
TestsRegression suites covering canonicalization, DSSE verification, PQ keypaths, Merkle roots

5. Operational workflow (worker → CLI/UI/Policy)

6. References