一种基于WireGuard的网络零信任安全交互方法及系统与流程

未命名 08-26 阅读:192 评论:0

一种基于wireguard的网络零信任安全交互方法及系统
技术领域
1.本发明涉及网络安全领域,具体而言,涉及一种基于wireguard的网络零信任安全交互方法及系统。


背景技术:

2.软件定义边界(software-defined perimeter,sdp)是由云安全联盟(csa)于2013年提出的一种以身份为中心实施对资源访问控制的安全框架,是零信任模型的一种实现方式。
3.该框架基于美国国防部的“need-to-know”模型,每个终端在连接服务器前必须进行验证,确保每台设备都是被允许接入的。其核心思想是通过sdp架构隐藏核心网络资产与设施,使之不直接暴露在互联网下,使得网络资产与设施免受外来安全威胁。
4.sdp安全模型由3大组件构成,分别是:sdp client,即sdp客户端软件;sdp gateway,即sdp业务代理网关;sdp controller,即sdp控制中心。3大组件构成控制平面和数据平面两个平面。如图1所示,sdp客户端和sdp网关之间的连接通过sdp controller与安全控制信道的交互来管理。该结构使得控制平面能够与数据平面保持分离,以便实现完全可扩展的安全系统。
5.如图2所示,在sdp建立连接过程中,单包授权技术的工作流程大致是:
6.a.终端发送spa包到网关,请求tcp连接;b.如果网关判断spa合法有效(向controller进行验证),则允许访问源ip建立tcp连接,随后进行建立mtls连接所需的双向身份认证;c.终端发起带有独特服务标识的服务连接请求到网关;d.网关代替客户端与业务服务建立连接;e.网关告知客户端连接请求是否成功;f.客户端通过网关与业务服务进行数据消息转发,即正常的业务访问;g.由客户端或者网关发送给对方服务关闭消息,将连接关闭,完成业务访问过程。其中,ih全称为:initiate host,即发起请求的主机,这里指sdp-client;ah全称为:authentication host,即认证主机,这里指sdp-gateway;服务是指sdp-client最终需要接入的服务器。
7.即,sdp通过spa+mtls方式对业务访问源进行身份校验,从而起到sdp服务端口以及业务端口的隐藏,避免非法用户与sdp网关建立ssl/tls连接。具体的,在sdp1.0标准中,首先要进行tcp连接,再进行spa敲门,如此一来会导致端口暴露,从而增加安全风险;而在sdp2.0标准中,将spa流程放在了第一步进行。这个改变进一步隐藏了sdp-gateway的端口,使sdp-gateway免受dos的攻击,从而更加安全。
8.由于传统网络安全模型逐渐失效,零信任安全日益成为新时代下的网络安全的新理念、新架构,甚至已经上升为美国国家的网络安全战略。零信任安全只是理念,企业实施零信任安全理念需要依靠技术方案才能将零信任真正落地。除了目前流行的软件定义边界sdp技术方案外,在nist《零信任架构标准》白皮书中列举了3个技术方案,可以归纳为“sim”组合:(1)sdp,软件定义边界;(2)iam,身份权限管理;(3)msg,微隔离。
9.从以上国内外业界通用的零信任+sdp的实现方法可以看出,比起传统的安全的架
client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,上述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。
19.第三方面,本技术提供一种电子设备,包括至少一个处理器、至少一个存储器和数据总线;其中:上述处理器与上述存储器通过上述数据总线完成相互间的通信;上述存储器存储有被上述处理器执行的程序指令,上述处理器调用上述程序指令以执行如上述第一方面中任一项所述的方法。
20.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项上述的方法。
21.相对于现有技术,本发明至少具有如下优点或有益效果:
22.(1)将轻量级的wireguard应用于零信任解决方案替代传统的重量级的mtls,使系统的传输速率提高,同时大大减少系统的延时;
23.(2)将wireguard的第一个handshake包兼用于spa(single packet authentication),简化了零信任的实现;
24.(3)每一次用户认证会重新生成新的client密钥对,提高系统的安全性;
25.(4)spa包和wireguard包的端口是动态生成,进一步降低了系统受到dos(denail of service)攻击的可能性。
附图说明
26.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
27.图1为现有技术中的sdp框架示意图;
28.图2为现有技术中的sdp的包交互示意图;
29.图3为本发明一种基于wireguard的网络零信任安全交互方法一实施例的流程图;
30.图4为本发明一实施例的信令图;
31.图5为本发明一实施例的sdp的包交互示意图;
32.图6为本发明一种基于wireguard的网络零信任安全交互系统一实施例的结构框图;
33.图7为本发明实施例提供的一种电子设备的结构框图。
34.图标:1、注册模块;2、登录认证模块;3、动态分配模块;4、隧道建立模块;5、处理器;6、存储器;7、数据总线。
具体实施方式
35.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施
例的组件可以以各种不同的配置来布置和设计。
36.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
37.实施例1
38.本技术实施例提供了一种基于wireguard的网络零信任安全交互方法,其能够简化网络零信任安全交互实现过程,并在保证安全交互的同时大幅度提升其传输速率。
39.为便于理解,下面对本发明涉及的部分技术术语作简要说明如下:
40.spa:全称为single packet authorization,是一种轻量级的安全协议。
41.重定向(redirect):通过各种方法将各种网络请求重新定个方向转到其它位置,例如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向。
42.idp,身份验证和认证技术,用以通过身份验证和身份认证来确认用户身份和授权状态。
43.请参阅图3-4,该一种基于wireguard的网络零信任安全交互方法包括以下步骤:
44.步骤s101:sdp gateway产生一对非对称的包括第一公钥和第一私钥的第一密钥,并将上述第一公钥、预定的注册信息发送至sdp controller。
45.上述步骤中,在sdp gateway去sdp controller上进行注册的时候,此动作仅需要做一次,可以有效的节约交互流程。并且由于每一次用户认证会重新生成新的密钥对,可以提升系统的安全性。
46.步骤s102:sdp client向上述sdp controller发起登录请求时,sdp controller将sdp client重定向到第三方的idp进行身份认证。
47.终端与资源服务器相互未知,终端预先不知道会访问那些网站,网站不知道会被哪些用户使用终端访问,因此需要一个长久运行的可信第三方建立信任。即在上述步骤中,通过第三方的idp对sdp client进行身份认证,可以用以验证连接的合法性。
48.示例性地,在本发明的一些实施例中,上述sdp controller将sdp client重定向到第三方的idp进行身份认证时包括:认证成功后,上述第三方的idp通过预先注册的回调callback函数通知sdp controller认证成功的相关信息。
49.callback函数,即回调函数,是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。也即是说,上述步骤中通过callback函数可以使得sdp controller了解到sdp client认证成功的相关信息。
50.步骤s103:身份认证成功后,sdp controller为sdp client动态分配一个wireguard的udp端口号,sdp client动态产生一对非对称的第二密钥,上述第二密钥包括第二公钥和第二私钥,并将第二公钥发送至sdp controller。
51.上述步骤中,在分配端口号的时候,采用了动态的wireguard端口号,这比静态缺省的路由增加了一成安全因素。因为,攻击者不可能预先知道动态产生的端口号,而对此端口实现dos攻击。其中,dos是denial of service的简称,即拒绝服务,造成dos的攻击行为被称为dos攻击。dos攻击并非入侵主机也不能窃取机器上的资料,它的目的是:耗尽被攻击
对象的资源,使其无法提供正常的服务。同时,sdp client的密钥对(即第二密钥)是每次登录动态产生的,下次登录会使用一对新的密钥,这减少了重复使用相同密钥造成的可破解的可能性。而在现有技术中,是通过使用数字证书措施进行的,密钥会重复使用,直到证书过期,其安全性远小于本发明中的技术方案。
52.步骤s104:sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第一公钥,发送至sdp client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,上述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。
53.wireguard是一个安全的网络隧道,在第3层运行,作为linux的内核虚拟网络接口实现(因此运行效率极高),同时更安全、性能更高且更易于使用。上述步骤中,基于wireguard进行建立加密隧道,其在加密的安全性上和tls(传输层安全性协议)是相当的,并且由于本发明中使用了双方的非对称密钥对,等同于mtls(双向tls)的双方证书认证。也就是说,在基于sdp client能访问的服务器列表、wireguard的udp端口号、第一公钥、以及第二公钥进行建立wireguard隧道后,sdp client将可以通过此隧道进行访问位于sdp gateway后面的server(服务器)资源,实现业务系统的隐藏,阻止未经认证授权的客户端对业务资源的访问。需要说明的是,wireguard使用udp协议传输数据,在不使用的情况下默认不会传输任何udp数据包,所以比常规vpn省电很多。并且,wireguard是为嵌入式设备开发的,支持ip地址漫游,也就是网络断开再连,对它不会有影响。
54.如图5所示,图5为本发明一实施例的sdp的包交互示意图,也就是通过本发明进行简化后的包交互示意图,相对的,在图2中示出了现有技术中的sdp的包交互示意图。从中可以得知,本发明实施例的技术方案中,具有更少的包交互,实现过程更加简单高效。需要说明的是,图5中的验证连接合法性是指sdp client只能访问sdp controller发来的服务器资源,而不能访问其他服务器资源。
55.具体的,在sdp的实现上的通用做法是:首先使用spa包打开端口,其次使用mtls来实现双向认证和隧道加密。而mtls可以使用tcp或者udp,使用udp包时能得到更好的性能和更短的延时。使用mtls需要sdp client和sdp gateway上使用数字证书,系统需要有一套证书的管理体系。以上是国内外业界通用的零信任+sdp的实现方法。比起传统的安全的架构,零信任框架是安全更可见、可控。
56.而在本发明实施例中是基于零信任+sdp的构架,用另一种wireguard的技术来替代spa+mtls的实现,在保证相同的安全的同时,实现:更少的包交互、更简单的实现和更快的传输速率。具体的,在发明人进行示例性的实测中,基于wireguard的本发明实现方案,相对于现有技术中的基于tls的openvpn而言,达到了4倍的传输速率,和几乎1/4的网络延迟。
57.其中,在发明的一些实施例中,上述sdp client和sdp gateway基于接收的信息建立wireguard隧道,包括:
58.sdp client基于第一密钥、第二公钥以及wireguard的udp端口号发出建立wireguard隧道的握手启动包,上述握手启动包同时用作spa包,用于向sdp gateway进行认证sdp client;sdp gateway回复建立wireguard隧道的握手响应包,用以建立wireguard隧道。
59.上述步骤中,在建立wireguard隧道过程中,sdp client在获取了第一密钥、第二公钥以及wireguard的udp端口号等用于建立wireguard隧道的所有信息后,将开始发出建立隧道的第一包handshake initiation(握手启动包)。这个包也被同时用作spa包,让sdp gateway认证sdp client。接着,sdp gateway回复wireguard的第二个包handshake response,至此wireguard的安全隧道已全部建立,这比使用tcp的mtls协议更加轻量,后者一般需要3-4个roundtrip(往返),而此实现方案仅需要一个roundtrip(往返)。其中,由于spa(single packet authentication)包和wireguard包的端口是动态生成,进一步降低了系统受到dos(denail of service)攻击的可能性。
60.在发明的一些实施例中,上述握手启动包同时用作spa包,用于向sdp gateway进行认证sdp client,包括:若sdp client提供的第一密钥错误,sdp gateway则通过drop语句处理上述握手启动包。
61.上述步骤中,通过drop语句可以实现既删除表结构又删除表中的数据,其中drop语句将删除表的结构、被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为无效(invalid)状态。即,通过drop语句进行处理可以在保证安全的同时,大幅度提升处理速度。
62.需要说明的是,在某些实施方式中,在handshake initiation(握手启动)的包中,sdp client并不直接提供第二密钥,而是用第二密钥加密一段信息,sdp gateway可以用sdp client的公钥来解密从而验证此信息发自sdp client。同理sdp client可以用第一公钥来验证handshake response(握手响应)包确实来自sdp gateway。如验证失败,sdp client或sdp gateway都会drop对方的packet(包),隧道就不会建立。
63.实施例2
64.请参阅图6,本技术实施例提供了一种基于wireguard的网络零信任安全交互系统,其包括:
65.注册模块1,用于sdp gateway产生一对非对称的包括第一公钥和第一私钥的第一密钥,并将上述第一公钥、预定的注册信息发送至sdp controller;登录认证模块2,用于sdp client向上述sdp controller发起登录请求时,sdp controller将sdp client重定向到第三方的idp进行身份认证;动态分配模块3,用于身份认证成功后,sdp controller为sdp client动态分配一个wireguard的udp端口号,sdp client动态产生一对非对称的第二密钥,上述第二密钥包括第二公钥和第二私钥,并将第二公钥发送至sdp controller;隧道建立模块4,用于sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第一公钥,发送至sdp client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,上述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。
66.上述系统具体实现过程请参照实施例1中提供的一种基于wireguard的网络零信任安全交互方法,在此不再赘述。
67.实施例3
68.请参阅图7,本技术实施例提供了一种电子设备,该电子设备包括至少一个处理器5、至少一个存储器6和数据总线7;其中:处理器5与存储器6通过数据总线7完成相互间的通
信;存储器6存储有可被处理器5执行的程序指令,处理器5调用程序指令以执行一种基于wireguard的网络零信任安全交互方法。例如实现:
69.sdp gateway产生一对非对称的包括第一公钥和第一私钥的第一密钥,并将上述第一公钥、预定的注册信息发送至sdp controller;sdp client向上述sdp controller发起登录请求时,sdp controller将sdp client重定向到第三方的idp进行身份认证;身份认证成功后,sdp controller为sdp client动态分配一个wireguard的udp端口号,sdp client动态产生一对非对称的第二密钥,上述第二密钥包括第二公钥和第二私钥,并将第二公钥发送至sdp controller;sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第一公钥,发送至sdp client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,上述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。
70.其中,存储器6可以是但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
71.处理器5可以是一种集成电路芯片,具有信号处理能力。该处理器5可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
72.可以理解,图7所示的结构仅为示意,电子设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
73.实施例4
74.本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器5执行时实现一种基于wireguard的网络零信任安全交互方法。例如实现:
75.sdp gateway产生一对非对称的包括第一公钥和第一私钥的第一密钥,并将上述第一公钥、预定的注册信息发送至sdp controller;sdp client向上述sdp controller发起登录请求时,sdp controller将sdp client重定向到第三方的idp进行身份认证;身份认证成功后,sdp controller为sdp client动态分配一个wireguard的udp端口号,sdp client动态产生一对非对称的第二密钥,上述第二密钥包括第二公钥和第二私钥,并将第二公钥发送至sdp controller;sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第一公钥,发送至sdp client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,上述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。
76.上述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
77.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

技术特征:
1.一种基于wireguard的网络零信任安全交互方法,其特征在于,包括以下步骤:sdp gateway产生一对非对称的包括第一公钥和第一私钥的第一密钥,并将所述第一公钥、预定的注册信息发送至sdp controller;sdp client向所述sdp controller发起登录请求时,sdp controller将sdp client重定向到第三方的idp进行身份认证;身份认证成功后,sdp controller为sdp client动态分配一个wireguard的udp端口号,sdp client动态产生一对非对称的第二密钥,所述第二密钥包括第二公钥和第二私钥,并将第二公钥发送至sdp controller;sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第一公钥,发送至sdp client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,所述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。2.如权利要求1所述的一种基于wireguard的网络零信任安全交互方法,其特征在于,所述sdp client和sdp gateway基于接收的信息建立wireguard隧道,包括:sdp client基于第一密钥、第二公钥以及wireguard的udp端口号发出建立wireguard隧道的握手启动包,所述握手启动包同时用作spa包,用于向sdp gateway进行认证sdp client;sdp gateway回复建立wireguard隧道的握手响应包,用以建立wireguard隧道。3.如权利要求2所述的一种基于wireguard的网络零信任安全交互方法,其特征在于,所述握手启动包同时用作spa包,用于向sdp gateway进行认证sdp client,包括:若sdp client提供的第一密钥错误,sdp gateway则通过drop语句处理所述握手启动包。4.如权利要求1所述的一种基于wireguard的网络零信任安全交互方法,其特征在于,所述sdp controller将sdp client重定向到第三方的idp进行身份认证时包括:认证成功后,所述第三方的idp通过预先注册的回调callback函数通知sdp controller认证成功的相关信息。5.一种基于wireguard的网络零信任安全交互系统,其特征在于,包括:注册模块,用于sdp gateway产生一对非对称的包括第一公钥和第一私钥的第一密钥,并将所述第一公钥、预定的注册信息发送至sdp controller;登录认证模块,用于sdp client向所述sdp controller发起登录请求时,sdp controller将sdp client重定向到第三方的idp进行身份认证;动态分配模块,用于身份认证成功后,sdp controller为sdp client动态分配一个wireguard的udp端口号,sdp client动态产生一对非对称的第二密钥,所述第二密钥包括第二公钥和第二私钥,并将第二公钥发送至sdp controller;隧道建立模块,用于sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第一公钥,发送至sdp client;以及sdp controller将sdp client能访问的服务器列表、wireguard的udp端口号、以及接收的第二公钥,发送至sdp gateway后,sdp client和sdp gateway基于接收的信息建立wireguard隧道,所述wireguard隧道用于为sdp client访问sdp gateway后面的服务器提供隧道。
6.一种电子设备,其特征在于,包括至少一个处理器、至少一个存储器和数据总线;其中:所述处理器与所述存储器通过所述数据总线完成相互间的通信;所述存储器存储有被所述处理器执行的程序指令,所述处理器调用所述程序指令以执行如权利要求1-4任一项所述的方法。7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法。

技术总结
本发明提出了一种基于WireGuard的网络零信任安全交互方法及系统,涉及网络安全领域。该方法包括:Gateway将产生的第一密钥及其他注册信息发送给Controller;接着,Client向所述Controller发起登录请求时,基于第三方的IDP对其进行身份认证,在认证成功后,Controller为Client动态分配一个WireGuard的UDP端口号,Client动态产生一对非对称的第二密钥;最后,基于第一密钥、第二密钥、Client能访问的服务器列表、以及WireGuard的UDP端口号,将可以进行建立WireGuard隧道,用以为Client访问Gateway后面的服务器提供隧道。其能够简化网络零信任安全交互实现过程,并在保证安全交互的同时大幅度提升其传输速率。证安全交互的同时大幅度提升其传输速率。证安全交互的同时大幅度提升其传输速率。


技术研发人员:陈中
受保护的技术使用者:陈斌
技术研发日:2023.06.14
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐