up
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
This commit is contained in:
28
docs/airgap/mirror-bundles.md
Normal file
28
docs/airgap/mirror-bundles.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Mirror Bundles (Airgap 56-003)
|
||||
|
||||
Defines the mirror bundle format and validation workflow for sealed deployments.
|
||||
|
||||
## Contents
|
||||
- Images/charts: OCI artifacts exported with digests + SBOMs.
|
||||
- Manifests: `manifest.json` with entries:
|
||||
- `bundleId`, `mirrorGeneration`, `createdAt`, `producer` (export center), `hashes` (sha256 list)
|
||||
- `dsseEnvelopeHash` for signed manifest (if available)
|
||||
- `files[]`: path, sha256, size, mediaType
|
||||
- Transparency: optional TUF metadata (`timestamp.json`, `snapshot.json`) for replay protection.
|
||||
|
||||
## Validation steps
|
||||
1. Verify `manifest.json` sha256 matches provided hash.
|
||||
2. If DSSE present, verify signature against offline trust roots.
|
||||
3. Validate Merkle root (if included) over `files[]` hashes.
|
||||
4. For each OCI artifact, confirm digest matches and SBOM present.
|
||||
5. Record `mirrorGeneration` and manifest hash; store in audit log and timeline event.
|
||||
|
||||
## Workflow
|
||||
- Export Center produces bundle + manifest; Attestor/Excititor importers validate before ingest.
|
||||
- Bundle consumers must refuse imports if any hash/signature fails.
|
||||
- Keep format stable; any schema change bumps `manifestVersion` in `manifest.json`.
|
||||
|
||||
## Determinism
|
||||
- Sort `files[]` by path; compute hashes with UTF-8 canonical paths.
|
||||
- Use ISO-8601 UTC timestamps in manifests.
|
||||
- Do not include host-specific paths or timestamps in tar layers.
|
||||
Reference in New Issue
Block a user