docs(milestone): complete v0.12 — Security Hardening (Zero-Trust Identity) (29 phases shipped)
---ci--- project: orca phase: 28 milestone: v0.12 status: complete requirements: covered: [119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148] partial: [] ---/ci--- v0.12 Security Hardening milestone complete. 29 phases shipped (v0.11.0..v0.11.28). 30 net-new requirements (REQ-119..REQ-148). 25 threat-model findings closed (F1..F25). R-021 adopted (no Orca credentials). Bundled Dex + WebAuthn (passkeys) + master key seal-to- OIDC + Shamir 3-of-5. 10 binding conditions (C-29..C-38). Key deliverables: - Zero-trust identity: OIDC client + bundled Dex + WebAuthn connector - ACL rewrite to OIDC claims (KindToken deprecated) - Password/token removal (R-021; breaking change with migration gate) - Master key seal-to-OIDC + Shamir 3-of-5 recovery - Audit log tamper-evidence (hash chain + append-only triggers) - SVID chain validation against CA pool - Command injection fixes (podman/wasm shellQuote) - Path traversal prevention (ns.ValidateName + txn path allowlist) - Backup symlink validation - step-ca /tmp hardening + OIDC provisioner - Daemon mandatory mTLS + body limits + pprof loopback-only - nftables conntrack + invalid drop - Sudoers NOEXEC + apt-get/dpkg removed - System user consistency (nologin) - SQLite 0600 file mode - Migration safety (atomic copyFile + FK-on) - Drift event authentication (per-peer HMAC) - install.sh checksum verification - aggregate.sh JSON injection fix (jq) - known_hosts tightening (0600) - Security integration test suite - Threat model + OIDC + WebAuthn + security runbook docs Deferred to v1.x: legacy CA/mTLS/daemon deletion, SQLite encryption (CGO-free), transport rate limiting, HA step-ca. C-32 human-gate: GITEA_TOKEN rotation documented as escalation (non-blocking; ship as v0.11.28-rc1 if pending, v0.11.28 when confirmed).
This commit is contained in:
+30
-30
@@ -400,7 +400,7 @@ tags: `v0.10.0`…`v0.10.21`.
|
||||
- External CA / Let's Encrypt / cert transparency
|
||||
- Online-only features (HSTS, OCSP stapling, telemetry)
|
||||
|
||||
## Milestone v0.12: Security Hardening (Zero-Trust Identity) — IN PROGRESS
|
||||
## Milestone v0.12: Security Hardening (Zero-Trust Identity) — COMPLETE
|
||||
|
||||
**Scope**: comprehensive security hardening across the entire attack
|
||||
surface, **including the operating system itself**, plus adoption of a
|
||||
@@ -424,35 +424,35 @@ leaves the authenticator), directly satisfying R-021.
|
||||
**Milestone type**: feature (P04 OIDC+Dex and P05 WebAuthn ship `feat`
|
||||
phases; the rest are `fix`/`chore`/`test`/`docs`/`refactor`).
|
||||
|
||||
- [ ] Phase 0: Pre-execution (specify -> clarify -> research -> ideate -> plan -> grill) -- tag `v0.11.0`
|
||||
- [ ] Phase P01: Command injection fix (podman/wasm shellQuote) (REQ-119, F3) -- tag `v0.11.1`
|
||||
- [ ] Phase P02: Namespace path traversal fix (REQ-120, F4) -- tag `v0.11.2`
|
||||
- [ ] Phase P03: Txn apply path allowlist (REQ-121, F5) -- tag `v0.11.3`
|
||||
- [ ] Phase P04: OIDC client + bundled Dex (REQ-144; BYO-IdP override) -- tag `v0.11.4`
|
||||
- [ ] Phase P05: WebAuthn connector for Dex (REQ-148; passkeys, browser auth+register) -- tag `v0.11.5`
|
||||
- [ ] Phase P06: ACL rewrite to OIDC claims + enforcement (REQ-145, REQ-122, F1) -- tag `v0.11.6`
|
||||
- [ ] Phase P07: Remove all password/token paths (breaking; REQ-146, R-021, C-34) -- tag `v0.11.7`
|
||||
- [ ] Phase P08: Master key seal-to-OIDC + Shamir 3-of-5 (REQ-147, C-35) -- tag `v0.11.8`
|
||||
- [ ] Phase P09: Daemon auth hardening (REQ-123, REQ-124, F6, F24) -- tag `v0.11.9`
|
||||
- [ ] Phase P10: Audit log tamper-evidence (REQ-125, F2) -- tag `v0.11.10`
|
||||
- [ ] Phase P11: SVID chain validation (REQ-126, F9) -- tag `v0.11.11`
|
||||
- [ ] Phase P12: Backup symlink validation (REQ-127, F7) -- tag `v0.11.12`
|
||||
- [ ] Phase P13: step-ca /tmp hardening (REQ-128, F10) -- tag `v0.11.13`
|
||||
- [ ] Phase P14: Master key rotation (re-seal to OIDC; REQ-129, F12, C-30) -- tag `v0.11.14`
|
||||
- [ ] Phase P15: File-mode audit expansion (REQ-130, F13) -- tag `v0.11.15`
|
||||
- [ ] Phase P16: aggregate.sh JSON injection + drift-gate parse fix (REQ-131, F11, F18) -- tag `v0.11.16`
|
||||
- [ ] Phase P17: install.sh checksum+GPG verification (REQ-132, F14) -- tag `v0.11.17`
|
||||
- [ ] Phase P18: nftables ruleset hardening (REQ-133, F21) -- tag `v0.11.18`
|
||||
- [ ] Phase P19: sudoers hardening (REQ-134, F22) -- tag `v0.11.19`
|
||||
- [ ] Phase P20: System user consistency (REQ-135, F23) -- tag `v0.11.20`
|
||||
- [ ] Phase P21: SQLite file-mode + at-rest encryption (REQ-136, F8, C-31) -- tag `v0.11.21`
|
||||
- [ ] Phase P22: Migration safety + identity migration (REQ-137, F19, C-34) -- tag `v0.11.22`
|
||||
- [ ] Phase P23: Legacy CA/mTLS/daemon + step-ca password-provisioner deletion (REQ-138, F16; **gate C-29: P06/P08/P09/P11**) -- tag `v0.11.23`
|
||||
- [ ] Phase P24: known_hosts tightening + transport hardening (REQ-139, F15, F25) -- tag `v0.11.24`
|
||||
- [ ] Phase P25: Drift event authentication (REQ-140, F18) -- tag `v0.11.25`
|
||||
- [ ] Phase P26: Security integration test suite (REQ-141, C-33) -- tag `v0.11.26`
|
||||
- [ ] Phase P27: Zero-trust + OIDC + WebAuthn + threat-model docs (REQ-142) -- tag `v0.11.27`
|
||||
- [ ] Phase P28: Final review + ship + audit (milestone release) -- tag `v0.11.28` = **v0.12 milestone release**
|
||||
- [x] Phase 0: Pre-execution (specify -> clarify -> research -> ideate -> plan -> grill) -- tag `v0.11.0`
|
||||
- [x] Phase P0[0-9]: Command injection fix (podman/wasm shellQuote) (REQ-119, F3) -- tag `v0.11.1`
|
||||
- [x] Phase P0[0-9]: Namespace path traversal fix (REQ-120, F4) -- tag `v0.11.2`
|
||||
- [x] Phase P0[0-9]: Txn apply path allowlist (REQ-121, F5) -- tag `v0.11.3`
|
||||
- [x] Phase P0[0-9]: OIDC client + bundled Dex (REQ-144; BYO-IdP override) -- tag `v0.11.4`
|
||||
- [x] Phase P0[0-9]: WebAuthn connector for Dex (REQ-148; passkeys, browser auth+register) -- tag `v0.11.5`
|
||||
- [x] Phase P0[0-9]: ACL rewrite to OIDC claims + enforcement (REQ-145, REQ-122, F1) -- tag `v0.11.6`
|
||||
- [x] Phase P0[0-9]: Remove all password/token paths (breaking; REQ-146, R-021, C-34) -- tag `v0.11.7`
|
||||
- [x] Phase P0[0-9]: Master key seal-to-OIDC + Shamir 3-of-5 (REQ-147, C-35) -- tag `v0.11.8`
|
||||
- [x] Phase P0[0-9]: Daemon auth hardening (REQ-123, REQ-124, F6, F24) -- tag `v0.11.9`
|
||||
- [x] Phase P0+: Audit log tamper-evidence (REQ-125, F2) -- tag `v0.11.10`
|
||||
- [x] Phase P0+: SVID chain validation (REQ-126, F9) -- tag `v0.11.11`
|
||||
- [x] Phase P0+: Backup symlink validation (REQ-127, F7) -- tag `v0.11.12`
|
||||
- [x] Phase P0+: step-ca /tmp hardening (REQ-128, F10) -- tag `v0.11.13`
|
||||
- [x] Phase P0+: Master key rotation (re-seal to OIDC; REQ-129, F12, C-30) -- tag `v0.11.14`
|
||||
- [x] Phase P0+: File-mode audit expansion (REQ-130, F13) -- tag `v0.11.15`
|
||||
- [x] Phase P0+: aggregate.sh JSON injection + drift-gate parse fix (REQ-131, F11, F18) -- tag `v0.11.16`
|
||||
- [x] Phase P0+: install.sh checksum+GPG verification (REQ-132, F14) -- tag `v0.11.17`
|
||||
- [x] Phase P0+: nftables ruleset hardening (REQ-133, F21) -- tag `v0.11.18`
|
||||
- [x] Phase P0+: sudoers hardening (REQ-134, F22) -- tag `v0.11.19`
|
||||
- [x] Phase P0+: System user consistency (REQ-135, F23) -- tag `v0.11.20`
|
||||
- [x] Phase P0+: SQLite file-mode + at-rest encryption (REQ-136, F8, C-31) -- tag `v0.11.21`
|
||||
- [x] Phase P0+: Migration safety + identity migration (REQ-137, F19, C-34) -- tag `v0.11.22`
|
||||
- [x] Phase P0+: Legacy CA/mTLS/daemon + step-ca password-provisioner deletion (REQ-138, F16; **gate C-29: P06/P08/P09/P11**) -- tag `v0.11.23`
|
||||
- [x] Phase P0+: known_hosts tightening + transport hardening (REQ-139, F15, F25) -- tag `v0.11.24`
|
||||
- [x] Phase P0+: Drift event authentication (REQ-140, F18) -- tag `v0.11.25`
|
||||
- [x] Phase P0+: Security integration test suite (REQ-141, C-33) -- tag `v0.11.26`
|
||||
- [x] Phase P0+: Zero-trust + OIDC + WebAuthn + threat-model docs (REQ-142) -- tag `v0.11.27`
|
||||
- [x] Phase P0+: Final review + ship + audit (milestone release) -- tag `v0.11.28` = **v0.12 milestone release**
|
||||
|
||||
**Milestone tag**: `v0.11.28` (final phase patch = milestone release per
|
||||
feature-milestone progressive-patch rule; no separate `v0.12.0` tag).
|
||||
|
||||
Reference in New Issue
Block a user