Back to Opennhp

OpenNHP:开源零信任安全工具套件

README.zh-cn.md

0.7.37.7 KB
Original Source

OpenNHP:开源零信任安全工具套件

OpenNHP 是一个轻量级、基于加密技术的开源工具套件,为基础设施、应用和数据提供零信任安全保障。它是云安全联盟(CSA) *网络基础设施隐藏协议(NHP)规范*的参考实现,包含两项核心协议:

  • 网络基础设施隐藏协议(NHP): 隐藏服务器端口、IP 地址和域名,防止应用和基础设施被未授权访问。
  • 数据内容隐藏协议(DHP): 通过加密和机密计算保障数据安全与隐私,实现数据*"可用而不可见"*。

官方网站 · 愿景 · 在线演示 · 文档 · Discord


为什么选择 OpenNHP

当今的互联网是一片黑暗森林。攻击者——越来越多地借助大语言模型(LLM)通过自主漏洞利用(AVE)以机器速度进行扫描、指纹识别和漏洞利用——将所有可达的服务都视为攻击目标。Gartner 预测 AI 驱动的网络攻击将快速增长。传统防御仅在网络放行之后才对用户进行身份验证,使得暴露的端口、IP 和域名成为永久的攻击面。

在 AI 时代,可见性 = 脆弱性。

OpenNHP 颠覆了这一模式:验证之前不可见。 所有端口、IP 和主机名均置于默认拒绝的门之后。只有经过加密签名的"敲门"请求通过带外认证与授权之后,才会开放访问。攻击者无法利用他们发现不了的东西。

第三代网络隐藏协议

NHP 是"先隐藏服务"这一设计思路的下一代演进:

代际协议局限
1端口敲门(Port Knocking)明文传输,易受重放攻击
2单包授权(SPA)共享密钥、单向通信、通常仅隐藏端口、通常使用 C/C++ 实现
3NHP现代加密、带状态的双向通信、同时隐藏域名 + IP + 端口、无状态可水平扩展、内存安全的 Go 实现

NHP 与现有的 IAM、DNS、FIDO 和零信任策略引擎协同工作,而不是取代它们——它是对现有技术栈的扩展,而非分叉。


架构

OpenNHP 采用模块化设计,包含三个核心组件,灵感来自 NIST 零信任架构

核心组件职责
NHP-Agent客户端,发送加密的"敲门"请求以获得访问权限
NHP-Server认证并授权请求;独立部署,在架构上与受保护主机解耦
NHP-AC访问控制器,管理受保护服务器上的防火墙规则
附加组件职责
NHP-RelayHTTP 到 UDP 桥接,使浏览器代理能够通过 HTTPS 发送 NHP 敲门请求
NHP-KGC基于身份加密(IBC)的密钥生成中心

协议流程

  1. Agent 向 Server 发送加密的敲门请求(NHP_KNK)。
  2. Server 校验敲门请求,并向 AC 发送操作请求(NHP_AOP)。
  3. AC 打开防火墙,并回复(NHP_ART)给 Server。
  4. Server 向 Agent 返回带访问信息的确认(NHP_ACK)。
  5. Agent 通过 AC 访问受保护资源。

加密算法

OpenNHP 提供两种可互换的加密套件:

  • CIPHER_SCHEME_CURVE —— Curve25519 + AES-256-GCM + BLAKE2s
  • CIPHER_SCHEME_GMSM —— SM2 + SM4-GCM + SM3

两者均基于 Noise 协议框架。基于身份的加密(IBC)模式通过密钥生成中心(KGC)提供。

更多协议细节、部署模型和加密设计,请参阅官方文档


仓库结构

opennhp/
├── nhp/              # 核心协议库(Go 模块)
│   ├── core/         # 数据包处理、加密、Noise 协议、设备管理
│   ├── common/       # 共享类型与消息定义
│   ├── utils/        # 工具函数
│   ├── plugins/      # 插件处理接口
│   ├── log/          # 日志基础设施
│   └── etcd/         # 分布式配置支持
└── endpoints/        # 守护进程实现(Go 模块,依赖 nhp)
    ├── agent/        # NHP-Agent 守护进程
    ├── server/       # NHP-Server 守护进程
    ├── ac/           # NHP-AC(访问控制器)守护进程
    ├── db/           # NHP-DB(DHP 的数据经纪人)
    ├── kgc/          # NHP-KGC(密钥生成中心)
    └── relay/        # NHP-Relay 守护进程

快速开始

先决条件

  • Go 1.25.6+
  • make
  • Docker 与 Docker Compose(用于完整的演示环境)

构建

bash
# 构建所有组件
make

# 构建单个守护进程
make agentd    # NHP-Agent
make serverd   # NHP-Server
make acd       # NHP-AC
make db        # NHP-DB
make relayd    # NHP-Relay
make kgc       # NHP-KGC

测试

bash
cd nhp && go test ./...
cd endpoints && go test ./...

使用 Docker 运行

bash
cd docker && docker-compose up --build

请参考快速入门教程,在 Docker 环境中模拟完整的认证工作流。


贡献

欢迎贡献代码!提交 Pull Request 前请先阅读 CONTRIBUTING.md

注意: 所有提交必须使用已验证的 GPG 或 SSH 密钥签名。

bash
git commit -S -m "your message"

安全

发现漏洞了吗?请遵循 SECURITY.md 中的负责任披露流程,而不是提交公开 issue。


赞助商

<a href="https://layerv.ai"> </a>

许可协议

基于 Apache 2.0 许可协议发布。

联系方式