Skip to content

feat(daemon): authenticate local WebSocket peers before registration - #426

Open
iuyo5678 wants to merge 1 commit into
feat/local-pairing-02-storefrom
feat/local-pairing-03-handshake
Open

iuyo5678 wants to merge 1 commit into
feat/local-pairing-02-storefrom
feat/local-pairing-03-handshake

Conversation

@iuyo5678

@iuyo5678 iuyo5678 commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Authenticate local WebSocket peers before any browser registration, session purge, audit access, or tool dispatch. The prelude verifies both HMAC proofs, binds the browser identity, and durably commits activation/rotation before allowing the business handshake. Recovery uses the saved candidate key and emits one final message.

The local listener bounds unauthenticated connections, upgrade/prelude time, and message size before payload allocation. Device authentication is serialized, activation conflicts are disclosed only after proof, and local/remote authorization share the business connection driver. Existing browser simulations explicitly select trust-local mode.

Validation: ten real WebSocket authentication tests cover missing/wrong credentials, replay, busy devices, immediate invalidation of the pairing link, interrupted rotation/recovery, replacement and mismatch, staged replacement recovery, identity binding, final-message handling, and legacy policy combinations. Header-limit and storage tests, workspace Clippy, and the full Rust regression suite also pass.

Stack 3/9 — depends on #425. Default policy remains warning mode. The next PR synchronizes final browser registration with revocation and adds status/doctor guidance.

Stack order: #424 → #425 → #426 → #427 → #428 → #429 → #430 → #431 → #432. Each PR targets the preceding branch; PR8 and PR9 retain their release prerequisites.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants