技术新讯 > 电子通信装置的制造及其应用技术 > 基于WireGuard协议的加密通信方法和网关架构与流程  >  正文

基于WireGuard协议的加密通信方法和网关架构与流程

  • 国知局
  • 2024-08-02 14:21:25

本发明涉及网络通信,特别涉及基于wireguard协议的加密通信方法和网关架构。

背景技术:

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

2、目前基于wireguard加密隧道协议的网关处理方案,由于其与客户端之间的隧道协议使用的wireguard基于linux内核开发和深度定制,其涉及的协商交互框架和数据处理流程中的加解密算法,都是公开的商密算法,无法满足国产化信创需求,安全性能较差。因此,亟需一种基于wireguard协议的加密通信方法和网关架构。

技术实现思路

1、本发明提供了基于wireguard协议的加密通信方法和网关架构,该加密通信方法安全性更高,能满足国产化信创需求。

2、第一方面,本发明提供了基于wireguard协议的加密通信方法,包括:

3、响应于基于wireguard协议的客户端向服务端发起握手请求时,所述客户端根据待通信数据和预设加密算法创建请求包;所述预设加密算法包括sm2、sm3、sm4;

4、所述服务端基于所述预设加密算法对接收到的所述请求包进行处理,生成响应包;其中,所述响应包中包括所述待通信数据;

5、所述客户端基于所述预设加密算法对所述响应包进行处理,以建立所述客户端与所述服务端之间的通信连接。

6、可选地,所述客户端根据待通信数据和预设加密算法创建请求包,包括:

7、获取所述服务端的本地公钥、所述客户端的第一本地公钥和时间戳;

8、随机生成临时私钥,并将所述临时私钥和所述服务端的本地公钥采用sm2进行运算,得到第一共享密钥;

9、将所述时间戳和所述第一共享密钥采用sm4进行加密运算,得到加密时间戳;

10、将所述第一本地公钥和所述第一共享密钥采用sm4进行加密运算,得到加密公钥;

11、对所述临时私钥采用sm2进行运算,得到临时公钥;

12、基于所述待通信数据的数据包类型、所述临时公钥、所述加密时间戳、所述加密公钥生成握手数据;

13、将所述服务端的本地公钥和随机字符串采用hmac-sm3进行运算,得到第一key值,并将所述第一key值与所述握手数据采用hmac-sm3进行运算得到第一码值;

14、将所述握手数据和所述第一码值进行打包处理得到所述请求包。

15、可选地,所述服务端基于所述预设加密算法对接收到的所述请求包进行处理,生成响应包,包括:

16、获取所述请求包中所包括的加密公钥、临时公钥、加密时间戳以及所述服务端的本地私钥和存储的公钥表;

17、将所述临时公钥和所述服务端的本地私钥采用sm2进行运算,得到第二共享密钥;

18、将所述加密公钥和所述第二共享密钥采用sm4进行解密运算,得到所述客户端的公钥;其中,在所述公钥位于所述公钥表中时,生成所述响应包。

19、可选地,还包括:

20、将所述加密时时间戳和所述第二共享密钥采用sm4进行解密运算,得到时间戳;

21、将所述时间戳和随机获取的随机数进行哈希运算,得到随机值;对所述随机值采用hmac-sm3进行运算得到密钥参数。

22、可选地,在所述生成所述响应包的过程中,将wireguard协议中的curve25519加密算法替换为sm2,将chacha20-poly1305算法替换为sm4,将black2s算法替换为hmac-sm3。

23、可选地,在所述服务端基于所述预设加密算法对接收到的所述请求包进行处理之前,还包括:

24、获取所述服务端的本地私钥,并从所述请求包中获取所述握手数据和所述第一码值;

25、将所述服务端的本地私钥采用sm2进行运算得到第二本地公钥;

26、将所述第二本地公钥和预设字符串采用sm3进行运算得到第二key值,并将所述第二key值与所述握手数据采用hmac-sm3进行运算得到第二码值;

27、判断所述第一码值和所述第二码值是否相同;

28、若是,则校验成功,将对所述请求包进行处理。

29、第二方面,本发明实施例还提供了wireguard协议的网关架构,其特征在于,包括:内核和用户态;

30、所述内核包括物理网卡注册接口和内核驱动模块;所述物理网卡注册接口用于接收由物理网卡获取的数据包;

31、所述用户态包括用户态驱动模块;所述内核驱动模块与所述用户态驱动模块通信连接,以将所述数据包由所述物理网卡直通至所述用户态;

32、所述用户态部署有wireguard协议,并根据所述wireguard协议在所述用户态中生成控制面模块和数据面模块;所述控制面模块用于采用上述第一方面所述的加密通信方法建立wireguard隧道;所述数据面模块用于根据所述wireguard隧道实现所述数据包的传输。

33、可选地,所述用户态还包括socket接口、freebsd用户态协议栈;由所述内核传输的所述数据包经过所述freebsd用户态协议栈、所述socket接口进行收包处理;和/或,

34、所述数据面模块包括wireguard加密单元和wireguard解密单元;所述wireguard加密单元用于实现所述数据包的加密处理,所述wireguard解密单元用于实现所述数据包的解密处理。

35、可选地,该网格架构还包括:共享表项,所述共享表项中存储有由所述控制面模块协商出来的配置信息,所述数据面模块用于读取所述配置信息以通过所述wireguard隧道实现所述数据包的传输。

36、可选地,所述用户态还包括代理服务器;由所述内核传输的所述数据包经过所述freebsd用户态协议栈进行加密处理或解密处理后,通过所述socket接口使所述代理服务器完成收包处理。

37、本发明提供了一种基于wireguard协议的加密通信方法和网关架构,客户端和服务端是基于wireguard协议的两端,在客户端向服务端发起握手请求时,客户端根据待通信数据和预设加密算法创建请求包;预设加密算法包括sm2、sm3、sm4;服务端基于预设加密算法对接收到的请求包进行处理,生成响应包;客户端基于预设加密算法对响应包进行处理,以建立客户端与服务端之间的通信连接。如此,本发明将wireguard协议和sm2、sm3、sm4等算法相结合,使得加密通信网络系统中的加密解密算法的安全性更高,且都符合国内的需求,能够提供高效、高安全度的网络通信。

技术特征:

1.一种基于wireguard协议的加密通信方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述客户端根据待通信数据和预设加密算法创建请求包,包括:

3.根据权利要求1所述的方法,其特征在于,所述服务端基于所述预设加密算法对接收到的所述请求包进行处理,生成响应包,包括:

4.根据权利要求3所述的方法,其特征在于,还包括:

5.根据权利要求3所述的方法,其特征在于,在所述生成所述响应包的过程中,将wireguard协议中的curve25519加密算法替换为sm2,将chacha20-poly1305算法替换为sm4,将black2s算法替换为hmac-sm3。

6.根据权利要求2所述的方法,其特征在于,在所述服务端基于所述预设加密算法对接收到的所述请求包进行处理之前,还包括:

7.一种基于wireguard协议的网关架构,其特征在于,包括:内核和用户态;

8.根据权利要求7所述的网关架构,其特征在于,所述用户态还包括socket接口、freebsd用户态协议栈;由所述内核传输的所述数据包经过所述freebsd用户态协议栈、所述socket接口进行收包处理;和/或,

9.根据权利要求8所述的网关架构,其特征在于,还包括:共享表项,所述共享表项中存储有由所述控制面模块协商出来的配置信息,所述数据面模块用于读取所述配置信息以通过所述wireguard隧道实现所述数据包的传输。

10.根据权利要求8所述的网关架构,其特征在于,所述用户态还包括代理服务器;由所述内核传输的所述数据包经过所述freebsd用户态协议栈进行加密处理或解密处理后,通过所述socket接口使所述代理服务器完成收包处理。

技术总结本发明提供了基于WireGuard协议的加密通信方法和网关架构,涉及网络通信技术领域,响应于基于WireGuard协议的客户端向服务端发起握手请求时,客户端根据待通信数据和预设加密算法创建请求包;预设加密算法包括SM2、SM3、SM4;服务端基于预设加密算法对接收到的请求包进行处理,生成响应包;其中,响应包中包括待通信数据;客户端基于预设加密算法对响应包进行处理,以建立客户端与服务端之间的通信连接。本方案提供的加密通信方法安全性更高,能满足国产化信创需求。技术研发人员:薛飞腾,李飞,余伟,姜海昆,范宇受保护的技术使用者:长扬科技(北京)股份有限公司技术研发日:技术公布日:2024/7/25

本文地址:https://www.jishuxx.com/zhuanli/20240801/242530.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。