一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、设备、介质及产品与流程

2022-07-10 06:55:41 来源:中国专利 TAG:


1.本公开实施例涉及通信技术领域,具体涉及一种数据传输方法、设备、介质及产品。


背景技术:

2.在新型的交付型数据中心场景中,云平台的服务提供者会将物理服务器这些物理网络部署到用户的机房中,并将云产品部署到这些物理服务器上,如此,云平台的underlay(底层)网络会暴露于服务商的网络隔离和安全运维的边界之外,极大依赖于用户的管理和防护手段,通过底层网络攻击云平台的风险急剧上升。云平台东西向、南北向通信暴露在底层网络上,可以被实施网络嗅探、报文劫持/篡改、监听端口扫描和端口攻击等网络攻击,因此,如何消减交付型数据中心中底层网络暴露面的安全风险,保护云平台成为目前亟待解决的技术问题。


技术实现要素:

3.本公开实施例提供一种数据传输方法、设备、介质及产品。
4.第一方面,本公开实施例中提供了一种数据传输方法。
5.具体的,所述数据传输方法,包括:
6.向目的服务器的目的端口首次发送首数据包;
7.接收所述目的服务器发送的目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
8.响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;
9.重新向目的服务器的目的端口发送所述首数据包。
10.在一种可能的实现方式中,所述目的不可达消息中携带有随机值,所述方法还包括:
11.获取所述客户端的共享密钥;
12.使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;
13.所述生成并返回认证数据包,包括:
14.将所述待加密信息和所述认证码封装在数据包内,生成认证数据包;
15.向所述目的服务器发送所述认证数据包。
16.在一种可能的实现方式中,所述响应于接收所述目的不可达消息,生成并返回认证数据包,包括:
17.通过所述客户端的传输层或套接层响应所述目的不可达消息,生成并返回认证数据包,所述套接层位于协议栈中的传输层和应用层之间。
18.在一种可能的实现方式中,所述方法还包括:
19.定期接收所述目的服务器发送的目的不可达消息。
20.在一种可能的实现方式中,所述使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,包括:
21.使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端被所述目的服务器指示发起认证的次数。
22.第二方面,本公开实施例中提供了一种数据传输方法。
23.具体的,所述数据传输方法,包括:
24.在接收到客户端首次发送的首数据包时,丢弃所述首数据包;
25.向所述客户端返回目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
26.接收所述客户端发送的认证数据包,所述认证数据包中携带认证信息;
27.基于所述认证信息确定所述客户端具有访问目的端口的权限时,为所述客户端放通所述目的端口的访问;
28.通过所述目的端口接收所述客户端重新发送的所述首数据包。
29.在一种可能的实施方式中,所述目的不可达消息中携带有随机值,所述认证信息包括待加密信息和认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;所述基于所述认证信息确定所述客户端具有访问目的端口的权限,包括:
30.基于所述客户端标识查询得到所述客户端的共享密钥和访问权限,所述访问权限用于限定所述客户端在所述目的服务器的可访问端口;
31.使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码;
32.在所述验证码和所述认证码相同时,若所述客户端在所述目的服务器的可访问端口包括所述首数据包要到达的目的端口,则确定所述客户端具有访问目的端口的权限。
33.在一种可能的实施方式中,在为所述客户端放通所述目的端口的访问之后,所述方法还包括:
34.定期向所述客户端发送目的不可达消息。
35.在一种可能的实施方式中,所述使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码,包括:
36.使用所述共享密钥对所述随机值、待加密信息以及验证次数进行加密计算,得到验证码,所述验证次数包括所述目的服务器对所述客户端是否具有访问目的端口权限进行验证的次数。
37.第三方面,本公开实施例中提供了一种数据传输方法。
38.具体的,所述数据传输方法,包括:
39.所述客户端执行第一方面中所述的方法,所述目的服务器执行第二方面中所述的方法。
40.第四方面,本公开实施例中提供了一种数据传输装置。
41.具体的,所述数据传输装置,包括:
42.第一发送模块,被配置为向目的服务器的目的端口首次发送首数据包;
43.第一接收模块,被配置为接收所述目的服务器发送的目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
44.响应模块,被配置为响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;
45.第二发送模块,被配置为重新向目的服务器的目的端口发送所述首数据包。
46.在一种可能的实现方式中,所述目的不可达消息中携带有随机值,所述装置还包括:
47.第一获取模块,被配置为获取所述客户端的共享密钥;
48.第一计算模块,被配置为使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;
49.所述响应模块中生成并返回认证数据包的部分被配置为:
50.将所述待加密信息和所述认证码封装在数据包内,生成认证数据包;
51.向所述目的服务器发送所述认证数据包。
52.在一种可能的实现方式中,所述响应模块中响应于接收所述目的不可达消息,生成并返回认证数据包的部分被配置为:
53.通过所述客户端的传输层或套接层响应所述目的不可达消息,生成并返回认证数据包,所述套接层位于协议栈中的传输层和应用层之间。
54.在一种可能的实现方式中,所述装置还包括:
55.第二接收模块,被配置为定期接收所述目的服务器发送的目的不可达消息。
56.在一种可能的实现方式中,所述第一计算模块被配置为:
57.使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端被所述目的服务器指示发起认证的次数。
58.第四方面,本公开实施例中提供了一种数据传输装置。
59.具体的,所述数据传输装置,包括:
60.丢弃模块,被配置为在接收到客户端首次发送的首数据包时,丢弃所述首数据包;
61.第三发送模块,被配置为向所述客户端返回目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
62.第三接收模块,被配置为接收所述客户端发送的认证数据包,所述认证数据包中携带认证信息;
63.开放模块,被配置为基于所述认证信息确定所述客户端具有访问目的端口的权限时,为所述客户端放通所述目的端口的访问;
64.第四接收模块,被配置为通过所述目的端口接收所述客户端重新发送的所述首数据包。
65.在一种可能的实施方式中,所述目的不可达消息中携带有随机值,所述认证信息包括待加密信息和认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;所述开放模块中基于所述认证信息确定所述客户端具有访问目的端口的权限的部分被配置为:
66.基于所述客户端标识查询得到所述客户端的共享密钥和访问权限,所述访问权限用于限定所述客户端在所述目的服务器的可访问端口;
67.使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码;
68.在所述验证码和所述认证码相同时,若所述客户端在所述目的服务器的可访问端口包括所述首数据包要到达的目的端口,则确定所述客户端具有访问目的端口的权限。
69.在一种可能的实施方式中,所述装置还包括:
70.第四发送模块,被配置为定期向所述客户端发送目的不可达消息。
71.在一种可能的实施方式中,所述使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码,包括:
72.使用所述共享密钥对所述随机值、待加密信息以及验证次数进行加密计算,得到验证码,所述验证次数包括所述目的服务器对所述客户端是否具有访问目的端口权限进行验证的次数。
73.第六方面,本公开实施例中提供了一种数据传输装置。
74.具体的,所述数据传输装置,包括:
75.客户端,被配置为执行第一方面中所述的方法;
76.目的服务器,被配置为执行第二方面中所述的方法。
77.第七方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。
78.第八方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述任一方面所述的方法步骤。
79.第九方面,本公开实施例提供了一种计算机程序产品,包括计算机程序/指令,其中,该计算机程序/指令被处理器执行时实现上述任一方面所述的方法步骤。
80.本公开实施例提供的技术方案可包括以下有益效果:
81.上述技术方案可以在客户端向服务端的目的端口首次发送首数据包时,服务端都是拒绝接收并向该客户端发送目的不可达消息,指示客户端发起认证;客户端响应于接收所述目的不可达消息,生成并返回携带有认证信息的认证数据包,服务端基于所述认证信息确定所述客户端具有访问目的端口的权限时,才会为所述客户端开放所述目的端口的访问,此时,客户端才可以合法地访问该服务端的目的端口,客户端可以重新向服务端的目的端口发送首数据包进行访问。这样,通过设置服务端全部拒绝接收未验证的客户端的访问,隐藏服务端的端口,只有通过认证后才能访问该服务端的端口,消减了交付型数据中心中底层网络暴露面的安全风险,保护云平台。
82.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
83.结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
84.图1示出了根据本公开实施例的云平台的结构框图。
85.图2示出根据本公开一实施方式的应用于客户端的数据传输方法的流程图。
86.图3示出根据本公开一实施方式的应用于目的服务器的数据传输方法的流程图。
87.图4示出根据本公开一实施方式的数据传输方法的整体流程图。
88.图5示出根据本公开一实施方式的应用于客户端的数据传输装置的结构框图。
89.图6示出根据本公开一实施方式的应用于目的服务器的数据传输装置的结构框
图。
90.图7示出根据本公开一实施方式的电子设备的结构框图。
91.图8是适于用来实现根据本公开实施例所述方法的计算机系统的结构示意图。
具体实施方式
92.下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
93.在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
94.另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
95.在本公开中,对用户信息或用户数据的获取均为经用户授权、确认,或由用户主动选择的操作。
96.如前所述,在新型的交付型数据中心场景中,云平台的服务提供者会将物理服务器这些物理网络部署到用户的机房中,并将云产品部署到这些物理服务器上,如此,云平台的underlay(底层)网络会暴露于服务商的网络隔离和安全运维的边界之外,极大依赖于用户的管理和防护手段,通过底层网络攻击云平台的风险急剧上升。云平台东西向、南北向通信暴露在底层网络上,可以被实施网络嗅探、报文劫持/篡改、监听端口扫描和端口攻击等网络攻击,因此,如何消减交付型数据中心中底层网络暴露面的安全风险,保护云平台成为目前亟待解决的技术问题。
97.图1示出了根据本公开实施例的云平台的结构框图。
98.如图1所示,服务提供侧为企业用户侧的企业提供各种云产品,这些云产品会部署在企业用户侧的用户侧服务器上,底层网络的东西向流量在企业用户侧的本地交换网络完成,底层网络的北向流量需要服务提供侧为企业用户侧开放服务提供侧服务器的南向端口完成,底层网络的南向流量需要企业用户侧为服务提供侧开放用户侧服务器的北向端口完成。服务提供侧会配置网络隔离和安全运维对服务提供侧的网络实施保护,而企业用户侧的网络极大依赖于用户的管理和防护手段,从一个服务器到另一个服务器的端口访问的过程中,由于东西向和南向端口都是暴露给企业用户侧的,故可以被实施网络嗅探、报文劫持/篡改、监听端口扫描和端口攻击等网络攻击,使得通过底层网络攻击云平台的风险急剧上升。
99.考虑到上述问题,本公开提出一种数据传输方法,在客户端向服务端的目的端口首次发送首数据包时,服务端都是拒绝接收并向该客户端发送目的不可达消息,指示客户端发起认证;客户端响应于接收所述目的不可达消息,生成并返回携带有认证信息的认证数据包,服务端基于所述认证信息确定所述客户端具有访问目的端口的权限时,才会为所述客户端开放所述目的端口的访问,此时,客户端才可以合法地访问该服务端的目的端口,客户端可以重新向服务端的目的端口发送首数据包进行访问。这样,通过设置服务端全部拒绝接收未验证的客户端的访问,隐藏服务端的端口,只有通过认证后才能访问该服务端
的端口,消减了交付型数据中心中底层网络暴露面的安全风险,保护云平台。
100.图2示出根据本公开一实施方式的应用于客户端的数据传输方法的流程图,如图2所示,所述数据传输方法包括以下步骤s201-s204:
101.在步骤s201中,向目的服务器的目的端口首次发送首数据包;
102.在步骤s202中,接收所述目的服务器发送的目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
103.在步骤s203中,响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;
104.在步骤s204中,重新向目的服务器的目的端口发送所述首数据包。
105.在本公开一实施方式中,所述数据传输方法可适用于交付型数据中心中底层网络内的数据传输,该底层网络中的数据传输如图1所示,包括企业用户侧的用户侧服务器之间的东西向端口之间的访问,以及企业用户侧的用户侧服务器对服务提供侧服务器的南向端口的访问。该网络中的每个服务器内都安装有多种应用,不同的应用可以提供不同的服务,本实施例中将发起访问的源服务器内的应用称为客户端,也可称为ih(initiating host,发起主机)进程,将接收访问的目的服务器的应用称为服务端,也可称为ah(accepting host,接收主机)进程,每个发起访问的客户端都有自己的ihip和ihport(ih端口),也即源ip和源端口,接收访问的服务端也有自己的ahip和ahport,也即目的ip和目的端口,客户端向服务端发送的数据包中就携带有源ip,源端口,目的ip,目的端口来指示该数据包的来源和目的地。
106.在本公开一实施方式中,客户端要发起对服务端的访问时,会向该服务端所在的目的服务器的目的端口(即该服务端对应的端口)发送首数据包,此时的首数据包为首次发送。客户端在发送数据的过程中经过各协议层时都要附加上相应层的协议头和协议尾部分,也就是要对数据进行协议封装,以标识对应层所用的通信协议,在tcp/ip中传输层的协议主要有两种,分别是tcp(transmission control protocol,传输控制协议)和udp(user datagram protocol,用户数据报协议),故该客户端发送的首数据包可以是tcp包,也可以是udp包。示例的,如果客户端与服务端之间的数据传输协议是tcp协议,则客户端需要先与服务端进行三次握手建立连接,此时客户端发送的首数据包就是tcp syn(synchronize sequence numbers,同步序列编号)包,该客户端协议栈的传输层会构造tcp syn包下发给下层协议栈进行数据传输,如果客户端与服务端之间的数据传输协议是udp协议,则该客户端协议栈的传输层会直接将udp的数据报文封装后发送给下层协议栈进行数据传输。
107.在本公开一实施方式中,该底层网络中的各服务器中都配置有防火墙,比如说sdp(software defined perimeter,软件定义边界)防火墙,客户端对服务器上各服务端的访问都需要经过该防火墙,该防火墙是deny all(全部拒绝)的策略即对所有未验证的客户端全部拒绝访问,因此服务器的各端口对网络是不可见的。因此目的服务器在接收到该客户端首次发送的首数据包时,会直接丢弃该首数据包,并向该客户端发送目的不可达消息,指示该客户端发起认证,示例的,该目的不可达消息可以是icmp(网络控制报文协议,internet control message protocol)消息,该icmp消息中携带有标识符,该标识符为指示该客户端发起认证的标识符。
108.在本公开一实施方式中,客户端在接收到该目的不可达消息后,就会立即构造认
证数据包,并向该目的服务器发送该认证数据包进行认证,该认证数据包中携带有认证信息,目的服务器接收到该认证数据包后,就会基于所述认证信息确定所述客户端是否具有访问其目的端口的权限,如果确定该客户端具有访问其目的端口的权限,则表明该客户端对于该目的端口来说是一个合法的访问者,此时,该目的服务器就会授权允许该客户端的ihip,ihport访问该服务端的ahip,ahport,该ihip指的是客户端所在目的服务器的ip,该ihport指的是目的服务器上该客户端对应的端口,该ahip指的是服务端所在目的服务器的ip,该ahport指的是目的服务器上该服务端对应的目的端口。如此,目的服务器就为所述客户端放通所述目的端口的访问,该客户端就可以向该目的端口发送数据包,该客户端发送的数据包中携带有该客户端的ihip和ihport以及要访问的服务端的ahip和ahport,目的服务器接收到该数据包后,由于已授权允许该客户端的ihip,ihport访问服务端的ahip,ahport,故该目的服务器的防火墙就会让携带的源ip和源端口为该客户端的ihip和ihport以及目的ip和目的端口为该服务端的ahip和ahport的数据包通过,该服务器的ahport也即目的端口就可以接收该数据包,使服务端为该客户端提供相应服务。
109.在本公开一实施方式中,客户端在向目的服务器发送认证数据包之后,就会直接启动重传机制,重新向该目的服务器的目的端口再次发送该首数据包,如果目的服务器基于所述认证信息确定所述客户端具有访问其目的端口的权限,则该目的服务器就可以通过该目的端口接收该首数据包,当然,如果目的服务器基于所述认证信息确定所述客户端不具有访问其目的端口的权限,则该目的服务器就会丢弃该首数据包。
110.本实施方式通过设置服务器全部拒绝接收未验证的客户端的访问,隐藏服务器的端口,只有通过认证后才能访问被授权访问的端口,消减了交付型数据中心中底层网络暴露面的安全风险,保护云平台。另外,对各端口的访问权限的授权粒度是针对客户端级别的,对策略控制粒度细化到客户端即ih进程,非法的应用客户端入侵目的服务器后,也不能在无授权的情况下访问该目的服务器的目的端口的服务;还为每个服务器的防火墙提供认证能力,而不是设置独立的认证服务器来进行认证,避免了单点故障。
111.在一种可能的实施方式中,上述数据传输方法中,所述目的不可达消息中携带有随机值,所述方法还包括:
112.获取所述客户端的共享密钥;
113.使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;
114.所述生成并返回认证数据包,包括:
115.将所述待加密信息和所述认证码封装在数据包内,生成认证数据包;
116.向所述目的服务器发送所述认证数据包。
117.在该实施方式中,示例的,该目的不可达消息可以是icmp目的不可达消息,该icmp目的不可达消息的报文格式可以如下表1所示:
[0118][0119]
表1
[0120]
如表1所示,该icmp目的不可达消息的报文中的类型字段有8位,用于标识本报文
的类型为icmp差错报告报文,代码字段有8位,用于标识差错报告报文的类型,本实施方式中差错报告报文的类型为目的不可达,可用预定的代码字段标识,校验和字段有16位,包括数据部分在内的整个icmp数据包的检验和。该icmp差错报告报文符合rfc(request for comments)792协议,在现有技术中,如果该icmp差错报告报文是目的不可达类型,数据部分是unused(不使用的)。本实施方式中提供的icmp目的不可达消息与现有的目的不可达报文是不同的,需要在数据部分填入标识符,用来表明该icmp目的不可达消息是指示客户端发起认证的。
[0121]
在该实施方式中,该目的不可达消息中携带有随机值,该随机值为nonce(number once)值,在密码学中nonce是一个只被使用一次的任意或非重复的随机数值。该随机值用于之后的认证,示例的,可以在该icmp不可达报文的数据部分的相应字段处填入该随机值。
[0122]
在该实施方式中,客户端在接收到目的不可达消息后,可以从该目的不可达消息中取出该随机值,然后开始构建认证数据包,该认证数据包可以是spa(single packet authorization,单包认证)包,该认证数据包包括待加密信息和认证码,该待加密信息可以包括客户端标识(clientid),或者,还可以包括当前时间戳。该clientid是为该客户端分配的身份标识,可以索引该客户端的共享密钥和端口访问权限即该客户端被授权访问的目的端口,该客户端的共享密钥是该客户端和其能够访问的目的端口的服务器两方都知道的,该认证码是使用该客户端的共享密钥对该随机值和该待加密信息加密计算出来的,示例的,该认证码可以是hmac(哈希运算消息认证码,hash-based message authentication code),该认证码用于身份认证、报文完整性保护和报文防重放攻击。
[0123]
在该实施方式中,客户端需要将所述待加密信息和所述认证码封装在数据包内,构建认证数据包,然后将该认证数据包发送给目的服务器,该目的服务器的防火墙接收到该认证数据包时,可以获取该数据包中的待加密信息和认证码,该目的服务器可以基于该待加密信息中的clientid查询得到所述客户端的共享密钥和访问权限,并使用所述共享密钥对所述随机值(由目的服务器发送给客户端的,故目的服务器是知道该随机值的)和所述待加密信息进行加密计算,得到验证码,如果该验证码和该认证码相同,则表明该客户端是合法的客户端,此时,目的服务器会查询该客户端的访问权限,确定客户端是否具有访问目的端口的权限,如果客户端具有访问该目的端口的权限,该目的服务器就会为该客户端开放该目的端口,即允许该客户端的ihip和ihport访问服务端的ahip和ahport(即目的端口),如果客户端不具有访问该目的端口的权限,则该目的服务器不会为该客户端端开放该目的端口,拒绝接收该客户端发送给目的端口的数据包。如果该验证码和该认证码不同,则表明该客户端不是合法的客户端,此时,目的服务器会继续拒绝该客户端发送的数据包。
[0124]
在一种可能的实施方式中,上述数据传输方法中的步骤s103可以包括以下步骤:
[0125]
通过所述客户端的传输层或套接层响应所述目的不可达消息,生成并返回认证数据包,所述套接层位于所述客户端协议栈中传输层和应用层之间。
[0126]
在该实施方式中,为了实现认证过程对该客户端的透明性,本实施方式需要改造传输层,或者在该传输层与应用层之间加上一个套接层来对目的不可达消息进行处理以及构造认证数据包。
[0127]
现有技术中,当客户端的协议栈收到目的不可达消息后,会逐级处理,最终反馈至应用层进行处理,这样就会对应用程序不透明,需要客户端显式地发送认证数据包,然后再
重发首数据包。而本实施方式为了实现对该客户端的透明性,当客户端的协议栈收到目的不可达消息后,会逐级处理,到达该传输层或套接层时,该传输层或套接层可以直接响应所述目的不可达消息,生成并返回认证数据包。
[0128]
在一种可能的实施方式中,上述数据传输方法还可以包括以下步骤:
[0129]
定期接收所述目的服务器发送的目的不可达消息。
[0130]
在该实施方式中,在该客户端认证通过,目的服务器就会授权允许该客户端的ihip,ihport访问该服务端的ahip,ahport,这时如果攻击者阻断合法客户端的数据包,冒充该客户端的ihip,ihport就可以访问到该服务端的ahip,ahport了。为了避免出现中间人攻击,引入持续认证机制,目的服务器中的防火墙会周期发送目的不可达消息,并要求发送该数据包的客户端持续进行认证,如果对方没有响应或返回的认证数据包错误,则中断连接,拒绝接收该客户端的数据包。
[0131]
在该实施方式中,如果没有被攻击,客户端会定期接收所述目的服务器发送的目的不可达消息,并响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;目的服务器中的防火墙认证通过后,会保持与该客户端之间的连接,继续为该客户端开放该服务端的目的端口。
[0132]
在一种可能的实施方式中,上述数据传输方法中所述使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码的部分还可以包括以下步骤:
[0133]
使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端访问所述目的服务器的端口时被指示发起认证的次数。
[0134]
在该实施方式中,在目的服务器定期发送目的不可达消息的情况下,为了使认证更安全以及更准确,可以使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端被所述目的服务器指示发起认证的次数。这样目的服务器在接收到该认证数据包时,可以使用查找到的共享密钥对所述随机值(已知)、验证次数(即所述目的服务器对所述客户端是否具有访问目的端口权限进行验证的次数,目的服务器可以记录)和所述待加密信息进行加密计算,得到验证码,如果验证次数与该认证次数是相同的,则计算出的验证码和该认证码相同,则表明该客户端是合法的客户端。
[0135]
图3示出根据本公开一实施方式的应用于目的服务器的数据传输方法的流程图,如图3所示,所述数据传输方法包括以下步骤s301-s305:
[0136]
在步骤s301中,在接收到客户端首次发送的首数据包时,丢弃所述首数据包;
[0137]
在步骤s302中,向所述客户端返回目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
[0138]
在步骤s303中,接收所述客户端发送的认证数据包,所述认证数据包中携带认证信息;
[0139]
在步骤s304中,基于所述认证信息确定所述客户端具有访问目的端口的权限时,为所述客户端放通所述目的端口的访问;
[0140]
在步骤s305中,通过所述目的端口接收所述客户端重新发送的所述首数据包。
[0141]
在本公开一实施方式中,客户端要发起对服务端的访问时,会向该服务端所在的
目的服务器的目的端口(即该服务端对应的端口)发送首数据包,此时的首数据包为首次发送。该底层网络中的各服务器中都配置有防火墙,比如说sdp(software defined perimeter,软件定义边界)防火墙,该防火墙是deny all(全部拒绝)的策略即对所有未验证的客户端全部拒绝访问,因此服务器的各端口对网络是不可见的。因此目的服务器在接收到该客户端首次发送的首数据包时,会直接丢弃该首数据包,并向该客户端发送目的不可达消息,指示该客户端发起认证,示例的,该目的不可达消息可以是icmp(网络控制报文协议,internet control message protocol)消息,该icmp消息中携带有标识符,该标识符为指示该客户端发起认证的标识符。
[0142]
在本公开一实施方式中,客户端在接收到该目的不可达消息后,就会立即构造认证数据包,并向该目的服务器发送该认证数据包进行认证,该认证数据包中携带有认证信息,目的服务器接收到该认证数据包后,就会基于所述认证信息确定所述客户端是否具有访问其目的端口的权限,如果确定该客户端具有访问其目的端口的权限,则表明该客户端对于该目的端口来说是一个合法的访问者,此时,该目的服务器就会授权允许该客户端的ihip,ihport访问该服务端的ahip,ahport,该ihip指的是客户端所在目的服务器的ip,该ihport指的是目的服务器上该客户端对应的端口,该ahip指的是服务端所在目的服务器的ip,该ahport指的是目的服务器上该服务端对应的目的端口。如此,目的服务器就为所述客户端放通所述目的端口的访问,该客户端就可以向该目的端口发送数据包,该客户端发送的数据包中携带有该客户端的ihip和ihport以及要访问的服务端的ahip和ahport,目的服务器接收到该数据包后,由于已授权允许该客户端的ihip,ihport访问服务端的ahip,ahport,故该目的服务器的防火墙就会让携带的源ip和源端口为该客户端的ihip和ihport以及目的ip和目的端口为该服务端的ahip和ahport的数据包通过,该服务器的ahport也即目的端口就可以接收该数据包,使服务端为该客户端提供相应服务。
[0143]
在本公开一实施方式中,客户端在向目的服务器发送认证数据包之后,就会直接启动重传机制,重新向该目的服务器的目的端口再次发送该首数据包,如果目的服务器基于所述认证信息确定所述客户端具有访问其目的端口的权限,则该目的服务器就可以通过该目的端口接收该首数据包,当然,如果目的服务器基于所述认证信息确定所述客户端不具有访问其目的端口的权限,则该目的服务器就会丢弃该首数据包。
[0144]
这里需要说明的是,目的服务器对客户端的认证通过之后,其防火墙会重新恢复deny all的状态,已建立的连接由connection tracking(连接跟踪)机制保持。
[0145]
本实施方式通过设置服务器全部拒绝接收未验证的客户端的访问,隐藏服务器的端口,只有通过认证后才能访问被授权访问的端口,消减了交付型数据中心中底层网络暴露面的安全风险,保护云平台。
[0146]
在一种可能的实施方式中,所述目的不可达消息中携带有随机值,所述认证信息包括待加密信息和认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;所述基于所述认证信息确定所述客户端具有访问目的端口的权限,包括:
[0147]
基于所述客户端标识查询得到所述客户端的共享密钥和访问权限,所述访问权限用于限定所述客户端在所述服务器的可访问端口;
[0148]
使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码;
[0149]
在所述验证码和所述认证码相同时,若所述客户端在所述服务器的可访问端口包
括所述首数据包要到达的目的端口,则确定所述客户端具有访问目的端口的权限。
[0150]
在该实施方式中,该目的不可达消息中携带有随机值,该随机值为nonce(number once)值,在密码学中nonce是一个只被使用一次的任意或非重复的随机数值。该随机值用于之后的认证,示例的,可以在该icmp不可达报文的数据部分的相应字段处填入该随机值。
[0151]
在该实施方式中,客户端在接收到目的不可达消息后,可以从该目的不可达消息中取出该随机值,然后开始构建认证数据包,该认证数据包包括待加密信息和认证码,该待加密信息可以包括客户端标识(clientid),或者,还可以包括当前时间戳。该clientid是为该客户端分配的身份标识,可以索引该客户端的共享密钥和端口访问权限即该客户端被授权访问的目的端口。该认证码是使用该客户端的共享密钥对该随机值和该待加密信息加密计算出来的,示例的,该认证码可以是hmac,该认证码用于身份认证、报文完整性保护和报文防重放攻击。
[0152]
在该实施方式中,客户端需要将所述待加密信息和所述认证码封装在数据包内,构建认证数据包,然后将该认证数据包发送给目的服务器,该目的服务器的防火墙接收到该认证数据包时,可以获取该数据包中的待加密信息和认证码,该目的服务器可以基于该待加密信息中的clientid查询得到所述客户端的共享密钥和访问权限,并使用所述共享密钥对所述随机值(由目的服务器发送给客户端的,故目的服务器是知道该随机值的)和所述待加密信息进行加密计算,得到验证码,如果该验证码和该认证码相同,则表明该客户端是合法的客户端,此时,目的服务器会查询该客户端的访问权限,确定客户端是否具有访问目的端口的权限,如果客户端具有访问该目的端口的权限,该目的服务器就会为该客户端开放该目的端口,即允许该客户端的ihip和ihport访问服务端的ahip和ahport(即目的端口),如果客户端不具有访问该目的端口的权限,则该目的服务器不会为该客户端端开放该目的端口,拒绝接收该客户端发送给目的端口的数据包。如果该验证码和该认证码不同,则表明该客户端不是合法的客户端,此时,目的服务器会继续拒绝该客户端发送的数据包。
[0153]
这里需要说明的是,在定义访问权限时,不需要知道客户端的信息,只要定义对该目的ip和目的端口有访问权限的源ip和源端口即可,只要该认证数据包的ip层的源ip和sport(源端口)字段中的源端口是具有该访问权限的源ip和源端口,即可认为该客户端具有访问该目的端口的权限。
[0154]
在一种可能的实施方式中,在为所述客户端放通所述目的端口的访问之后,所述方法还包括:
[0155]
定期向所述客户端发送目的不可达消息。
[0156]
在该实施方式中,在该客户端认证通过,目的服务器就会授权允许该客户端的ihip,ihport访问该服务端的ahip,ahport,这时如果攻击者阻断合法客户端的数据包,冒充该客户端的ihip,ihport就可以访问到该服务端的ahip,ahport了。为了避免出现中间人攻击,引入持续认证机制,目的服务器中的防火墙会周期发送目的不可达消息,并要求发送该数据包的客户端持续进行认证,如果对方没有响应或返回的认证数据包错误,则中断连接,拒绝接收该客户端的数据包。
[0157]
在该实施方式中,如果没有被攻击,客户端会定期接收所述目的服务器发送的目的不可达消息,并响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;目的服务器中的防火墙认证通过后,会保持与该客户端之间的连接,继
续为该客户端开放该服务端的目的端口。
[0158]
在一种可能的实施方式中,所述使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码,包括:
[0159]
使用所述共享密钥对所述随机值、待加密信息以及验证次数进行加密计算,得到验证码,所述验证次数包括所述服务器对所述客户端是否具有访问目的端口权限进行验证的次数。
[0160]
在该实施方式中,在目的服务器定期发送目的不可达消息的情况下,为了使认证更安全以及更准确,可以使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端被所述目的服务器指示发起认证的次数。这样目的服务器在接收到该认证数据包时,可以使用查找到的共享密钥对所述随机值(已知)、验证次数(即所述目的服务器对所述客户端是否具有访问目的端口权限进行验证的次数,目的服务器可以记录)和所述待加密信息进行加密计算,得到验证码,如果验证次数与该认证次数是相同的,则计算出的验证码和该认证码相同,则表明该客户端是合法的客户端,
[0161]
图4示出根据本公开一实施方式的数据传输方法的整体流程图,如图4所示,所述数据传输方法包括以下步骤s401-s406:
[0162]
在步骤s401中,客户端向目的服务器的目的端口首次发送首数据包;
[0163]
在步骤s402中,目的服务器在接收到客户端首次发送的首数据包时,丢弃所述首数据包;
[0164]
在步骤s403中,所述目的服务器向所述客户端返回目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
[0165]
在步骤s404中,所述客户端响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;
[0166]
在步骤s405中,所述目的服务器基于所述认证信息确定所述客户端具有访问目的端口的权限时,为所述客户端放通所述目的端口的访问;
[0167]
在步骤s406中,所述客户端重新向目的服务器的目的端口发送所述首数据包,所述目的服务器通过所述目的端口接收所述客户端重新发送的所述首数据包。
[0168]
在一种可能的实施方式中,如图4所示,客户端首次向目的服务器的目的端口发送的首数据包会被该目的服务器上的防火墙拦截并丢弃,该目的服务器上的防火墙会向所述客户端返回目的不可达消息,指示客户端发起认证;客户端响应于接收所述目的不可达消息,生成并返回认证数据包,所述目的服务器基于所述认证信息确定所述客户端具有访问目的端口的权限时,为所述客户端放通所述目的端口的访问;这样,所述客户端重新向目的服务器的目的端口发送所述首数据包就可以通过该防火墙发送至目的服务器的目的端口,被服务端接收。
[0169]
在一种可能的实施方式中,所述目的不可达消息中携带有随机值,所述方法还包括:
[0170]
所述客户端获取所述客户端的共享密钥,使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;
[0171]
所述客户端生成并返回认证数据包,包括:
[0172]
所述客户端将所述待加密信息和所述认证码封装在数据包内,生成认证数据包;并向所述目的服务器发送所述认证数据包。
[0173]
所述目的服务器基于所述认证信息确定所述客户端具有访问目的端口的权限,包括:
[0174]
所述目的服务器基于所述客户端标识查询得到所述客户端的共享密钥和访问权限,所述访问权限用于限定所述客户端在所述目的服务器的可访问端口;使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码;在所述验证码和所述认证码相同时,若所述客户端在所述目的服务器的可访问端口包括所述首数据包要到达的目的端口,则确定所述客户端具有访问目的端口的权限。
[0175]
在一种可能的实施方式中,所述客户端响应于接收所述目的不可达消息,生成并返回认证数据包,包括:
[0176]
所述客户端通过所述客户端的传输层或套接层响应所述目的不可达消息,生成并返回认证数据包,所述套接层位于协议栈中的传输层和应用层之间。
[0177]
在一种可能的实施方式中,所述方法还包括:
[0178]
所述目的服务器定期向所述客户端发送目的不可达消息。
[0179]
在一种可能的实施方式中,所述客户端使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,包括:
[0180]
所述客户端使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端被所述目的服务器指示发起认证的次数;
[0181]
所述目的服务器使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码,包括:
[0182]
所述目的服务器使用所述共享密钥对所述随机值、待加密信息以及验证次数进行加密计算,得到验证码,所述验证次数包括所述目的服务器对所述客户端是否具有访问目的端口权限进行验证的次数。
[0183]
图4所示及相关实施方式中涉及的技术术语和技术特征与图1-图3所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图4所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1-图3所示及相关实施方式的解释的说明,此处不再赘述。
[0184]
下述为本公开装置实施例,可以用于执行本公开方法实施例。
[0185]
图5示出根据本公开一实施方式的应用于客户端的数据传输装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,所述数据传输装置包括:
[0186]
第一发送模块501,被配置为向目的服务器的目的端口首次发送首数据包;
[0187]
第一接收模块502,被配置为接收所述目的服务器发送的目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
[0188]
响应模块503,被配置为响应于接收所述目的不可达消息,生成并返回认证数据包,所述认证数据包中携带认证信息;
[0189]
第二发送模块504,被配置为重新向目的服务器的目的端口发送所述首数据包。
[0190]
在一种可能的实现方式中,所述目的不可达消息中携带有随机值,所述装置还包括:
[0191]
第一获取模块,被配置为获取所述客户端的共享密钥;
[0192]
第一计算模块,被配置为使用所述共享密钥对所述随机值和待加密信息进行加密计算,得到认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;
[0193]
所述响应模块中生成并返回认证数据包的部分被配置为:
[0194]
将所述待加密信息和所述认证码封装在数据包内,生成认证数据包;
[0195]
向所述目的服务器发送所述认证数据包。
[0196]
在一种可能的实现方式中,所述响应模块中响应于接收所述目的不可达消息,生成并返回认证数据包的部分被配置为:
[0197]
通过所述客户端的传输层或套接层响应所述目的不可达消息,生成并返回认证数据包,所述套接层位于协议栈中的传输层和应用层之间。
[0198]
在一种可能的实现方式中,所述装置还包括:
[0199]
第二接收模块,被配置为定期接收所述目的服务器发送的目的不可达消息。
[0200]
在一种可能的实现方式中,所述第一计算模块被配置为:
[0201]
使用所述共享密钥对所述随机值、待加密信息以及认证次数进行加密计算,得到认证码,所述认证次数包括所述客户端被所述目的服务器指示发起认证的次数。
[0202]
图5所示及相关实施方式中涉及的技术术语和技术特征与图1-图3所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图5所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1-图3所示及相关实施方式的解释的说明,此处不再赘述。
[0203]
图6示出根据本公开一实施方式的应用于目的服务器的数据传输装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述数据传输装置包括:
[0204]
丢弃模块601,被配置为在接收到客户端首次发送的首数据包时,丢弃所述首数据包;
[0205]
第三发送模块602,被配置为向所述客户端返回目的不可达消息,所述目的不可达消息用于指示客户端发起认证;
[0206]
第三接收模块603,被配置为接收所述客户端发送的认证数据包,所述认证数据包中携带认证信息;
[0207]
开放模块604,被配置为基于所述认证信息确定所述客户端具有访问目的端口的权限时,为所述客户端放通所述目的端口的访问;
[0208]
第四接收模块605,被配置为通过所述目的端口接收所述客户端重新发送的所述首数据包。
[0209]
所述目的不可达消息中携带有随机值,所述认证信息包括待加密信息和认证码,所述待加密信息包括客户端标识,或者还包括当前时间戳;所述开放模块中基于所述认证信息确定所述客户端具有访问目的端口的权限的部分被配置为:
[0210]
基于所述客户端标识查询得到所述客户端的共享密钥和访问权限,所述访问权限用于限定所述客户端在所述目的服务器的可访问端口;
[0211]
使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码;
[0212]
在所述验证码和所述认证码相同时,若所述客户端在所述目的服务器的可访问端口包括所述首数据包要到达的目的端口,则确定所述客户端具有访问目的端口的权限。
[0213]
在一种可能的实施方式中,所述装置还包括:
[0214]
第四发送模块,被配置为定期向所述客户端发送目的不可达消息。
[0215]
在一种可能的实施方式中,所述使用所述共享密钥对所述随机值和所述待加密信息进行加密计算,得到验证码,包括:
[0216]
使用所述共享密钥对所述随机值、待加密信息以及验证次数进行加密计算,得到验证码,所述验证次数包括所述目的服务器对所述客户端是否具有访问目的端口权限进行验证的次数。
[0217]
图6所示及相关实施方式中涉及的技术术语和技术特征与图1-图3所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图6所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1-图3所示及相关实施方式的解释的说明,此处不再赘述。
[0218]
本公开还公开了一种电子设备,图7示出根据本公开一实施方式的电子设备的结构框图,如图7所示,所述电子设备700包括存储器701和处理器702;其中,
[0219]
所述存储器701用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器702执行以实现上述方法步骤。
[0220]
图8是适于用来实现根据本公开实施例所述方法的计算机系统的结构示意图。
[0221]
如图8所示,计算机系统800包括处理单元801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行上述实施方式中的各种处理。在ram803中,还存储有系统800操作所需的各种程序和数据。处理单元801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0222]
以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。其中,所述处理单元801可实现为cpu、gpu、tpu、fpga、npu等处理单元。
[0223]
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行上文描述的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
[0224]
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个
用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0225]
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0226]
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
[0227]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献