Warp-net/warpnet

Research and Design PSK Rotation Mechanism for the Entire Network

開放

#20 建立於 2025年5月20日

 (0 則留言) (0 個反應) (0 位負責人)Go (12 個分叉)auto 404
enhancementhelp wantedsecurity

倉庫指標

星標
 (137 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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.

貢獻者指南