aboutsummaryrefslogtreecommitdiffstats
path: root/tmp-decisions.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-13 11:56:04 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-13 11:56:04 +0200
commitbe1ff89465c9878f2fbd641fb0d4eba729439ac8 (patch)
tree79e67a4de1262b5593b9023600de1ed37934eefc /tmp-decisions.md
parente13659f8f3166b5a9a4155314941bc149fec2721 (diff)
downloadmeshbay-be1ff89465c9878f2fbd641fb0d4eba729439ac8.tar.gz
refactor(quic): share the unified handshake authorization
Phase 11.5.4 — QUIC half. Findings M1, M9 on this transport. quic_server._do_handshake_sync was a second, weaker copy of the WebRTC logic: group_id was optional, so omitting it skipped the membership check entirely and fell back to the node's first group (M1); node-scoped daemon tokens were accepted as client tokens (M9); and the checks could drift from the WebRTC path independently, which is how they diverged in the first place. Authorization now comes from meshbay_common.handshake, shared with WebRTC. C6 IS STILL OPEN ON THIS TRANSPORT. There is no GEK proof here yet: a forged or stolen token still reaches the node over QUIC and can inject chat without holding the group key. What remains is the challenge/response and the mutual node proof — quic_binding() is written and unit-tested for exactly this, and 11.5.6 (whether a certificate hash is the right anchor, or an RFC 5705 exporter is reachable from aioquic) is still unproven. This commit narrows the gap to the proof itself; it does not close the finding. QUIC tests updated: default tokens are members of the test group, and clients pass group_id, since it is mandatory now. Tests: 9 quic/multi-group, full node+common suite green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'tmp-decisions.md')
0 files changed, 0 insertions, 0 deletions