spec: fleet trust — auto-pair anchored on a key the relay never holds - #37
Merged
Conversation
Pair a device once and the fleet is the unit of trust: a fleet Ed25519 key rides the join line, machines self-certify, pairing mints portable device certs carried in Noise IK's message A payload, and the relay hosts a directory it cannot forge. Machine ids become self-certifying (HMAC tag under the daemon secret) so grammar-valid-but-fake ids stop waking Durable Objects, and a rate rule bounds what remains. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…chines would collide Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Specs the design settled in discussion: one pairing ceremony ever, machines federate, and the trust anchor never touches Cloudflare.
slug-<8 hex HMAC tag>under the daemon secret, verified statelessly in the router — grammar-valid-but-fake ids get the same 404 malformed ids get today, and no DO wakes.run_worker_firstbills every request regardless.Breaking by design (pre-adoption, operator redeploys): MAC-less ids refused, certs required for auto-admission,
--fleeton join. Cert encodings and the id MAC get cross-language test vectors like the Noise and framing fixtures before them.Implementation lands in stages after this merges: (1) MAC ids + rate rule, (2) fleet key + certs daemon-side, (3) directory + browser side.
🤖 Generated with Claude Code