掌桥专利:专业的专利平台
掌桥专利
首页

基于WireGuard的加密通信网络系统的搭建方法

文献发布时间:2024-04-18 19:58:30


基于WireGuard的加密通信网络系统的搭建方法

技术领域

本发明涉及计算机网络通信技术领域,特别涉及一种基于WireGuard的加密通信网络系统的搭建方法。

背景技术

随着网络通信技术的发展,网络通信安全也成为了网络通信中不可忽视的重要环节。如何提供安全高效的网络通信途径是相关领域技术人员所关切的问题,尤其是对于政府机构、金融,以及医疗等涉及机密及高科技含量的领域,对于网络通信安全提出了更为严格的要求。

目前,一般通过加密算法提高网络通信的安全性。在现有技术中,通常有两种加密算法:其一是,利用对称加密方式为通信网络系统中的各个执行终端配置各执行终端的对称密钥,以及相互通信的执行终端之间的通信密钥,使用该方式的计算速度很快,能耗也比较小,对于执行终端的计算能力要求较低,但是安全性很差;另一种是,利用非对称加密的方式为通信网络系统中的各个执行终端配置各执行终端的非对称密钥,以及相互通信的执行终端之间的通信密钥,该种方式的安全性能好,可认证性强,但是对执行终端的计算能力要求较高,计算时间慢,能耗也较高。

所以,现有的加密算法无法在保证安全性的同时实现高效的加密。

发明内容

本发明的目的在于提供一种基于WireGuard的加密通信网络系统的搭建方法,以解决现有的加密算法无法在保证安全性的同时实现高效的加密的问题。

为解决上述技术问题,本发明提供一种基于WireGuard的加密通信网络系统的搭建方法,包括:

基于WireGuard搭建终端;

生成所述终端的第一密钥算法程序;

在各个所述终端间进行握手通信,并生成所述终端的第二密钥算法程序;

利用第一密钥算法程序和第二密钥算法程序配置所述终端。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述生成所述终端的第一密钥算法程序的方法包括:

利用WireGuard自身的加密算法获取一号公钥、一号私钥和一号共享密钥;

基于国密加密算法将WireGuard自身的加密算法替换为第一密钥算法程序,所述第一密钥算法程序包括第一公私钥生成算法和第一共享密钥生成算法;

利用第一密钥算法程序将一号公钥替换为二号公钥、将一号私钥替换为二号私钥以及将一号共享密钥替换为二号共享密钥。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,WireGuard自身的加密算法采用Curve25519,一号公钥、一号私钥和一号共享密钥的长度均为32Byte;国密加密算法采用SM2,二号公钥的长度为64Byte、二号私钥的长度为32Byte、二号共享密钥的长度为64Byte。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述基于国密加密算法将WireGuard自身的加密算法替换为第一密钥算法程序的方法包括:

利用WireGuard自身的加密算法随机生成一个一号私钥;

调用国密加密算法中的生成库,以生成一号私钥对应的二号公钥;

将二号公钥替换WireGuard自身的加密算法中的一号公钥;

将WireGuard自身的加密算法中的协商函数传入值改为二号公钥和二号私钥,并将协商算法改为通信一方终端的二号公钥与通信另一方终端的二号私钥的点乘。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述在各个所述终端间进行握手通信,并生成所述终端的第二密钥算法程序的方法包括:

获取握手初始包和握手回复包;

利用第一密钥算法程序更改所述握手初始包和所述握手回复包的大小;

利用更改过大小的所述握手初始包和所述握手回复包进行密钥协商和握手通信,并生成第二密钥算法程序。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述生成第二密钥算法程序的方法包括:

利用WireGuard自身的通信加密算法获取三号密钥;

基于国密通信加密算法将三号密钥替换为四号密钥。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,WireGuard自身的通信加密算法采用chacha20poly1305,三号密钥的长度为32Byte;国密通信加密算法采用SM4,四号密钥的长度为16Byte;所述基于国密通信加密算法将三号密钥替换为四号密钥的方法包括:

基于小改动原则,截取三号密钥中原有的一半数组作为四号密钥。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述利用第一密钥算法程序和第二密钥算法程序配置所述终端的方法包括:

根据实际物理网络环境划分所述终端的虚拟网络段,并构建所述终端的网络拓扑;

将第一密钥算法程序和第二密钥算法程序放置在各个节点上并运行;

在各个节点上生成虚拟网卡,并设置虚拟IP;

配置WireGuard。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述根据实际物理网络环境划分所述终端的虚拟网络段的方法包括:

依据服务器所处的位置和物理网络情况划分大段;

依据服务器不同的功能和面向对象划分小段,其中,所述小段的尺寸小于所述大段。

可选的,在所述的基于WireGuard的加密通信网络系统的搭建方法中,所述配置WireGuard的方法包括:

配置WireGuard网卡;

配置Wireguard公钥、私钥和配置文件,以使公钥为二号公钥、私钥为二号私钥;

应用配置文件,并创建隧道连接。

本发明提供的基于WireGuard的加密通信网络系统的搭建方法,包括:基于WireGuard搭建终端;生成所述终端的第一密钥算法程序;在各个所述终端间进行握手通信,并生成所述终端的第二密钥算法程序;利用第一密钥算法程序和第二密钥算法程序配置所述终端。通过将WireGuard和国密算法相结合,并配置终端,使得加密通信网络系统中的加密解密算法都符合国内的需求,且能够提供高效、高安全度的网络通信,解决了现有的加密算法无法在保证安全性的同时实现高效的加密的问题。

附图说明

图1为本实施例提供的基于WireGuard的加密通信网络系统的搭建方法的流程图;

图2为本实施例提供的利用握手初始包和握手回复包进行密钥协商和握手通信的原理图;

图3为本实施例提供的基于WireGuard的加密通信网络系统的搭建方法的逻辑示意图。

具体实施方式

以下结合附图和具体实施例对本发明提出的基于WireGuard的加密通信网络系统的搭建方法作进一步详细说明。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。此外,附图所展示的结构往往是实际结构的一部分。特别的,各附图需要展示的侧重点不同,有时会采用不同的比例。

需要说明的是,本发明的说明书和权利要求书及附图说明中的“第一”、“第二”等是用于区别类似的对象,以便描述本发明的实施例,而不用于描述特定的顺序或先后次序,应该理解这样使用的结构在适当情况下可以互换。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

WireGuard是一个新兴的开源VPN工具,具有速度快、性能高、配置简单、使用安全的优势。WireGuard与其他常见的VPN协议相比,有许多优点,如更小的代码库、更快的速度、更低的系统资源消耗、更简单的架构和更安全的加密方式。高效的数据包格式和高效的握手机制,可以提高网络速度和效率。它还使用了新型的密钥管理方式,可以更快地完成握手和通信。

国密算法是国家密码管理局制定颁布的一系列的密码标准,即已经被国家密码局认定的国产密码算法,又称商用密码(是指能够实现商用密码算法的加密,解密和认证等功能的技术),保障在政府机构、金融、医疗等领域的信息传输安全,其中包括SM1、SM2、SM3、SM4、SM7、SM9、ZUC等系列加密算法。

有基于此,本实施例提供一种基于WireGuard的加密通信网络系统的搭建方法,包括:

S1,基于WireGuard搭建终端;

S2,生成所述终端的第一密钥算法程序;

S3,在各个所述终端间进行握手通信,并生成所述终端的第二密钥算法程序;

S4,利用第一密钥算法程序和第二密钥算法程序配置所述终端。

本实施例提供的基于WireGuard的加密通信网络系统的搭建方法,通过将WireGuard和国密算法相结合,并配置终端,使得加密通信网络系统中的加密解密算法都符合国内的需求,且能够提供高效、高安全度的网络通信,解决了现有的加密算法无法在保证安全性的同时实现高效的加密的问题。

具体的,在本实施例中,第一密钥算法程序产生的密钥为非对称加密;第二密钥算法程序产生的密钥为对称加密。非对称加密通常不会被直接应用于通信中,但非对称加密具有较好的安全性能,因此,在本实施例中,将第一密钥算法程序产生的密钥为非对称加密,以提高加密通信网络系统的安全性。对称加密通常应用于通信过程,且其计算速度快、能耗小,因此,在本实施例中,将第二密钥算法程序产生的密钥为对称加密,以提高加密通信网络系统的运行效率。如此,将非对称加密和对称加密相结合,能够在保证通信安全性的同时,提高加密通信网络系统的运行效率。

需要说明的是,本实施例的上述方法步骤为实现所要解决的技术问题所必备的基本步骤,在实际应用过程中,还可能在各个方法步骤之间增加其他步骤以增添或改进功能。在不违背本申请主旨前提下的增加有其他步骤的技术方案,也应当属于本申请的保护范围。

在本实施例中,步骤S1,基于WireGuard搭建终端。具体的,终端可以为电脑、笔记本、手机等具有网络通信功能的电子产品,基于WireGuard搭建终端即指在终端中架构WireGuard,使终端能够利用其网络通信中的加密技术。WireGuard的搭建方法为本领域技术人员所熟知的,此处不再赘述。

进一步的,在本实施例中,步骤S2,生成所述终端的第一密钥算法程序的方法包括:

S21,利用WireGuard自身的加密算法获取一号公钥、一号私钥和一号共享密钥;

S22,基于国密加密算法将WireGuard自身的加密算法替换为第一密钥算法程序,所述第一密钥算法程序包括第一公私钥生成算法和第一共享密钥生成算法;

S23,利用第一密钥算法程序将一号公钥替换为二号公钥、将一号私钥替换为二号私钥以及将一号共享密钥替换为二号共享密钥。

具体的,在本实施例中,WireGuard自身的加密算法采用Curve25519,一号公钥、一号私钥和一号共享密钥的长度均为32Byte;国密加密算法采用SM2,二号公钥的长度为64Byte、二号私钥的长度为32Byte、二号共享密钥的长度为64Byte。

Curve25519加密算法和SM2加密算法均为非对称加密,其中SM2包含数字签名、密钥交换和公钥加密等。Curve25519加密算法和SM2加密算法为本领域技术人员所公知的,本申请仅对与现有技术的不同之处进行具体说明,其他内容可通过现有公知技术获知,此处不再赘述。

在本实施例中,SM2加密算法基于下述椭圆曲线实现:

以及,在本实施例中,基于国密加密算法将WireGuard自身的加密算法替换为第一密钥算法程序的方法包括:首先,利用WireGuard自身的加密算法(Curve25519加密算法)随机生成一个大随机数d,d便是32Byte的一号私钥;然后,调用国密加密算法(SM2)中的生成库,以生成一号私钥对应的二号公钥,即通过SM2获得的d所对应的64Byte的二号公钥;接着,将二号公钥替换WireGuard自身的加密算法(Curve25519加密算法)中的一号公钥,也就是说,将32Byte的一号私钥d和64Byte的二号公钥分别替换WireGuard自身的加密算法(Curve25519加密算法)的返回值;最后,在协商共享密钥的时候,将WireGuard自身的加密算法(Curve25519加密算法)中的协商函数传入值改为二号公钥和二号私钥,即改为SM2的公私钥;并将协商算法改为通信一方终端的二号公钥与通信另一方终端的二号私钥的点乘,即将协商算法改为一方的私钥和对方的公钥的点乘结果。

在本实施例中,WireGuard自身的加密算法采用Curve25519,国密加密算法采用SM2。当然,在其他实施例中,也可以采用WireGuard自身具备的其他加密算法,以及采用国密的其他加密算法,其替换原理及核心理论都是替换公私钥生成函数及其返回值,只是对于不同的算法,其协商密钥的算法会存在细小差别,最终都是经过运算使得双方能够拿到一样的协商密钥值。例如,可以将本实施例中的SM2算法替换为SM9算法,只是在计算上,SM9算法会更加复杂,导致加密通信网络系统的计算量较大,效率较低。

在各个WireGuard终端生成各自的公私钥后,便是开始握手通信。在本实施例中,步骤S3,在各个所述终端间进行握手通信,并生成所述终端的第二密钥算法程序的方法包括:

S31,获取握手初始包和握手回复包。

具体的,在本实施例中,握手初始包MessageInitiation是148Byte,握手回复包MessageResponse是92Byte,各自组成如下表:

握手初始包MessageInitiation结构及大小:

握手回复包MessageResponse结构及大小:

S32,利用第一密钥算法程序更改所述握手初始包和所述握手回复包的大小。

由于本实施例采用的SM2加密算法和Curve25519加密算法的公私钥位数是不一样的,而握手数据包要存放对应算法的公私钥,因此握手数据包的位数也不一样,需要对应着更改握手数据包的大小。

具体的,在本实施例中,握手初始包MessageInitiation中的Ephemeral便是临时公钥,Static是固定公钥,这两者都是由Curve25519替换为SM2算法,位数均由32Byte增加到64Byte,所以更改后的位数和结构如下:

更改后的握手初始包MessageInitiation结构及大小:

更改后的握手回复包MessageResponse结构及大小:

通过对更改前后的握手初始包MessageInitiation和握手回复包MessageResponse的结构及大小进行比较可以发现:更改后的握手初始包MessageInitiation是212Byte,更改后的握手回复包MessageResponse是124Byte。

当然,采用不同的加密算法,其握手数据包的大小更改也是不同的,需要根据实际情况进行设定。本领域技术人员可以根据本申请提供的示例,适应性地进行不同算法之间握手数据包的大小的调整。

S33,利用更改过大小的所述握手初始包和所述握手回复包进行密钥协商和握手通信,并生成第二密钥算法程序。

其中,利用握手初始包和握手回复包进行密钥协商和握手通信的原理可以参见图2所示。节点A向节点B发送握手初始包MessageInitiation进行握手初始化;节点B向节点A发送握手回复包MessageResponse进行握手响应;之后,节点A便和节点B建立了数据通信。利用握手初始包和握手回复包进行密钥协商和握手通信的具体实现方法和过程为本领域技术人员所熟知的,此处不再赘述。

在本实施例中,生成第二密钥算法程序的方法包括:利用WireGuard自身的通信加密算法获取三号密钥;基于国密通信加密算法将三号密钥替换为四号密钥。

具体的,在本实施例中,WireGuard自身的通信加密算法采用chacha20poly1305,三号密钥的长度为32Byte;国密通信加密算法采用SM4,四号密钥的长度为16Byte。因此,在基于国密通信加密算法将三号密钥替换为四号密钥时,需要将32Byte的三号密钥的长度改为16Byte。本实施例基于小改动原则,截取三号密钥中原有的一半数组作为四号密钥,例如,可以截取三号密钥中的连续的16Byte作为四号密钥。

当然,在选择不同的WireGuard自身的通信加密算法和国密通信加密算法时,三号密钥替换为四号密钥的方式也会存在差别,但其原理是一致的,本领域技术人员可以根据本申请提供的示例,适应性地调整以实现不同算法之间三号密钥替换为四号密钥。

更进一步的,在本实施例中,步骤S4,利用第一密钥算法程序和第二密钥算法程序配置所述终端的方法包括:

S41,根据实际物理网络环境划分所述终端的虚拟网络段,并构建所述终端的网络拓扑。

具体的,在本实施例中,根据实际物理网络环境划分所述终端的虚拟网络段的划分依据包括:

①依据服务器所处的位置和物理网络情况划分大段;

②依据服务器不同的功能和面向对象划分小段,其中,所述小段的尺寸小于所述大段。

构建网络拓扑的方法为本领域技术人员所熟知的,如设计星形结构、环形结构、总线型结构、混合拓扑结构、分布式结构、树形结构、网状拓扑结构或蜂窝拓扑结构等。本领域技术人员应当根据实际网络通信需求选择合理的网络拓扑结构,其具体构建方法本申请不再赘述。

S42,将第一密钥算法程序和第二密钥算法程序放置在各个节点上并运行。由于第一密钥算法程序是为了提高加密通信网络系统的安全性,第二密钥算法程序是为了提高加密通信网络系统的运行效率,因此,在本实施例中,各个节点上均设置有第一密钥算法程序和第二密钥算法程序,以使各个节点可以运行第一密钥算法程序和第二密钥算法程序。

S43,在各个节点上生成虚拟网卡,并设置虚拟IP。此步骤的实现方式为本领域技术人员所公知的,此处不再赘述。

S44,配置WireGuard。具体的,需配置监听端口、路由规则、公私钥等。

在本实施例中,配置WireGuard的方法包括:

首先,配置WireGuard网卡,在本实施例中,提供一种可实现的配置代码如下:

ip link add dev wg0 type wireguardip address add dev wg0 10.10.10.1/24ip link set up dev wg0;

然后,配置Wireguard公钥、私钥和配置文件,以使公钥为二号公钥、私钥为二号私钥,在本实施例中,提供一种可实现的配置代码如下:

[Interface]PrivateKey=SM2私钥

ListenPort=54436

PreUp=ip link add dev wg0 type wireguard

PreUp=ip address add dev wg0 10.10.10.1/24

PreUp=ip link set up dev wg0[Peer]

PublicKey=SM2公钥

Endpoint=192.168.52.134:54436

AllowedIPs=10.10.10.2/24;

最后,应用配置文件,并创建隧道连接,其具体实现方式为本领域技术人员所熟知的,此处不再赘述。

参阅图3,对本申请提供的基于WireGuard的加密通信网络系统的搭建方法的逻辑流程使用一具体实例进行简要说明如下:

首先,利用SM2加密算法替换Curve25519加密算法,以生成公私钥,即二号公钥和二号私钥,其中,需要更改公私钥数组长度,使其满足加密算法的相关要求;然后,调整握手初始包和握手回应包的大小,使其与二号公钥和二号私钥的长度相匹配,如此,完成密钥协商;接着,利用SM4加密算法替换chacha20poly1305加密算法进行加密处理,以将三号密钥替换为四号密钥;之后,构建网络拓扑和基础配置;最后,搭建基于国密和WireGuard的隧道网络通信。至此,便搭建好了基于WireGuard的加密通信网络系统。

利用该系统,可以安全、高效地进行网络通信,避免因安全度不够或计算效率低下而导致的通信受损的问题,可以广泛应用于政府机构、金融、医疗等领域。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可,此外,各个实施例之间不同的部分也可互相组合使用,本发明对此不作限定。

本实施例提供的基于WireGuard的加密通信网络系统的搭建方法,包括:基于WireGuard搭建终端;生成所述终端的第一密钥算法程序;在各个所述终端间进行握手通信,并生成所述终端的第二密钥算法程序;利用第一密钥算法程序和第二密钥算法程序配置所述终端。通过将WireGuard和国密算法相结合,并配置终端,使得加密通信网络系统中的加密解密算法都符合国内的需求,且能够提供高效、高安全度的网络通信,解决了现有的加密算法无法在保证安全性的同时实现高效的加密的问题。

上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

相关技术
  • 基于水声通信调制方式识别的深度神经网络系统及方法
  • 一种WireGuard协议下基于多粒度特征提取的恶意加密流量识别的方法
  • 基于区块链加密的SDN边缘计算网络系统、加密方法及介质
技术分类

06120116499288