docs root-ceremony: the provisional root has no backup, and what v1.0 changes - #111
Open
avrabe wants to merge 1 commit into
Open
docs root-ceremony: the provisional root has no backup, and what v1.0 changes#111avrabe wants to merge 1 commit into
avrabe wants to merge 1 commit into
Conversation
…v1.0 changes The topic prescribed paper backup in two locations, split custody over the seed, an access log and an annual read test -- and never said that varve's own provisional rolling key has NONE of them. It was generated straight into CI and its secret half exists in exactly one place: a write-only Actions secret that nobody can read back, by design of the secret store (#110). "Provisional" reads far milder than what that is, so the consequences are now stated flatly: the key cannot be moved to another repository (which is why a realm's contents live in their own repo while the signing step stays where the secret is), it cannot be recovered if the secret or the repository is lost, and it must not be extracted -- printing a secret into a workflow log would expose the root permanently, and with no rotation and no revocation the only remedy would be abandoning the realm. A key with a single write-only copy is not in custody. The topic now says so, and says do not run a realm this way. Also adds a "What changes at v1.0" section, because REQ-CEREMONY-001 was referenced repeatedly and never described in one place. On keyless: recorded as an OPEN question rather than a settled one, with both halves of the evidence. The rejection in DD-026 rested partly on the offline verifier being a stub that failed open -- verified today against wsc 0.11.0 source, that is NO LONGER TRUE: the air-gapped verifier does real certificate-chain, Rekor SET, ECDSA, revocation and identity checks offline, and documents the two things it deliberately skips (the Rekor Merkle inclusion proof, because the verifier computes the wrong shard root for Rekor v2 and failing closed would reject legitimate signatures; and SCT/CT, for want of a provisioned CT key). The structural half of DD-026 still stands, in wsc's own words: "The bundle is signed with a long-lived offline key. Devices verify the signature against a pre-provisioned public key before using." Keyless relocates the long-lived secret rather than abolishing it. But relocation is close to the whole point, and #110 is the argument. Today's long-lived key sits in CI, is used on every deposit, and cannot be backed up or moved. A bundle-signing key is used rarely and can plausibly be held the way this topic prescribes. The question for v1.0 is not "keys or no keys", it is which key has to be online. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019TNtfRjLNhEz82G2ggeeNu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follows #110.
The topic prescribes paper backup in two locations, split custody over the seed, an access log and an annual read test — and never mentioned that varve's own provisional rolling key has none of them. It was generated straight into CI; its secret half exists in exactly one place, a write-only Actions secret nobody can read back.
"Provisional" reads far milder than that, so the consequences are now stated flatly: it cannot be moved (which is why a realm's contents live in their own repo while the signing step stays where the secret is), cannot be recovered, and must not be extracted — printing a secret into a workflow log would expose the root permanently, and with no rotation and no revocation the only remedy is abandoning the realm.
Also adds a "What changes at v1.0" section — REQ-CEREMONY-001 was referenced repeatedly and never described in one place.
On keyless, recorded as open rather than settled
Verified against
wsc0.11.0 source today, not from the earlier decision:Docs coverage gate green; workspace suite green.