opennhp
让服务器在 AI 扫描时代“消失”的零信任网络隐身协议
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让服务器在 AI 扫描时代“消失”的零信任网络隐身协议
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:凌晨两点,你公司对外开放的 SSH 端口突然遭遇一波陌生 IP 的暴力破解。日志显示,攻击源正在用 AI 自动化工具高速扫描全网暴露面——你能看见的每一个开放端口,在攻击者眼里都是一个潜在的突破口。这就是当前互联网的真实面貌:一片黑暗森林,AI 正在让攻击以机器速度蔓延。
面对这样的威胁,传统的边界安全模型——"先放行、再认证"——早已千疮百孔。防火墙后面的服务并不意味着安全,一旦攻击者找到了端口,就等于找到了入口。零信任(Zero Trust) 的核心思想正是对这一范式的彻底颠覆:永远不信任,始终要验证,而且——在验证通过之前,攻击者根本找不到你的服务在哪里。
OpenNHP(Open Network/Zero Trust Hidden Protocol)正是这样一款实践零信任理念的开源工具包。它由云安全联盟(CSA)背书,实现了 Network-infrastructure Hiding Protocol(NHP) 和 Data Hidden Protocol(DHP) 两大核心协议,目标是让服务器在互联网上"隐身"——没有合法凭证的访问者,甚至无法知道这台服务器的存在。
零信任(Zero Trust)并非新概念,Google 的 BeyondCorp 计划早在 2011 年就开始实践。但长期以来,零信任网络落地的门槛极高:需要昂贵的商业设备、复杂的身份认证集成,以及对现有架构的大规模改造。中小企业往往只能望洋兴叹。
OpenNHP 的出现改变了这一局面。作为 CSA 的参考实现项目,NHP 代表了第三代网络隐藏协议的技术演进:第一代是明文传输的端口敲门(Port Knocking),容易遭受重放攻击;第二代是单包授权(SPA),虽然引入了签名,但仍是单向通信;第三代 NHP 则带来了带状态的双向通信、现代加密(SM2/SM4/AES 等)、域名 + IP + 端口的全面隐藏,以及基于 Go 的内存安全实现。
项目由 OpenNHP 团队维护(早期创始人信息在 GitHub 上可追溯),采用 Apache 2.0 开源许可,目前已有 13799 Stars 和 2490 Forks,在零信任/网络安全赛道的开源项目中属于头部级别。项目获得了 Cloud Security Alliance 的官方推荐,并接入了 DeepWiki 智能文档服务。
NHP 是 OpenNHP 的核心创新。它的设计哲学简单而激进:验证之前不可见。 传统的服务器部署模式是"先监听端口等着",NHP 则让服务器默认处于"静默"状态——端口关闭,IP 不响应任何探测请求。只有携带合法加密凭证的"敲门"(Knock)请求,才能触发服务器的应答。
整个流程分为三个阶段:
这意味着攻击者面临的是根本性的困境:他们甚至无法确认目标服务器的存在,更不用说扫描漏洞或发起暴力攻击了。
DHP 在 NHP 基础上更进一步,实现数据级别的"可用而不可见"。它利用机密计算(Confidential Computing)技术,允许数据在加密状态下被处理和使用,即使运维人员或云服务商也无法窥探数据内容。这对于多云环境、跨组织数据协作、隐私合规等场景意义重大。
OpenNHP 采用 Go 语言开发,充分利用了 Go 的内存安全特性和高性能网络编程能力。代码库分为两个主模块:
nhp/(核心协议库)
| 子目录 | 职责 |
|---|---|
common/ | 公共类型定义、消息格式、负载均衡、集群配置 |
core/ | NHP 协议核心实现——加密算法(KDF、AES、SM 系列)、数据包解析(packet.go)、Initiator(客户端发起方)和 Verifier(服务端验证方)状态机、Scheme 握手逻辑、WASM 沙箱 |
ebpf/ | XDP(eXpress Data Path)BPF 程序,用于内核级别的高性能数据包处理 |
etcd/ | etcd 客户端封装,服务发现和集群状态存储 |
plugins/ | 插件系统,支持自定义扩展 |
utils/ | 工具函数集 |
version/ | 版本号管理 |
endpoints/(服务端点实现)
| 子目录 | 职责 |
|---|---|
server/ | NHP Server 主程序——HTTP 认证(httpauth.go)、NHP 握手(nhpauth.go)、速率限制、消息处理 |
ac/ | Access Controller——eBPF 增强的访问控制平面、UDP/TCP 代理模式 |
agent/ | 客户端 Agent——集群配置(支持高可用多节点)、敲门逻辑(knock.go)、iOS SDK 支持 |
relay/ | 中继组件——TCP 中继、路由逻辑 |
db/ | 数据库集成 |
kgc/ | Key Generation Center,密钥生成中心 |
关键依赖包括:cilium/ebpf(eBPF 编程)、emmansun/gmsm(国密算法 SM2/SM3/SM4)、golang-jwt/jwt(JWT 身份认证)、tetratelabs/wazero(WASM 运行时)、coocood/freecache(高性能内存缓存)、etcd/client/v3(分布式协调)、gin-gonic/gin(HTTP 框架)。
Go 版本要求 1.25.6,代码质量通过 golangci-lint 静态检查,测试覆盖率和代码贡献规范均达到较高水准。
OpenNHP 在部署便利性上下了不少功夫。项目提供了交互式 docker/quick_start.sh 脚本,即使是零信任安全小白,也能通过选择菜单在几分钟内完成全组件部署。脚本支持 Linux、macOS 和 WSL 环境,还贴心地提供了中国镜像源选项(goproxy.cn、阿里云 apt 镜像)。
Docker 侧提供了 8 个多阶段 Dockerfile,分别构建 base、server、agent、AC、database、relay、Web App 等组件,配合 docker-compose.yaml 可以一键启动完整的高可用集群。项目还包含 Terraform 部署配置,方便在云基础设施上规模化部署。
不过需要注意的是,OpenNHP 是一个服务端解决方案,用户需要同时部署 Server、AC 和 Agent 三类组件才能正常工作,理解其架构需要一定的网络知识和零信任安全背景。
Gartner 预测,AI 驱动的网络攻击将在 2025 年增长 15%。当攻击者可以用 LLM 自动扫描、识别指纹、组合漏洞利用时,传统安全设备的"被动防御"模式越来越力不从心。
OpenNHP 的核心价值在于它从根本上改变了攻防不对称:攻击者面对的不再是一个需要攻破的堡垒,而是一片他们根本看不到的黑暗海洋。这与"纵深防御"理念高度契合——即使攻击者绕过了某一层防护,NHP 提供的网络隐身层依然是一道无法逾越的屏障。
| 维度 | 评估 |
|---|---|
| 项目类型 | 零信任网络安全工具包 |
| 技术栈 | Go(内存安全)、eBPF、机密计算、国密算法 |
| 部署难度 | 简单(Docker Compose 一键启动) |
| 核心创新 | NHP 第三代协议、国密算法集成、eBPF 加速 |
| 适用场景 | 企业内网安全、云服务保护、AI 服务防护、敏感基础设施 |
OpenNHP 是目前开源零信任安全领域中最值得关注的项目之一。 它不是概念性Demo,而是一套经过 CSA 官方认证、可在生产环境运行的完整实现。如果你正在寻找一种从根本上降低攻击面的方案,OpenNHP 值得深入研究。