6.4 KiB
6.4 KiB
StellaOps Signer
Signer validates callers, enforces Proof-of-Entitlement, and produces signed DSSE bundles for SBOMs, reports, and exports.
Latest updates (Sprint 0186/0401 · 2025-11-26)
- CryptoDsseSigner implemented with ICryptoProviderRegistry integration (SIGN-CORE-186-004), enabling keyless + KMS signing modes with cosign-compatible DSSE output.
- SignerStatementBuilder refactored to support StellaOps predicate types (
stella.ops/promotion@v1,stella.ops/sbom@v1,stella.ops/vex@v1, etc.) with CanonicalJson canonicalization (SIGN-CORE-186-005). - PredicateTypes catalog extended with
stella.ops/vexDecision@v1andstella.ops/graph@v1for reachability evidence chain (SIGN-VEX-401-018). - Helper methods added:
IsVexRelatedType,IsReachabilityRelatedType,GetAllowedPredicateTypes,IsAllowedPredicateTypefor predicate type validation. - Integration tests upgraded with real crypto abstraction, fixture predicates (promotion, SBOM, VEX, replay, policy, evidence, graph), and deterministic test data (SIGN-TEST-186-006). All 102 Signer tests passing.
Previous updates (Sprint 11 · 2025-10-21)
/sign/dssepipeline landed with Authority OpTok + PoE enforcement, Fulcio/KMS signing modes, and deterministic DSSE bundles ready for Attestor logging./verify/referrersendpoint exposes release-integrity checks against scanner OCI referrers so callers can confirm digests before requesting signatures.- Plan quota enforcement (QPS/concurrency/artifact size) and audit/metrics wiring now align with the Sprint 11 signing-chain release.
Responsibilities
- Enforce Proof-of-Entitlement and plan quotas before signing artifacts.
- Support keyless (Fulcio) and keyful (KMS/HSM) signing backends.
- Verify scanner release integrity via OCI referrers prior to issuing signatures.
- Emit DSSE payloads consumed by Attestor/Export Center and maintain comprehensive audit trails.
Key components
StellaOps.Signerservice host withSignerPipelineorchestrating the signing flow.CryptoDsseSignerfor ES256 signature generation viaICryptoProviderRegistry.SignerStatementBuilderfor in-toto statement creation withPredicateTypescatalog.DefaultSigningKeyResolverfor tenant-aware key resolution (keyless/KMS modes).- Crypto providers under
StellaOps.Cryptography.*.
Integrations & dependencies
- Authority for OpTok + PoE validation.
- Licensing Service for entitlement introspection.
- OCI registries (Referrers API) for scanner release verification.
- Attestor for transparency logging and Rekor ingestion.
- Export Center and CLI for artifact signing flows.
API quick reference
POST /api/v1/signer/sign/dsse— validate OpTok/PoE, enforce quotas, return DSSE bundle with signing identity metadata.GET /api/v1/signer/verify/referrers— report scanner release signer and trust verdict for a supplied image digest.
Operational notes
- Key management via Authority/DevOps runbooks.
- Metrics for signing latency/throttle states.
- Offline kit integration for signature verification.
Backlog references
- Sprint 0186:
docs/implplan/SPRINT_0186_0001_0001_record_deterministic_execution.md(SIGN-CORE-186-004, SIGN-CORE-186-005, SIGN-TEST-186-006 DONE; SIGN-REPLAY-186-003 blocked on upstream). - Sprint 0401:
docs/implplan/SPRINT_0401_0001_0001_reachability_evidence_chain.md(SIGN-VEX-401-018 DONE; AUTH-REACH-401-005 TODO). - SIG docs/tasks in ../../TASKS.md (e.g., DOCS-SIG-26-006).
Implementation Status
Phase 1 – Core service & PoE (Complete)
- OpTok validation with Authority DPoP/mTLS tokens and signer.sign scope
- Proof-of-Entitlement (PoE) introspection with cloud licensing integration
- Scanner release verification via OCI referrers
- DSSE signing pipeline: keyless (Fulcio) and keyful (KMS/HSM/FIDO2)
- KMS key management foundations (KMSI-73-001, KMSI-73-002)
- DSSE/SLSA BuildDefinition models with canonical JSON (PROV-OBS-53-001/002)
Phase 2 – Export Center integration (In Progress)
- CryptoDsseSigner with ICryptoProviderRegistry (keyless + KMS modes)
- SignerStatementBuilder refactored for StellaOps predicate types
- PromotionAttestationBuilder with canonicalized payloads (PROV-OBS-53-003)
- Cosign-compatible DSSE output with provenance manifests
- Blocking: SIGN-CORE-186-004/005 crypto provider refactoring, replay manifest support
Phase 3 – Attestor alignment (Not Started)
- DSSE envelope metadata for Attestor ingestion
- Extended predicate catalog: stella.ops/vexDecision@v1, stella.ops/graph@v1 (SIGN-VEX-401-018 complete)
- Helper methods: IsVexRelatedType, IsReachabilityRelatedType, predicate validation
- Blocking: AUTH-REACH-401-005 predicate definitions, verification library (PROV-OBS-54-001/002)
Phase 4 – Observability & resilience (Not Started)
- Metrics: signing latency, PoE failures, quota hits, key usage distribution
- Structured logs with trace IDs, subject digests, issuer mode, decision outcomes
- Alerts for PoE outages, key exhaustion, quota breaches, failure spikes
- CLI commands: stella promotion attest/verify, stella forensic attest show
Key Acceptance Criteria
- Signs only requests satisfying OpTok, PoE, quota, scanner provenance checks
- DSSE outputs verify with standard cosign tooling
- Export Center receives signed bundles with provenance manifests
- Audit logs capture every request with tenant, issuer, subject digest, PoE state
- CLI/Offline workflows verify signatures using Offline Kit trust roots
Technical Decisions & Risks
- PoE/entitlement outages: cache last-known entitlement within TTL, emergency bypass with audit
- Key compromise: hardware-backed keys, rotation cadence, immediate revocation, incident runbook
- Release verification failures: allowlist for trusted scanner digests, manual approval fallback
- Determinism: canonicalize JSON, lock timestamp sources, regression tests for DSSE hashing
Recent Updates (Sprint 0186/0401 · 2025-11-26)
- CryptoDsseSigner with ES256 signature generation via ICryptoProviderRegistry
- PredicateTypes catalog extended with VEX/graph predicates
- Integration tests upgraded with real crypto, fixture predicates (102 tests passing)
- CryptoPro signer plugin in progress (SEC-CRYPTO-90-020)
Epic alignment
- Epic 10 – Export Center: provide signing pipelines, cosign interoperability, and provenance manifests for bundle promotion.
- Epic 19 – Attestor Console: supply DSSE payloads and Proof-of-Entitlement enforcement feeding attestation workflows described in
docs/modules/attestor/.