Record fixture-safe ASM T-06 candidate
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a05e30-2884-71b0-98d7-7edd16ae737b
This commit is contained in:
parent
8af514ffd1
commit
e04a8b76aa
4 changed files with 82 additions and 1 deletions
63
docs/conformance/2026-09-02-secrets-engine-t06-candidate.md
Normal file
63
docs/conformance/2026-09-02-secrets-engine-t06-candidate.md
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
# Conformance candidate — secrets-engine approval consumption
|
||||||
|
|
||||||
|
**Repository:** gate-house
|
||||||
|
**Status:** candidate; not executed by whitehat-security
|
||||||
|
**Date:** 2026-09-02
|
||||||
|
**Canon target:** T-06 — Approval Replay Test
|
||||||
|
**Implementer:** secrets-engine
|
||||||
|
**Implementation revision:** `3cd9955` (observed at repository revision `465c0d7`)
|
||||||
|
**Source:** State Hub message `99bf84bf-18d2-4e63-a7ac-25078e1c72d5`
|
||||||
|
**Workplan:** GH-WP-0001-T06
|
||||||
|
|
||||||
|
## Why this is a candidate
|
||||||
|
|
||||||
|
secrets-engine reports that every privileged production OpenBao handler now
|
||||||
|
passes through one shared consume-before-effect function. The implementation
|
||||||
|
is at `src/secrets_engine/approval_consume.py`; its consumer contract is at
|
||||||
|
`docs/approval-consumption.md`.
|
||||||
|
|
||||||
|
The surface exercises the Gate House T-06 invariant without requiring a live
|
||||||
|
secret, credential, approval service, or OpenBao mutation:
|
||||||
|
|
||||||
|
- an exact same-digest retry is idempotent success;
|
||||||
|
- a different digest produces a conflict and no OpenBao call;
|
||||||
|
- missing binding, authorization failure, unavailability, and unreachable
|
||||||
|
approval-engine all fail closed before OpenBao;
|
||||||
|
- a failed effect does not unconsume the approval;
|
||||||
|
- the evidence shape contains identifiers and digests, not secret values.
|
||||||
|
|
||||||
|
Gate House ran the implementer's focused unit suite as a target-suitability
|
||||||
|
check:
|
||||||
|
|
||||||
|
```text
|
||||||
|
uv run --project /home/worsch/secrets-engine \
|
||||||
|
pytest -p no:cacheprovider tests/test_approval_consume.py
|
||||||
|
17 passed in 0.36s
|
||||||
|
```
|
||||||
|
|
||||||
|
This confirms that a bounded fixture surface exists. It is not an offensive
|
||||||
|
probe, a known-bad calibration, or a conformance verdict.
|
||||||
|
|
||||||
|
## What whitehat-security must still supply
|
||||||
|
|
||||||
|
Whitehat-security owns the probe design and outcome. A conforming return still
|
||||||
|
requires all of the following under `conformance-reporting.v1`:
|
||||||
|
|
||||||
|
1. independently identify the exact target revision and fixture boundary;
|
||||||
|
2. author a known-bad fixture that disables at least one replay protection,
|
||||||
|
such as different-digest conflict or atomic single-use consumption;
|
||||||
|
3. demonstrate that the known-bad fixture accepts a prohibited replay or loses
|
||||||
|
the T-06 oracle;
|
||||||
|
4. run the same probe against the unmodified candidate;
|
||||||
|
5. return `pass`, `fail`, `blocked`, or `not_run` with safe evidence references.
|
||||||
|
|
||||||
|
The existing implementer tests may be reused as setup evidence but must not be
|
||||||
|
reported as independent Whitehat evidence.
|
||||||
|
|
||||||
|
## Authorization boundary
|
||||||
|
|
||||||
|
This candidate authorizes no live probe and no production OpenBao, credential,
|
||||||
|
approval, packet, or side effect. Whitehat may accept, revise, reject, or split
|
||||||
|
the candidate under its own rules of engagement. Gate House specifies only the
|
||||||
|
invariant, target, oracle, and report shape.
|
||||||
|
|
||||||
|
|
@ -21,5 +21,11 @@ Returned reviews:
|
||||||
origin-linked advisory observation is staffed for one lane; load-bearing deny
|
origin-linked advisory observation is staffed for one lane; load-bearing deny
|
||||||
stream completeness remains unknown; doctrine disposition `no_change`.
|
stream completeness remains unknown; doctrine disposition `no_change`.
|
||||||
|
|
||||||
|
Fixture-safe candidates awaiting independent execution:
|
||||||
|
|
||||||
|
- [`2026-09-02 — secrets-engine T-06 approval-consumption candidate`](2026-09-02-secrets-engine-t06-candidate.md):
|
||||||
|
the implementer's focused suite passes, but no whitehat-owned known-bad
|
||||||
|
calibration or verdict has returned.
|
||||||
|
|
||||||
No whitehat-security ASM execution report has returned under
|
No whitehat-security ASM execution report has returned under
|
||||||
`conformance-reporting.v1`. That target set remains `not_run`, not conformance.
|
`conformance-reporting.v1`. That target set remains `not_run`, not conformance.
|
||||||
|
|
|
||||||
|
|
@ -115,3 +115,11 @@ Coordination receipts:
|
||||||
one fixture-safe, known-bad-calibrated result in reply
|
one fixture-safe, known-bad-calibrated result in reply
|
||||||
`c33c3a72-5bf3-4693-8861-9e9ad37d5908`. The request explicitly authorizes
|
`c33c3a72-5bf3-4693-8861-9e9ad37d5908`. The request explicitly authorizes
|
||||||
no live probe.
|
no live probe.
|
||||||
|
|
||||||
|
Gate House then received a concrete, fixture-safe T-06 candidate from
|
||||||
|
secrets-engine in message `99bf84bf-18d2-4e63-a7ac-25078e1c72d5`. Revision
|
||||||
|
`3cd9955` implements consume-before-OpenBao; its focused unit suite passed
|
||||||
|
17/17 at observed repository revision `465c0d7`. This is target-suitability
|
||||||
|
evidence only. The required whitehat-owned probe, known-bad calibration, and
|
||||||
|
verdict remain pending. Candidate record:
|
||||||
|
`docs/conformance/2026-09-02-secrets-engine-t06-candidate.md`.
|
||||||
|
|
|
||||||
|
|
@ -136,4 +136,8 @@ result, and acceptance or explicit rejection of the routed source/Taxonomy
|
||||||
residuals. Gate House acknowledged the King's Guard return and accepted
|
residuals. Gate House acknowledged the King's Guard return and accepted
|
||||||
whitehat's probe-ownership correction; whitehat follow-up
|
whitehat's probe-ownership correction; whitehat follow-up
|
||||||
`c33c3a72-5bf3-4693-8861-9e9ad37d5908` requests the remaining fixture-safe
|
`c33c3a72-5bf3-4693-8861-9e9ad37d5908` requests the remaining fixture-safe
|
||||||
calibrated result without authorizing a live probe.
|
calibrated result without authorizing a live probe. A concrete T-06 candidate
|
||||||
|
is now recorded from secrets-engine revision `3cd9955`; its implementer suite
|
||||||
|
passes 17/17, while independent known-bad calibration and verdict remain
|
||||||
|
pending. Candidate:
|
||||||
|
`docs/conformance/2026-09-02-secrets-engine-t06-candidate.md`.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue