Implement AUDIT-WP-0007 hash-chain integrity.
Accept now extends a single-schema chain. Verify walks it; a rewritten payload_hash is a break. Tamper evidence is that detector plus an external chain-head attestation, not WORM.
This commit is contained in:
parent
5faede18fc
commit
5fd04e2095
17 changed files with 696 additions and 29 deletions
|
|
@ -40,7 +40,7 @@
|
|||
"environment": "production",
|
||||
"maturity": "D4",
|
||||
"implements": "HTTP POST /v1/events into append-only PostgreSQL on platform-pg, namespace audit-core, ClusterIP + default-deny",
|
||||
"maturity_rationale": "Approved for production dependency since AUDIT-WP-0005. Not D5: tamper_evidence is false (trigger is not a proof), one replica, reliability is not actively controlled.",
|
||||
"maturity_rationale": "Approved for production dependency since AUDIT-WP-0005. Not D5: one replica, reliability is not actively controlled. Integrity is measured (hash chain + verify + external head) but is not WORM.",
|
||||
"uses_provisions": [
|
||||
{
|
||||
"capability": "data.transactional",
|
||||
|
|
@ -109,15 +109,17 @@
|
|||
},
|
||||
{
|
||||
"hook": "integrity_verification",
|
||||
"basis": "unknown",
|
||||
"gap": "events_append_only rejects UPDATE/DELETE for the runtime role; that is not a proof a database owner did not drop the trigger. Hash-chain or external anchor is not implemented (owner: audit-core). Do not borrow the restore drill for this hook."
|
||||
"basis": "measured",
|
||||
"value": "hash chain on accept; verify fails after a superuser payload_hash rewrite; chain-head attestation stored outside platform-pg",
|
||||
"observed_at": "2026-08-16",
|
||||
"ref": "tests/test_integrity.py#test_rewritten_payload_fails_verify;docs/integrity.md;docs/evidence/chain-head-20260816.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"open_items": [
|
||||
"data.archive is required by INTENT and unprovided. A founder decision is needed before resource-control procures a WORM/object-lock destination distinct from the 30-day Barman bucket.",
|
||||
"integrity_verification is unknown. Trigger enforcement is not tamper evidence.",
|
||||
"integrity_verification is measured. A database owner who rewrites the suffix and the external attestation together can still lie; that is the stated proof bound.",
|
||||
"Class S/H/I consumption is unknown on this provision.",
|
||||
"Do not emit booked cost or a second usage stream for platform:audit-storage."
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue