Warp-net/warpnet

Research and Design PSK Rotation Mechanism for the Entire Network

Open

#20 opened on May 20, 2025

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Go (12 forks)auto 404
enhancementhelp wantedsecurity

Repository metrics

Stars
 (137 stars)
PR merge metrics
 (PR metrics pending)

Description

Currently, WarpNet nodes use a static pre-shared key (PSK) for securing network-level access and peer authentication. However, this static key presents risks:

  • If the PSK leaks, any attacker can impersonate a trusted node
  • There is no recovery mechanism after a key compromise,
  • Long-lived keys violate good cryptographic hygiene and operational security.

To address this, we need to research and design a mechanism for PSK rotation that can be adopted across the network in a coordinated and secure manner.

Research Goals:

  • Evaluate how PSK rotation can work in a decentralized, peer-to-peer environment without relying on a central authority.

  • Explore different approaches:

    • Time-based PSKs (e.g. daily/weekly keys derived from anchor entropy + version),
    • Gossip-based propagation** of new keys,
    • Public-key bootstrap** to negotiate session PSKs,
    • Shared hashchain** or Merkle root that defines the current PSK epoch.

Requirements for PSK Rotation:

  • Rotation must not cause network partitioning: nodes should be able to tolerate minor time drift or missed updates.
  • Support for grace period where old and new PSKs are both accepted.
  • Ensure that new nodes can join using the current valid PSK only (and not old ones).
  • Mechanism for securely distributing the new PSK (e.g. signed message from known-good node, or derived deterministically).

Optional Features:

  • Store current PSK version and rotation time in local config or DB.
  • Use digital signatures to validate who is allowed to rotate PSK (e.g. bootstrap/moderator/leader nodes).
  • Log PSK changes and validation rejections for observability.

Without PSK rotation, the entire network is exposed to long-term key compromise. Looking for input from cryptographers and distributed system designers.

Contributor guide