Skip to content

Latest commit

 

History

History
213 lines (139 loc) · 14.8 KB

README.zh-cn.md

File metadata and controls

213 lines (139 loc) · 14.8 KB

en zh-cn de ja fr es

OpenNHP Logo

OpenNHP: 零信任网络隐身协议

OpenNHP是一个轻量级、基于加密算法的零信任网络协议,其工作在OSI网络模型第五层,用于隐藏您的服务器和数据,避免被攻击者发现和访问

Build Status Version License


挑战:AI 将互联网变为“黑暗森林”

AI 技术的快速发展,尤其是大语言模型(LLM),正在显著改变网络安全格局。自主漏洞利用(AVE) 的兴起是 AI 时代的一个重大飞跃,大大简化了漏洞的利用,这一点在这篇研究论文中有详细说明。这一发展显著增加了任何暴露网络服务的风险,与互联网的黑暗森林假说不谋而合。AI 驱动的工具不断扫描数字环境,迅速识别和利用弱点。因此,互联网正逐渐成为一个**“黑暗森林”**,可见性意味着脆弱性

Vulnerability Risks

Gartner 研究预测,AI 驱动的网络攻击将迅速增加。这一变化要求重新评估传统的网络安全策略,重点放在主动防御、快速响应机制和网络隐藏技术的采用,以保护关键基础设施。


快速演示:查看 OpenNHP 的工作原理

在深入了解 OpenNHP 的详细信息之前,让我们先来看一个 OpenNHP 如何保护服务器免受未经授权访问的演示。您可以通过访问 https://acdemo.opennhp.org 查看其实际效果。

1) 受保护的服务器对未经身份验证的用户“不可见”

默认情况下,任何试图连接受保护服务器的操作都会导致超时错误,因为所有端口都是关闭的,使服务器看起来像是*“离线”*且实际上是“不可见”的。

OpenNHP Demo

对服务器进行端口扫描也会返回超时错误。

OpenNHP Demo

2) 身份验证后,受保护的服务器变得可访问

OpenNHP 支持多种身份验证方法,如 OAuth、SAML、二维码等。为了演示方便,本次演示使用 https://demologin.opennhp.org 上的基本用户名/密码身份验证服务来展示该过程。

OpenNHP Demo

点击“登录”按钮后,身份验证成功完成,您会被重定向到受保护的服务器。此时,服务器在您的设备上变得*“可见”*并且可以访问。

OpenNHP Demo


愿景:让互联网变得值得信赖

TCP/IP 协议的开放性推动了互联网应用的爆炸式增长,但也暴露了漏洞,使得恶意攻击者可以获得未经授权的访问并利用任何暴露的 IP 地址。尽管 OSI 网络模型 在*第五层(会话层)*定义了连接管理,但在实际中很少有有效的解决方案能够应对这一挑战。

NHP,即**“网络基础设施隐藏协议”**,是一种轻量级、基于加密的零信任网络协议,旨在工作于OSI 会话层,该层在管理网络可见性和连接方面是最佳选择。NHP 的主要目标是将受保护的资源隐藏于未授权的实体,只允许经过验证的用户通过持续认证访问,从而为更值得信赖的互联网作出贡献。

Trustworthy Internet


解决方案:OpenNHP 解决网络可见性控制问题

OpenNHP 是 NHP 协议的开源实现。它基于加密技术,采用安全优先的原则,在OSI 会话层实现了真正的零信任架构。

OpenNHP as the OSI 5th layer

OpenNHP 构建在早期的网络隐藏技术研究基础之上,利用现代加密框架和架构确保安全性和高性能,从而克服了前代技术的局限性。

网络隐藏协议 第一代 第二代 第三代
核心技术 端口敲门 单包认证(SPA) 网络基础设施隐藏协议(NHP)
身份认证 端口序列 共享密钥 现代加密框架
架构 无控制平面 无控制平面 可扩展控制平面
功能 隐藏端口 隐藏端口 隐藏端口、IP 和域名
访问控制 IP 层级 端口层级 应用层级
开源项目 knock (C) fwknop (C++) OpenNHP (Go)

开发 OpenNHP 选择使用内存安全的语言如 Go,这一点在美国政府技术报告中得到了强调。有关 SPA 和 NHP 之间详细的比较,请参见下文

安全性优势

由于 OpenNHP 在 OSI 会话层实现了零信任原则,因此具有显著的优势:

  • 通过隐藏基础设施减少攻击面
  • 防止未经授权的网络侦察
  • 减少漏洞利用的可能性
  • 通过加密的 DNS 保护防止钓鱼
  • 抵御 DDoS 攻击
  • 提供细粒度的访问控制
  • 实现基于身份的连接追踪
  • 支持攻击溯源

架构

OpenNHP 的架构受 NIST 零信任架构标准 启发,采用模块化设计,包含三个核心组件:NHP-ServerNHP-ACNHP-Agent,如下图所示。

OpenNHP architecture

有关架构和工作流程的详细信息,请参阅 OpenNHP 文档

核心:加密算法

加密是 OpenNHP 的核心,提供强大的安全性、出色的性能和可扩展性,使用了先进的加密算法。以下是 OpenNHP 采用的关键加密算法和框架:

与 RSA 相比,ECC 具有更高的效率,以较短的密钥长度提供更强的加密能力,从而提高网络传输和计算性能。下表显示了 RSA 和 ECC 在安全强度、密钥长度和密钥长度比率上的差异,以及其有效期。

安全强度(位) DSA/RSA 密钥长度(位) ECC 密钥长度(位) 比率:ECC 与 DSA/RSA 有效期
80 1024 160-223 1:6 到 2010 年
112 2048 224-255 1:9 到 2030 年
128 3072 256-383 1:12 2031 年后
192 7680 384-511 1:20
256 15360 512+ 1:30
  • Noise 协议框架:用于安全的密钥交换、消息加密/解密和相互身份认证。

Noise 协议基于Diffie-Hellman 密钥交换,提供了现代加密解决方案,如相互和可选认证、身份隐藏、前向安全性和零轮次加密。它已被 WhatsApp、Slack 和 WireGuard 等应用广泛验证并使用,证明其安全性和性能。

高效的密钥分发是实现零信任的关键。OpenNHP 支持 PKI 和 IBC。虽然 PKI 已经被广泛使用,但它依赖于集中式的证书颁发机构(CA)进行身份验证和密钥管理,这在时间和成本上较为昂贵。相比之下,IBC 允许在身份验证和密钥管理方面采用去中心化和自我管理的方法,使其在 OpenNHP 的零信任环境中更具成本效益,尤其是在需要实时保护和管理数十亿设备或服务器的情况下。

CL-PKC 是一种通过避免密钥托管和解决基于身份的加密(IBC)局限性来增强安全性的方案。在大多数 IBC 系统中,用户的私钥由密钥生成中心(KGC)生成,这带来了显著的风险。如果 KGC 被攻破,所有用户的私钥都可能被泄露,这要求对 KGC 完全信任。CL-PKC 通过将密钥生成过程分离,使 KGC 仅了解部分私钥,从而避免这一问题。结果,CL-PKC 结合了 PKI 和 IBC 的优点,在不牺牲安全性的情况下提供更强的保护。

更多阅读:

有关 OpenNHP 中使用的加密算法的详细说明,请参阅 OpenNHP 文档

主要特性

  • 通过强制默认“全部拒绝”规则减少漏洞利用
  • 通过加密的 DNS 解决防止钓鱼攻击
  • 通过隐藏基础设施保护免受 DDoS 攻击
  • 通过身份追踪连接实现攻击溯源
  • 对所有受保护资源的默认拒绝访问控制
  • 在网络访问前进行基于身份和设备的身份认证
  • 加密的 DNS 解决防止 DNS 劫持
  • 分布式基础设施抵御 DDoS 攻击
  • 解耦组件实现可扩展架构
  • 与现有身份和访问管理系统集成
  • 支持多种部署模型(客户端到网关、客户端到服务器等)
  • 使用现代算法(ECC、Noise 协议、IBC)进行加密确保安全性
点击展开特性详情
  • 默认拒绝访问控制:所有资源默认隐藏,只有通过身份验证和授权后才会变得可访问。
  • 基于身份和设备的身份验证:确保只有已知用户在授权设备上可以访问。
  • 加密的 DNS 解决:防止 DNS 劫持和相关的钓鱼攻击。
  • DDoS 缓解:分布式基础设施设计有助于抵御分布式拒绝服务攻击。
  • 可扩展架构:解耦组件允许灵活部署和扩展。
  • IAM 集成:可以与现有身份和访问管理系统配合使用。
  • 灵活部署:支持包括客户端到网关、客户端到服务器等多种模型。
  • 强大加密:使用现代算法如 ECC、Noise 协议和 IBC 确保安全性。

部署

OpenNHP 支持多种部署模型,以适应不同的使用场景:

  • 客户端到网关:保护网关后面的多个服务器的访问
  • 客户端到服务器:直接保护单个服务器/应用
  • 服务器到服务器:保护后端服务之间的通信
  • 网关到网关:保护站点到站点的连接

有关详细部署说明,请参阅 OpenNHP 文档

SPA 和 NHP 的比较

单包认证(SPA)协议被包含在 软件定义边界(SDP)规范 中,由 云安全联盟(CSA) 发布。NHP 通过现代加密框架和架构在安全性、可靠性、可扩展性和可扩展性方面进行了改进,这一点在 AHAC 研究论文 中得到了验证。

- SPA NHP NHP 优势
架构 SPA 服务器中的 SPA 数据包解密和用户/设备身份验证组件与网络访问控制组件是耦合的。 NHP-Server(数据包解密和用户/设备身份验证组件)和 NHP-AC(访问控制组件)是解耦的。NHP-Server 可以部署在独立的主机上,并支持水平扩展。
  • 性能:资源消耗大的组件 NHP-Server 从受保护服务器分离。
  • 可扩展性:NHP-Server 可以以分布式或集群模式部署。
  • 安全性:受保护服务器的 IP 地址在身份验证成功之前对客户端是不可见的。
通信 单向 双向 更好的可靠性,访问控制状态通知
加密框架 共享密钥 PKI 或 IBC,Noise 框架
  • 安全性:经过验证的安全密钥交换机制,减轻中间人攻击威胁
  • 低成本:适合零信任模型的高效密钥分发
  • 性能:高性能加密/解密
隐藏网络基础设施的能力 仅服务器端口 域名、IP 和端口 更强大,针对各种攻击(如漏洞利用、DNS 劫持和 DDoS 攻击)
可扩展性 无,仅适用于 SDP 通用 支持任何需要服务暗化的场景
互操作性 不支持 可定制 NHP 可以无缝集成现有协议(如 DNS、FIDO 等)

贡献

我们欢迎对 OpenNHP 的贡献!有关如何参与的更多信息,请参阅我们的贡献指南

许可协议

OpenNHP 遵循 Apache 2.0 许可协议

联系方式

有关更详细的文档,请访问我们的官方网站

参考文献


🌟 感谢您对 OpenNHP 的关注!我们期待您的贡献和反馈。