Skip to content

fix(archon): secure renderer TLS/QUIC transport (cert pinning, peer auth) - #486

Merged
forkwright merged 1 commit into
mainfrom
fix/archon-tls-quic
Jul 1, 2026
Merged

fix(archon): secure renderer TLS/QUIC transport (cert pinning, peer auth)#486
forkwright merged 1 commit into
mainfrom
fix/archon-tls-quic

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Closes #389, #413, #414, #415.

Changes

Adds horismos::ParocheConfig.renderer_api_key.

Verification

kanon gate --full green (fmt, check, advisory-parity, cargo-deny, clippy workspace, nextest, kanon lint). Pinning, peer-auth, and permission paths have unit + real-QUIC-handshake integration coverage.

Note

Peer provisioning is currently the operator setting a shared key server-side and in the renderer credentials; the richer per-renderer DB pairing flow exists but wiring it over this transport is a separate follow-up.

…uth)

- #389: replace the accept-any InsecureVerifier with a pinned-fingerprint
  verifier — a constant-time SHA-256 leaf pin plus real rustls signature
  verification (proof-of-possession); fail-closed on a malformed or absent
  pin. No accept-any path remains.
- #413: authenticate the QUIC peer — a constant-time shared-secret check on
  SessionInit before any session-id, SessionAccept, or registry state; an
  unconfigured or empty server key rejects every renderer (fail-closed).
- #414: renderer secret files (TLS private key + credentials.toml) are
  written 0600 via an O_EXCL atomic-rename helper (no TOCTOU window) and
  tightened on load.
- #415: parse listen_addr as an IpAddr and fail startup loudly instead of
  silently widening the bind to 0.0.0.0.

Adds horismos ParocheConfig.renderer_api_key.

Closes #389
Closes #413
Closes #414
Closes #415

Gate-Passed: kanon 0.1.5 +stages:fmt,check,clippy,nextest,lint sha:ca44ae21e4ba7c5a495a4e0ceb49ade4cef3aa67
@forkwright
forkwright force-pushed the fix/archon-tls-quic branch from 788d373 to 114c2e5 Compare July 1, 2026 22:43
@forkwright
forkwright merged commit cf1fb43 into main Jul 1, 2026
11 checks passed
@forkwright
forkwright deleted the fix/archon-tls-quic branch July 1, 2026 22:47
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.

Renderer QUIC client trusts any server certificate (InsecureVerifier bypasses all TLS verification)

1 participant