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.

贡献者指南