NK-WP-0049-T33: independent attempt receipt verifier, retained location and ACME reissue step
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 696317@bnt-lap001 Assistant-Session: bab9e511-0915-45b3-926a-2fab552edff6
This commit is contained in:
parent
710dc99585
commit
4c4c7c4569
4 changed files with 290 additions and 11 deletions
|
|
@ -568,19 +568,44 @@ hidden key prompt.
|
|||
deny `openbao:admin`). A pass shows founder authority for this one attempt. It
|
||||
is not native acceptance and not single use. The NK49 execution keeps single-use
|
||||
consumption and cleanup.
|
||||
3. **TLS/trust input per T35 disposition** (founder decision
|
||||
`9f9d0d88-837a-433c-8a11-d30b633b0073`). Under reissue, record the public chain
|
||||
with railiance-cluster `tools/public-tls-metadata.py` at attempt time and compare
|
||||
it to the admission. Under original recovery, use only the custody path that
|
||||
RCLUSTER-WP-0018-T03/T04 delivers. No self-signed substitute is allowed. The TLS
|
||||
key stays in the owner's own terminal.
|
||||
3. **TLS/trust input: ACME reissue** (founder decision
|
||||
`9f9d0d88-837a-433c-8a11-d30b633b0073`, resolved 2026-10-21 = A). The
|
||||
`kc.coulomb.social` TLS identity is reissued through `letsencrypt-prod` ACME
|
||||
HTTP-01 and chains to ISRG Root X1 (trust sha256 `22b557a2…43d1`). The original
|
||||
key is not required, and no self-signed substitute is allowed.
|
||||
**Before the real attempt**, the owner (railiance-cluster) rehearses the same
|
||||
issuance against Let's Encrypt staging. This protects the duplicate-certificate
|
||||
limit of 5 per week. At attempt time, record the public chain with
|
||||
railiance-cluster `tools/public-tls-metadata.py` and check SAN
|
||||
`kc.coulomb.social` plus the ISRG Root X1 chain. Abort if HTTP-01 cannot
|
||||
complete or the chain differs. The TLS key stays in the owner's own terminal.
|
||||
4. **Existing six-argument launcher** `tools/bootstrap-recovery/run-isolated-keycape.sh`
|
||||
with the reviewed admission digest. Its T34 source closure and abort/cleanup
|
||||
behaviour are unchanged. The private manifest is derived and the archive
|
||||
registration is compared to the selector inside custody only.
|
||||
|
||||
Still open before T33 can close: T35 owner metadata (RCLUSTER-WP-0018-T02) and
|
||||
the founder disposition; the execution deadline, safe receipt location and
|
||||
independent receipt verifier fixed in the packet; the anchor installed on the
|
||||
attempt host. Public observations are in
|
||||
5. **Safe receipt and independent verification.** The launcher prints
|
||||
`Safe receipt: <tmpdir>/recovery.json`. Before anyone copies it, verify it
|
||||
from a separate shell against a clean checkout at the reviewed commit:
|
||||
```sh
|
||||
python3 -I tools/bootstrap-recovery/verify-keycape-attempt-receipt.py \
|
||||
--receipt <tmpdir>/recovery.json \
|
||||
--transfer-receipt <verified transfer receipt> \
|
||||
--source-root <clean checkout>/tools/bootstrap-recovery \
|
||||
--not-after <admission window end, ISO 8601 with offset>
|
||||
```
|
||||
The admission window, at most 24 h and signed by the founder, is the execution
|
||||
deadline. Retain the receipt only on exit 0 (`verified`), and keep it at
|
||||
`docs/evidence/<date>-nk49-t18-keycape-attempt/recovery.json` together with the
|
||||
verifier output. On exit 1, keep it out of Git and report the findings. Do not
|
||||
repair it by hand. The verifier refuses secret-shaped content, open cleanup
|
||||
obligations, daemon uncertainty, any claim of consumer reconnect or human MFA,
|
||||
a ciphertext that differs from the transfer receipt, and source that differs
|
||||
from the checkout. A pass is not consumer continuity (T18), retained-factor MFA
|
||||
(T19) or owner acceptance.
|
||||
|
||||
Still open before T33 can close (2026-10-23): the anchor installed on the attempt
|
||||
host (SECRETS-WP-0015-T04, founder- and root-owned) and the owner's Let's Encrypt
|
||||
staging rehearsal from step 3. T35, T36 and T39 are done. The deadline, receipt
|
||||
location and verifier are fixed above. Public observations are in
|
||||
`docs/evidence/2026-10-21-nk49-t33-readiness/readiness-observation.json`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue