Skip to content

Per-component attestation for cFS WASM components: mission-specific signing policies #79

@avrabe

Description

@avrabe

Context

In a cFS-on-WASM architecture, each flight software app (Stored Command, Limit Checker, Scheduler, etc.) is an independent WASM component. Sigil's supply chain attestation becomes critical: each component needs independent signing and verification before deployment to safety-critical targets.

Proposal

Mission-Specific Signing Policies

# sigil-policy.toml
[mission]
name = "artemis-gateway"
classification = "class-a"

[policy]
# All components must have at least 2 signers
min_signers = 2

# Components must be signed by both developer and IV&V
required_roles = ["developer", "ivv"]

# Verification evidence must be attached
require_attestation = ["loom-verified", "synth-z3-validated", "meld-proof-checked"]

# Component-specific overrides
[policy.components."health-safety"]
# HS is safety-critical — require additional safety review
required_roles = ["developer", "ivv", "safety-reviewer"]
require_attestation = ["loom-verified", "synth-z3-validated", "meld-proof-checked", "stpa-reviewed"]

Attestation Chain

Each WASM component carries embedded attestations from the build pipeline:

  1. Loom attestation: "This component was optimized with Z3-verified passes"
  2. Meld attestation: "This component was fused with Rocq-proven merge correctness"
  3. Synth attestation: "This component was compiled with Z3 translation validation"
  4. Sigil signature: Developer + IV&V signatures on the final binary

Verification at Load Time

When Kiln loads a component (or Gale loads a Synth-compiled ELF):

  1. Verify Sigil signatures against mission policy
  2. Check attestation chain completeness
  3. Reject components missing required verification evidence
  4. Log verification results for mission audit trail

Connects to

  • kiln#231: cFS reference architecture (components need signing)
  • kiln#227: Executive Services (component loading with verification)

Priority

Medium — important for certification but can follow component development.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions