访问控制方法、客户端代理装置、网关设备及相关系统与流程



1.本技术涉及计算机网络技术领域,尤其涉及一种访问控制方法、客户端代理装置、网关设备及一种访问控制系统。


背景技术:



2.零信任架构(也被称为“零信任安全模型”)不同于传统的网络边界安全信任体系,零信任架构强调“永不信任,始终验证”的原则,即默认情况下网关设备不应信任终端设备,无论这些终端设备是通过公司局域网接入的或者这些终端设备此前已经被验证过。链路安全是零信任架构中的重要方面,是指需要保证终端设备与提供资源的服务器之间所建立的会话中的数据是加密传输的,防止因网络嗅探而带来的安全问题。
3.零信任架构中,每条会话在保证链路安全的同时,还需要携带鉴权信息,以便于网关设备依据会话中携带的鉴权信息进行鉴权,进而确认当前请求建立的会话是否具有相应的资源访问权限,从而允许或者阻断终端设备与服务器之间建立会话。
4.终端设备可以通过报文的应用层字段向网关设备传递鉴权信息,例如在浏览器/服务器(browser/server,b/s)场景下,终端设备通过对浏览器下载到终端的小数据(cookie)的设置,在超文本传输协议(hypertext transfer protocol,http)报文的cookie字段中携带鉴权信息。然而,在客户端/服务器(client/server,c/s)场景下应用形态是非常丰富、复杂的。如果想通过报文的应用层数据传递鉴权信息,那么需要在终端设备和网关上分别对多种应用协议分别进行适配和修改,实施难度很大。
5.为了屏蔽各种应用的差异,有研究提出在终端设备和网关设备之间建立隧道,终端设备通过在报文上封装的隧道头来携带鉴权信息。但这种方案需要终端设备和网关设备之间建立额外的隧道,终端设备对所有应用报文进行隧道封装,网关设备需要对所有隧道报文进行解封装。由于隧道相关的封装、解封装过程、以及可能涉及到的加解密都是非常消耗处理资源的,因此给终端设备和网关设备都带来较大性能开销。


技术实现要素:



6.本技术实施例提供一种访问控制方法,用以缓解零信任场景下终端设备或网关设备在访问控制过程中性能开销大的问题。
7.第一方面,提供了一种访问控制方法,由运行于终端设备上的客户端代理装置执行。客户端代理装置截获第一协商报文,所述第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求。所述客户端代理装置在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文;向网关设备发送修改后的第一协商报文。
8.在本技术实施例中,运行于终端设备上的客户端代理装置对于本终端设备上的应用客户端发起的、满足加密强度要求的会话,在向网关设备转发会话协商报文之前,不需要
再做进一步的加密隧道封装,而是在该会话协商报文的传输层报文头中携带鉴权信息。这样在满足链路安全性和鉴权两方面需求的情况下,节省了因额外隧道加解密带来的开销,有助于提升终端设备和网关设备的处理性能。
9.可选地,在一种可能的实现方式中,客户端代理装置根据截获的会话协商报文的协议类型、携带的与加密强度有关的信息等等,确定所协商的会话是否满足加密强度要求。会话协商报文携带的与加密强度有关的信息包括但不限于协议版本号和/或加密套件标识列表等。
10.例如,第一会话满足加密强度要求,包括:
11.所述第一协商报文中携带指定协议版本号,所述指定协议版本号对应的协议版本实现的传输安全性高于预设安全性标准,所述第一会话基于所述协议版本进行数据传输。例如,其中指定协议版本号包括传输层安全(transport layer security,tls)1.2或tls 1.3。
12.又例如,第一会话满足加密强度要求,包括:
13.所述第一协商报文包括指定加密套件标识,所述指定加密套件标识用于标识指定加密套件,所述指定加密套件实现的传输安全性高于预设安全性标准,所述第一会话基于所述指定加密套件对应用数据进行加密。
14.本技术实施例提供了一种根据会话协商报文中携带的信息,确定第一会话满足加密强度要求的方式,这种方式简单有效。
15.可选地,在一种可能的实现方式中,所述第一协商报文是tls报文。例如,第一协商报文是客户端你好(client hello)消息。
16.可选地,在一种可能的实现方式中,网关设备对于从客户端代理装置接收到的报文,需要区分不同情况进行不同的后续处理,例如如果接收到的报文是客户端代理装置在应用客户端发送的协商报文的传输层报文头添加鉴权信息后复用的报文,由于该报文未经封装,因此网关设备无需进行解封装。为了便于网关设备的处理,所述修改后的第一协商报文的传输层报文头还包括指示信息,所述指示信息使得所述网关设备不对所述修改后的第一协商报文进行解封装。
17.可选地,客户端代理装置选择性地在第一协商报文的传输层报文头的不同位置添加鉴权信息。在一种可能的实现方式中,客户端代理装置在传输层报文头的传输层安全选项(transport layer security option,tls option)中添加鉴权信息。例如在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息,包括:在所述第一协商报文的传输层报文头中增加tls option字段;在所述tls option字段中携带所述第一应用客户端对应的鉴权信息。
18.可选地,在一种可能的实现方式中,所述tls option字段符合类型长度值(type-length-value,tlv)结构,所述tlv结构中的类型t字段用于携带指示信息,所述指示信息以使所述网关设备不对所述修改后的会话协商报文进行tls解封装处理,所述值v字段用于携带所述鉴权信息。本技术实施例提供的这种tls option字段结构使得tls option字段能同时携带指示信息和鉴权信息,是一种较为高效的信息携带方式。
19.可选地,在一种可能的实现方式中,所述鉴权信息包括用户令牌和/或应用令牌。所述鉴权信息用于网关设备在每次会话建立过程中对访问发起方的身份进行鉴权。
20.可选地,在一种可能的实现方式中,所述鉴权信息还包括:设备标识和/或所述第一服务器的地址信息。例如,第一服务器的地址信息包括所述第一服务器的互联网协议(internet protocol,ip)地址和/或端口号。
21.可选地,在一种可能的实现方式中,在发送所述修改后的第一协商报文之前,还包括:
22.根据第一差值以及所述tls option字段的长度值修改所述第一协商报文的序列号,根据第二差值修改所述第一协商报文的确认号,从而获得所述修改后的第一协商报文,其中,所述第一差值是所述代理客户端装置作为代理客户端向所述第一服务器发送的同步报文的序列号与所述第一客户端发送的同步报文的序列号之差,所述第二差值是所述代理客户端装置作为代理客户端向所述第一服务器发送的所述同步报文的确认号与所述第一客户端发送的所述同步报文的确认号之差。
23.由于客户端代理装置在第一协商报文中增加了鉴权信息,因此修改后的第一协商报文的报文长度与修改之前相比发生的改变,为了降低网关设备解析修改后的第一协商报文时的差错率,客户端代理装置在第一协商报文中增加鉴权信息时,还修改第一协商报文的序列号。
24.可选地,在一种可能的实现方式中,所述向网关设备发送修改后的第一协商报文之后,所述方法还包括:
25.所述第一会话建立成功后,以流模式传输所述第一会话的后续报文。
26.本技术实施例客户端代理装置在第一会话建立成功之前以代理模式进行报文转发,在第一会话建立成功后,从代理模式转换为流模式传输第一会话的后续报文。流模式与代理模式相比,客户端代理装置无需维护两个独立连接的状态,因此能够进一步节省客户端代理装置上处理资源,即节省终端设备的处理资源。
27.可选地,在一种可能的实现方式中,以流模式传输所述第一会话的后续报文,包括:
28.根据第一差值修改所述来自于所述第一应用客户端的所述第一会话的后续报文的序列号,根据第二差值修改来自于所述第一应用客户端的所述第一会话的后续报文的确认号,从而获得修改后的来自于所述第一应用客户端的所述第一会话的后续报文,所述第一差值是所述代理客户端装置作为代理客户端向所述第一服务器发送的同步报文的序列号与所述第一客户端发送的同步报文的序列号之差,所述第二差值是所述代理客户端装置作为代理客户端向所述第一服务器发送的所述同步报文的确认号与所述第一客户端发送的所述同步报文的确认号之差;
29.向所述网关设备发送所述修改后的来自于所述第一应用客户端的所述第一会话的后续报文;
30.根据第三差值修改所述来自于所述网关设备的所述第一会话的后续报文的序列号,根据第四差值以及所述tls option字段的长度值修改所述来自于所述网关设备的所述第一会话的后续报文的确认号,从而获得修改后的来自于所述网关设备的所述第一会话的后续报文,其中,所述第三差值是所述代理客户端装置作为代理服务器向所述第一客户端发送的同步确认报文的序列号与所述第一服务器发送的同步确认报文的序列号之差,所述第四差值是所述代理客户端装置作为代理服务器向所述第一客户端发送的同步确认报文
的确认号与所述第一服务器发送的同步确认报文的确认号之差;
31.向所述网关设备发送所述修改后的来自于所述网关设备的所述第一会话的后续报文。
32.可选地,在一种可能的实现方式中,所述方法还包括:
33.截获第二协商报文,所述第二协商报文来自于所述终端设备上的第二应用客户端、且用于与第二服务器协商建立第二会话,所述第二会话不满足加密强度要求;
34.对所述第二协商报文进行隧道封装得到隧道协商报文,所述隧道协商报文的报文头包括所述第二应用客户端对应的鉴权信息,其中所述隧道协商报文用于协商建立所述客户端代理装置与所述网关设备之间的加密隧道;
35.向所述网关设备发送所述隧道协商报文。
36.本技术实施例提供的访问控制方法,作为对上述应用客户端发起的、满足加密强度要求的会话的处理过程的补充,客户端代理装置对于本终端设备上的应用客户端发起的、不满足加密强度要求的会话,需要在客户端代理装置和网关设备之间建立额外的加密隧道,一方面客户端代理装置通过加密隧道对会话报文进行封装以满足链路安全性需求,另一方面通过客户端代理装置在会话协商报文上添加的隧道报文头来向网关设备传递鉴权信息,从而满足鉴权需求。从而提供了更为完善的方案,使得终端设备上的客户端代理装置能够处理各种应用客户端发起的各类会话。
37.可选地,第二应用客户端对应的鉴权信息被携带在隧道协商报文的报文头的不同位置上,在一种可能的实现方式中,第二应用客户端对应的鉴权信息携带在所述隧道协商报文的应用层报文头中。在其他实现方式中,第二应用客户端对应的鉴权信息携带在所述隧道协商报文的传输层报文头中。
38.可选地,在一种可能的实现方式中,所述应用层报文头是超文本传输协议http头,所述第二应用客户端对应的鉴权信息携带在所述http头的cookie字段中。
39.可选地,在一种可能的实现方式中,所述向所述网关设备发送隧道协商报文之后,所述方法还包括:
40.所述加密隧道建立成功后,通过所述加密隧道传输所述第二会话的后续报文。
41.对于终端设备上的应用客户端发起的、不满足加密强度要求的会话,客户端代理装置通过客户端代理装置和网关设备之间的加密隧道传输会话的后续报文,从而满足链路安全性需求。
42.第二方面,本技术实施例提供了一种访问控制方法。网关设备接收第一协商报文,所述第一协商报文来自于第一客户端代理装置、用于协商建立第一会话,所述第一会话是第一终端设备与第一服务器之间的会话,具体是第一终端设备上的第一应用客户端与第一服务器之间的会话。第一客户端代理装置运行于所述第一终端设备上,所述第一协商报文的传输层报文头中携带鉴权信息。网关设备接收的第一协商报文实际上是第一方面中客户端代理装置修改后的第一协商报文。网关设备根据所述鉴权信息发起第一鉴权。第一鉴权成功后,网关设备不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。
43.网关设备在接收到的会话协商报文的传输层报文头中携带鉴权信息的情况下,在
根据传输层报文头中携带的鉴权信息鉴权成功的情况下,在无需对会话协商报文进行解封装的情况下向服务器转发会话协商报文。由于不进行隧道解封装,节省了因额外隧道加解密带来的开销,有助于提升终端设备和网关设备的处理性能。
44.可选地,在第二方面的一种可能的实现方式中,第一协商报文是tls报文。例如第一协商报文是client hello消息。
45.可选地,在第二方面的一种可能的实现方式中,所述鉴权信息携带在所述第一协商报文的传输层报文头的传输层安全选项tls option字段中。
46.可选地,在第二方面的一种可能的实现方式中,所述传输层报文头中还携带指示信息,所述指示信息使得所述网关设备不对所述第一协商报文进行所述隧道解封装。
47.可选地,在第二方面的一种可能的实现方式中,所述tls option字段符合类型长度值tlv结构,所述tlv结构中的类型t字段用于携带指示信息,所述网关设备根据所述指示信息不对所述修改后的会话协商报文进行tls解封装,所述值v字段用于携带所述鉴权信息。
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.图1为本技术实施例提供的零信任架构下的访问控制系统的示意图;
83.图2为本技术实施例提供的b/s场景下通过cookie携带鉴权令牌信息的示意图;
84.图3为本技术实施例提供的客户端代理装置和网关设备之间通过tls隧道传递鉴权信息的示意图;
85.图4为本技术实施例提供的客户端代理装置和网关设备之间通过https隧道传递鉴权信息的示意图;
86.图5为本技术实施例提供的通过http应用层报文头携带鉴权信息的示意图;
87.图6为本技术实施例提供的访问控制方法的应用场景示意图;
88.图7为本技术实施例提供的一种访问控制方法的流程图;
89.图8为本技术实施例提供的client hello消息解析结果的示意图;
90.图9为本技术实施例提供的应用客户端、客户端代理装置、网关设备三方连接建立过程中所需记录的报文的序列号和确认号的示意图;
91.图10为本技术实施例提供的客户端代理装置对所转发的报文进行调整的详细示意图;
92.图11为本技术实施例提供的另一种访问控制方法的流程图;
93.图12为本技术实施例提供的另一种访问控制方法的流程图;
94.图13为本技术实施例提供的另一种访问控制方法的流程图;
95.图14为本技术实施例提供的访问控制方法的示意图;
96.图15为本技术实施例提供的访问控制方法的示意图;
97.图16为本技术实施例提供的一种终端设备的一种结构示意图;
98.图17为本技术实施例提供的一种终端设备的另一种结构示意图;
99.图18为本技术实施例提供的一种网关设备的结构示意图;
100.图19为本技术实施例提供的另一种网关设备的结构示意图。
具体实施方式
101.如图1所示,基于零信任架构的访问控制系统中通常包括控制器、网关设备和终端设备,其中终端设备中安装有客户端代理装置。当终端设备需要访问受保护的应用资源时,客户端代理装置会先向控制器发起身份鉴权和访问控制请求,身份鉴权和访问控制通过之后控制器将向客户端代理装置发送令牌信息。客户端代理装置再向网关设备发送访问请求,并在访问请求中携带包括上述令牌信息的鉴权信息。网关设备基于访问请求中的鉴权信息对访问发起方进行鉴权,如果鉴权通过,则网关设备建立与服务器连接以传输客户端代理装置和服务器之间的后续业务报文,否则,关闭与客户端代理装置之间的连接。
102.在不同场景中,客户端代理装置都需要解决如何向网关设备传递鉴权信息的问题,以便网关设备使用鉴权信息鉴别当前会话是否有相应的资源访问权限。
103.如图1所示,在b/s场景下,终端设备上的浏览器作为应用客户端访问web应用。在这种场景下,客户端代理装置通过对浏览器cookie的设置,在http协议头的cookie字段中携带令牌信息,如图2所示。
104.如图1所示,与b/s场景不同,在c/s场景下应用形态是非常丰富、复杂的。如以文件传输协议(file transfer protocol,ftp)应用、远程登录(telnet)应用、安全外壳(secure shell,ssh)协议应用、远程桌面协议(remote desktop protocol,rdp)应用为例的明文类应用;如以基于安全套接层的文件传输协议(file transfer protocol via secure socket layer,ftps)、网络套接字(web sockets)为例的加密类应用;如以桌面云对接,小程序为例的私有协议类应用等。如果想通过报文的应用层报文头携带鉴权信息,那么需要在终端设备上对多种应用协议进行适配和修改。相应地在网关设备上也要对协议层进行对应的适配和修改以便于网关设备能够解析和识别出终端设备发送的报文中携带的鉴权信息。因此这种方案的实施难度较高,是不切实际的。
105.针对通过协议层适配来传递鉴权信息这一方案存在的实施难度高的问题,有研究提出如果在客户端同零信任网关之间建立隧道,将鉴权信息封装在隧道报文的报文头中。这样便不需要针对于不同的应用做协议层适配,也可以传递用于鉴权的令牌信息。具体地,客户端代理装置获取来自于同属于一个终端设备的应用客户端的业务报文后,会发起同网关设备之间的隧道建立过程,将鉴权信息封装到隧道中(下面会详细介绍针对不同隧道,如何携带鉴权信息)。网关设备在获取隧道报文时,会先进行解封装隧道报文头,从中提取相关鉴权信息并进行鉴权。如果鉴权失败,网关设备阻断该业务流量;如果鉴权通过,网关设备和提供资源的服务器(提供资源的服务器也被称为“真实服务器”,是相对于代理服务器而言的,零信任网关通过映射虚拟ip地址作为一个代理服务器,替代真实服务器与终端设
备建立连接)建立连接,并对隧道流量解封装后将解封装得到的业务报文发往提供资源的服务器。通过上述过程满足c/s场景下的链路安全和实时鉴权的需求。
106.图3描述了客户端代理装置和网关设备之间通过tls隧道传递鉴权信息的方案。假设受保护网络中存在三个服务器,其中,服务器a通过ip地址10.19.13.181上的7788端口提供tcp服务,服务器b通过ip地址10.88.0.2上的22端口提供ssh服务,以及服务器c通过ip地址10.88.0.2上的80端口提供web服务。根据控制器的配置,上述三项服务均被映射为网关设备的虚拟ip地址10.0.3.11上的8443端口。客户端代理装置在终端设备访问各种应用之前,通过发起身份鉴权和访问控制过程从控制器获得本终端设备和用户允许访问的各服务被映射的虚拟ip地址和端口,以及对应的真实服务器的地址和端口号。
107.客户端代理装置截取终端设备上运行的各种应用发送的业务报文后,发起建立与网关设备间的tls tunnel。客户端代理装置将用于鉴权的令牌信息和真实服务器信息携带在首个tls握手报文client hello的tls扩展选项(option)中。例如,定义tls扩展类型为2000(该扩展类型不在默认的tls选项中)。携带的数据内容解析后如下所示。
108.json_content:
109.{
110."cmd":"open",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
#放通请求
111."time":"1612350008",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
#unix操作系统的时间戳
112."user_token":"xxx",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
#用户令牌
113."app_token":"yyy",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
#应用令牌
114."terminal_id":"zzz"
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
#终端设备的标识(id,identifier)
115."terminal_ip":"10.0.3.10",
ꢀꢀꢀꢀꢀꢀꢀ
#终端设备的ip地址
116."rserver_info":"10.80.0.2:22",
ꢀꢀꢀ
#真实服务器的ip地址和/或端口(port)
117.}
118.网关设备提取相关的鉴权信息进行鉴权,以确认是否允许终端设备访问tls option字段中携带的ip地址10.80.0.2上22端口提供的服务。如果鉴权失败,则关闭网关设备与客户端代理装置之间的当前会话;如果鉴权成功,网关设备则根据tls option选项中获取的真实服务器的信息(即ip地址10.80.0.2和端口号22),发起同真实服务器的连接。然后网关设备完成与客户端代理装置之间的tls隧道建立过程,将后续通过tls隧道接收到的隧道报文进行tls解封装及解密后,向真实服务器转发解封装及解密得到的业务报文。
119.图4描述了客户端代理装置和网关设备之间通过https隧道传递令牌信息的方案。应用场景与附图3类似,具体请参见附图3中的说明。客户端代理装置截取终端设备上运行的应用发送的业务报文后,客户端代理装置发起与网关设备间的https隧道建立过程。https也被称为http over tls/ssl。客户端代理装置将真实服务器的相关信息携带在http应用层的connect方法的统一资源标志符(uniform resource identifier,uri)字段中。如图5所示,例如connect字段的内容携带终端设备当前访问的真实服务器的ip地址10.19.13.181,端口号7788,开放的服务协议tcp。客户端代理装置将令牌信息携带在cookie字段中,令牌信息包括应用token“aef7-a18534f3971bdcbea25
‑”
、和/或用户token信息(图中未示出)等。
120.网关设备采用类似于b/s场景中的协议解析流程,获取https隧道报文的报文头中
携带的令牌信息,并进行令牌鉴权,以确认是否允许终端设备访问connect字段中携带的ip地址10.19.13.181上7788端口提供的tcp服务。如果鉴权失败,则关闭网关设备与客户端代理装置之间当前会话;如果令牌鉴权成功,则根据connect字段中携带的真实服务器的信息(即ip地址10.19.13.181和端口号7788),发起同真实服务器的连接。完成同客户端的https隧道建立过程,将后续通过https隧道接收到的隧道报文解封装并解密后,向真实服务器转发解封装及解密得到的业务报文。
121.如图3或图4所示的方案在c/s场景下,客户端代理装置均需要和网关设备之间建立新的隧道连接。客户端代理装置需要对待发送的业务报文进行封装,网关设备需要进行解封装,而本身tls隧道或https隧道涉及的加解密是非常消耗性能的。如果终端设备上的应用客户端所要访问的应用本身就是加密协议且满足强加密要求,例如ftps协议本身已经是tls加密,在这种情况下完全没有必要再做一层tls隧道封装或https tunnel封装。对于客户端代理装置而言,创建隧道会加大性能开销;对于网关设备而言,并行处理与多个客户端代理装置之间的隧道连接,也带来较大的性能开销。
122.针对图3或图4所示方案存在的性能开销大的问题,本技术实施例提供了一种访问控制方法。在图3或图4所示的方案中,客户端代理装置和网关设备之间建立的隧道连接主要是出于链路安全性和鉴权两方面的考虑。本技术实施例提供的访问控制方法采用以下思路来解决这两方面的考虑。
123.第一方面是如何保障网络数据传输的安全性。客户端代理装置针对应用客户端发起的、满足加密强度要求的会话,在向网关设备转发会话协商报文之前,不需要再做进一步的加密隧道封装,这样便于节省因额外隧道加解密带来的开销。可选地,对于应用客户端发起的、不满足加密强度要求的会话,则再做一层加密隧道封装,例如https隧道封装,通过隧道来保证链路安全性。
124.第二方面是为了解决如何携带鉴权信息的问题。针对本身满足加密要求的待创建会话,客户端代理装置通过修改原有的会话协商报文的传输层报文头以携带鉴权信息,从而复用原有会话协商报文。网关设备从修改后的会话协商报文的传输层报文头中获取鉴权信息并对进行鉴权。如果当前获取的令牌信息非法,网关设备阻断网关设备与客户端代理装置之间的当前会话;如果当前获取的令牌信息合法,网关设备建立同真实服务器的连接,转发真实服务器与应用客户端之间的后续业务报文。从而解决网关设备对访问发起方的鉴权问题。这样客户端代理装置不需要对业务报文进行隧道封装,通过隧道报文头来携带令牌信息,这样便于节省因额外隧道加解密带来的开销。
125.下面结合各个附图对本技术实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
126.附图6是本技术实施例提供的访问控制方法的应用场景的示意图。与附图1、附图3和附图4类似地,附图6所述的场景中包括访问控制系统以及受保护的应用资源。其中访问控制系统包括控制器、网关设备和终端设备三类设备。受保护的应用资源包括受保护网络中的三个服务器,其中,服务器a通过ip地址10.19.13.181上的7788端口提供tcp服务,服务器b通过ip地址10.88.0.2上的22端口提供ssh服务,以及服务器c通过ip地址10.88.0.2上的80端口提供web服务。根据控制器的配置,上述三项服务均被映射为网关设备的虚拟ip地址10.0.3.11上的8443端口。
127.控制器用于根据客户端代理装置的请求对终端设备和用户进行访问控制和身份鉴权后,向客户端代理装置下发鉴权信息以及允许访问的资源列表;以及向网关设备下发合法用户对应的控制策略,以便于网关设备根据该控制策略控制终端设备对于受保护的应用资源的访问。
128.终端设备中安装有客户端代理装置。客户端代理装置在终端设备访问各种应用之前,通过身份鉴权和访问控制过程还从控制器获得本终端设备和用户允许访问的各服务被映射的网关设备的虚拟ip地址和端口号,以及对应的真实服务器的地址和端口号。客户端代理装置用于截获本客户端代理装置所在的终端设备上应用客户端发送的报文,根据报文发起建立与网关设备之间的连接。
129.本技术实施例仅以终端设备a和终端设备b这两个终端设备为例进行说明,在有更多终端设备的情况下,其他终端设备的功能与终端设备a或终端设备b类似。终端设备a中安装客户端代理装置a,终端设备b中安装客户端代理装置b。
130.网关设备用于从客户端代理装置发送的流量中提取鉴权信息,发起鉴权,根据鉴权结果执行对应的动作,例如在鉴权失败时阻断网关设备与客户端代理装置之间的连接,或者在鉴权成功时与服务器建立连接,通过与服务器之间的连接传输应用客户端与服务器之间的后续业务报文。
131.本技术实施例主要对客户端代理装置和网关设备进行了以下改进。
132.本技术实施例中提供的客户端代理装置在截获到应用客户端用于创建与服务器之间的会话的会话协商报文后,针对待创建的会话满足加密强度要求的情况,在该会话协商报文的传输层报文头中添加鉴权信息以得到修改后的会话协商报文。客户端代理装置向网关设备发送修改后的会话协商报文,以便于网关设备根据修改后的会话协商报文传输层报文头中携带的鉴权信息对终端设备和用户进行鉴权。这样通过复用应用客户端发送的会话协商报文实现传递鉴权信息的目的,无需额外发起隧道建立过程,通过应用客户端发起的隧道建立过程中的会话协商报文来传递鉴权信息,从而节省了终端设备和网关设备上进行额外隧道协商所耗费的处理资源,有助于降低终端设备和网关设备的性能开销。
133.本技术实施例中提供的网关装置接收到来自于客户端代理装置的会话协商报文后,确定会话协商报文的传输层报文头中是否携带鉴权信息。如果会话协商报文的传输层报文头中携带鉴权信息,则网关设备根据会话协商报文的传输层报文头中携带的鉴权信息发起鉴权。在鉴权成功的情况下,不对会话协商报文进行解封装而转发。这样对于应用客户端发起的待创建的会话满足加密强度要求的情况,网关设备无需对会话协商报文进行隧道解封装,再从应用层获取鉴权信息,从而能够节约处理资源,提高鉴权效率和处理性能。
134.可选地,针对应用客户端和服务器之间待创建的会话满足加密强度要求的情况,在鉴权成功之后,客户端代理装置和网关设备之间可以从代理模式切换为以流模式传输后续的业务报文,无需对业务报文执行隧道传输或者代理模式转发,能够节省了终端设备和网关设备上用于执行隧道相关的封装、解封装过程、以及可能涉及到的加解密处理所耗费的处理资源,从而降低了终端设备和网关设备的性能开销,有助于提高访问控制系统的整体性能。
135.附图7是本技术实施例提供的访问控制方法的流程图,包括步骤701至步骤704。附图7所示的流程图主要从终端设备中客户端代理装置的角度对本技术实施例提供的访问控
制方法进行说明。可选地,附图7所描述的实施例中的终端设备是附图6中的终端设备a或者终端设备b,相应地,在附图7中的终端设备是附图6的终端设备a的情况下,图7所描述的实施例中的客户端代理装置是附图6中的客户端代理装置a,在附图7中的终端设备是附图6的终端设备b的情况下,图7所描述的实施例中的客户端代理装置是附图6中的客户端代理装置b。
136.步骤701,客户端代理装置截获第一协商报文,所述第一协商报文来自于终端设备上的第一应用客户端,且用于协商建立与第一服务器之间的第一会话,其中第一会话满足加密强度要求。
137.在零信任c/s场景下,终端设备默认开启本终端设备安装的客户端代理装置,在终端设备中的应用客户端发起连接时,客户端代理装置截获应用客户端发送的会话协商报文。
138.在本技术实施例中,“应用客户端”是指安装在终端设备上的应用客户端软件,例如以filezilla为例的ftp客户端软件(filezilla即可以作为ftp客户端软件,也可以作为ftps客户端软件),windows系列操作系统自带的命令行方式的telnet客户端等等。在本技术实施例中,第一协商报文例如是filezilla客户端发起与ftps服务器创建第一会话时,发送的会话协商报文。
139.可选地,客户端代理装置截获会话协商报文的方式与具体的操作系统有关。例如,netfilter是linux内核提供的一个框架,允许以自定义处理程序的形式实现各种与网络相关的操作。netfilter为数据包过滤、网络地址转换和端口转换提供了各种功能和操作。在linux操作系统中,客户端代理装置通过在netfilter加入的hook函数截获来自于应用客户端的会话协商报文以及后续的业务报文。
140.客户端代理装置作为应用客户端与网关设备之间的代理设备,以代理模式分别与应用客户端和网关设备进行通信。对于应用客户端而言,客户端代理装置作为代理服务器的角。对于网关设备而言,客户端代理装置作为代理客户端的角。客户端代理装置在接收到来自于应用客户端的会话协商报文之前,先与应用客户端通过三次握手过程建立tcp连接,通过建立的tcp连接接收会话协商报文。同理在步骤702之前,客户端代理装置与网关设备通过三次握手过程建立tcp连接,在步骤703中通过建立的tcp连接发送修改后的会话协商报文。
141.可选地,由客户端代理装置或者终端设备上的其他组件确定截获到的会话协商报文对应的待创建的会话是否满足加密强度要求。例如,在由客户端代理装置确定待创建会话是否满足加密强度要求的情况下,客户端代理装置首先截获应用客户端产生的某个会话协商报文,对截获的会话协商报文执行步骤701a所示的步骤,在待创建会话满足加密强度要求的情况下,截获的会话协商报文为第一协商报文,待创建的会话为第一会话。
142.在由其他组件确定第一会话是否满足加密强度要求的情况下,客户端代理装置首先截获应用客户端产生的某个报文,由其他组件对截获的会话协商报文执行步骤701a所示的步骤,在待创建会话满足加密强度要求的情况下,截获的会话协商报文是第一协商报文,待创建的会话为第一会话。
143.步骤701a,根据截获的会话协商报文判断待创建的会话是否满足加密强度要求。
144.可选地,客户端代理装置截获到会话协商报文之后,对截获的会话协商报文进行
协议解析,根据会话协商报文的协议类型、携带的与加密强度有关的信息等等,判断所协商的会话是否满足加密强度要求。会话协商报文携带的与加密强度有关的信息包括但不限于协议版本号和/或加密套件标识列表。
145.在本技术实施例中,会话协商报文所协商创建的会话满足加密强度要求的情况包括会话协商报文所创建的会话是加密应用、和/或根据会话协商报文携带的与加密强度有关的信息确定待创建的会话的传输安全性高于预设安全性标准等等。
146.更具体地,会话满足加密强度要求的第一个实例是,截获的会话协商报文中携带指定协议版本号,其中所述指定协议版本号对应的协议版本实现的传输安全性高于预设安全性标准,所述第一会话基于所述协议版本进行数据传输。
147.会话满足加密强度要求的第二个实例是,截获的协商报文包括指定加密套件标识,所述指定加密套件标识用于标识指定加密套件,所述指定加密套件实现的传输安全性高于预设安全性标准,所述第一会话基于所述指定加密套件对应用数据进行加密。
148.在本技术实施例中,会话协商报文所协商创建的会话不满足加密强度要求的情况指的是除了上述满足加密强度要求的情况之外的其他情况。例如会话协商报文所协商创建的会话不满足加密强度要求的情况包括但不限于至少两种场景。第一种场景是客户端代理装置确定出会话协商报文所创建的会话是加密应用、但是根据会话协商报文携带的与加密强度有关的信息确定待创建的会话的传输安全性低于预设安全性标准;第二种场景是客户端代理装置确定出会话协商报文所创建的会话是明文类应用,即非加密应用。
149.在本实施例中以第一协商报文为客户端你好(client hello)消息为例进行举例说明。当应用客户端为ftps客户端时,当ftps客户端请求与ftps服务器建立连接时,先要协商tls层加密参数,即协商tls隧道。遵循现有的tls标准,客户端和服务器之间执行握手过程来协商tls层加密参数,在握手过程中,客户端首先向服务器发送client hello消息,client hello消息中携带协议版本号和加密套件标识列表。
150.客户端代理装置截获到client hello消息之后,解析获得client hello消息中携带的内容,如图8所示。图8用实线框指出了client hello消息的传输层协议头中携带协议版本号和加密套件标识列表,在图8所示的例子中,client hello消息中携带协议版本号是tls 1.2。服务器接收到client hello消息后,基于client hello消息中携带的加密套件标识列表中选择加密套件,后续使用client hello消息中携带的协议版本号对应的协议、以及选择出的加密套件对业务报文进行加密。
151.本技术实施例分别给出的客户端代理装置根据协议版本号判断所述第一会话是否满足加密强度要求的方式(方式一),以及根据根据加密套件标识列表判断所述第一会话是否满足加密强度要求的方式(方式二),这两种方式可以择一选用也可以结合使用。
152.方式一
153.客户端代理装置预先保存的加密强度要求包括协议版本号集合,其中协议版本号集合中的协议版本号对应的协议版本实现的传输安全性高于预设安全性标准。
154.客户端代理装置判断所述会话协商报文中携带的协议版本号是否属于所述协议版本号集合。如果所述会话协商报文中携带的协议版本号属于所述协议版本号集合,确定所述会话满足加密强度要求;如果所述会话协商报文中携带的协议版本号不属于所述协议版本号集合,确定所述会话不满足加密强度要求。
155.例如,加密强度要求包括的协议版本号集合是{tls 1.2,tls 1.3},如果client hello消息中携带协议版本号是tls 1.2,属于协议版本号集合,则确定待建立的会话满足加密强度要求。如果client hello消息中携带协议版本号是tls 1.0,不属于协议版本号集合,则确定待建立的会话不满足加密强度要求。
156.方式二
157.客户端代理装置预先保存的加密强度要求包括加密套件标识集合,所述加密套件标识集合中的加密套件标识对应的加密套件实现的传输安全性高于预设安全性标准。
158.客户端代理装置判断所述第一协商报文中携带的加密套件标识列表是否包括加密套件标识集合中的加密套件标识。如果所述第一协商报文中携带的加密套件标识列表包括加密套件标识集合中的加密套件标识,客户端代理装置确定所述第一会话满足加密强度要求;如果所述第一协商报文中携带的加密套件标识列表不包括加密套件标识集合中的加密套件标识,客户端代理装置确定所述第一会话不满足加密强度要求。
159.例如,加密强度要求包括的加密套件标识集合是
160.{tls_ecdhe_rsa_with_aes_128_cbc_sha,
161.tls_ecdhe_ecdsa_with_aes_256_gcm_sha384
162.……
},
163.该集合中包括了加密等级为中级或高级的加密套件标识。
164.如果client hello消息中携带的加密套件标识列表中包括上述加密套件标识集合中的一个或多个加密套件标识,则确定待建立的会话满足加密强度要求。如果client hello消息中携带的加密套件标识列表中不包括上述加密套件标识集合中的任意一个加密套件标识,则确定待建立的会话不满足加密强度要求。
165.客户端代理装置根据第一协商报文确定第一会话满足加密强度要求,执行步骤702。
166.步骤702,客户端代理装置在所述第一协商报文的传输层报文头中添加第一应用客户端对应的鉴权信息以得到修改后的第一协商报文。
167.在应用客户端与服务器待建立的会话满足加密强度要求的情况下,说明该会话本身就是有加密机制的,可以保证链路安全性,在这种情况下客户端代理装置无需与网关设备之间建立额外加密隧道来保证链路安全性。为了传递鉴权信息,客户端代理装置可以复用原有的会话协商报文来携带鉴权信息。仍以client hello消息为例,客户端代理装置在client hello消息的传输层报文头中增加新的tls选项(option)字段,在新增的tls option字段中携带鉴权信息。一种具体的实施方式,鉴权信息包括但不限于表1所示的几项信息之一,或者这几项信息中至少两项信息的组合。
168.表1
[0169][0170]
可选地,鉴权信息还包括时间戳、终端设备的ip地址、终端设备的当前工作状态、或安全扫描结果等等,在这里不再一一列举。
[0171]
可选地,为了网关设备在传输层报文头中携带鉴权信息的情况下,与附图3所示的方案相区分,确认客户端代理装置发送的会话协商报文是在待创建会话满足加密强度要求的情况下复用的会话协商报文,或是额外封装得到的隧道报文,以便于在复用会话协商报文的情况下不再进行解封装,客户端代理装置在复用会话协商报文的情况下,采用默认或明示的方式指示网关设备不对所述第一协商报文进行隧道解封装。
[0172]
例如,默认方式是,只要会话协商报文的传输层报文头中携带鉴权信息,则说明待创建会话满足加密强度要求,网关设备不对所述第一协商报文进行隧道解封装。如果待创建会话不满足加密强度要求,则客户端代理装置对会话协商报文进行隧道封装后,在隧道报文的应用层报文头中携带鉴权信息。
[0173]
例如,明示方式是,客户端代理装置在待创建会话满足加密强度要求的情况下,在除了在第一协商报文的传输层报文头中携带鉴权信息,还携带指示信息。指示信息使得网关设备不对所述修改后的第一协商报文进行解封装。这里不对指示信息在传输层报文头中的具体位置进行限定。
[0174]
一种具体的实施方式,本技术实施例还提供了一种携带指示信息的方式是在鉴权信息携带在tls option字段中的情况下,tls option字段符合tlv结构。其中tlv结构中的类型t字段用于携带指示信息,所述指示信息以使所述网关设备不对所述修改后的会话协商报文进行tls解封装处理,所述值v字段用于携带所述鉴权信息。
[0175]
步骤703,客户端代理装置向网关设备发送修改后的第一协商报文。
[0176]
本技术实施例客户端代理装置截获到第一应用客户端发起的满足加密强度要求的会话的会话协商报文后,在会话协商报文的传输层报文头中添加鉴权信息以得到修改后的会话协商报文,向网关设备发送修改后的会话协商报文,以便于网关设备根据会话协商报文传输层报文头中携带的鉴权信息对终端设备和用户进行鉴权。这样,客户端代理装置和网关设备之间通过复用应用客户端原本的会话协商报文来实现传递鉴权信息的目的,这样在同时保证连接安全性和传递鉴权信息的前提下,客户端代理装置和网关设备无需建立额外的加密隧道,节省了终端设备和网关设备上进行额外隧道协商所耗费的处理资源,有助于降低终端设备和网关设备的性能开销。
[0177]
可选地,在网关设备根据步骤703发送的修改后的第一协商报文对会话发起方进行鉴权,如果鉴权成功,则客户端代理装置执行步骤704至步骤705。
[0178]
步骤704,客户端代理装置接收所述网关设备发送的协商成功报文,所述协商成功报文指示所述第一会话建立成功。
[0179]
网关设备根据步骤703中发送的修改后的会话协商报文中携带的鉴权信息对终端设备和用户鉴权成功之后,通过网关设备与客户端代理装置之间的tcp连接向客户端代理装置发送协商成功报文,从而完成与客户端代理装置之间的tls握手。客户端代理装置通过与第一应用客户端之间的tcp连接向应用客户端发送协商成功报文,从而完成与第一应用客户端之间的tls握手。这样第一应用客户端和第一服务器之间的会话实质上创建成功,第一应用客户端和第一服务器之间可以开始通过创建的会话传输业务报文,客户端代理装置在步骤704之后执行步骤705。
[0180]
步骤705,客户端代理装置转发所述第一会话的后续业务报文。
[0181]
如果网关设备根据修改后的会话协商报文中携带的鉴权信息对终端设备和用户鉴权成功,客户端代理装置无需建立额外的加密隧道来传输第一应用客户端和网关设备之间的第一会话的后续的业务报文,节省了终端设备和网关设备上用于执行隧道封装、或解封装过程、以及可能涉及到的加解密处理所耗费的处理资源,从而降低了终端设备和网关设备的性能开销,有助于提高访问控制系统的整体性能。
[0182]
仍以前面ftps客户端软件为例对第一会话的后续业务报文进行举例说明。第一会话的后续业务报文包括:ftps客户端软件向ftps服务器发送文件下载请求,下载请求中携带文件名以及下载路径等参数,ftps服务器向ftps客户端软件回应所请求的资源文件;或者ftps客户端软件向ftps服务器发送文件上传请求,上传请求中携带文件大小以及上传路径等参数,ftps服务器向ftps客户端软件回应文件上传成功或失败的结果等等。
[0183]
客户端代理装置中继转发应用客户端与服务器之间所创建的会话的后续业务报文。可选地,客户端代理装置可以采用多种不同方式传输应用客户端与服务器之间会话的后续报文,本技术实施例仅以两种方式进行举例说明。
[0184]
方式一
[0185]
客户端代理装置继续以代理模式传输所述第一会话的后续报文。
[0186]
参考前面所提及的,客户端代理装置以代理模式工作于应用客户端和网关设备之间,客户端代理装置分别维护与应用客户端之间的tcp连接,以及于网关设备之间的tcp连接。由于这两个tcp连接是通过独立的三次握手过程建立的,因此这两个tcp连接中传输的报文中的序列号和确认号是相互独立的。在步骤705之后,客户端代理装置传输应用客户端与服务器之间会话的后续报文的一种实现方式是,客户端代理装置分别通过这两个tcp连接继续对应用客户端和网关设备之间的业务报文进行传输。例如,客户端代理装置对应用客户端发送的业务报文进行传输层解析,获得传输层载荷,然后基于客户端代理装置维护的与网关设备之间的tcp连接相关的状态信息,在解析得到的传输层载荷上添加传输层报文头获得新的业务报文,再通过与网关设备之间的tcp连接向网关设备发送新的业务报文。相反方向的业务报文传输原理类似,在这里不再展开描述。
[0187]
方式二
[0188]
客户端代理装置以流模式,所述第一会话的后续报文。具体地,向所述网关设备转发来自于所述第一应用客户端的所述第一会话的后续报文,以及向所述第一应用客户端转发来自于所述网关设备的所述第一会话的后续报文,其中所述来自于所述网关设备的所述第一会话的后续报文响应于所述来自于所述第一应用客户端的所述第一会话的后续报文。
[0189]
正如前面所提及的,在应用客户端与服务器之间待创建的会话满足加密强度要求
的情况下,客户端代理装置可以复用应用客户端发送的报文而无需隧道封装。这就意味着在鉴权成功之后,客户端代理装置在后续业务报文的转发过程中,针对一次转发过程来说,向网关设备转发的业务报文(转发后的报文)与从应用客户端接收的报文(转发前的报文)所携带的数据是相同的,仅仅是报文序列(syn)号和确认(ack)号可能存在差异。可选地,基于这种考虑,为了进一步节省客户端代理装置上处理资源,在鉴权成功后,客户端代理装置从代理模式转换为流模式,只要在转发时对后续报文的序列号和确认号进行调整,就可以使得应用客户端和服务器在会话不中断的情况下对业务报文进行正确的重组。而不必仍然维持以代理模式工作于应用客户端和网关设备之间。
[0190]
为了得到实现流模式转发所需要的客户端代理装置转发报文时前后序列号和确认号的差值,客户端代理装置需要记录以代理模式工作时两个独立的三次握手过程中,syn报文的顺序号和确认号、以及syn+ack报文的顺序号,以便于根据两个三次握手过程中相应报文的顺序号差值和确认号差值来调整后续报文的序列号和确认号。附图9是应用客户端、客户端代理装置、网关设备三方连接建立过程中所需记录的报文的序列号和确认号的示意图。
[0191]
如图9所示,客户端代理装置记录应用客户端发送的syn报文的序列号和确认号、客户端代理装置作为代理客户端发出的syn报文的序列号和确认号、服务器发出的syn+ack报文的序列号(服务器发出的syn+ack报文的序列号等同于客户端代理装置作为代理客户端发出的syn包的序列号),客户端代理装置作为代理服务器发出的syn+ack报文的序列号(客户端代理装置作为代理服务器发出的syn+ack报文的确认号等同于应用客户端发出的syn报文的序列号)。
[0192]
客户端代理装置根据上述记录的信息,确定出转发前后报文的序列号差值和确认号差值。
[0193]
例如,以seq_req_offset代表客户端代理装置转发来自于应用客户端的报文前后的序列号差值,seq_req_offset的值为客户端代理装置作为代理客户端发出的syn包的序列号和应用客户端发出的syn包的序列号之差。
[0194]
seq_req_offset=pc_syn_seq-c_syn_seq
[0195]
例如,以ack_req_offset代表客户端代理装置转发来自于应用客户端的报文前后的确认号差值,ack_req_offset的值为客户端代理装置作为代理客户端发出的syn包的确认号和应用客户端发出的syn包的确认号之差。
[0196]
ack_req_offset=pc_syn_ack-c_syn_ack
[0197]
例如,以seq_resp_offset代表客户端代理装置转发来自于服务器的报文前后的序列号差值,seq_resp_offset的值为客户端代理装置作为代理服务器发出的syn+ack报文的序列号与服务端发出的syn+ack报文的序列号之差。
[0198]
seq_resp_offset=ps_syn+ack_seq-s_syn+ack_seq
[0199]
例如,以ack_resp_offset代表客户端代理装置转发来自于服务器的报文前后的确认号差值,ack_resp_offset的值为客户端代理装置作为代理服务器发出的syn+ack报文的确认号与服务器发出的syn+ack报文的确认号之差。
[0200]
ack_resp_offset=ps_syn+ack_ack-s_syn+ack_ack=c_syn_seq-pc_syn_seq
[0201]
由于客户端代理装置作为代理服务器发出的syn+ack报文的确认号等同于应用客
户端发出的syn报文的序列号,同时,服务器发出的syn+ack报文的确认号等同于客户端代理装置作为代理客户端发出的syn包的序列号。因此ack_resp_offset的值为应用客户端发出的syn报文的序列号与客户端代理装置作为代理客户端发出的syn包的序列号之差。
[0202]
进一步,客户端代理装置在流模式报文转发过程中使用上述差值对应用客户端发送的业务报文(简称为“客户端业务报文”)的序列号和确认号进行调整,对来自于服务器的、响应于客户端业务报文的业务报文(简称为“服务器业务报文”)的序列号和确认号进行调整。图10是本技术实施例提供的客户端代理装置对所转发的报文进行调整的详细示意图。
[0203]
在附图10中,从左至右方向依次是应用客户端,客户端代理装置和网关设备。其中应用客户端和客户端代理装置位于终端设备中。
[0204]
可选地,图10中的应用客户端位于附图6中终端设备a或终端设备b中,或者是附图8或附图9中的应用客户端,例如前面提及的ftps客户端filezilla。
[0205]
图10中的客户端代理装置是附图6中客户端代理装置a或客户端代理装置b,或者附图8或附图9中的客户端代理装置。
[0206]
图10中的网关设备是附图6、附图7或附图8中的网关设备。
[0207]
参照附图10,首先以从左到右的方向,对客户端代理装置对应用客户端发送的三次握手之后的报文进行调整的过程进行说明。假定应用客户端发送的报文(用tcp_packet a表示)的序列号用c_seq表示,确认号用c_ack表示。假定客户端代理装置对tcp_packet a的序列号和确认号调整后得到的报文用tcp_packet b表示。
[0208]
客户端代理装置将tcp_packet a的序列号c_seq与上述客户端代理装置转发来自于应用客户端的报文前后的序列号差值seq_req_offset、以及增加tls选项字段的长度引发的偏移量(记为tls_optionlen)相加,得到tcp_packet b的序列号。即tcp_packet b的序列号的取值为c_seq+seq_req_offset+tls_optionlen。
[0209]
客户端代理装置将tcp_packet a的确认号c_ack与上述客户端代理装置转发来自于应用客户端的报文前后的确认号差值ack_req_offset相加,得到tcp_packet b的确认号。即tcp_packet b的确认号的取值为c_ack+ack_req_offset。
[0210]
接下来以从右到左的方向,对客户端代理装置对网关设备发送的三次握手之后的报文进行调整的过程进行说明。假定网关设备发送的报文(用tcp_packet c表示)的序列号用s_seq表示,确认号用s_ack表示。假定客户端代理装置对tcp_packet c的序列号和确认号调整后得到的报文用tcp_packet d表示。
[0211]
客户端代理装置将tcp_packet c的序列号s_seq与上述客户端代理装置转发来自于服务器的报文前后的序列号差值seq_resp_offset相加,得到tcp_packet d的序列号。即tcp_packet d的序列号的取值为s_seq+seq_resp_offset。
[0212]
客户端代理装置将tcp_packet c的确认号s_ack与上述客户端代理装置转发来自于应用客户端的报文前后的确认号差值ack_req_offset相加,再减去tls选项字段的长度引发的偏移量(记为tls_optionlen),得到tcp_packet d的确认号。即tcp_packet b的确认号的取值为s_ack+ack_resp_offset-tls_optionlen。
[0213]
表2对附图9和附图10中的一些符号进行简单说明。
[0214]
表2
[0215][0216][0217]
附图11是本技术实施例提供的访问控制方法的流程图,包括步骤111至步骤115。附图11和附图7都是从客户端代理装置的角度对本技术实施例提供的访问控制方法进行描述。附图11与附图7的不同之处是附图7以终端设备上的第一应用客户端发送的第一协商报文为例,对待创建的会话满足加密强度要求的情况下的访问控制方法进行说明,而附图11以终端设备上的第二应用客户端发送的第二协商报文为例,对待创建的会话不满足加密强度要求的情况下的访问控制方法进行说明,作为对附图7所描述的实施例的可选补充。附图11的应用场景与附图7类似,在这里不再重复。
[0218]
步骤111,客户端代理装置截获第二协商报文,所述第二协商报文来自于终端设备上的第二应用客户端,且用于协商建立与第二服务器之间的第二会话,第二会话不满足加密强度要求。
[0219]
与步骤701类似地,可选地,客户端代理装置或者其他组件来确定待创建的会话是否满足加密强度要求的步骤。例如,在由客户端代理装置确定待创建的会话是否满足加密强度要求的情况下,客户端代理装置截获应用客户端产生的会话协商报文,并对其中的会话协商报文执行步骤111a所示的步骤。在由其他组件确定待创建的会话是否满足加密强度要求的情况下,其他组件对截获的的会话协商报文执行步骤111a所示的步骤后,将不满足加密强度要求的待创建的会话的协商报文发送给客户端代理装置。
[0220]
在本技术实施例中,第二协商报文例如是telnet客户端发起与telnet服务器创建第二会话时,发送的会话协商报文。
[0221]
步骤111a,根据截获的会话协商报文判断待创建的会话是否满足加密强度要求。
[0222]
用户在telnet客户端中输入命令,例如“telnet 192.168.10.132”,其中192.168.10.132是telnet服务器的ip地址。telnet客户端与telnet服务器通过三次握手建立tcp连接,然后提示用户输入用户名和密码来登录telnet服务器。登录成功后,用户可以在telnet客户端中输入控制命令,例如显示目录列表所用的命令ls等等。第二协商报文是syn报文。
[0223]
在本技术实施例中,客户端代理装置根据第二协商报文确定所协商创建的会话是非加密应用,这种情况下不满足加密要求。
[0224]
在本技术实施中,客户端代理装置根据第二协商报文判断第二会话不满足加密强度要求,则执行步骤112。
[0225]
步骤112,客户端代理装置对第二协商报文进行隧道封装得到隧道协商报文,所述隧道协商报文的报文头包括所述第二应用客户端对应的鉴权信息。该隧道协商报文用于协商建立所述客户端代理装置与所述网关设备之间的加密隧道。
[0226]
步骤113,客户端代理装置向所述网关设备发送所述隧道协商报文。
[0227]
可选地,在待创建的第二会话不满足加密强度要求的情况下,客户端代理装置与网关设备进行隧道协商,协商建立客户端代理装置与网关设备之间的加密隧道。例如附图3或附图4所示的tls隧道或https隧道。如果客户端代理装置与网关设备之间建立tls隧道,则客户端代理装置在client hello消息的tls option字段中携带鉴权信息。如果客户端代理装置与网关设备之间建立https隧道,则客户端代理装置在应用层报文头的connect字段和cookie字段中携带鉴权信息
[0228]
一方面通过隧道协商报文来携带鉴权信息,以便于网关设备利用隧道协商报文中携带的鉴权信息对终端设备和用户进行鉴权,另一方面,通过协商建立的加密隧道封装来自于telnet客户端的业务报文以及telnet服务器返回的业务报文,以满足链路安全要求。
[0229]
客户端代理装置发送隧道协商报文后,接收所述网关设备对应发送的隧道建立成功报文,所述隧道建立成功报文指示所述加密隧道建立成功。
[0230]
步骤114,加密隧道建立成功后,客户端代理装置通过所述加密隧道传输所述第二会话的后续报文。
[0231]
一方面,客户端代理装置通过所述加密隧道向所述网关设备发送来自于所述第二应用客户端的所述第二会话的后续报文。具体地,客户端代理装置截获到来自于所述第二应用客户端的所述第二会话的后续报文后,根据步骤114协商建立的加密隧道对来自于所述第二应用客户端的所述第二会话的后续报文进行封装得到隧道报文,向网关设备发送隧道报文。可选地,网关设备接收到隧道报文后对隧道报文解封装,向第二服务器发送解封装得到的报文。
[0232]
另一方面,客户端代理装置通过所述加密隧道接收来自于所述网关设备的所述第二会话的后续报文。具体地,客户端代理装置接收来自于网关设备的隧道报文,对接收到的隧道报文进行解封装得到来自于所述第二服务器的所述第二会话的后续报文,向所述第二应用客户端发送解封装得到的所述来自于所述网关设备的所述第二会话的后续报文。
[0233]
步骤111的实现过程与附图7中的步骤701基本类似,步骤112中涉及的鉴权信息程与附图7中的步骤702中涉及的鉴权信息也有类似之处,类似之处请参照上述实施例中步骤701和步骤702的相关说明,在这里不再重复说明。
[0234]
本技术实施例提供的访问控制方法,客户端代理装置截获到第二应用客户端发起的不满足加密强度要求的会话的会话协商报文后,与网关设备协商建立额外的加密隧道,一方面通过隧道协商报文来携带鉴权信息,以便于网关设备利用隧道协商报文中携带的鉴权信息对终端设备和用户进行鉴权,另一方面,通过协商建立的加密隧道封装应用客户端与服务器之间的明文形式的业务报文,保证满足链路安全要求。
[0235]
附图12是本技术实施例提供的访问控制方法的流程图,包括步骤121至步骤126。附图12所示的流程图主要从网关设备的角度对本技术实施例提供的访问控制方法进行说明。可选地,附图12所描述的实施例中的网关设备是附图6至附图11所描述的实施例中的网关设备。附图12中的网关设备与附图6至附图11所描述的实施例中的终端设备或者服务器相配合,实现对终端设备的访问控制。
[0236]
步骤121,网关设备接收第一协商报文,所述第一协商报文来自于第一客户端代理装置、用于协商建立第一会话,所述第一会话是第一终端设备与第一服务器之间的会话,所述第一客户端代理装置运行于第一终端设备上,所述第一协商报文的传输层报文头中携带鉴权信息。
[0237]
可选地,网关设备接收到第一协商报文后,首先判断第一协商报文的传输层报文头中是否携带鉴权信息。例如,网关设备对第一协商报文进行协议解析,尝试获取第一协商报文的传输层报文头中的鉴权信息。例如,当第一协商报文是client hello消息时,网关设备判断client hello消息的传输层报文头中是否存在tls option,如果存在tls option,则从client hello消息的tls option字段中获取其中携带的鉴权信息。关于鉴权信息的说明请参照附图7步骤702中的说明,在这里不重复说明。
[0238]
在第一协商报文的传输层报文头中携带鉴权信息的情况下,则网关设备执行步骤122。
[0239]
步骤122,网关设备根据所述鉴权信息发起第一鉴权。
[0240]
鉴权实现方式有多种,本技术实施例仅以其中两种进行简单介绍。基于鉴权实现细节的调整和修改,可以得到其他多种鉴权实现方式。
[0241]
可选地,一种鉴权方式是网关设备将从第一协商报文的传输层报文头中获取的鉴权信息与此前控制器下发的合法用户对应的控制策略进行比较,判断该第一协商报文的发起方(用户和终端设备)是否允许访问所请求的服务。
[0242]
可选地,合法用户对应的控制策略中的每条策略中包括匹配条件和动作,匹配条件中包括以下一项或多项:一个合法用户的令牌、合法终端设备的标识、该合法用户可使用的应用的令牌以及该合法用户允许访问的服务器的地址信息。动作包括以下一项或多项:允许访问、计费和限流等。
[0243]
可选地,另一种鉴权方式是网关设备向控制器发送从第一协商报文的传输层报文头中获取的鉴权信息,接收控制器返回的鉴权结果。控制器根据存储的策略以及其他鉴权相关信息,例如网络拓扑状态,各相关的资源的状态(例如第一服务器当前的工作状态等等),动态地确定鉴权结果。
[0244]
如果根据上述合法用户对应的控制策略确定该第一协商报文的发起方不允许访问所请求的服务,则确定鉴权失败,如果根据上述合法用户对应的控制策略确定该第一协商报文的发起方允许访问所请求的服务,则确定鉴权成功。
[0245]
如果所述第一鉴权成功,则网关设备执行步骤123、步骤125和步骤126。
[0246]
可选地,如果所述第一鉴权失败,则网关设备执行步骤124。
[0247]
步骤123,网关设备不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。
[0248]
在本实施例中,不对所述第一协商报文进行隧道解封装是指不去除第一协商报文的隧道报文头,也被称为“跳过隧道解封装”或者“省略隧道解封装”。
[0249]
可选地,在本技术实施例中,网关设备根据第一协商报文中携带的指示信息,不对第一协商报文进行隧道解封装。关于指示信息的作用和携带方式,请参照附图7相关实施例步骤702中的描述,在这里不再详述。
[0250]
可选地,向所述第一服务器转发所述第一协商报文至少包括:网关设备直接向第一服务器转发第一协商报文;或者,网关设备从第一协商报文中删除鉴权信息后,向第一服务器转发已删除鉴权信息的第一协商报文。由于鉴权信息是承载在传输层报文头中的,仅删除鉴权信息并不需要进行隧道解封装。
[0251]
仍以第一协商报文是client hello消息为例,网关设备在步骤123中直接向第一服务器转发tls option字段中携带鉴权信息的client hello消息,或者从client hello消息中去除tls option字段,向第一服务器发送已去除tls option字段的client hello消息。
[0252]
可选地,在步骤123之后,网关设备除了建立上述第一连接之外,还建立网关设备与第一客户端代理装置之间的连接,在本实施例中将网关设备与第一客户端代理装置之间的连接简称为第二连接。执行步骤125至步骤126。
[0253]
步骤125,在第一鉴权成功后,成功建立第二连接。
[0254]
步骤126,网关设备通过第一连接和第二连接传输第一会话的后续报文。具体地,网关设备通过所述第二连接接收所述第一客户端代理装置发送的所述第一会话的后续报文,通过所述第一连接向所述第一服务器转发所述来自于所述第一客户端代理装置的所述第一会话的后续报文;
[0255]
通过所述第一连接接收来自于所述第一服务器的所述第一会话的后续报文;通过所述第二连接,向所述第一客户端代理装置转发所述来自于所述第一服务器的所述第一会话的后续报文。
[0256]
步骤124,网关设备终止建立第二连接。即网关设备关闭网关设备与第一客户端代理装置之间的用于传输第一协商报文的连接。
[0257]
在本技术实施例中如果网关设备根据修改后的会话协商报文中携带的鉴权信息对终端设备和用户鉴权成功,第一客户端代理装置和网关设备之间无需建立额外的加密隧道来传输第一会话的后续的业务报文,节省了终端设备和网关设备上用于执行隧道封装、或解封装过程、以及可能涉及到的加解密处理所耗费的处理资源,从而降低了终端设备和网关设备的性能开销,有助于提高访问控制系统的整体性能。
[0258]
网关设备中继转发第一应用客户端与服务器之间所创建的会话的后续业务报文。可选地,网关设备以代理模式进行报文转发。代理模式与客户端代理装置转发报文时的代理模式原理基本类似,请参照附图7所示的实施例中步骤705的相关描述,在这里不再展开
详述。
[0259]
附图13是本技术实施例提供的访问控制方法的流程图,包括步骤131至步骤135。附图13与附图12都是从网关设备的角度对本技术实施例提供的访问控制方法进行描述。附图13与附图12的不同之处是附图12是对会话协商报文的传输层报文头中携带鉴权信息的情况下的访问控制方法进行说明,而附图13是对会话协商报文的传输层报文头中未携带鉴权信息的情况下的访问控制方法进行说明,作为对附图12所描述的实施例的可选补充。
[0260]
步骤131,网关设备接收第二协商报文,所述第二协商报文来自于第二客户端代理装置,用于协商建立与第二服务器的第二会话。所述第二客户端代理装置运行于第二终端设备上,所述第二协商报文的传输层报文头中未携带鉴权信息。
[0261]
可选地,由于一个终端设备上的客户端代理装置能够完成本终端上运行的多个应用客户端的零信任相关功能,因此附图13中的第二终端设备与附图12中的第一终端设备可以是同一终端设备也可以是不同终端设备,附图13中的第二客户端代理装置与附图12中的第一客户端代理装置可以是同一客户端代理装置也可以是不同客户端代理装置。
[0262]
可选地,网关设备采用与步骤121中类似的方法确定第二协商报文的传输层报文头中未携带鉴权信息。网关设备对第二协商报文进行协议解析,确认该会话协商报文的是否是预定协议或预定报文格式。例如当第二协商报文是client hello消息时,网关设备尝试从client hello消息的tls option字段中获取其中携带的鉴权信息。如果client hello消息中不存在tls option字段,则确定client hello消息未携带鉴权信息。
[0263]
如果所述第二协商报文的传输层报文头中未携带鉴权信息,这说明客户端代理装置未能复用会话协商报文传递鉴权信息,在这种情况下会话协商报文实际上是客户端代理装置发起创建额外加密隧道而发送的报文。
[0264]
如果所述第二协商报文的传输层报文头中未携带鉴权信息,则网关设备执行步骤132。
[0265]
步骤131的实现过程与附图121基本类似,步骤132的实现过程与附图122也有类似之处,类似之处请参照上述实施例中步骤121和步骤122的相关说明,在这里不再重复说明。
[0266]
步骤132,网关设备从所述第二协商报文应用层报文头中获取鉴权信息,并根据从所述第二协商报文应用层报文头中获取的鉴权信息发起第二鉴权。
[0267]
可选地,在本技术实施例中应用层报文头包括但不限于http报文头。当然应用层报文头也可以是其他加密应用的报文头。
[0268]
例如,以应用层报文头是https报文头为例,客户端代理装置将真实服务器的地址信息携带在http报文头的connect字段中,将令牌信息携带在cookie字段中的情况下,网关设备将从connect字段以及cookie字段中读取的数据作为鉴权信息。
[0269]
关于鉴权过程的细节请参照附图12中步骤122的描述,在这里不再详述。
[0270]
如果所述第一鉴权过程成功,则网关设备执行步骤133、步骤134和步骤135;如果所述第二鉴权失败,则网关设备执行步骤136。
[0271]
步骤133,网关设备对所述第二协商报文进行隧道解封装,向所述第二服务器发送解封装得到的报文,以便于建立第三连接,所述第三连接是所述网关设备与所述第二服务器之间的连接。
[0272]
步骤134,网关设备建立网关设备与所述第二客户端代理装置之间的加密隧道。
[0273]
步骤135,网关设备通过所述加密隧道和所述第三连接传输所述第二会话的后续报文。
[0274]
具体地,网关设备通过所述加密隧道接收所述第二客户端代理装置后续发送的第二会话的后续报文。网关设备对接收到的隧道进行解封装以获得来自于所述第二客户端代理装置的所述第二会话的后续报文,通过所述第三连接向所述第二服务器转发所述来自于所述第二客户端代理装置的所述第二会话的后续报文。
[0275]
网关设备通过第三连接接收来自于所述第二服务器的所述第二会话的后续报文,其中所述来自于所述第二服务器的所述第二会话的后续报文响应于所述来自于所述第二客户端代理装置的所述第二会话的后续报文。网关设备对所述来自于所述第二服务器的所述第二会话的后续报文进行隧道封装后,向所述第二客户端代理装置发送封装获得的隧道报文。
[0276]
步骤136,网关设备终止建立与所述第二客户端代理装置之间的加密隧道。
[0277]
本技术实施例提供的访问控制方法,网关设备未能从会话协商报文的报文头中获取鉴权信息的情况下,从实际作为隧道协商报文的会话协商报文的应用层报文头中获取鉴权信息。在鉴权成功的情况下,网关设备通过与客户端代理装置之间额外建立的加密隧道传输应用客户端与服务器之间的明文形式的业务报文,保证满足链路安全要求。
[0278]
附图14是本技术实施例提供的访问控制方法的示意图。图14以时序图的方式对待创建的会话满足加密强度要求的情况下,应用客户端、客户端代理装置、网关设备、服务器、控制器之间的交互过程进行说明。附图14与附图7、附图12分别以不同的角度,对同一场景、即待创建的会话满足加密强度要求的情况下的访问控制方法进行描述,这些实施例可以相互参照,类似的细节不重复详述。
[0279]
如附图14所示,终端设备上的ftps客户端向ftps服务器发起创建会话。ftps客户端发送的会话协商报文为client hello消息。同一终端设备上的客户端代理装置根据client hello消息中携带的与加密强度有关的信息,如协议版本号和/或加密套件标识列表,确定所协商的会话满足加密强度要求时,在client hello消息中新增tls option字段,在tls option字段中携带鉴权信息。客户端代理装置向网关设备发送tls option字段中携带鉴权信息的client hello消息。
[0280]
网关设备对接收到的client hello消息进行解析,从tls option字段中提取鉴权信息,根据鉴权信息与控制器交互从而完成鉴权。如果鉴权失败,则网关设备终止建立与客户端代理装置之间的连接。客户端代理装置继而关闭与ftps客户端之间的连接。如果鉴权成功,则网关设备建立与ftps服务器之间的连接以及完成与客户端代理装置之间的tls握手,客户端代理装置继而完成与ftps客户端之间的tls握手。客户端代理装置记录对后续业务报文的序列号和确认号进行调整所需的信息,从代理模式切换为流模式。
[0281]
客户端代理装置截获ftps客户端发送的ftps业务报文(简称为“客户端ftps业务报文”),对客户端ftps业务报文的序列号和确认号进行调整后得到调整后的客户端ftps业务报文,向网关设备发送调整后的客户端ftps业务报文。网关设备向ftps服务器转发调整后的客户端ftps业务报文。
[0282]
客户端代理装置接收网关设备转发的ftps服务器响应的ftps业务报文(简称为“服务器ftps业务报文”),对服务器ftps业务报文的序列号和确认号进行调整后,得到调整
后的ftps服务器ftps业务报文,向ftps客户端发送调整后的ftps服务器ftps业务报文。
[0283]
附图15是本技术实施例提供的访问控制方法的示意图。图15以时序图的方式对待创建的会话不满足加密强度要求的情况下,应用客户端、客户端代理装置、网关设备、服务器、控制器之间的交互过程进行说明。附图15与附图11、附图13分别以不同的角度,对同一场景、即待创建的会话不满足加密强度要求的情况下的访问控制方法进行描述,因此这些实施例可以相互参照,类似的细节不重复详述。
[0284]
如附图15所示,终端设备上的telnet客户端向telnet服务器发起创建会话。telnet客户端发送的会话协商报文为syn报文。同一终端设备上的客户端代理装置根据会话协商报文确定出待创建的会话是非加密应用,不满足加密要求。客户端代理装置与网关设备进行隧道协商,协商建立https隧道,以便于对业务报文加密以保障链路安全。客户端代理装置在隧道协商报文http头的connect字段和cookie字段中携带鉴权信息(如附图5所示)。
[0285]
网关设备对接收到的隧道协商报文进行解析,从隧道协商报文的connect字段和cookie字段中提取鉴权信息,根据鉴权信息与控制器交互从而完成鉴权过程。如果鉴权失败,则网关设备终止建立与客户端代理装置之间的连接。客户端代理装置继而关闭与telnet客户端之间的连接。如果鉴权成功,则网关设备建立与telnet服务器之间的连接,以及网关设备完成与客户端代理装置之间的隧道建立过程。
[0286]
客户端代理装置截获telnet客户端发送的telnet业务报文(简称为“客户端telnet业务报文”),对客户端telnet业务报文进行https隧道封装后向网关设备发送封装得到的隧道报文。
[0287]
网关设备通过https加密隧道接收客户端代理装置发送的隧道报文,并对接收到的隧道报文进行解封装后得到客户端telnet业务报文,向telnet服务器转发解封装得到的客户端telnet业务报文。
[0288]
网关设备接收来自于telnet服务器的telnet业务报文(简称为“服务器telnet业务报文”),其中服务器telnet业务报文响应于客户端telnet业务报文。网关设备对服务器telnet业务报文进行隧道封装后,向telnet客户端代理装置发送封装获得的隧道报文。
[0289]
客户端代理装置通过加密隧道接收来自于所述网关设备的隧道报文,并对接收到的隧道报文进行解封装后得到服务器telnet业务报文。客户端代理向telnet客户端发送解封装得到的服务器telnet业务报文。
[0290]
附图16是本技术实施例提供的一种终端设备的结构示意图。图16所示的终端设备包括存储器162和至少一个处理器161。
[0291]
可选地,处理器161通过读取存储器162中保存的指令生成客户端代理装置实现上述实施例中的方法,或者,处理器161也可以通过内部存储的指令生成客户端代理装置实现上述实施例中的方法。在处理器161通过读取存储器162中保存的指令实现上述实施例中的方法的情况下,存储器162中保存实现本技术上述实施例中客户端代理装置的指令。
[0292]
具有附图16所示结构的终端设备生成的客户端代理装置实现上述实施例描述的方案中客户端代理装置的功能。该客户端代理装置针对图16的终端设备中的应用客户端发起的、满足加密强度要求的会话,在向网关设备转发会话协商报文之前,在该会话协商报文的传输层报文头中携带鉴权信息,不需要再做进一步的加密隧道封装,这样便于节省因额
外隧道加解密带来的开销。可选地,该客户端代理装置执行图6、图7、图9、图10、图11、图14或图15相关实施例中描述的客户端代理装置的功能,与网关设备相互配合,降低访问控制过程中终端设备和网关设备的性能开销。
[0293]
存储器162包括但不限于是随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、快闪存储器、或光存储器等。存储器162中保存有操作系统的代码。
[0294]
存储器162中存储的程序指令被所述至少一个处理器161读取后,终端设备生成的客户端代理装置执行以下操作:
[0295]
截获第一协商报文,所述第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是所述第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求;
[0296]
在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文;
[0297]
向网关设备发送修改后的第一协商报文。
[0298]
可选地,客户端代理装置在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文的详细过程,向网关设备发送修改后的第一协商报文的详细过程请参照前面附图7、8、9、10相关实施例的描述,在这里不再重复描述。
[0299]
可选地,对于终端设备中的应用客户端发起的、不满足加密强度要求的会话的情况,终端设备对会话协商报文的处理过程请参照前面附图11以及相关实施例的描述,在这里不再重复描述。
[0300]
可选地,附图16所示的终端设备还包括网络接口163。网络接口163可以是有线接口,例如光纤分布式数据接口(fiber distributed data interface,fddi)、千兆以太网(gigabit ethernet,ge)接口;网络接口163也可以是无线接口。网络接口163用于在附图6、7、8、9、10或图11所示的实施例中向网关设备发送报文或接收网关设备发送的报文。
[0301]
可选地,附图16所示的终端设备还包括总线164,上述处理器161、存储器162通常通过总线164相互连接,也可以采用其他方式相互连接。
[0302]
可选地,防护系统还包括输入输出接口165,输入输出接口165用于与输入设备连接,接收用户通过输入设备输入的身份信息。输入设备包括但不限于键盘、触摸屏、麦克风等等。输入输出接口165还用于与输出设备连接,输出处理器161的访问控制相关的日志或统计信息,例如哪些应用的用户鉴权失败、哪些应用的用户鉴权成功等等。输出设备包括但不限于显示器、打印机等等。
[0303]
本技术实施例提供的终端设备上的客户端代理装置截获到应用客户端发起的满足加密强度要求的会话的会话协商报文后,在会话协商报文的传输层报文头中添加鉴权信息以得到修改后的会话协商报文,向网关设备发送修改后的会话协商报文,以便于网关设备根据会话协商报文传输层报文头中携带的鉴权信息对终端设备和用户进行鉴权。这样,客户端代理装置和网关设备之间通过复用应用客户端原本的会话协商报文来实现传递鉴权信息的目的,这样在同时保证连接安全性和传递鉴权信息的前提下,客户端代理装置和
网关设备无需建立额外的加密隧道,节省了终端设备和网关设备上进行额外隧道协商所耗费的处理资源,有助于降低终端设备和网关设备的性能开销。
[0304]
图17是本技术实施例提供的一种客户端代理装置的结构示意图。具有图17所示结构的客户端代理装置实现上述各实施例描述的方案中客户端代理装置的功能。客户端代理装置针对图17所示的客户端代理装置所在的终端设备中的应用客户端发起的、满足加密强度要求的会话,在向网关设备转发会话协商报文之前,在该会话协商报文的传输层报文头中携带鉴权信息,不需要再做进一步的加密隧道封装,这样便于节省因额外隧道加解密带来的开销。可选地,该客户端代理装置是图6、图7、图9、图10、图11、图14或图15相关实施例中描述的客户端代理装置的功能,与网关设备相互配合,能够降低访问控制过程中终端设备和网关设备的性能开销。
[0305]
该客户端代理装置包括处理模块171、发送模块172。
[0306]
处理模块171,用于截获第一协商报文,所述第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是所述第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求;在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文。
[0307]
发送模块172,用于向网关设备发送修改后的第一协商报文。
[0308]
处理模块171在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文的详细过程,或向网关设备发送修改后的第一协商报文的详细过程请参照前面附图7、8、9、10、图14相关实施例的描述,在这里不再重复描述。
[0309]
可选地,发送模块172,还用于所述第一会话建立成功后,以流模式传输所述第一会话的后续报文。
[0310]
可选地,处理模块171,还用于截获第二协商报文,所述第二协商报文来自于所述终端设备上的第二应用客户端、且用于与第二服务器协商建立第二会话,所述第二会话不满足加密强度要求;对所述第二协商报文进行隧道封装得到隧道协商报文,所述隧道协商报文的报文头包括所述第二应用客户端对应的鉴权信息,其中所述隧道协商报文用于协商建立所述客户端代理装置与所述网关设备之间的加密隧道。
[0311]
相应地,发送模块172,还用于向所述网关设备发送所述隧道协商报文。
[0312]
可选地,对于终端设备中的应用客户端发起的、不满足加密强度要求的会话的情况,终端设备对会话协商报文的处理更多详细过程请参照前面附图11、图15以及相关实施例的描述,在这里不再重复描述。
[0313]
图18是本技术实施例提供的一种网关设备的结构示意图。具有附图18所示结构的网关设备实现上述实施例描述的方案中网关设备的功能。可选地,图18所示的网关设备执行图6、图12、图13、图14或图15所示任意一个实施例中描述的网关设备的功能,与客户端代理装置相互配合,能够降低访问控制过程中终端设备和网关设备的性能开销。
[0314]
附图18所示的网关设备包括存储器182和至少一个处理器181。
[0315]
可选地,处理器181通过读取存储器182中保存的指令实现上述实施例中的方法,或者,处理器181也可以通过内部存储的指令实现上述实施例中的方法。在处理器181通过读取存储器182中保存的指令实现上述实施例中的方法的情况下,存储器182中保存实现本
申请上述实施例提供的方法的指令。
[0316]
可选地,至少一个处理器181是一个或多个cpu,或者是单核cpu,也可以是多核cpu。
[0317]
存储器182包括但不限于是ram、rom、eprom、快闪存储器、或光存储器等。存储器182中保存有操作系统的指令。
[0318]
存储器182中存储的程序指令被所述至少一个处理器181读取后,网关设备执行以下操作:
[0319]
接收第一协商报文,所述第一协商报文来自于第一客户端代理装置、用于协商建立第一会话,所述第一会话是第一终端设备与第一服务器之间的会话,所述第一客户端代理装置运行于所述第一终端设备上,所述第一协商报文的传输层报文头中携带鉴权信息;
[0320]
根据所述鉴权信息发起第一鉴权;
[0321]
所述第一鉴权成功后,不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。
[0322]
可选地,网关设备获取第一协商报文的传输层报文头中携带鉴权信息的详细过程,请参照前面附图12相关实施例的描述,在这里不再重复描述。
[0323]
可选地,对于网关设备接收到终端设备发送的会传输层报文头中未携带鉴权信息的话协商报文的处理过程请参照前面附图13以及相关实施例的描述,在这里不再重复描述。
[0324]
可选地,附图18所示的网关设备还包括网络接口183。网络接口183可以是有线接口,例如fddi,ge接口;网络接口183也可以是无线接口。网络接口183用于在附图6、图12、图13、图14或图15所示的实施例中接收客户端代理装置发送的报文,或者向客户端代理装置发送报文、或者接收服务器发送的报文、或者向服务器发送报文。
[0325]
处理器181读取存储器182中的程序指令后,网关设备能够执行的其他功能请参照前面各个方法实施例中的描述。
[0326]
可选地,附图18所示的终端设备还包括总线184,上述处理器181、存储器182通常通过总线184相互连接,也可以采用其他方式相互连接。
[0327]
本技术实施例提供的网关设备如果根据接收到的会话协商报文中携带的鉴权信息对终端设备和用户鉴权成功,客户端代理装置和网关设备之间无需建立额外的加密隧道来传输会话协商报文所创建的应用客户端与服务器之间的会话的后续的业务报文,节省了终端设备和网关设备上用于执行隧道封装、或解封装过程、以及可能涉及到的加解密处理所耗费的处理资源,从而降低了终端设备和网关设备的性能开销,有助于提高访问控制系统的整体性能。
[0328]
图19是本技术实施例提供的一种网关设备的结构示意图。具有图19所示结构的网关设备实现上述实施例描述的方案中网关设备的功能。可选地,图19所示的网关设备执行图6、图12、图13、图14或图15所示任意一个实施例中描述的网关设备的功能,与客户端代理装置相互配合,能够降低访问控制过程中终端设备和网关设备的性能开销。
[0329]
该网关设备包括接收模块191、处理模块192和发送模块193。
[0330]
接收模块191,用于接收第一协商报文,所述第一协商报文来自于第一客户端代理
装置、用于协商建立第一会话,所述第一会话是第一终端设备与第一服务器之间的会话,所述第一客户端代理装置运行于所述第一终端设备上,所述第一协商报文的传输层报文头中携带鉴权信息;
[0331]
处理模块192,用于根据所述鉴权信息发起第一鉴权;
[0332]
发送模块193,用于所述第一鉴权成功后,不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。
[0333]
可选地,网关设备获取第一协商报文的传输层报文头中携带鉴权信息的详细过程,请参照前面附图12相关实施例的描述,在这里不再重复描述。
[0334]
可选地,所述处理模块192,还用于在所述第一鉴权成功后,建立第二连接,所述第二连接是所述网关设备与所述第一客户端代理装置之间的连接;
[0335]
所述接收模块191,还用于通过所述第二连接接收所述第一客户端代理装置发送的所述第一会话的后续报文;
[0336]
所述发送模块193,还用于通过所述第一连接向所述第一服务器转发所述来自于所述第一客户端代理装置的所述第一会话的后续报文;
[0337]
所述接收模块191,还用于通过所述第一连接接收来自于所述第一服务器的所述第一会话的后续报文;
[0338]
所述发送模块193,还用于向所述第一客户端代理装置转发所述来自于所述第一服务器的所述第一会话的后续报文。
[0339]
可选地,对于网关设备接收到终端设备发送的会传输层报文头中未携带鉴权信息的话协商报文的处理过程请参照前面附图13以及相关实施例的描述,在这里不再重复描述。
[0340]
附图19所示的网关设备能够执行的其他功能请参照前面各个方法实施例中的描述。
[0341]
本技术实施例提供的网关设备如果根据接收到的会话协商报文中携带的鉴权信息对终端设备和用户鉴权成功,客户端代理装置和网关设备之间无需建立额外的加密隧道来传输会话协商报文所创建的应用客户端与服务器之间的会话的后续的业务报文,节省了终端设备和网关设备上用于执行隧道封装、或解封装过程、以及可能涉及到的加解密处理所耗费的处理资源,从而降低了终端设备和网关设备的性能开销,有助于提高访问控制系统的整体性能。
[0342]
附图17或图19所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。例如,附图19中的各个模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。例如,采用软件实现时,上述处理模块192可以是由附图18中的至少一个处理器181读取存储器中存储的程序代码后,生成的软件功能模块来实现。图19中上述各个模块也可以由网关设备中的不同硬件分别实现,例如处理模块192由附图18中至少一个处理器191中的一部分处理资源(例如多核处理器中的一个核)实现,而发
送模块191和接收模块193由附图18的网络接口183和中至少一个处理器181中的其余部分处理资源(例如多核处理器中的其他核),或者采用fpga、或协处理器等可编程器件来完成。显然上述功能模块也可以采用软件硬件相结合的方式来实现,例如接收模块191和发送模块193由硬件可编程器件实现,而处理模块192是由cpu读取存储器中存储的程序代码后,生成的软件功能模块。
[0343]
本技术实施例还提供了一种访问控制系统,包括至少一个终端设备(如附图16或附图17所示)和网关设备(如附图18或附图19所示)。该访问控制系统的示意图请参考附图6、附图14或图15。
[0344]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0345]
本领域普通技术人员将会理解,本技术的各个方面、或各个方面的可能实现方式可以被具体实施为计算机程序产品。计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
[0346]
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包括但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合。如计算机可读存储介质为随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)或便携式只读存储器(cd-rom)。
[0347]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本技术的这些修改和变型属于本发明权利要求的范围之内,则本发明也意图包括这些改动和变型在内。

技术特征:


1.一种访问控制方法,其特征在于,由运行于终端设备上的客户端代理装置执行,所述方法包括:截获第一协商报文,所述第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是所述第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求;在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文;向网关设备发送修改后的第一协商报文。2.根据权利要求1所述的方法,其特征在于,所述第一会话满足加密强度要求,包括:所述第一协商报文中携带指定协议版本号,所述指定协议版本号对应的协议版本实现的传输安全性高于预设安全性标准,所述第一会话基于所述协议版本进行数据传输。3.根据权利要求2所述的方法,其特征在于,所述指定协议版本号包括传输层安全tls1.2或tls 1.3。4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一会话满足加密强度要求,包括:所述第一协商报文包括指定加密套件标识,所述指定加密套件标识用于标识指定加密套件,所述指定加密套件实现的传输安全性高于预设安全性标准,所述第一会话基于所述指定加密套件对应用数据进行加密。5.根据权利要求1至4任一所述的方法,其特征在于,所述第一协商报文是tls报文。6.根据权利要求5所述的方法,其特征在于,所述第一协商报文是客户端你好client hello消息。7.根据权利要求1-6任一项所述的方法,其特征在于,所述修改后的第一协商报文的传输层报文头还包括指示信息,所述指示信息使得所述网关设备不对所述修改后的第一协商报文进行解封装。8.根据权利要求1-6任一项所述的方法,其特征在于,所述在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息,包括:在所述第一协商报文的传输层报文头中增加传输层安全选项tls option字段;在所述tls option字段中携带所述第一应用客户端对应的鉴权信息。9.根据权利要求8所述的方法,其特征在于,所述tls option字段符合类型长度值tlv结构,所述tlv结构中的类型t字段用于携带指示信息,所述指示信息以使所述网关设备不对所述修改后的会话协商报文进行tls解封装处理,所述值v字段用于携带所述鉴权信息。10.根据权利要求1-9任一项所述的方法,其特征在于,所述鉴权信息包括用户令牌和/或应用令牌。11.根据权利要求10所述的方法,其特征在于,所述鉴权信息还包括:设备标识和/或所述第一服务器的地址信息,所述第一服务器的地址信息包括所述第一服务器的互联网协议ip地址和/或端口号。12.根据权利要求8所述的方法,其特征在于,在发送所述修改后的第一协商报文之前,还包括:根据第一差值以及所述tls option字段的长度值修改所述第一协商报文的序列号,根
据第二差值修改所述第一协商报文的确认号,从而获得所述修改后的第一协商报文,其中,所述第一差值是所述代理客户端装置作为代理客户端向所述第一服务器发送的同步报文的序列号与所述第一客户端发送的同步报文的序列号之差,所述第二差值是所述代理客户端装置作为代理客户端向所述第一服务器发送的所述同步报文的确认号与所述第一客户端发送的所述同步报文的确认号之差。13.根据权利要求1至11任一所述的方法,其特征在于,所述向网关设备发送修改后的第一协商报文之后,所述方法还包括:所述第一会话建立成功后,以流模式传输所述第一会话的后续报文。14.根据权利要求1至13任一所述的方法,其特征在于,所述方法还包括:截获第二协商报文,所述第二协商报文来自于所述终端设备上的第二应用客户端、且用于与第二服务器协商建立第二会话,所述第二会话不满足加密强度要求;对所述第二协商报文进行隧道封装得到隧道协商报文,所述隧道协商报文的报文头包括所述第二应用客户端对应的鉴权信息,其中所述隧道协商报文用于协商建立所述客户端代理装置与所述网关设备之间的加密隧道;向所述网关设备发送所述隧道协商报文。15.根据权利要求14所述的方法,其特征在于,所述第二应用客户端对应的鉴权信息携带在所述隧道协商报文的应用层报文头中。16.一种访问控制方法,其特征在于,由网关设备执行,所述方法包括:接收第一协商报文,所述第一协商报文来自于第一客户端代理装置、用于协商建立第一会话,所述第一会话是第一终端设备与第一服务器之间的会话,所述第一客户端代理装置运行于所述第一终端设备上,所述第一协商报文的传输层报文头中携带鉴权信息;根据所述鉴权信息发起第一鉴权;所述第一鉴权成功后,不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。17.根据权利要求16所述的方法,其特征在于,所述第一协商报文是传输层安全tls报文。18.根据权利要求17所述的方法,其特征在于,所述第一协商报文是客户端你好client hello消息。19.根据权利要求17或18所述的方法,其特征在于,所述鉴权信息携带在所述第一协商报文的传输层报文头的传输层安全选项tls option字段中。20.根据权利要求16-19任一项所述的方法,其特征在于,所述传输层报文头中还携带指示信息,所述指示信息使得所述网关设备不对所述第一协商报文进行所述隧道解封装。21.根据权利要求19所述的方法,其特征在于,所述tls option字段符合类型长度值tlv结构,所述tlv结构中的类型t字段用于携带指示信息,所述网关设备根据所述指示信息不对所述修改后的会话协商报文进行tls解封装,所述值v字段用于携带所述鉴权信息。22.根据权利要求16-21任一项所述的方法,其特征在于,所述方法还包括:在所述第一鉴权成功后,建立第二连接,所述第二连接是所述网关设备与所述第一客户端代理装置之间的连接;
通过所述第二连接接收所述第一客户端代理装置发送的所述第一会话的后续报文,通过所述第一连接向所述第一服务器转发所述来自于所述第一客户端代理装置的所述第一会话的后续报文;通过所述第一连接接收来自于所述第一服务器的所述第一会话的后续报文,通过所述第二连接,向所述第一客户端代理装置转发所述来自于所述第一服务器的所述第一会话的后续报文。23.一种客户端代理装置,其特征在于,所述客户端代理装置运行于终端设备上,所述客户端代理装置包括:处理模块,用于截获第一协商报文,所述第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是所述第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求;在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文;发送模块,用于向网关设备发送修改后的第一协商报文。24.根据权利要求23所述的客户端代理装置,其特征在于,所述第一会话满足加密强度要求,包括:所述第一协商报文中携带指定协议版本号,所述指定协议版本号对应的协议版本实现的传输安全性高于预设安全性标准,所述第一会话基于所述协议版本进行数据传输。25.根据权利要求24所述的客户端代理装置,其特征在于,所述指定协议版本号包括传输层安全tls 1.2或tls 1.3。26.根据权利要求23-25任一项所述的客户端代理装置,其特征在于,所述第一会话满足加密强度要求,包括:所述第一协商报文包括指定加密套件标识,所述指定加密套件标识用于标识指定加密套件,所述指定加密套件实现的传输安全性高于预设安全性标准,所述第一会话基于所述指定加密套件对应用数据进行加密。27.根据权利要求23-26任一所述的客户端代理装置,其特征在于,所述第一协商报文是tls报文。28.根据权利要求27所述的客户端代理装置,其特征在于,所述第一协商报文是客户端你好client hello消息。29.根据权利要求23-28任一项所述的客户端代理装置,其特征在于,所述修改后的第一协商报文的传输层报文头还包括指示信息,所述指示信息使得所述网关设备不对所述修改后的第一协商报文进行解封装。30.根据权利要求23-28任一项所述的客户端代理装置,其特征在于,所述处理模块,用于在所述第一协商报文的传输层报文头中增加传输层安全选项tls option字段;在所述tls option字段中携带所述第一应用客户端对应的鉴权信息。31.根据权利要求30所述的方法,其特征在于,所述tls option字段符合类型长度值tlv结构,所述tlv结构中的类型t字段用于携带指示信息,所述指示信息以使所述网关设备不对所述修改后的会话协商报文进行tls解封装处理,所述值v字段用于携带所述鉴权信息。32.根据权利要求23-31任一项所述的客户端代理装置,其特征在于,所述鉴权信息包
括用户令牌和/或应用令牌。33.根据权利要求23-32任一项所述的客户端代理装置,其特征在于,所述发送模块,还用于所述第一会话建立成功后,以流模式传输所述第一会话的后续报文。34.根据权利要求23-33任一项所述的客户端代理装置,其特征在于,所述处理单元,还用于截获第二协商报文,所述第二协商报文来自于所述终端设备上的第二应用客户端、且用于与第二服务器协商建立第二会话,所述第二会话不满足加密强度要求;对所述第二协商报文进行隧道封装得到隧道协商报文,所述隧道协商报文的报文头包括所述第二应用客户端对应的鉴权信息,其中所述隧道协商报文用于协商建立所述客户端代理装置与所述网关设备之间的加密隧道;所述发送单元,还用于向所述网关设备发送所述隧道协商报文。35.根据权利要求34所述的客户端代理装置,其特征在于,所述第二应用客户端对应的鉴权信息携带在所述隧道协商报文的应用层报文头中。36.一种网关设备,其特征在于,包括:接收模块,用于接收第一协商报文,所述第一协商报文来自于第一客户端代理装置、用于协商建立第一会话,所述第一会话是第一终端设备与第一服务器之间的会话,所述第一客户端代理装置运行于所述第一终端设备上,所述第一协商报文的传输层报文头中携带鉴权信息;处理模块,用于根据所述鉴权信息发起第一鉴权;发送模块,用于所述第一鉴权成功后,不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。37.根据权利要求36所述的网关设备,其特征在于,所述第一协商报文是传输层安全tls报文。38.根据权利要求37所述的网关设备,其特征在于,所述第一协商报文是client hello消息。39.根据权利要求37或38所述的网关设备,其特征在于,所述鉴权信息携带在所述第一协商报文的传输层报文头的传输层安全选项tls option字段中。40.根据权利要求36-39任一项所述的网关设备,其特征在于,所述传输层报文头中还携带指示信息,所述指示信息使得所述网关设备不对所述第一协商报文进行所述隧道解封装。41.根据权利要求39所述的网关设备,其特征在于,所述tls option字段符合类型长度值tlv结构,所述tlv结构中的类型t字段用于携带指示信息,所述网关设备根据所述指示信息不对所述修改后的会话协商报文进行tls解封装,所述值v字段用于携带所述鉴权信息。42.根据权利要求36-41任一项所述的网关设备,其特征在于,所述处理模块,还用于在所述第一鉴权成功后,建立第二连接,所述第二连接是所述网关设备与所述第一客户端代理装置之间的连接;所述接收模块,还用于通过所述第二连接接收所述第一客户端代理装置发送的所述第一会话的后续报文;
所述发送模块,还用于通过所述第一连接向所述第一服务器转发所述来自于所述第一客户端代理装置的所述第一会话的后续报文;所述接收模块,还用于通过所述第一连接接收来自于所述第一服务器的所述第一会话的后续报文;所述发送模块,还用于向所述第一客户端代理装置转发所述来自于所述第一服务器的所述第一会话的后续报文。43.一种终端设备,其特征在于,包括:存储器和处理器;所述存储器用于存储计算机指令;所述计算机指令被所述处理器读取后,使得所述终端设备执行如权利要求1至15任一所述的访问控制方法。44.一种网关设备,其特征在于,包括:存储器和处理器;所述存储器用于存储计算机指令;所述计算机指令被所述处理器读取后,使得所述网关设备执行如权利要求16至22任一所述的访问控制方法。45.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被终端设备的处理器执行时,使得所述终端设备执行如权利要求1-15任一项所述的访问控制方法。46.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被网关设备的处理器执行时,使得所述网关设备执行如权利要求16-22任一项所述的访问控制方法。47.一种访问控制系统,其特征在于,包括终端设备和网关设备,所述终端设备中运行客户端代理装置,所述客户端代理装置,用于截获第一协商报文,所述第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是所述第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求;在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文;向所述网关设备发送修改后的第一协商报文;所述网关设备,用于接收所述修改后的第一协商报文;根据所述修改后的第一协商报文的传输层报文头中携带的鉴权信息发起第一鉴权;所述第一鉴权成功后,不对所述第一协商报文进行隧道解封装,向所述第一服务器转发所述第一协商报文,以便于建立第一连接,所述第一连接是所述网关设备与所述第一服务器之间的连接。

技术总结


本申请实施例公开了一种访问控制方法、客户端代理装置、网关设备及相关系统,用以缓解零信任场景下终端设备或网关设备在访问控制过程中性能开销大的问题。该访问控制方法由运行于终端设备上的客户端代理装置执行。客户端代理装置截获第一协商报文,第一协商报文来自于所述终端设备上的第一应用客户端、用于协商建立第一会话,所述第一会话是所述第一应用客户端与第一服务器之间的会话,且所述第一会话满足加密强度要求。客户端代理装置在所述第一协商报文的传输层报文头中添加所述第一应用客户端对应的鉴权信息以得到修改后的第一协商报文;向网关设备发送修改后的第一协商报文。文。文。


技术研发人员:

陈立健 吴昊 郑睿

受保护的技术使用者:

华为技术有限公司

技术研发日:

2021.09.03

技术公布日:

2023/2/3

本文发布于:2024-09-21 10:28:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/56028.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报文   所述   客户端   网关
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议