From edfa3d9d3c3c3dd21b58358d74926c19e605ba04 Mon Sep 17 00:00:00 2001 From: WinGeek Date: Wed, 16 Oct 2024 12:30:29 -0700 Subject: [PATCH] Update documents --- docs/comparison.md | 11 +- docs/cryptography.md | 13 +- docs/zh-cn/about.zh-cn.md | 3 + docs/zh-cn/build.zh-cn.md | 2 + docs/zh-cn/code.zh-cn.md | 2 + docs/zh-cn/comparison.zh-cn.md | 45 +++-- docs/zh-cn/cryptography.zh-cn.md | 278 +++++++++++++++++++++++++++++- docs/zh-cn/deploy.zh-cn.md | 2 + docs/zh-cn/features.zh-cn.md | 3 + docs/zh-cn/index.zh-cn.md | 3 +- docs/zh-cn/overview.zh-cn.md | 2 + docs/zh-cn/server_plugin.zh-cn.md | 5 +- 12 files changed, 331 insertions(+), 38 deletions(-) diff --git a/docs/comparison.md b/docs/comparison.md index 0fd3a877..650093b5 100644 --- a/docs/comparison.md +++ b/docs/comparison.md @@ -1,17 +1,18 @@ --- layout: page title: Comparison -nav_order: 3 +nav_order: 4 permalink: /comparison/ --- -- {: .fs-9 } +# Comparison between NHP and SPA +{: .fs-9 } -*       (Note: The following content is extracted from the journal paper "AHAC: Advanced Network-Hiding Access Control Framework" published in Volume 14, Issue 13 of the journal *Applied Sciences* in 2024. It is worth noting that the AHAC framework is a key component of the NHP (OpenNHP) technology system. This paper provides a detailed introduction and comparison of the performance of NHP (Next-Generation Host Protocol) and SPA (Secure Protocol Architecture) in various aspects.)* +[中文版](/zh-cn/comparison/){: .label .fs-4 } -# Comparison between NHP and SPA +Note: The following content is extracted from the journal paper "AHAC: Advanced Network-Hiding Access Control Framework" published in Volume 14, Issue 13 of the journal *Applied Sciences* in 2024. It is worth noting that the AHAC framework is a key component of the NHP (OpenNHP) technology system. -# Table Of Content: +--- - [Comparison between NHP and SPA](#comparison-between-nhp-and-spa) - [Table Of Content:](#table-of-content) diff --git a/docs/cryptography.md b/docs/cryptography.md index d0741db5..af8313f7 100644 --- a/docs/cryptography.md +++ b/docs/cryptography.md @@ -1,22 +1,25 @@ --- layout: page title: Cryptography -nav_order: 4 +nav_order: 3 permalink: /cryptography/ --- # Cryptographic Algorithms in OpenNHP {: .fs-9 } +Cryptography is at the heart of OpenNHP, providing robust security, excellent performance, and scalability by utilizing cutting-edge cryptographic algorithms. +{: .fs-6 .fw-300 } + [中文版](/zh-cn/cryptography/){: .label .fs-4 } --- -Cryptography is at the heart of OpenNHP, providing robust security, excellent performance, and scalability by utilizing cutting-edge cryptographic algorithms. This article explains how OpenNHP takes advantages of modern cryptographic algorithms in several critical areas: +This article explains how OpenNHP takes advantages of modern cryptographic algorithms in several critical areas: -1. Public Key Cryptography -2. Key Exchange, Data Encryption and Identity Verification -3. Key Distribution and Management +1. [Public Key Cryptography](#1-public-key-cryptography) +2. [Key Exchange, Data Encryption and Identity Verification](#2-key-exchange-data-encryption-and-identity-verification) +3. [Key Distribution and Management](#3-key-distribution-and-management) ## 1) Public Key Cryptography diff --git a/docs/zh-cn/about.zh-cn.md b/docs/zh-cn/about.zh-cn.md index b3b86a93..75c33965 100644 --- a/docs/zh-cn/about.zh-cn.md +++ b/docs/zh-cn/about.zh-cn.md @@ -9,6 +9,9 @@ permalink: /zh-cn/about/ # 关于OpenNHP开源项目 {: .fs-9 } +[English Version](/about/){: .label .fs-4 } + + --- diff --git a/docs/zh-cn/build.zh-cn.md b/docs/zh-cn/build.zh-cn.md index b4688b48..a627d468 100644 --- a/docs/zh-cn/build.zh-cn.md +++ b/docs/zh-cn/build.zh-cn.md @@ -9,6 +9,8 @@ permalink: /zh-cn/build/ # 编译OpenNHP {: .fs-9 } +[English Version](/build/){: .label .fs-4 } + --- ## 1. WSL环境准备 diff --git a/docs/zh-cn/code.zh-cn.md b/docs/zh-cn/code.zh-cn.md index ca356b25..38328f25 100644 --- a/docs/zh-cn/code.zh-cn.md +++ b/docs/zh-cn/code.zh-cn.md @@ -9,6 +9,8 @@ permalink: /zh-cn/code/ # OpeNHP代码解读 {: .fs-9 } +[English Version](/code/){: .label .fs-4 } + --- ## 1. 层级架构 diff --git a/docs/zh-cn/comparison.zh-cn.md b/docs/zh-cn/comparison.zh-cn.md index d3be8211..640f7e52 100644 --- a/docs/zh-cn/comparison.zh-cn.md +++ b/docs/zh-cn/comparison.zh-cn.md @@ -2,17 +2,19 @@ layout: page title: 对比NHP与SPA parent: 中文版 -nav_order: 3 +nav_order: 4 permalink: /zh-cn/comparison/ --- -- {: .fs-9 } +# 对比NHP与SPA +{: .fs-9 } -*       ( 注:以下内容摘自《Applied Sciences》杂志2024年第14卷第13期的期刊论文《AHAC: Advanced Network-Hiding Access Control Framework》论文,值得特别指出的是,AHAC框架是NHP(OpenNHP)技术体系中的一个关键组成部分。本文详细介绍和比较 NHP(Next-Generation Host Protocol)与 SPA(Secure Protocol Architecture)在不同方面的表现。)* +[English Version](/comparison/){: .label .fs-4 } -# NHP与SPA的对比 +注: 以下内容摘自《Applied Sciences》杂志2024年第14卷第13期的期刊论文《AHAC: Advanced Network-Hiding Access Control Framework》论文,值得特别指出的是,AHAC框架是NHP(OpenNHP)技术体系中的一个关键组成部分。 + +--- -# 目录: - [NHP与SPA的对比](#nhp与spa的对比) - [目录:](#目录) - [1. 优势对比](#1-优势对比) @@ -26,10 +28,9 @@ permalink: /zh-cn/comparison/ - [4.2 与FIDO集成](#42-与fido集成) - [5. 兼容性对比](#5-兼容性对比) - ## 1. 优势对比 -       NHP通过结合噪声协议、密钥对和ECDH算法,提供强大的双向认证机制。与传统方法相比,NHP在性能、可扩展性和安全性上有显著优势。它支持多种编程语言(如C/C++、Python、Java和Go),并提供高度可扩展的架构,增强设备验证能力,防御重放攻击,彻底解决IP放大问题。NHP特别适合企业IAM系统和安全资源访问等需要强认证和加密的场景,优化了性能并提升了高可用性,确保在复杂环境中的无缝兼容性和高安全性。相比之下,SPA虽然具有一定优势,但在安全性、性能和可扩展性方面仍无法与NHP媲美。 +NHP通过结合噪声协议、密钥对和ECDH算法,提供强大的双向认证机制。与传统方法相比,NHP在性能、可扩展性和安全性上有显著优势。它支持多种编程语言(如C/C++、Python、Java和Go),并提供高度可扩展的架构,增强设备验证能力,防御重放攻击,彻底解决IP放大问题。NHP特别适合企业IAM系统和安全资源访问等需要强认证和加密的场景,优化了性能并提升了高可用性,确保在复杂环境中的无缝兼容性和高安全性。相比之下,SPA虽然具有一定优势,但在安全性、性能和可扩展性方面仍无法与NHP媲美。 | | SPA | NHP | | ------------ | ------------------------------ | ------------------------------ | @@ -50,7 +51,7 @@ permalink: /zh-cn/comparison/ ### 2.1 加密算法开销 -       SPA 采用的是 RSA 加密算法,而 NHP 采用的是 ECC 加密算法。我们根据安全强度和密钥长度比较了 RSA 和 ECC 的性价比,如下表所示。在相同的安全标准下,ECC 算法的密钥长度显著短于 RSA 算法。此外,RSA 消息签名生成的密文大小大致等于密钥长度。因此,在验证网络消息身份时,NHP 使用更短的 ECC 随机密钥(32 字节或 64 字节)进行 ECDH 交换,而不是传输较大的 RSA2048 消息签名(256 字节)进行验证,不仅降低了计算开销,还更加高效地节省了宝贵的带宽资源。这一策略表明,NHP 在提高系统效率和资源利用率方面相较于 SPA 具有显著优势。 +SPA 采用的是 RSA 加密算法,而 NHP 采用的是 ECC 加密算法。我们根据安全强度和密钥长度比较了 RSA 和 ECC 的性价比,如下表所示。在相同的安全标准下,ECC 算法的密钥长度显著短于 RSA 算法。此外,RSA 消息签名生成的密文大小大致等于密钥长度。因此,在验证网络消息身份时,NHP 使用更短的 ECC 随机密钥(32 字节或 64 字节)进行 ECDH 交换,而不是传输较大的 RSA2048 消息签名(256 字节)进行验证,不仅降低了计算开销,还更加高效地节省了宝贵的带宽资源。这一策略表明,NHP 在提高系统效率和资源利用率方面相较于 SPA 具有显著优势。 | 安全强度(比特) | SPA (最小值公钥长度(位)) | NHP(最小值公钥长度(位)) | NHP vs SPA(密钥长度比) | 有效期 | @@ -62,7 +63,7 @@ permalink: /zh-cn/comparison/ | 256 | 15360 | 512+ | 1:30 | | -       我们通过实验测量了 RSA 和 ECC 的加解密时间,具体结果见下表。实验增加了加密和解密的循环次数,测试两种算法在不同情况下的性能。结果显示,尽管 RSA 和 ECC 的加解密时间随着循环次数的增加而上升,但 ECC 的时间开销始终远低于 RSA。尤其在循环次数增多时,ECC 的优势更加明显,RSA 的时间开销最高达到 ECC 的约 800 倍。这一显著差距表明,NHP 在加解密效率上明显优于 SPA,为实际应用中选择更高效的加密算法提供了有力的依据。 +我们通过实验测量了 RSA 和 ECC 的加解密时间,具体结果见下表。实验增加了加密和解密的循环次数,测试两种算法在不同情况下的性能。结果显示,尽管 RSA 和 ECC 的加解密时间随着循环次数的增加而上升,但 ECC 的时间开销始终远低于 RSA。尤其在循环次数增多时,ECC 的优势更加明显,RSA 的时间开销最高达到 ECC 的约 800 倍。这一显著差距表明,NHP 在加解密效率上明显优于 SPA,为实际应用中选择更高效的加密算法提供了有力的依据。 | 循环次数(次) | SPA | NHP | | -------------- | -------- | ------ | @@ -77,36 +78,34 @@ permalink: /zh-cn/comparison/ ### 2.2 性能开销 -       为了全面评估 NHP 的性能表现,我们搭建了一个下图所示的实验环境,针对 NHP 和 SPA 进行了负载性能测试。该环境由两个主要区域组成:Agent 部署区域和网络隐身部署区域。 +为了全面评估 NHP 的性能表现,我们搭建了一个下图所示的实验环境,针对 NHP 和 SPA 进行了负载性能测试。该环境由两个主要区域组成:Agent 部署区域和网络隐身部署区域。 ![部署图](/images/Deploment_diagram.png) -       在网络隐身部署区域,我们集成了网络隐身服务器和应用服务器作为关键组件。为了确保测试环境的稳定性和一致性,我们选用了三台配置相同的机器,每台配备 4 核 CPU 和 8G 内存。在 agent 部署区域,我们启动了 n 个 agent 服务,这些服务以每秒发送一次敲门请求的频率与网络隐身服务器通信。同时,在网络隐身服务器上部署了 JMeter 组件,用于模拟和监控其性能表现。应用服务器端同样部署了 JMeter 服务,实时跟踪网络隐身服务器的性能资源消耗情况。通过这种设置,我们能够全面监控和比较 NHP 与 SPA 的性能表现。 +在网络隐身部署区域,我们集成了网络隐身服务器和应用服务器作为关键组件。为了确保测试环境的稳定性和一致性,我们选用了三台配置相同的机器,每台配备 4 核 CPU 和 8G 内存。在 agent 部署区域,我们启动了 n 个 agent 服务,这些服务以每秒发送一次敲门请求的频率与网络隐身服务器通信。同时,在网络隐身服务器上部署了 JMeter 组件,用于模拟和监控其性能表现。应用服务器端同样部署了 JMeter 服务,实时跟踪网络隐身服务器的性能资源消耗情况。通过这种设置,我们能够全面监控和比较 NHP 与 SPA 的性能表现。 -       在保持实验环境一致性的前提下,我们按照部署方案分别选取了1、10、20、30、40、50个agent,对NHP和SPA进行了性能测试。测试结果如表4所示,其中横轴表示参与实验的agent数量,纵轴则显示测试期间的CPU占用率变化。通过这种设置,我们能够直观地观察到随着agent数量的增加,NHP和SPA在CPU资源消耗方面的不同表现。 +在保持实验环境一致性的前提下,我们按照部署方案分别选取了1、10、20、30、40、50个agent,对NHP和SPA进行了性能测试。测试结果如表4所示,其中横轴表示参与实验的agent数量,纵轴则显示测试期间的CPU占用率变化。通过这种设置,我们能够直观地观察到随着agent数量的增加,NHP和SPA在CPU资源消耗方面的不同表现。 ![CPU对比](/images/CPU_compare.png) -       实验结果显示,随着 Agent 数量的增加,NHP 和 SPA 的 CPU 负载均呈现上升趋势。然而,随着 Agent 数量的进一步增加,NHP 的性能优势逐渐凸显,其 CPU 负载大约维持在 SPA 的一半左右,展现出显著的效率提升。
-*       ( 注:尽管理论上 NHP 的性能应较 SPA 提升约 1000 倍,但实际测试中仅提升约 1 倍。分析原因,主要因素包括网络开销对性能的显著影响、垃圾回收机制导致的性能损失,以及硬件环境差异。此外,尽管出于代码安全性和加密算法实现的考虑,我们选择了内存安全的 Go 语言开发,但其垃圾回收机制也对性能产生了一定影响。)* -## +实验结果显示,随着 Agent 数量的增加,NHP 和 SPA 的 CPU 负载均呈现上升趋势。然而,随着 Agent 数量的进一步增加,NHP 的性能优势逐渐凸显,其 CPU 负载大约维持在 SPA 的一半左右,展现出显著的效率提升。 +> 注:尽管理论上 NHP 的性能应较 SPA 提升约 1000 倍,但实际测试中仅提升约 1 倍。分析原因,主要因素包括网络开销对性能的显著影响、垃圾回收机制导致的性能损失,以及硬件环境差异。此外,尽管出于代码安全性和加密算法实现的考虑,我们选择了内存安全的 Go 语言开发,但其垃圾回收机制也对性能产生了一定影响。 ## 3. 高可用性对比 -       NHP 通过分布式架构实现零信任服务的高可用性,确保敲门模块和门禁模块在不同主机上部署,以避免资源占用和提升弹性扩展。即使发生故障,也能无缝切换服务,维持系统功能和响应速度。这种设计增强了系统的稳健性和稳定性,降低了服务故障对整体系统的影响,如下图所示。 +NHP 通过分布式架构实现零信任服务的高可用性,确保敲门模块和门禁模块在不同主机上部署,以避免资源占用和提升弹性扩展。即使发生故障,也能无缝切换服务,维持系统功能和响应速度。这种设计增强了系统的稳健性和稳定性,降低了服务故障对整体系统的影响,如下图所示。 ![高可用架构](/images/High-availability.png) -       NHP 支持敲门验证服务的横向弹性扩展,能够根据实时负载动态调整服务实例数。这一功能提供了极高的弹性和可扩展性,确保在高负载下服务依然快速响应且稳定。每个服务实例均能处理敲门请求并维持业务会话,这种设计不仅提升了处理能力,还增强了容错性,保证了业务连续性和稳定性。从测试结果来看,NHP 在高可用性方面相较于 SPA 显著提升 +NHP 支持敲门验证服务的横向弹性扩展,能够根据实时负载动态调整服务实例数。这一功能提供了极高的弹性和可扩展性,确保在高负载下服务依然快速响应且稳定。每个服务实例均能处理敲门请求并维持业务会话,这种设计不仅提升了处理能力,还增强了容错性,保证了业务连续性和稳定性。从测试结果来看,NHP 在高可用性方面相较于 SPA 显著提升 ![负载图](/images/Load_diagram.png) - ## 4. 扩展性对比 -       尽管NHP设计为数据通信提供了可信、可控、可靠和可证的基础保障,但考虑到通信场景和环境的多样性和复杂性,NHP还需具备良好的扩展性以适应不同的定制需求。NHP的扩展性体现在几个方面: +尽管NHP设计为数据通信提供了可信、可控、可靠和可证的基础保障,但考虑到通信场景和环境的多样性和复杂性,NHP还需具备良好的扩展性以适应不同的定制需求。NHP的扩展性体现在几个方面: - 其双向通信机制相比SPA的单向敲门机制,提供了更丰富的扩展能力,可以隐藏资源的真实IP地址并支持数据通信前后的密钥交换,增强隐私计算和数据流通场景的安全性。 @@ -114,11 +113,11 @@ permalink: /zh-cn/comparison/ - NHP的资源标识支持任意字符串形式,包括中英文及符号,为数据资源提供更强的描述性,并具备DNS解析功能,提供更安全、加密和隐私的域名解析服务。 -       因此,NHP的扩展性架构涵盖了与DNS和FIDO的集成等典型应用场景。 +因此,NHP的扩展性架构涵盖了与DNS和FIDO的集成等典型应用场景。 ### 4.1 与DNS集成 -       DNS作为互联网基础服务在网站运行中至关重要,但其安全性长期未被重视,且因使用不可靠的UDP协议,存在诸多安全漏洞,如DNS劫持和拒绝服务攻击。因此,加强DNS安全至关重要。通过集成网络隐身技术,DNS解析通过双向加密通道进行,确保了保密性和防篡改能力,同时只有经过身份认证的用户才能解析,从而有效防御DDoS攻击和劫持。具体实现方案如下图所示,我们的方法能够显著提升了DNS的安全性,为用户提供了更可靠的DNS服务。 +DNS作为互联网基础服务在网站运行中至关重要,但其安全性长期未被重视,且因使用不可靠的UDP协议,存在诸多安全漏洞,如DNS劫持和拒绝服务攻击。因此,加强DNS安全至关重要。通过集成网络隐身技术,DNS解析通过双向加密通道进行,确保了保密性和防篡改能力,同时只有经过身份认证的用户才能解析,从而有效防御DDoS攻击和劫持。具体实现方案如下图所示,我们的方法能够显著提升了DNS的安全性,为用户提供了更可靠的DNS服务。 ![DNS集成方案](/images/DNS_integration.png) @@ -138,7 +137,7 @@ permalink: /zh-cn/comparison/ ### 4.2 与FIDO集成 -       尽管FIDO在Web身份认证方面表现出色,但服务器的潜在漏洞仍可能被黑客利用,从而绕过FIDO的认证,直接入侵服务器进行数据盗窃或破坏。将FIDO与NHP集成,可以有效弥补FIDO在漏洞防护方面的不足,为互联网暴露面提供更全面的防御方案。具体实现方案如下图所示,详细实现步骤如下。 +尽管FIDO在Web身份认证方面表现出色,但服务器的潜在漏洞仍可能被黑客利用,从而绕过FIDO的认证,直接入侵服务器进行数据盗窃或破坏。将FIDO与NHP集成,可以有效弥补FIDO在漏洞防护方面的不足,为互联网暴露面提供更全面的防御方案。具体实现方案如下图所示,详细实现步骤如下。 ![FIDO集成方案](/images/FIDO_integration.png) @@ -168,7 +167,7 @@ permalink: /zh-cn/comparison/ ## 5. 兼容性对比 -       与SPA协议相比,NHP的一个关键目标是对信创环境以及国内零信任标准体系的良好兼容性。在加密算法方面,NHP支持国际密码算法(如RSA、SHA256、AES)和国密算法(如SM2、SM3、SM4),并能根据数据包头的长度调整加密时间。在软硬件兼容性方面,NHP适配了国内外主流的CPU硬件和操作系统,包括鲲鹏、x86、龙芯、申威等。此外,NHP符合即将颁布的国家标准《信息安全技术零信任参考体系架构》的规范要求,确保了与该标准的兼容性,如下图所示。 +与SPA协议相比,NHP的一个关键目标是对信创环境以及国内零信任标准体系的良好兼容性。在加密算法方面,NHP支持国际密码算法(如RSA、SHA256、AES)和国密算法(如SM2、SM3、SM4),并能根据数据包头的长度调整加密时间。在软硬件兼容性方面,NHP适配了国内外主流的CPU硬件和操作系统,包括鲲鹏、x86、龙芯、申威等。此外,NHP符合即将颁布的国家标准《信息安全技术零信任参考体系架构》的规范要求,确保了与该标准的兼容性,如下图所示。 ![兼容性对比](/images/Compatibility_comparison.png) diff --git a/docs/zh-cn/cryptography.zh-cn.md b/docs/zh-cn/cryptography.zh-cn.md index e5ca4116..8dbbccea 100644 --- a/docs/zh-cn/cryptography.zh-cn.md +++ b/docs/zh-cn/cryptography.zh-cn.md @@ -2,11 +2,285 @@ layout: page title: 加密算法 parent: 中文版 -nav_order: 4 +nav_order: 3 permalink: /zh-cn/cryptography/ --- # 加密算法 {: .fs-9 } ---- \ No newline at end of file +[English Version](/cryptography/){: .label .fs-4 } + +加密是 OpenNHP 的核心,通过利用尖端的加密算法提供强大的安全性、卓越的性能和可扩展性。 +{: .fs-6 .fw-300 } + +--- + +本文解释了 OpenNHP 如何在多个关键领域中利用现代加密算法的优势: + +1. [公私钥加密算法](#1-public-key-cryptography) +2. [密钥交换、数据加密和身份认证](#2-key-exchange-data-encryption-and-identity-verification) +3. [密钥分发和管理](#3-key-distribution-and-management) + + +## 1) 公私钥加密算法 +### 1.1 简介 +在不断变化的网络安全环境中,保护通信和网络资源至关重要,特别是在网络威胁日益复杂的情况下。网络基础设施隐藏协议(NHP),作为一种零信任安全机制,致力于通过隐藏网络基础设施细节来防止攻击者入侵,并确保只有受信任的实体能够与网络资源交互。NHP 安全模型的关键组件是椭圆曲线加密(ECC)用于公钥加密。在本文中,我们将探讨 ECC 如何集成到 NHP 零信任协议中,以提供强大且高效的安全性。 + +椭圆曲线加密(ECC)是一种现代公钥加密方法,相较于传统方法如 RSA,它能在显著更小的密钥尺寸下提供相同级别的安全性。ECC 依赖于有限域上椭圆曲线的数学特性,提供了安全性与性能之间的良好平衡。由于其降低了计算开销,ECC 特别适用于资源受限的环境,如嵌入式系统或移动设备。公钥加密是基于非对称密钥对的加密方法,通常包括一个公开的公钥和一个私密的私钥。通过公钥加密,可以实现安全的数据传输、身份验证和数字签名等功能,从而确保通信双方的数据安全性和身份真实性。 + +### 1.2 什么是椭圆曲线加密? + +椭圆曲线加密(ECC)是一种基于椭圆曲线数学理论的公钥加密技术。它通过椭圆曲线方程上的点运算,提供与传统方法(如 RSA)相同的安全性,但密钥尺寸更小,计算效率更高。ECC 的安全性源于椭圆曲线离散对数问题,其计算复杂度使得破解难度极大。 + +在 ECC 中,参与方通过生成公私钥对,利用椭圆曲线 Diffie-Hellman(ECDH)协议来交换密钥。ECC 的数学基础是使用有限域上的椭圆曲线方程: + +y^2 = x^3 + ax + b + +其中 a 和 b 是定义曲线特性的常数,曲线上的点集具有特定的加法运算规则。 + +ECC 的主要优势包括: +- **更小的密钥尺寸**:ECC 能在更小的密钥长度下实现相同的安全性,从而降低了存储和计算的负担。 +- **增强的安全性**:ECC 基于椭圆曲线离散对数问题,其数学复杂性使其非常难以破解。 +- **高效性**:相比传统加密方法如 RSA,ECC 的加密和解密操作速度更快,适用于资源受限的设备(如嵌入式系统和移动设备)。 + +NHP 使用 ECC 进行密钥交换、数据加密和身份验证,以及通过无证书公钥加密(CL-PKC)进行密钥分发和管理。 + +### 1.3 安全通信中的 ECC + +#### 1.3.1 密钥交换机制 + +加密密钥的安全交换是任何安全通信协议的核心。NHP 使用椭圆曲线 Diffie-Hellman(ECDH)作为其密钥交换机制。在 ECDH 密钥交换中,通信双方使用椭圆曲线生成公私密钥对,然后交换公钥,以便双方计算出共享密钥,而无需直接在网络上传递。 + +使用 ECDH 的好处有两个方面:首先,它提供了前向安全性,即使在未来某一方的私钥被泄露,先前建立的会话密钥仍然是安全的。其次,由于 ECC 的高效性,密钥交换过程计算负担较轻,确保密钥建立过程快速完成且计算成本低。 + +#### 1.3.2 数字签名身份验证 + +在零信任环境中,身份验证至关重要。NHP 使用椭圆曲线数字签名算法(ECDSA)来验证试图访问网络资源的实体的身份。ECDSA 是一种基于 ECC 的数字签名方案,它允许设备在不暴露敏感私钥的情况下证明其身份。 + +在 NHP 协议中,当某个实体希望与网络通信时,它必须使用其私钥生成数字签名,接收方可以使用相应的公钥来验证签名的有效性。这确保了只有合法的实体可以参与网络,从而有效地实施零信任模型的 "永不信任,始终验证" 原则。 + +#### 1.3.3 数据保密加密 + +NHP 在通信过程中使用对称加密来确保数据的保密性,但对称密钥必须在实体之间安全地分发和共享。ECC 通过 ECDH 提供安全的对称密钥分发渠道,确保对称密钥可以安全地交换。 + +一旦这些密钥交换完成,NHP 就会切换到对称加密进行数据传输,从中受益于对称加密算法的速度和效率。ECC 确保对称密钥交换既安全又高效。 + +#### 1.3.4 无证书公钥加密中的密钥管理与分发 + +NHP 还通过无证书公钥加密(CL-PKC)使用 ECC 进行密钥管理和分发。在传统的公钥基础设施中,证书被用来验证公钥,这在证书管理方面引入了复杂性。CL-PKC 通过允许实体与受信任的中心合作生成部分私钥,同时独立生成自己的密钥对,从而消除了证书的需要。 + +这种方法简化了密钥管理,确保公钥可以在没有证书颁发和验证的情况下安全使用。通过在 CL-PKC 中使用 ECC,NHP 提供了一种轻量级且安全的密钥分发方式,通过消除对集中式证书机构的依赖,进一步增强了零信任模型。 + +### 1.4 使用 ECC 的优势 + +NHP 零信任协议中使用 ECC 提供了众多符合其安全目标的优势: + +- **可扩展安全性**:ECC 较小的密钥尺寸提供了强大的安全性,能很好地适应对抗对手计算能力不断增强的情况。随着 NHP 致力于为多样化的网络部署提供零信任环境,ECC 的可扩展性是一项关键资产。 +- **资源效率**:相比传统公钥加密,ECC 减少了网络设备的计算负担。在网络资源可能受限的环境中——如边缘设备或物联网组件——这种高效性对于在不牺牲安全性的情况下保持高性能至关重要。 +- **性能提升**:结合 ECDH 的密钥交换、ECDSA 的身份验证以及高效的对称加密提供了一个平衡的安全通信解决方案。这种平衡的方法使得 NHP 能够实现零信任的目标,同时保持较低的延迟,这对时间敏感的网络应用尤为关键。 + +### 1.5 结论 + +将椭圆曲线加密集成到 NHP 零信任协议中,提供了一种在最小性能影响下保护网络通信的强大手段。通过利用 ECDH 进行安全的密钥交换、ECDSA 进行可靠的身份验证,以及高效的对称加密进行数据传输,ECC 支持零信任模型的目标,即隐藏网络基础设施,确保只有受信任的实体可以访问资源,并以低开销保持安全性。 + +随着网络威胁变得越来越复杂,像 ECC 这样的先进加密技术在 NHP 协议中的应用对于保持对攻击者的优势至关重要。ECC 和 NHP 之间的协同作用不仅有助于保护关键的网络基础设施,还确保安全措施既强大又高效——这是任何现代网络安全项目成功的关键组合。 + +网络基础设施隐藏协议(NHP)基于零信任安全模型构建,确保即使在潜在攻击者的存在下也能实现安全通信。为此,NHP 集成了 Noise 协议框架,这是一个用于安全且灵活的密钥交换、数据加密和身份验证的加密框架。该组合以最小的计算开销提供了强大的安全性。 + +## 2)密钥交换、数据加密和身份认证 + +### 2.1 简介 + +#### 2.1.1. 密钥交换机制 + +NHP 利用 Noise 协议的密钥交换机制来确保通信双方之间的安全认证通道。密钥交换从握手阶段开始,双方交换 Diffie-Hellman (DH) 公钥。在 Noise 中,每一方生成一个临时密钥对,并使用交换的公钥派生出共享密钥,该共享密钥随后用于加密后续通信。 + +Noise 允许 NHP 支持长期静态密钥和临时密钥以增强安全性。Noise 框架的握手模式的灵活性使得 NHP 能够根据特定使用场景定制握手过程,提供相互认证、匿名发起者或初始握手本身加密的选项。通过利用 Noise 的基于令牌的握手系统,NHP 可以精确控制密钥交换消息的顺序,同时保持身份信息的机密性。 + +#### 2.1.2 数据加密 + +共享密钥在握手期间派生出来后,Noise 框架使用对称加密来保护数据。NHP 利用 Noise 的 CipherState 和 SymmetricState 对象,这些是 Noise 状态机的核心组件,用于管理通信会话的加密和解密密钥。 + +特别地,握手期间派生的共享密钥用于初始化对称加密密钥(k)和随机数(n),用于数据加密。Noise 支持高级加密方案,如 ChaCha20-Poly1305 或 AES-GCM,提供带有附加数据认证加密(AEAD),以维护数据的保密性和完整性。链式密钥(ck)和握手散列(h)用于在会话过程中不断派生新的密钥,增强前向安全性,确保一个密钥的泄露不会危及通信的其他部分。 + +NHP 通过这些加密属性提供网络数据的加密通道,确保任何被拦截的数据在没有派生密钥的情况下无法被解密。 + +#### 2.1.3 身份验证 + +Noise 通过将静态密钥的交换与 Diffie-Hellman 操作相结合来实现身份验证。在 NHP 中,身份验证发生在握手期间,其中静态密钥被加密并通过共享的 DH 操作进行验证,有效地将双方的公钥绑定到派生的会话密钥上。 + +在握手过程中,Noise 使用诸如 "s"(静态)和 "e"(临时)等令牌来指示正在交换和验证哪些密钥。这种基于令牌的方法使得 NHP 能够根据具体的使用场景选择性地认证单方或双方。例如,Noise 中的 "XX" 模式提供相互认证,而 "NK" 模式允许单方认证的握手,赋予 NHP 在身份验证严格性方面的灵活性。 + +为了进一步保护身份信息,Noise 可以在握手期间加密静态密钥。NHP 利用这一特性来防止窃听者发现参与者的身份,从而支持零信任模型,确保参与者的身份只对预期的对方可见,而不对第三方泄露。 + +### 2.2 算法和公式 + +#### 2.2.1 Diffie-Hellman 密钥交换 + +Diffie-Hellman(DH)密钥交换用于在两方之间派生共享密钥,每一方生成一个私钥(a 对于 A,b 对于 B)并计算公共密钥: + +- A 计算其公钥:A_pub = g^a mod p +- B 计算其公钥:B_pub = g^b mod p + +共享密钥 s 通过以下方式计算: + +- A 计算:s = B_pub^a mod p +- B 计算:s = A_pub^b mod p + +该共享密钥 s 对于双方是相同的,用于派生加密密钥。 + +#### 2.2.2 对称加密 + +NHP 使用对称加密确保数据机密性。密钥(k)和随机数(n)用于加密函数。对于带有附加数据认证加密(AEAD),通常使用 ChaCha20-Poly1305 算法,该算法结合了流密码(ChaCha20)和消息验证码(Poly1305)。 + +- 加密:c = ChaCha20(k, n, plaintext) +- 认证:tag = Poly1305(k, associated data || c) + +密文(c)和标签一起传输,确保数据的机密性和完整性。 + +#### 2.2.3 密钥派生和散列 + +Noise 使用基于 HMAC 的密钥派生函数(KDF)来派生密钥。HKDF(基于 HMAC 的密钥派生函数)用于从共享密钥(s)生成多个密钥。 + +HKDF 步骤: + +- temp_key = HMAC(chaining_key, input_key_material) +- output1 = HMAC(temp_key, 0x01) +- output2 = HMAC(temp_key, output1 || 0x02) + +派生的密钥用于加密和维护链式密钥(ck),以确保前向安全性。 + +#### 2.2.4 身份认证 + +身份验证在 NHP 中涉及静态和临时密钥的交换,以验证参与方。静态(s)和临时(e)密钥之间的 Diffie-Hellman 操作产生唯一的共享值,用于验证参与方的身份。 + +身份验证操作包括: + +- ss = DH(s_A, s_B) +- es = DH(e_A, s_B) 或 DH(s_A, e_B) +- ee = DH(e_A, e_B) + +这些值通过散列结合起来派生最终的会话密钥,有效地将身份绑定到密钥交换过程中,确保只有预期的参与方能够派生出正确的会话密钥。 + +### 2.3 结论 + +Noise 协议框架为 NHP 提供了灵活且强大的加密机制,确保了通信的安全性和参与方身份的验证。通过支持多种握手模式和加密方案,Noise 框架增强了网络的前向安全性和身份保护能力,有效支持了零信任环境下的安全通信需求。结合 Diffie-Hellman 密钥交换、对称加密和基于令牌的身份验证,Noise 框架为 NHP 提供了实现其零信任目标的强大工具。 + +## 3) 密钥管理与分发 + +### 3.1 简介 + +无证书公钥加密(Certificateless Public Key Cryptography,CL-PKC),最初由 Al-Riyami 和 Paterson 在 2003 年提出,提供了一种混合解决方案,在不依赖传统证书机构(CA)的情况下确保强加密保证。本文探讨了 NHP 如何利用 CL-PKC 在不依赖证书的情况下实现高效且安全的密钥管理。 + +在传统的公钥基础设施(PKI)中,证书机构(CAs)作为可信的第三方,负责签发和管理公钥证书以验证用户密钥的真实性。虽然这种模型有效,但它引入了复杂性和风险,例如对 CA 的依赖以及 CA 受到攻击时的风险。无证书公钥加密旨在通过消除证书的使用来缓解这些问题,同时确保公钥的真实性。 + +在 CL-PKC 系统中,一个称为密钥生成中心(KGC)的可信第三方负责为用户生成部分私钥。然而,与 CA 不同的是,KGC 无法访问完整的私钥,因此不可能冒充用户。每个用户将 KGC 提供的部分私钥与他们自己的秘密值结合起来,生成完整的私钥和公钥。这种方法减少了对任何单一实体的信任,并提供了额外的安全层。 + +NHP 零信任协议集成了 CL-PKC 来管理其安全通信框架的密钥分发和验证。下面,我们解释 CL-PKC 的各种机制如何为 NHP 的密钥管理过程做出贡献。 + +#### 3.1.1. 部分密钥生成 + +KGC 负责创建系统范围的参数,包括主公私钥对。主私钥由 KGC 保密,而主公钥则分发给所有参与者。当新用户希望加入网络时,KGC 执行以下步骤: + +- 生成用户的部分私钥,使用他们的唯一标识符(例如电子邮件或其他身份信息)。这确保每个用户的部分密钥与其身份绑定,提供基于身份的安全性。 + +##### 3.1.2 用户特定密钥对生成 + +用户随后选择自己的秘密值,并将其与 KGC 提供的部分私钥结合起来,生成完整的私钥。具体步骤如下: + +- 用户选择一个秘密值 (d'\_A),并使用它来生成一个点 U\_A: + + U\_A = [d'\_A]G + +- 用户将 KGC 提供的部分私钥 (t\_A) 与自己的秘密值 (d'\_A) 相结合,计算出完整的私钥 (d\_A): + + d\_A = (t\_A + d'\_A) mod n + +- 用户使用完整的私钥生成相应的公钥 (P\_A): + + P\_A = W\_A + [l]P\_pub + +用户随后选择自己的秘密值,并将其与 KGC 提供的部分私钥结合起来,生成完整的私钥。用户的公钥也相应生成。 + +这种密钥分发方法确保 KGC 无法单方面确定用户的私钥,从而降低了密钥生成中心被攻破的风险。此外,不需要传统证书意味着用户无需依赖外部证书机构来验证密钥,从而减少了中间人(MITM)攻击的攻击面。 + +在像 NHP 实施的这种无证书系统中,公钥的真实性通过隐式的方法而不是依赖 CA 签发的证书来验证。具体来说,用户的公钥是使用系统参数、用户标识符和 KGC 的主公钥计算出来的。该计算是确定性的,允许任何一方在无需信任 CA 或存储大量证书数据库的情况下验证公钥的真实性。 + +通过消除传统证书的需要,NHP 能够简化密钥验证过程,消除证书吊销列表(CRLs)和其他 PKI 复杂性。这种方法不仅减少了通信开销,还通过消除对可信第三方的依赖增强了安全性,因为这些第三方可能成为攻击者的目标。 + + +### 3.2 算法和公式 + +#### 3.2.1 系统参数生成 + +密钥生成中心(KGC)负责生成系统参数,这些参数包括椭圆曲线 (E) 定义在有限域 (ℚ_q) 上,基点 (G) 的素数阶 (n),以及主私钥 (ms)。KGC 计算主公钥 (P_pub) 如下: + +P_pub = [ms]G + +其中 [ms]G 表示基点 G 与主私钥 ms 的标量乘法。 + +#### 3.2.2 部分私钥生成 + +对于每个用户(标识符为 ID_A),KGC 生成部分私钥。首先,KGC 根据用户的标识符和系统参数计算哈希值 (H_A): + +H_A = H(ENTL_A || ID_A || a || b || x_G || y_G || x_P_pub || y_P_pub) + +其中 (ENTL_A) 是由标识符派生的长度值,(x_G, y_G) 和 (x_P_pub, y_P_pub) 分别是点 G 和 P_pub 的坐标。 + +KGC 选择一个随机值 (w ∈ [1, n-1]) 并计算: + +W_A = [w]G + U_A + +其中 (U_A = [d'_A]G) 是用户使用其自身的秘密值 (d'_A) 生成的点。 + +部分私钥 (t_A) 计算如下: + +t_A = (w + l · ms) mod n + +其中 (l) 是根据点 (W_A) 和哈希 (H_A) 计算的值。 + +#### 3.2.3 用户完整私钥生成 + +用户通过将部分私钥 (t_A) 与其秘密值 (d'_A) 结合生成完整的私钥: + +d_A = (t_A + d'_A) mod n + +这确保只有用户自己知道其完整的私钥。 + +#### 3.2.4 公钥计算 + +用户的公钥 (P_A) 计算如下: + +P_A = W_A + [l]P_pub + +任何人可以使用系统参数、用户标识符和 KGC 的公钥验证该公钥。 + +#### 3.2.5 签名生成与验证 + +用户对消息 (M) 生成数字签名时,计算哈希 (e) 如下: + +e = H(H_A || x_W_A || y_W_A || M) + +签名 (r, s) 使用用户私钥 (d_A) 和一个随机值 (k) 生成: + +[r]G = (x_1, y_1) +r = x_1 mod n +s = (k^{-1}(e + d_A · r)) mod n + +验证签名时,验证者计算 (P_A),然后检查是否满足: + +[r]G = [s]G + [e + r]P_A + +如果等式成立,签名即为有效。 + + +### 3.3 结论 + +NHP 实施的无证书公钥加密为零信任环境中的密钥管理提供了一种强大且高效的方法。通过利用 CL-PKC,NHP 能够缓解传统 PKI 相关的风险,减少对集中可信机构的依赖,并简化密钥分发过程。结果是一个更安全且可扩展的系统,适合在面对不断发展的网络威胁时保护关键网络基础设施。 + +将无证书加密与 NHP 的零信任原则相结合,使其成为在最小化集中机构引入的风险的同时保护网络资源的理想解决方案。 + +Copyright © 2024 OpenNHP Open Source Project. + + diff --git a/docs/zh-cn/deploy.zh-cn.md b/docs/zh-cn/deploy.zh-cn.md index d38b3a20..9ff32f4f 100644 --- a/docs/zh-cn/deploy.zh-cn.md +++ b/docs/zh-cn/deploy.zh-cn.md @@ -9,6 +9,8 @@ permalink: /zh-cn/deploy/ # 部署OpenNHP {: .fs-9 } +[English Version](/deploy/){: .label .fs-4 } + --- ## 1. OpenNHP组件说明 diff --git a/docs/zh-cn/features.zh-cn.md b/docs/zh-cn/features.zh-cn.md index 65a63098..058be859 100644 --- a/docs/zh-cn/features.zh-cn.md +++ b/docs/zh-cn/features.zh-cn.md @@ -9,6 +9,9 @@ permalink: /zh-cn/features/ # OpenNHP功能列表 {: .fs-9 } +[English Version](/features/){: .label .fs-4 } + + --- diff --git a/docs/zh-cn/index.zh-cn.md b/docs/zh-cn/index.zh-cn.md index bbd1f56d..97f06c1e 100644 --- a/docs/zh-cn/index.zh-cn.md +++ b/docs/zh-cn/index.zh-cn.md @@ -9,7 +9,6 @@ permalink: /zh-cn/ # OpenNHP中文版文档 {: .fs-9 } - [English Version](/){: .label .fs-4 } - +--- diff --git a/docs/zh-cn/overview.zh-cn.md b/docs/zh-cn/overview.zh-cn.md index 60394761..4c1c31ae 100644 --- a/docs/zh-cn/overview.zh-cn.md +++ b/docs/zh-cn/overview.zh-cn.md @@ -10,6 +10,8 @@ permalink: /zh-cn/overview/ # OpenNHP:零信任网络隐身协议 {: .fs-9 } +[English Version](/){: .label .fs-4 } + --- ## 第一章:导读 diff --git a/docs/zh-cn/server_plugin.zh-cn.md b/docs/zh-cn/server_plugin.zh-cn.md index fc6eb017..d00ad5f4 100644 --- a/docs/zh-cn/server_plugin.zh-cn.md +++ b/docs/zh-cn/server_plugin.zh-cn.md @@ -7,8 +7,11 @@ permalink: /zh-cn/server_plugin/ --- # OpenNHP插件开发教程 +{: .fs-9 } -# 目录 +[English Version](/server_plugin/){: .label .fs-4 } + +--- - [简介 ](#简介 )