协议参考

OpenNHP 所实现的网络基础设施隐身协议(NHP)的线上格式参考文档。 如果你正在编写新的客户端、将 NHP 移植到其他语言,或开发需要解码 NHP 数据包的工具,这里是权威的起点。

对应 CSA《Stealth Mode SDP for Zero Trust Network Infrastructure》白皮书——§NHP Message Header、§NHP Message Types 及 Appendix 2。

本节内容

  • 消息头 —— 每个 NHP 或 DHP 数据包前缀的 240/304 字节固定头。字段布局、混淆方案、各字段在密码学协议中的作用。
  • 消息类型 —— 全部 17 种 NHP 消息类型加 11 种 DHP 类型,逐一列出发送方/接收方角色、载荷字段与源码入口。

规范 ↔ 实现

CSA 规范章节OpenNHP 代码
NHP Message Header (Table 3)nhp/core/scheme/curve/header.gonhp/core/scheme/gmsm/header.gonhp/core/packet.go
NHP Message Types (Table 4, Appendix 2)nhp/common/nhpmsg.go
密码算法与框架nhp/core/crypto.gonhp/core/device.go
NHP 工作流程(Figure 3)endpoints/agent/endpoints/server/endpoints/ac/
与 SDP 集成参见 部署
日志nhp/log/

规范版本

OpenNHP 遵循 CSA 零信任工作组发布的 NHP 白皮书。该白皮书将 OpenNHP v0.6.0 作为参考实现进行引用。当规范与代码不一致时,本仓库以代码为 准,并将差异反馈给工作组。

范围

本节所覆盖的是线上格式:

  • 消息头字节布局
  • 加密与认证信封(Noise + AEAD)
  • 公开头字段的混淆机制
  • 消息类型 ID 及其载荷 schema
  • Session-ID、计数器(Counter)与重放保护语义

不在本节范围:

术语

本节所使用的规范术语定义于 术语表。 白皮书在 SDP 集成语境下偶尔使用同义词(例如用”网关”指代 NHP-AC),为 了与 Go 代码保持一致,本文档始终使用 NHP 官方命名。


Table of contents