custom
code
sovereign-compute
pax-coder / docs /adr /0006-server-challenge-protocol.md
SNAPKITTYWEST's picture
chore: push pax-coder from SNAPKITTYWEST GitHub
ef6eb55 verified
|
Raw
History Blame Contribute Delete
1.1 kB

ADR-0006: Server Challenge Protocol

Status: Accepted
Date: 2026-08-18


Decision

When authorization is required, use explicit challenge/response protocol.

Client → Server: node_id + release_identity + nonce
Server → Client: signature(authorization_token + timestamp + nonce)
Client: Verify signature, use token for protected operation
Token: Short-lived (1 hour), signed, includes nonce

Rules

  • Fresh nonces for replay protection
  • Short-lived tokens (1 hour max)
  • Signed responses (not encrypted secrets)
  • TLS for transport security
  • Explicit expiration timestamps
  • No client-side fallback if server unavailable

What This Prevents

  • Replayed tokens
  • Token reuse across releases
  • Offline authorization generation
  • Casual modification of authorization state

Consequences

  • Authorization is server-validated, not client-side
  • Private keys never transmitted
  • Compromised clone cannot manufacture valid tokens

Related ADRs:

  • ADR-0002: Authorization Boundary
  • ADR-0004: Private Key Separation