一种访问控制方法、访问控制系统及相关设备与流程

文档序号:32928828发布日期:2023-01-14 05:40阅读:42来源:国知局
一种访问控制方法、访问控制系统及相关设备与流程
一种访问控制方法、访问控制系统及相关设备
1.本技术要求于2021年07月08日提交国家知识产权局、申请号为202110770853.3、申请名称为“一种访问控制方法、访问控制系统及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及网络安全技术领域,尤其涉及一种访问控制方法、访问控制系统及相关设备。


背景技术:

3.软件定义边界(software defined perimeter,sdp)是由云安全联盟提出的一种基于身份进行资源访问控制的技术。sdp在授予终端设备对资源的访问权限之前,先对用户和用户使用的设备进行身份认证。如果认证通过,则用户能够使用该设备访问资源;如果认证失败,则禁止用户使用该设备访问资源。因此,sdp技术能够保证资源隔离和安全性。
4.基于sdp技术的访问控制系统通常包括:sdp控制器、sdp客户端和sdp网关。sdp客户端和sdp网关分别与sdp控制器之间建立双向连接。当sdp客户端需要访问受保护的应用资源时,sdp客户端会先向sdp控制器发起认证,认证通过之后sdp控制器将需要放行的源ip地址和目的端口等信息发送给sdp网关。sdp客户端再向sdp网关发送访问请求,由sdp网关判断sdp客户端的源ip地址是否合法、以及在判断sdp客户端的源ip地址是合法的情况下允许进行相应的访问。
5.目前,通常存在多个sdp客户端通过源网络地址转换(source network address translation,snat)设备的转换后使用同一个源ip地址进行访问的情况。此时sdp网关接收到来自多个sdp客户端的数据包的源ip地址是相同的,sdp网关无法区分snat设备转换前的ip地址。在这种情况下,多个sdp客户端中只要有一个sdp客户端认证通过,则其他认证未通过的sdp客户端都能够使用该源ip地址访问受保护的应用资源,从而造成一定的安全隐患。


技术实现要素:

6.本技术提供一种访问控制方法、访问控制系统及相关设备,用于提高受保护的应用资源的安全性。
7.为达到上述目的,本技术采用如下技术方案:
8.第一方面,提供一种访问控制方法,该方法包括:sdp控制器接收第一sdp客户端设备发送的第一报文,第一报文的传输控制协议tcp选项字段中携带第一sdp客户端设备的设备标识;该sdp控制器根据第一sdp客户端设备的设备标识对第一sdp客户端设备进行单包认证;如果对第一sdp客户端设备的单包认证失败,该sdp控制器关闭第一报文所属的第一sdp客户端设备和该sdp控制器之间的tcp连接。
9.上述技术方案中,第一sdp客户端向sdp控制器发送第一报文,该第一报文的tcp选项字段中携带第一sdp客户端设备的设备标识。当sdp控制器接收到该第一报文时,基于第
一sdp客户端设备的设备标识对第一sdp客户端设备进行单包认证。如果对第一sdp客户端设备的单包认证失败,该sdp控制器关闭该第一报文所属的第一sdp客户端设备和该sdp控制器之间的tcp连接。这样,当多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时,sdp控制器能够基于sdp客户端设备的设备标识识别不同的sdp客户端设备,从而能够保证受保护的应用资源的安全性。更进一步地,第一sdp客户端通过第一报文的tcp选项字段携带第一sdp客户端设备的设备标识,而不是通过tcp传输层之上的其他协议层携带该设备标识,从而无需创建套接字,也无需读取和解析报文的应用层数据,进而降低了sdp控制器的系统开销。
10.可选地,在第一方面的一种可能的设计中,该方法还包括:sdp控制器接收第二sdp客户端设备发送的第一报文,第二sdp客户端设备发送的第一报文的tcp选项字段中携带第二sdp客户端设备的设备标识;该sdp控制器根据第二sdp客户端设备的设备标识对第二sdp客户端设备进行单包认证;如果对第二sdp客户端设备的单包认证成功,该sdp控制器接收第二sdp客户端设备发送的第二报文,第二报文的安全传输层协议tls选项字段或者应用层报文头中携带鉴权信息,该鉴权信息包括第二sdp客户端设备的用户信息;该sdp控制器根据第二sdp客户端设备的设备标识和该用户信息对第二sdp客户端设备进行用户认证;如果对第二sdp客户端设备的用户认证成功,该sdp控制器向第二sdp客户端设备发送资源列表,该资源列表包括允许第二sdp客户端设备访问的至少一个应用服务器的标识。上述可能的设计中,如果该sdp控制器对第二sdp客户端设备的单包认证成功和用户认证成功,该sdp控制器才向第二sdp客户端设备发送资源列表。这样,当多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时,该多个sdp客户端设备中未认证成功的sdp客户端设备无法访问受保护的应用资源的安全性,从而能够提高受保护的应用资源的安全性。
11.可选地,在第一方面的一种可能的设计中,第二sdp客户端设备发送的第一报文和第二报文为同一个tcp连接中的报文;或者,第二sdp客户端设备发送的第一报文和第二报文为不同tcp连接中的报文。上述可能的设计中,第二sdp客户端设备能够通过同一tcp连接的两个报文分别进行单包认证和用户认证,也能够通过不同tcp连接中的两个报文分别进行单包认证和用户认证,从而提高了认证的灵活性。
12.可选地,在第一方面的一种可能的设计中,若第二sdp客户端设备发送的第一报文和第二报文为不同tcp连接中的报文,sdp控制器接收第二sdp客户端设备发送的第二报文之前,该方法还包括:该sdp控制器根据第二sdp客户端设备发送的第一报文向第二sdp客户端设备发送盐值;第二报文还携带该盐值,该sdp控制器接收第二sdp客户端设备发送的第二报文之后,该方法还包括:该sdp控制器根据第二报文中携带的该盐值确定第二sdp客户端设备的单包认证已成功。上述可能的设计中,若第二sdp客户端设备发送的第一报文和第二报文为不同tcp连接中的报文,通过在第二报文中还携带该sdp控制器根据第一报文发送的盐值,能够使得该sdp控制器能够根据第二报文中携带的该盐值确定第二sdp客户端设备的单包认证已成功。
13.可选地,在第一方面的一种可能的设计中,第一sdp客户端设备发送的第一报文是同步syn报文;第二sdp客户端设备发送的第一报文是syn报文。
14.可选地,在第一方面的一种可能的设计中,第一sdp客户端设备发送的第一报文中携带的该设备标识为密文形式的设备标识,该方法还包括:sdp控制器使用作为该第一报文
的该syn报文的序列号对该密文形式的设备标识进行解密,得到指定长度的字符串,该字符串用于该sdp控制器对第一sdp客户端设备进行单包认证。类似的,第二sdp客户端设备发送的第一报文中携带的该设备标识为密文形式的设备标识,该方法还包括:该sdp控制器使用作为该第一报文的syn报文的序列号对该密文形式的设备标识进行解密,得到指定长度的字符串,该字符串用于该sdp控制器对第二sdp客户端设备进行单包认证。上述可能的设计中,通过对第一报文中携带的该设备标识进行加密,能够保证通过网络传输的设备标识的安全性,避免第一报文被非法sdp客户端设备拦截后从中得到合法sdp客户端设备的设备标识,从而冒充合法sdp客户端设备进行恶意活动。
15.可选地,在第一方面的一种可能的设计中,sdp控制器根据第一sdp客户端设备的设备标识对第一sdp客户端设备进行单包认证,包括:所述sdp控制器使用所述字符串与保存的各已注册的sdp客户端设备对应的字符串进行比较,其中,所述已注册的sdp客户端设备对应的字符串是根据已注册的sdp客户端设备的明文形式的设备标识生成的;若所述所述字符串与一个已注册的sdp客户端设备对应的字符串相同,则确定单包认证成功。
16.可选地,在第一方面的一种可能的设计中,如果对第二sdp客户端设备的用户认证成功,该方法还包括:sdp控制器向第二sdp客户端设备发送令牌信息,该令牌信息用于sdp网关对第二sdp客户端设备发起的资源访问进行校验。上述可能的设计中,sdp控制器通过向第二sdp客户端设备发送令牌信息,以便于后续第二sdp客户端设备在向sdp网关发起资源访问时携带令牌信息,sdp网关基于资源访问请求中的令牌信息对第二sdp客户端设备发起的资源访问进行合法校验。
17.可选地,在第一方面的一种可能的设计中,如果对第二sdp客户端设备的用户认证成功,该方法还包括:sdp控制器向sdp网关发送客户端信息,该客户端信息用于指示第二sdp客户端设备认证通过,该客户端信息包括第二sdp客户端设备的设备标识。上述可能的设计中,如果对第二sdp客户端设备的用户认证成功,该sdp控制器通过向sdp网关发送客户端信息,以便于sdp网关基于客户端信息确定sdp客户端设备发送的资源访问的合法性,以保证受保护的应用资源的安全性。
18.第二方面,提供一种访问控制方法,该方法包括:sdp客户端设备向sdp控制器发送第一报文,第一报文的传输控制协议tcp选项字段中携带该sdp客户端设备的设备标识。这样当该sdp控制器接收到该第一报文时,该sdp控制器能够通过sdp客户端设备的设备标识识别出不同的sdp客户端设备,从而避免了多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时,无法识别不同的sdp客户端设备的问题,进而也保证了受保护的应用资源的安全性。此外,该sdp客户端通过第一报文的tcp选项字段中携带该sdp客户端设备的设备标识,而不是通过tcp传输层之上的其他协议层携带该设备标识,从而无需创建套接字,也无需读取和解析应用层数据,进而降低了sdp控制器的系统开销。
19.可选地,在第二方面的一种可能的设计中,该方法还包括:sdp客户端设备接收sdp控制器发送的单包认证响应;如果该单包认证响应用于指示该sdp控制器对该sdp客户端设备的单包认证成功,sdp客户端设备向该sdp控制器发送第二报文,第二报文的安全传输层协议tls选项字段或者应用层报文头中携带鉴权信息,该鉴权信息包括该sdp客户端设备的用户信息;该sdp客户端设备接收该sdp控制器返回的资源列表,该资源列表包括允许该sdp客户端设备访问的至少一个应用服务器的标识。上述可能的设计中,如果该sdp控制器对该
sdp客户端设备的单包认证成功和用户认证成功,该sdp客户端设备才能够接收到该资源列表。这样,当多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时,该多个sdp客户端设备中未认证成功的sdp客户端设备无法访问受保护的应用资源的安全性,从而能够提高受保护的应用资源的安全性。
20.可选地,在第二方面的一种可能的设计中,第一报文和第二报文为同一个tcp连接中的报文;或者,第一报文和第二报文为不同tcp连接中的报文。上述可能的设计中,第二sdp客户端设备能够通过同一tcp连接的两个报文分别进行单包认证和用户认证,也能够通过不同tcp连接中的两个报文分别进行单包认证和用户认证,从而提高了认证的灵活性。
21.可选地,在第二方面的一种可能的设计中,当第一报文和第二报文为不同tcp连接中的报文时,sdp客户端设备向sdp控制器发送第二报文之前,该方法还包括:该sdp客户端设备接收该sdp控制器根据第一报文返回的盐值;第二报文中还携带该盐值,第二报文携带的该盐值用于该sdp控制器确定第二sdp客户端设备的单包认证已成功。上述可能的设计中,若该sdp客户端设备发送的第一报文和第二报文为不同tcp连接中的报文,通过在第二报文中还携带该sdp控制器根据第一报文发送的盐值,能够使得该sdp控制器能够根据第二报文中携带的该盐值确定第二sdp客户端设备的单包认证已成功。
22.可选地,在第二方面的一种可能的设计中,第一报文是同步syn报文。
23.可选地,在第二方面的一种可能的设计中,第一报文的该tcp选项字段中携带的该设备标识为密文形式的设备标识,该方法还包括:基于sdp客户端设备的明文形式的设备标识获取指定长度的字符串;使用该syn报文的序列号对该字符串进行加密,得到该密文形式的设备标识。可选的,该指定长度的字符串是通过对该明文的设备标识进行哈希运算得到的。上述可能的设计中,通过对第一报文中携带的该设备标识进行加密,能够保证通过网络传输的设备标识的安全性,避免第一报文被非法sdp客户端设备拦截后从中得到合法sdp客户端设备的设备标识,从而冒充合法sdp客户端设备进行恶意活动。
24.可选地,在第二方面的一种可能的设计中,sdp客户端设备接收sdp控制器返回的资源列表之后,该方法还包括:该sdp客户端设备向sdp网关发送第三报文,第三报文的tcp选项字段中携带该sdp客户端设备的设备标识;该sdp客户端设备接收该应用服务器返回的业务数据,该业务数据是该sdp网关根据第三报文的tcp选项字段中携带的该设备标识确定该sdp客户端设备合法后将第三报文转发给该应用服务器后,该应用服务器发送的。上述可能的设计中,通过在第三报文的tcp选项字段中携带该sdp客户端设备的设备标识,能够使得sdp网关在多个sdp客户端设备经过同一snat设备后使用同一源ip地址的情况下,识别出不同的sdp客户端设备,从而保证受保护的应用资源的安全性。此外,通过第三报文的tcp选项字段中携带该sdp客户端设备的设备标识,而不是通过tcp传输层之上的其他协议层携带该设备标识,从而无需创建套接字,也无需读取和解析应用层数据,进而降低了sdp控制器的系统开销。
25.可选地,在第二方面的一种可能的设计中,第三报文是同步syn报文。
26.可选地,在第二方面的一种可能的设计中,第三报文的该tcp选项字段中携带的该设备标识为密文形式的设备标识,该方法还包括:基于sdp客户端设备的明文形式的设备标识获取指定长度的字符串;使用作为该第三报文的该syn报文的序列号对该字符串进行加密,得到该密文形式的设备标识。可选的,该指定长度的字符串是通过对该明文的设备标识
进行哈希运算得到的。上述可能的设计中,通过对第三报文中携带的该设备标识进行加密,能够保证通过网络传输的设备标识的安全性,避免第一报文被非法sdp客户端设备拦截后从中得到合法sdp客户端设备的设备标识,从而冒充合法sdp客户端设备进行恶意活动。
27.可选地,在第二方面的一种可能的设计中,该方法还包括:sdp客户端设备接收该sdp控制器发送的令牌信息,并且在后续发送的资源访问请求中携带该令牌信息。以便于sdp网关基于资源访问请求中携带的令牌信息对该sdp客户端设备发起的资源访问请求进行校验。
28.第三方面,提供一种访问控制方法,该方法包括:sdp网关接收sdp控制器发送的客户端信息,该客户端信息用于指示sdp客户端设备认证通过,该客户端信息包括该sdp客户端设备的设备标识;该sdp网关接收该sdp客户端设备发送的第三报文,第三报文的tcp选项字段中携带该sdp客户端设备的设备标识;该sdp网关根据该客户端信息包括的该设备标识和第三报文包括的该设备标识,确定该sdp客户端设备是否合法;如果确定该sdp客户端设备合法,该sdp网关将第三报文发送给应用服务器,并将该应用服务器返回的业务数据转发给该sdp客户端设备。
29.上述技术方案中,该sdp客户端设备通过在第三报文的tcp选项字段中携带该sdp客户端设备的设备标识,能够使得sdp网关在多个sdp客户端设备经过同一snat设备后使用同一源ip地址进行资源访问的情况下,识别出不同的sdp客户端设备,从而保证受保护的应用资源的安全性。此外,通过第三报文的tcp选项字段中携带该sdp客户端设备的设备标识,而不是通过tcp传输层之上的其他层携带该设备标识,从而无需创建套接字,也无需读取和解析应用层数据,进而降低了sdp控制器或sdp网关的系统开销。
30.可选地,在第三方面的一种可能的设计中,第三报文是同步syn报文。
31.可选地,在第三方面的一种可能的设计中,该tcp选项字段中携带的该设备标识为密文形式的设备标识,该方法还包括:该sdp网关使用该syn报文的序列号对该密文形式的设备标识进行解密,得到指定长度的第一字符串,第一字符串用于该sdp网关确定该sdp客户端设备是否合法。上述可能的设计中,通过对第三报文中携带的该设备标识进行加密,能够保证通过网络传输的设备标识的安全性,避免第三报文被非法sdp客户端设备拦截后从中得到合法sdp客户端设备的设备标识,从而冒充合法sdp客户端设备进行恶意活动。
32.可选地,在第三方面的一种可能的设计中,该sdp网关根据该客户端信息包括的该设备标识和第三报文中包括的该设备标识确定该sdp客户端设备是否合法,包括:该sdp网关根据该客户端信息包括的该设备标识获取该指定长度的第二字符串;该sdp网关比较第一字符串和第二字符串;如果第一字符串和第二字符串一致,确定该sdp客户端设备合法。
33.可选地,在第三方面的一种可能的设计中,第三报文还携带令牌信息,该令牌信息用于sdp网关对该sdp客户端设备发起的资源访问进行校验。
34.第四方面,提供一种访问控制装置,该装置作为sdp控制器或者sdp控制器内置的芯片,包括:存储器和至少一个处理器。该存储器用于存储指令,该指令被至少一个处理器读取后,该装置执行上述第一方面或第一方面的任意一种可能的设计所提供的访问控制方法,具体参见上面的详细描述,此处不再赘述。
35.第五方面,提供一种访问控制装置,该装置作为sdp控制器或者sdp控制器内置的芯片,该装置具有实现上述第一方面或第一方面的任意一种可能的设计所提供的访问控制
方法中的功能。所述功能能够通过硬件实现,也能够通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
36.第六方面,提供一种访问控制装置,该装置作为sdp客户端设备或者sdp客户端设备内置的芯片,包括:存储器和至少一个处理器。该存储器用于存储指令,该指令被至少一个处理器读取后,该装置执行上述第二方面或第二方面的任意一种可能的设计所提供的访问控制方法,具体参见上面的详细描述,此处不再赘述。
37.第七方面,提供一种访问控制装置,该装置作为sdp客户端设备或者sdp客户端设备内置的芯片,该装置具有实现上述第二方面或第二方面的任意一种可能的设计所提供的访问控制方法中的功能。所述功能能够通过硬件实现,也能够通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
38.第八方面,提供一种访问控制装置,该装置作为sdp网关或者sdp网关内置的芯片,包括:存储器和至少一个处理器。该存储器用于存储指令,该指令被至少一个处理器读取后,该装置执行上述第三方面或第三方面的任意一种可能的设计所提供的访问控制方法,具体参见上面的详细描述,此处不再赘述。
39.第九方面,提供一种访问控制装置,该装置作为sdp网关或者sdp网关内置的芯片,该装置具有实现上述第三方面或第三方面的任意一种可能的设计所提供的访问控制方法中的功能。所述功能能够通过硬件实现,也能够通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
40.在本技术的另一方面,提供一种访问控制系统,该系统包括:sdp控制器、sdp客户端设备和sdp网关;其中,该sdp控制器包括第四方面或者第五方面所提供的访问控制装置,该sdp客户端设备包括第六方面或者第七方面所提供的访问控制装置,该sdp网关包括第八方面或者第九方面的访问控制装置。
41.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行如第一方面或第一方面的任一种可能的设计所提供的访问控制方法。
42.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行如第二方面或第二方面的任一种可能的设计所提供的访问控制方法。
43.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行如第三方面或第三方面的任一种可能的设计所提供的访问控制方法。
44.在本技术的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或者第一方面的任一种可能的设计所提供的访问控制方法。
45.在本技术的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第二方面或第二方面的任一种可能的设计所提供的访问控制方法。
46.在本技术的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第三方面或者第三方面的任一种可能的设计中所提供的访问控制方法。
47.应当理解的是,上述提供的任一种访问控制装置、通信系统、计算机可读存储介质和计算机程序产品的有益效果均能够对应参考上文对应方面提供的方法实施例的有益效果,此处不再赘述。
附图说明
48.图1为本技术实施例提供的一种传统网络安全的系统架构图;
49.图2为本技术实施例提供的一种sdp系统的结构示意图;
50.图3为本技术实施例提供的另一种sdp系统的结构示意图;
51.图4为本技术实施例提供的一种访问控制方法的流程示意图;
52.图5为本技术实施例提供的一种tcp选项的示意图;
53.图6为本技术实施例提供的另一种访问控制方法的流程示意图;
54.图7为本技术实施例提供的一种上报第二报文的示意图;
55.图8为本技术实施例提供的又一种访问控制方法的流程示意图;
56.图9为本技术实施例提供的一种sdp控制器的访问控制示意图;
57.图10为本技术实施例提供的一种sdp控制器的结构示意图;
58.图11为本技术实施例提供的另一种sdp控制器的结构示意图;
59.图12为本技术实施例提供的一种sdp客户端设备的结构示意图;
60.图13为本技术实施例提供的另一种sdp客户端设备的结构示意图;
61.图14为本技术实施例提供的一种sdp网关的结构示意图;
62.图15为本技术实施例提供的另一种sdp网关的结构示意图。
具体实施方式
63.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示存在三种关系,例如,a和/或b表示:单独存在a,同时存在a和b,单独存在b的情况,其中a和b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下中的至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个)表示:a、b、c、a-b、a-c、b-c、或a-b-c,其中a、b、c可以是单个,也可以是多个。另外,在本技术的实施例中,“第一”、“第二”等字样并不对数量和执行次序进行限定。
64.下面在介绍本技术实施例之前,首先对本技术所涉及的背景技术进行介绍说明。
65.传统网络安全概念主要是基于网络边界的定义进行安全保护。示例性的,如图1所示,通过防火墙(fire wall,fw)/网络智能防护(network intelligent protection,nip)等边界设备,将内部网络和外部网络隔离开。其中,外部网络是可能存在安全风险的,内部网络是相对安全的,内部网络的资源(比如,某一企业内部使用的财务系统、人力系统、应用程序和其他系统等)不向外部网络暴露,即外部网络中的终端设备无法访问该内部网络的资源。传统网络安全能够为企业提供一定的安全保护,但是伴随着网络的发展也出现了诸如网络边界模糊、访问复杂化和内部攻击等一系列问题。
66.为应对上述问题,有研究提出基于零信任(zero trust)理念的软件定义边界(software defined perimeter,sdp)概念。sdp是一种基于身份进行资源访问控制的技术。
sdp在授予终端设备对资源的访问权限之前,先对用户和用户使用的设备进行身份认证。如果认证通过,则用户能够使用该设备访问资源;如果认证失败,则禁止用户使用该设备访问资源。也即是,sdp技术通过对每个终端设备的访问请求进行严格认证,以确保资源永远被安全地访问,从而保证资源隔离和安全性。
67.图2为本技术实施例提供的一种sdp系统的结构示意图,该sdp系统包括:sdp控制器、sdp客户端、sdp网关和受保护的应用资源。sdp客户端和sdp网关均可以称为sdp主机,将sdp主机按照连接发起者和接收者分为sdp客户端和sdp网关。sdp网关设置在sdp客户端和受保护的应用资源之间,sdp客户端对于受保护的应用资源的访问需要经过sdp网关。
68.可选地,sdp客户端安装在终端设备上,安装有sdp客户端的终端设备被称为sdp客户端设备。可选地,sdp客户端设备上还安装sdp客户端对应的本地代理(agent)。本地代理用于对该sdp客户端发送或接收的报文进行一定的处理。比如,在本技术实施例中,本地代理用于在下述方法实施例中的第一报文和第三报文的tcp选项字段中添加该sdp客户端设备的设备标识等。
69.在sdp系统中,sdp控制器用于对该sdp客户端设备进行身份认证,对sdp客户端设备对受保护的应用资源的访问进行鉴权等。可选地,sdp控制器还用于将合法sdp客户端设备的控制策略下发给该sdp网关,以便于sdp网关根据该控制策略控制sdp客户端设备对于该受保护的应用资源的访问。可选地,受保护的应用资源包括万维网(world wide web,web)应用、安全外壳协议(secure shell protocol,ssh)服务、基于客户端/服务器(client/server,c/s)系统的服务、基于浏览器/服务器(browser/server,b/s)系统的服务等,本技术实施例对此不作具体限制。
70.sdp客户端和sdp网关分别与sdp控制器之间建立双向连接。当sdp客户端需要访问受保护的应用资源时,sdp客户端会先向sdp控制器发起认证,认证通过之后sdp控制器将需要放行的源ip地址和目的端口等信息发送给该sdp网关。sdp客户端再向sdp网关发送访问请求,由sdp网关判断访问请求的源ip地址是否合法、以及在合法时向受保护的应用资源转发访问请求,从而允许发送访问请求的sdp客户端访问受保护的应用资源。
71.目前,在sdp系统中,如图3所示,当多个sdp客户端(图3中表示为第一sdp客户端至第n sdp客户端)通过snat设备的转换后使用同一个源ip地址访问受保护的应用资源时,sdp网关接收到来自多个sdp客户端的访问请求的源ip地址是相同的,sdp网关无法区分snat设备转换前的ip地址。在这种情况下,多个sdp客户端中只要有一个sdp客户端认证通过,则其他认证未通过的sdp客户端都能够使用该源ip地址访问受保护的应用资源,从而造成一定的安全隐患。基于此,本技术实施例提供一种访问控制方法,能够在多个sdp客户端使用一个snat设备时识别不同的sdp客户端,从而提高受保护的应用资源的安全性。
72.图4为本技术实施例提供的一种访问控制方法的流程示意图,该方法应用于包括sdp控制器、sdp客户端设备和sdp网关的系统中。参见图4,该方法包括以下几个步骤。图4中示出了sdp控制器对第一sdp客户端设备的单包认证失败的情况。
73.s201:第一sdp客户端设备向sdp控制器发送第一报文,第一报文的传输控制协议(transmission control protocol,tcp)选项(option)字段中携带第一sdp客户端设备的设备标识。
74.其中,sdp客户端设备为安装有sdp客户端的终端设备。在本实施例中,用“第一报
文”表示sdp客户端设备发送的用于进行单包授权(single packet authorization,spa)认证的报文。可选的,第一报文是第一sdp客户端设备向sdp控制器发起tcp连接时的同步(synchronous,syn)报文。
75.另外,第一报文是承载在tcp传输层上的报文,且该第一报文的tcp选项字段中携带第一sdp客户端设备的设备标识。示例性的,如图5所示,该tcp选项字段包括:种类(kind,k)、长度(length,l)和值(value,v)三部分。该种类k用于表示该tcp选项字段承载的信息的种类,k的不同取值对应不同的种类,比如,图5中以k的取值为252表示该tcp选项字段承载的信息为该sdp客户端设备的设备标识。该长度l用于表示该tcp选项字段占用的长度,图5中以该tcp选项字段占用18个字节为例进行说明。该值v用于表示该sdp客户端设备的设备标识,图5中以该值v占用的长度为16字节为例进行说明。
76.再者,第一sdp客户端设备的设备标识能够用于唯一标识第一sdp客户端设备,该设备标识是基于第一sdp客户端设备的相关信息生成的。比如,第一sdp客户端设备将第一sdp客户端设备的主硬盘序列号、网卡的媒体接入控制(media access control)信息、和/或中央处理器(central processing unit,cpu)序列号等信息作为主键信息,再结合当前时间戳和一个随机数生成的散列值生成该设备标识。
77.具体的,当第一sdp客户端设备与sdp控制器建立tcp连接时,第一sdp客户端设备向该sdp控制器发送该第一报文,该第一报文的tcp选项字段中携带第一sdp客户端设备的设备标识,以通过该第一报文向该sdp控制器发起spa认证。
78.可选的,该第一报文的tcp选项字段中携带的sdp客户端设备的设备标识为密文形式的设备标识。示例性,该tcp选项字段的结构如图5所示,该tcp选项字段中的第三部分(即v)中承载的设备标识为该sdp客户端设备的密文形式的设备标识。
79.在一种可能的实现方式中,密文形式的设备标识通过以下方式获得:第一sdp客户端设备根据第一sdp客户端设备的明文形式的设备标识获取指定长度的字符串,并使用该syn报文的序列号对该字符串进行高级加密标准(advanced encryption standard,aes)对称加密,以得到该密文形式的设备标识。可选地,在获取指定长度的字符串时,第一sdp客户端设备使用哈希算法对该明文形式的设备标识进行哈希运算,或者对该明文形式的设备标识进行截取,以得到该指定长度的字符串。
80.需要说明的是,第一sdp客户端设备对该字符串进行加密时使用的密钥除了syn报文的序列号,还能够是其他具有唯一性的信息,本技术中仅以该密钥为syn报文的序列号为例进行说明,并不构成对本技术实施例的限制。
81.进一步的,当第一报文的tcp选项字段还包括其他种类的tcp选项时,若该tcp选项字段的长度超出预设长度(比如,40字节),第一sdp客户端设备还对该tcp选项字段进行筛选和重新组装,以确保该tcp选项字段的长度不超出该预设长度。第一sdp客户端设备在对该tcp选项字段中的原有tcp选项进行重新组装之后,将用于承载第一sdp客户端设备的设备标识的tcp选项添加在最后一个tcp选项的后面。若第一sdp客户端设备的设备标识未填充满对应的tcp选项,能够通过填充无效字符(比如,nop)的方式填充满对应的tcp选项。
82.比如,当该tcp选项字段中还包括用于提升该第一报文的转发性能的tcp选项时,第一sdp客户端设备保留该用于提升该第一报文的转发性能的tcp选项。比如,该用于提升该第一报文的转发性能的tcp选项包括下述三种tcp选项中的一种或者多种:允许选择确认
(sack_perm)选项,窗口扩大因子(window)选项,最大段尺寸(maximum segment size,mss)选项。
83.在另一种可能的实施例中,上述s201能够被替换为:第一sdp客户端设备向sdp控制器发送第一报文,该第一报文的安全传输层协议(transport layer security,tls)选项中携带该sdp客户端设备的设备标识。
84.其中,通过第一报文的tls选项字段携带第一sdp客户端设备的设备标识与通过第一报文的tcp选项字段携带第一sdp客户端设备的设备标识的区别在于:tls连接是承载在应用层中的,即tls连接位于tcp连接之上,这样在tls选项中添加和获取该设备标识时都需要借助套接字(socket)来实现,而套接字的创建、读取和解析应用层数据会带来大量的系统开销。
85.需要说明的是,通过第一报文的tls选项字段携带第一sdp客户端设备的设备标识的方式中,sdp控制器在接收该第一报文时,也能够通过下文所描述的步骤来实现对第一sdp客户端设备的单包认证,从而能够在多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时识别出不同的sdp客户端设备,保证受保护的应用资源的安全性。
86.下文中均以该第一报文的tcp选项携带第一sdp客户端设备的设备标识为例进行说明。
87.s202:当sdp控制器接收到该第一报文时,该sdp控制器根据第一sdp客户端设备的设备标识对第一sdp客户端设备进行单包认证。
88.当sdp控制器接收到第一报文,该sdp控制器解析该第一报文的tcp选项字段。如果该第一报文的tcp选项字段中未携带第一sdp客户端设备的设备标识,该sdp控制器确定第一sdp客户端设备的单包认证失败。如果该第一报文的tcp选项字段中携带第一该sdp客户端设备的设备标识,该sdp控制器基于第一sdp客户端设备的设备标识和该第一报文中携带的第一sdp客户端的源ip地址对该sdp客户端设备进行单包认证,如果该设备标识和该源ip地址均认证成功,则对第一sdp客户端设备的单包认证成功,如果该设备标识和该源ip地址中的至少一个认证失败,则对第一sdp客户端设备的单包认证失败。
89.其中,该sdp控制器对第一sdp客户端的源ip地址进行认证的过程与现有技术中的认证过程一致,本技术实施例在此不再赘述。下面对该sdp控制器对第一sdp客户端设备的设备标识进行认证的过程进行详细说明。
90.示例性的,当sdp控制器得到第一sdp客户端设备的设备标识时,sdp控制器查询本地存储的信任设备标识列表,其中信任设备标识列表中包括多个sdp客户端设备的明文形式的设备标识。可选地,信任设备标识列表中的多个sdp客户端设备的设备标识是多个sdp客户端设备向该sdp控制器注册时发送给sdp控制器的。在第一报文的tcp选项字段中携带的sdp客户端设备的设备标识为明文形式的设备标识的情况下,如果第一报文的tcp选项字段中携带的sdp客户端设备的设备标识在该信任设备标识列表中,该sdp控制器确定第一客户端设备的设备标识认证成功。如果第一报文的tcp选项字段中携带的sdp客户端设备的设备标识不在该信任设备标识列表中,该sdp控制器确定第一客户端设备的设备标识认证失败。
91.在一种可能的实施例中,在第一报文的tcp选项字段中携带的设备标识为密文形式的设备标识的情况下,sdp控制器解析该第一报文的tcp选项字段,得到该密文形式的设
备标识。sdp控制器使用该第一报文(即syn报文)的序列号解密该密文形式的设备标识,以得到指定长度的字符串。之后,sdp控制器基于该字符串对第一sdp客户端设备的设备标识进行认证。
92.示例性的,当sdp控制器得到第一报文中的sdp客户端设备的设备标识时,该sdp控制器查询本地存储的信任设备标识列表对应的字符串列表。可选地,字符串列表中包括sdp控制器根据信任设备标识列表中的多个sdp客户端设备的明文形式的设备标识分别获得的指定长度的字符串。字符串列表中字符串的获得方式与步骤s201中的描述类似,请参照步骤s201的描述,例如sdp控制器对信任设备标识列表中的一个sdp客户端设备的明文形式的设备标识进行哈希运算后得到的对应的指定长度的字符串。如果sdp控制器从第一报文的tcp选项字段得到的指定长度的字符串在该字符串列表中,sdp控制器确定第一sdp客户端设备的设备标识认证成功;如果从第一报文的tcp选项字段得到的指定长度的字符串不在该字符串列表中,sdp控制器确定第一客户端设备的设备标识认证失败。
93.进一步的,对于第一sdp客户端设备,sdp控制器在注册过程中获取第一sdp客户端设备的设备标识包括:第一sdp客户端设备向sdp控制器发送注册信息,该注册信息包括用户信息和第一sdp客户端设备的设备标识;该sdp控制器接收该注册信息,并在第一sdp客户端设备的设备标识审核通过之后,将第一sdp客户端设备的设备标识添加在该信任设备标识列表中;在该用户信息审核通过之后,将该用户信息添加在信任用户信息列表中。
94.可选的,注册信息还包括用户等级和访问权限等信息,比如该注册信息还包括用户的工作域,该sdp控制器还根据该工作域将受保护的资源中允许该用户访问的至少一个应用服务器关联至该用户,以形成该用户的资源列表。
95.s203a:如果对第一sdp客户端设备的单包认证失败,该sdp控制器关闭该第一报文所属的第一sdp客户端设备和该sdp控制器之间的tcp连接。
96.其中,sdp控制器关闭第一报文所属的第一sdp客户端设备和该sdp控制器之间的tcp连接,或者称为该sdp控制器阻断该第一报文所属的第一sdp客户端设备和该sdp控制器之间的tcp连接。
97.可选的,如果sdp控制器对第一sdp客户端设备的单包认证失败,该sdp控制器还向第一sdp客户端设备发送单包认证响应,该单包认证响应用于指示对第一sdp客户端设备的单包认证失败。
98.在本技术实施例中,当第一sdp客户端设备向sdp控制器发起单包认证时,第一sdp客户端向该sdp控制器发送第一报文,该第一报文的tcp选项字段中携带第一sdp客户端设备的设备标识。当该sdp控制器接收到该第一报文时,该sdp控制器基于该第一报文的tcp选项字段中携带的sdp客户端设备的设备标识对第一sdp客户端设备进行单包认证。如果对第一sdp客户端设备的单包认证失败,该sdp控制器关闭该第一报文所属的sdp客户端设备和该sdp控制器之间的tcp连接。这样,当多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时,该sdp控制器能够识别不同的sdp客户端设备,从而能够保证受保护的应用资源的安全性。
99.上述图4示出了sdp控制器对第一sdp客户端设备的单包认证失败的情况。下面通过图6示出sdp控制器对第二sdp客户端设备的单包认证成功的情况。其中,第二sdp客户端设备能够通过上述s201相同的方式向sdp控制器发起单包认证,该sdp控制器也能够通过上
述s202相同的方式对第二sdp客户端设备进行单包认证,本技术实施例在此不再赘述。
100.进一步,如图6所示,如果sdp控制器对第二sdp客户端设备的单包认证成功,该方法还包括s203b-s206。
101.s203b:第二sdp客户端设备向sdp控制器发送第二报文,该第二报文的tls选项字段或者应用层报文头中携带鉴权信息,该鉴权信息包括第二sdp客户端设备的用户信息。
102.其中,第二sdp客户端设备的用户信息包括登录第二sdp客户端设备的用户的信息。可选的,该用户信息包括用户名和密码,该用户名是该用户向该sdp控制器注册时设置的,或者是该用户向该sdp控制器注册时该sdp控制器为该用户分配的。
103.另外,在本实施例中,用“第二报文”表示sdp客户端设备向sdp控制器发送的用于用户认证的报文。该第二报文是承载在tls应用层上的报文,该第二报文的tls选项字段或者应用层报文头中携带第二sdp客户端设备的鉴权信息。该tls选项字段的结构与上述第一报文的tcp选项字段的结构类似,具体描述参见上述tcp选项字段的相关描述,本技术实施例对此不作具体限制。下文中以该第二报文的tls选项字段携带该鉴权信息为例进行说明。
104.具体的,如果sdp控制器对第二sdp客户端设备的单包认证成功,第二sdp客户端设备向该sdp控制器发送第二报文,该第二报文的tls选项字段或者应用层报文头中携带第二sdp客户端设备的鉴权信息,以通过该第二报文向该sdp控制器发起用户认证。
105.可选的,该sdp控制器在对第二sdp客户端设备进行单包认证之后,如果对第二sdp客户端设备的单包认证成功,该sdp控制器向第二sdp客户端设备发送单包认证响应,该单包认证响应用于指示对第二sdp客户端设备的单包认证成功。当第二sdp客户端设备接收到该单包认证响应时,第二sdp客户端设备向该sdp控制器发送该第二报文。
106.在一种示例中,如图7所示,第二sdp客户端设备通过以下方式生成该第二报文:第二sdp客户端设备中的本地代理在通过在诸如netfilter等子系统加入的钩子(hook)函数从上层协议栈获取当前的应用报文,并将第二sdp客户端设备的鉴权信息添加在该应用报文中。图6中还示出了相关的netfilter钩子函数挂接点和路由等,比如,输入本地(local_in)、本地输出(local_out)、路由前处理(pre routing)、直接转发(forward)和路由后处理(post routing)等。比如,第二sdp客户端设备将该鉴权信息添加在该应用报文的tls选项字段中,已生成该第二报文。可替换地,该第二报文中携带的鉴权信息携带在超文本传输安全协议(hyper text transfer protocol secure,https)层中,比如,携带在https隧道(tunnel)封装报文头中。比如,当该受保护的资源为b/s系统的服务时,该鉴权信息携带在该https层中;当该受保护的资源为c/s系统的服务时,该鉴权信息携带在该tls选项字段中。
107.s204:当sdp控制器接收到该第二报文时,该sdp控制器根据第二sdp客户端设备的设备标识和该用户信息对第二sdp客户端设备进行用户认证。
108.当sdp控制器接收到第二报文时,该sdp控制器解析该第二报文的tls选项字段,以得到该用户信息。之后,该sdp控制器根据该用户信息和第二sdp客户端设备的设备标识对第二sdp客户端设备进行用户认证。可选的,进行用户认证时使用的设备标识可为第一报文的tcp选项字段携带的设备标识,或者该第二报文还携带该设备标识。示例性的,该sdp控制器将第二sdp客户端设备的设备标识和该用户信息分别与第二sdp客户端设备注册时的设备标识和该用户信息进行对比;如果该第一报文携带的设备标识和该第二报文携带的该用
户信息与注册时的设备标识和该用户信息一致,该sdp控制器确定对第二sdp客户端设备的用户认证成功;如果该第一报文携带的设备标识和该第二报文携带的该用户信息与注册时的设备标识和该用户信息不一致,该sdp控制器确定对第二sdp客户端设备的用户认证失败。
109.需要说明的是,sdp控制器对第一报文携带的设备标识与注册时的设备标识进行认证的过程与上述单包认证时的过程一致,具体参见上文中的相关描述,本技术实施例在此不再赘述。此外,sdp控制器对第二报文携带的用户信息与注册时的用户信息进行认证的过程参见相关技术中的描述,本技术实施例对此不作描述。
110.在一种可能的实施例中,第二sdp客户端设备发送的第一报文和第二报文为同一个tcp连接中的报文。示例性的,假设该第一报文和该第二报文为第一tcp连接中的报文,该第一报文为syn报文,该第二报文为应用报文。具体的,在建立该第一tcp连接的过程中,第二sdp客户端设备向该sdp控制器发送该syn报文,该syn报文的tcp选项字段携带该sdp客户端设备的设备标识;该sdp控制器向第二sdp客户端设备返回同步确认(syn+ack)报文;第二sdp客户端设备向该sdp控制器发送该ack报文,该第一tcp连接成功建立;第二sdp客户端设备通过该第一tcp连接向该sdp控制器发送该应用报文,该应用报文的tls选项字段中携带该鉴权信息。
111.在另一种可能的实施例中,第二sdp客户端设备发送的第一报文和该第二报文为不同tcp连接中的报文。示例性的,假设该第一报文为第一tcp连接中的syn报文,第二报文为第二tcp连接中的应用报文。具体的,在建立第一tcp连接的过程中,第二sdp客户端设备向该sdp控制器发送syn报文,该syn报文的tcp选项字段携带第二sdp客户端设备的设备标识;该sdp控制器向第二sdp客户端设备返回同步确认(syn+ack)报文;第二sdp客户端设备向该sdp控制器发送该ack报文。在第二tcp建立完成后,第二sdp客户端设备向该sdp控制器发送应用报文,该应用报文的tls选项字段中携带该鉴权信息。
112.可选的,若第二sdp客户端设备发送的第一报文和该第二报文为不同tcp连接中的报文,则第二sdp客户端设备向sdp控制器发送的第二报文还携带有盐值(salt),该盐值可用于关联该第一报文所属的tcp连接和该第二报文所属的tcp连接,该盐值是该sdp控制器在对第二sdp客户端设备的单包认证成功后发送给第二sdp客户端设备。示例性的,第二sdp客户端设备向该sdp控制器发送该第二报文之前,该方法还包括:该sdp控制器根据第二sdp客户端设备发送的第一报文向第二sdp客户端设备发送该盐值。这样,当第二sdp客户端设备接收到该盐值时,第二sdp客户端设备将该盐值携带在第二报文中发送给该sdp控制器。此时,当该sdp控制器接收第二报文时,该sdp控制器能够根据第二报文中携带的该盐值确定第二sdp客户端设备的单包认证已成功。之后,该sdp控制器再按照上述s204对第二sdp客户端设备进行用户认证。
113.进一步的,如果sdp控制器对第二sdp客户端设备的用户认证失败,则:若第一报文和第二报文为同一tcp连接中的报文,该sdp控制器关闭第一报文所属的第二sdp客户端设备和该sdp控制器之间的tcp连接;若第一报文和第二报文为不同tcp连接中的报文,该sdp控制器关闭第一报文和第二报文所属的第二sdp客户端设备和该sdp控制器之间的tcp连接。如果该sdp控制器对第二sdp客户端设备的用户认证成功,该sdp控制器执行下述s205和s206。图6中还示出了sdp控制器对第二sdp客户端设备的用户认证成功的情况。
114.s205:该sdp控制器向第二sdp客户端设备发送资源列表,该资源列表包括允许第二sdp客户端设备访问的至少一个应用服务器的标识。
115.其中,允许第二sdp客户端设备访问的至少一个应用服务器属于受保护的资源,该受保护的资源中还包括除该至少一个应用服务器之外的其他的资源。该至少一个应用服务器中每个应用服务器的标识可用于唯一标识该应用服务器。可选的,该至少一个应用服务器中每个应用服务器的标识包括该应用服务器的端口和ip地址。
116.另外,允许第二sdp客户端设备访问的至少一个应用服务器是该sdp控制器根据第二sdp客户端设备的用户信息为第二sdp客户端设备分配的。比如,该用户信息可用于指示用户等级和访问权限等信息,该sdp控制器根据该用户等级和该访问权限等信息为第二sdp客户端设备分配允许第二sdp客户端设备访问的应用服务器。
117.具体的,如果sdp控制器对第二sdp客户端设备的用户认证成功,该sdp控制器根据该用户信息获取该至少一个应用服务器的标识,即获取该资源列表,并将该资源列表发送给第二sdp客户端设备。这样,第二sdp客户端设备能够接收到该资源列表,并基于该资源列表向sdp网关发起资源访问。
118.可选的,sdp控制器还向第二sdp客户端设备发送令牌(token)信息,比如,该sdp控制器能够通过set cookie的方式将该令牌信息发送给第二sdp客户端设备,后续第二sdp客户端设备在访问该至少一个应用服务器时携带该令牌信息,该令牌信息可用于进行访问校验。其中,该令牌信息中包括一个或者多个令牌。可选的,该一个或者多个令牌包括用户令牌(user_token)、设备令牌(device_token)和应用令牌(app_token)等。
119.s206:sdp控制器向sdp网关发送客户端信息,该客户端信息用于指示第二sdp客户端设备认证通过,该客户端信息包括第二sdp客户端设备的设备标识。
120.如果sdp控制器对第二sdp客户端设备的用户认证成功,该sdp控制器向该sdp网关发送第二sdp客户端设备的客户端信息。这样,该sdp网关能够接收到该客户端信息,后续,当第二sdp客户端设备向该sdp网关发起资源访问时,该sdp网关能够基于该客户端信息中的设备标识对第二sdp客户端设备的访问进行合法性校验。
121.在一种可能的实施例中,sdp控制器向sdp网关发送北向报文,该北向报文中携带客户端信息。该北向报文是指通过restful或者netconf等北向协议下发的控制报文。可选的,该sdp控制器还能够向该sdp网关发送需要放行的源ip地址和目的端口,即向该sdp网关发送第二sdp客户端设备的源ip地址和允许第二sdp客户端设备访问的至少一个应用服务器的端口。该源ip地址和目的端口能够承载在该北向报文中。
122.上述过程中,当sdp控制器接收到第二sdp客户端设备发送的第一报文时,该sdp控制器能够按照下述图8所示的流程对第二sdp客户端设备进行认证。示例性的,当该sdp控制器接收到该第一报文时,该认证过程包括:该sdp控制器判断该第一报文是否为syn报文;若该第一报文不是syn报文,该sdp控制器忽略该第一报文;若该第一报文是syn报文,该sdp控制器判断该第一报文的tcp选项字段中是否携带第二sdp客户端设备的设备标识;若该第一报文的tcp选项字段中未携带该设备标识,该sdp控制器关闭该第一报文所属的第二sdp客户端设备与该sdp控制器之间的连接;若该第一报文的tcp选项字段中携带了该设备标识,判断该设备标识是否合法;若该设备标识不合法,则关闭该第一报文所属的第二sdp客户端设备与该sdp控制器之间的连接;若该设备标识合法,判断第二sdp客户端设备发送的第二
报文中的用户信息是否合法;若该第二报文中的用户信息不合法,该sdp控制器关闭该第一报文所属的第二sdp客户端设备与该sdp控制器之间的连接;若该第二报文中的用户信息合法,该sdp控制器向第二sdp客户端设备发送资源列表,并向该sdp网关发送客户端信息。
123.上述图6-图8示出了sdp控制器对第二sdp客户端设备的单包认证成功后,第二sdp客户端设备向该sdp控制器发送用于进行用户认证的第二报文,以及sdp控制器对第二sdp客户端设备的用户认证成功后,向第二sdp客户端设备发送的资源列表、向sdp网关发送客户端信息的情况。
124.下面通过图9对第二sdp客户端设备接收到资源列表、以及sdp网关接收到客户端信息之后,第二sdp客户端设备向该sdp网关发起资源访问、以及sdp网关对第二sdp客户端设备的访问进行校验和校验成功后返回业务数据的情况。如图9所示,该方法还包括:s207-s210,图9中未示出s201-s206。
125.s207:第二sdp客户端设备向sdp网关发送第三报文,该第三报文的tcp选项字段中携带第二sdp客户端设备的设备标识。
126.其中,在本技术实施例中,用“第三报文”表示第二sdp客户端设备向sdp网关发送的用于进行资源访问的报文。可选的,该第三报文是第二sdp客户端设备向该sdp网关发起tcp连接时的同步(synchronous,syn)报文。
127.另外,第三报文的tcp选项字段中携带第二sdp客户端设备的设备标识的方式与上述s201中描述的第一报文的tcp选项字段中携带sdp客户端设备的设备标识的方式类似,具体参见s201中的相关描述,本技术实施例在此不再赘述。
128.可选的,第三报文的tcp选项字段中携带的sdp客户端设备的设备标识为密文形式的设备标识。该密文形式的设备标识通过以下方式获得:第二sdp客户端设备根据第二sdp客户端设备的明文形式的设备标识获取指定长度的字符串,并使用第二sdp客户端设备向该sdp网关发起tcp连接时的syn报文的序列号对该字符串进行aes对称加密,以得到该密文形式的设备标识。
129.具体的,当第二sdp客户端设备接收到该sdp控制器发送的资源列表时,第二sdp客户端设备根据该资源列表向sdp网关发送第三报文,该第三报文可用于请求访问该至少一个应用服务器中的应用服务器,该第三报文的tcp选项字段中携带第二sdp客户端设备的设备标识。
130.可选的,第三报文还携带令牌信息,该令牌信息用于sdp网关对第二sdp客户端设备发起的资源访问进行校验。比如,该令牌信息包括用户令牌、设备令牌和应用令牌,该用户令牌可用于该sdp网关对第二sdp客户端设备的用户信息进行校验,该设备令牌可用于该sdp网关对第二sdp客户端设备进行校验,该应用令牌可用于该sdp网关对第二sdp客户端设备访问的应用服务器进行校验。
131.在另一种可能的实施例中,上述s207能够被替换为:第二sdp客户端设备向该sdp网关发送第三报文,该第三报文的tls选项字段中携带第二sdp客户端设备的设备标识。关于第二sdp客户端设备通过该第三报文的tls选项字段中携带第二sdp客户端设备的设备标识与通过该第三报文的tcp选项字段中携带第二sdp客户端设备的设备标识的区别,与上述s201的第一报文的相关描述一致,本技术实施例在此不再赘述。
132.s208:当sdp网关接收到该第三报文时,该sdp网关根据客户端信息包括的设备标
识和该第三报文包括的设备标识,确定第二sdp客户端设备是否合法。
133.当sdp网关接收到sdp控制器发送的该客户端信息时,该sdp网关解析该客户端信息,以得到该客户端信息包括的设备标识。当该sdp网关接收到第三报文时,该sdp网关解析该第三报文的tcp选项字段,以得到该第三报文包括的设备标识。之后,该sdp网关根据该客户端信息包括的设备标识和该第三报文包括的设备标识,确定第二sdp客户端设备是否合法。如果该客户端信息包括的设备标识和该第三报文包括的设备标识一致,则确定第二sdp客户端设备合法;如果该客户端信息包括的设备标识和该第三报文包括的设备标识不一致,则确定第二sdp客户端设备不合法。
134.可选的,若第三报文的tcp选项字段中携带的sdp客户端设备的设备标识为密文形式的设备标识,sdp网关还执行以下步骤:使用该第三报文的序列号对该密文形式的设备标识进行解密,得到指定长度的第一字符串,第一字符串用于sdp网关确定第二sdp客户端设备是否合法。
135.在一种示例中,sdp网关根据客户端信息包括的设备标识和第三报文包括的设备标识,确定第二sdp客户端设备是否合法,包括:该sdp网关根据该客户端信息包括的设备标识获取指定长度的第二字符串,比如,该sdp网关通过对该客户端信息包括的设备标识做该哈希运算,获得该指定长度的第二字符串;该sdp网关比较第一字符串和第二字符串;如果第一字符串和第二字符串一致,确定第二sdp客户端设备合法;如果第一字符串和第二字符串不一致,确定第二sdp客户端设备不合法。
136.可选的,第三报文还携带第二sdp客户端设备的源ip地址,该客户端信息还包括第二sdp客户端设备的源ip地址,该sdp网关还能够在该客户端信息中的源ip地址与该第三报文中的源ip地址一致时,确定第二sdp客户端设备的源ip地址合法。
137.在一种可能的实施例中,第三报文还携带令牌信息,该令牌信息用于该sdp网关对第二sdp客户端设备发起的资源访问进行校验。相应的,当该sdp网关接收到该第三报文时,该sdp网关还能够将该令牌信息发送给sdp控制器,以请求该sdp控制器对该令牌信息进行校验;当该sdp网关接收到该sdp控制器发送的令牌校验成功的信息时,该sdp网关确定第二sdp客户端设备发起的资源访问合法。
138.s209:如果确定第二sdp客户端设备合法,该sdp网关将第三报文发送给应用服务器。
139.其中,该应用服务器为第二sdp客户端设备请求访问的应用服务器,该应用服务器属于允许第二sdp客户端设备访问的至少一个应用服务器中。
140.在一种示例中,第三报文中还携带应用服务器的端口,当该sdp网关确定第二sdp客户端设备合法时,该sdp网关根据该应用服务器的端口,将该第三报文发送给该应用服务器。
141.s210:该sdp网关接收该应用服务器返回的业务数据,并将该业务数据转发给第二sdp客户端设备。
142.当sdp网关将第三报文发送给应用服务器,该应用服务器接收到该第三报文时,该应用服务器能够根据第三报文向该sdp网关返回对应的业务数据。当该sdp网关接收到该应用服务器返回的业务数据时,该sdp网关将该业务数据转发给第二sdp客户端设备。这样,第二sdp客户端设备能够接收到该业务数据,从而实现第二sdp客户端设备对于该应用服务器
的访问。
143.在本技术实施例中,第二sdp客户端设备向sdp网关发送第三报文,该第三报文的tcp选项字段中携带第二sdp客户端设备的设备标识。当该sdp网关接收到该第三报文时,该sdp网关能够基于该第三报文的携带的设备标识和该sdp控制器下发的客户端信息中的设备标识对第二sdp客户端设备进行合法性认证。如果确定第二sdp客户端设备合法,该sdp网关向应用服务器转发第三报文,并将该应用服务器返回的业务数据转发给第二sdp客户端设备。这样,当多个sdp客户端设备经过同一snat设备转换后使用同一源ip地址时,该sdp网关能够识别出不同的sdp客户端设备,从而能够保证受保护的应用资源的安全性。
144.上述主要从各个设备之间交互的角度对本技术实施例提供的方案进行了介绍。可以理解的是,上述sdp控制器、sdp客户端设备和sdp网关等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
145.本技术实施例可以根据上述方法示例对sdp控制器、sdp客户端设备和sdp网关进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
146.在采用集成的单元的情况下,图10示出了本技术实施例中所涉及的访问控制装置的一种可能的结构示意图,该装置可以作为sdp控制器或者sdp控制器内置的芯片,该装置包括:接收单元301,处理单元302和发送单元303。具有图10所示结构的sdp控制器能够实现上述方法实施例描述的方案中sdp控制器的功能。
147.在一种可能的实施例中,接收单元301用于接收第一sdp客户端设备发送的第一报文,第一报文的传输控制协议tcp选项字段中携带第一sdp客户端设备的设备标识。处理单元302用于根据第一sdp客户端设备的设备标识对第一sdp客户端设备进行单包认证,如果对第一sdp客户端设备的单包认证失败,关闭第一报文所属的第一sdp客户端设备和该sdp控制器之间的tcp连接。
148.在另一种可能的实施例中,接收单元301还用于接收第二sdp客户端设备发送的第一报文,第二sdp客户端设备发送的第一报文的tcp选项字段中携带第二sdp客户端设备的设备标识。处理单元302还用于根据第二sdp客户端设备的设备标识对第二sdp客户端设备进行单包认证;接收单元301还用于如果对第二sdp客户端设备的单包认证成功,接收第二sdp客户端设备发送的第二报文,第二报文的安全传输层协议tls选项字段或者应用层中携带鉴权信息,该鉴权信息包括第二sdp客户端设备的用户信息。处理单元302还用于根据第二sdp客户端设备的设备标识和该用户信息对第二sdp客户端设备进行用户认证。发送单元303用于如果对第二sdp客户端设备的用户认证成功,向第二sdp客户端设备发送资源列表,该资源列表包括允许第二sdp客户端设备访问的至少一个应用服务器的标识。
149.可选的,第二sdp客户端设备发送的第一报文和第二报文为同一个tcp连接中的报
文;或者,第二sdp客户端设备发送的第一报文和第二报文为不同tcp连接中的报文。
150.进一步的,若第二sdp客户端设备发送的第一报文和第二报文为不同tcp连接中的报文:发送单元303还用于根据第二sdp客户端设备发送的第一报文向第二sdp客户端设备发送盐值。相应的,第二报文还携带该盐值,处理单元302还用于根据第二报文中携带的该盐值确定第二sdp客户端设备的单包认证已成功。
151.可选的,第一sdp客户端设备发送的第一报文是syn报文。进一步的,第一sdp客户端设备发送的第一报文中携带的该设备标识为密文形式的设备标识,处理单元302还用于:使用该syn报文的序列号对该密文形式的设备标识进行解密,得到指定长度的字符串,该字符串用于该sdp控制器对第一sdp客户端设备进行单包认证。同理,第二sdp客户端设备发送的第一报文也满足上述描述。
152.进一步的,如果对第二sdp客户端设备的用户认证成功,发送单元303还用于:向sdp网关发送客户端信息,该客户端信息用于指示第二sdp客户端设备认证通过,该客户端信息包括第二sdp客户端设备的设备标识。
153.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
154.在采用硬件实现的基础上,本技术实施例中的处理单元302可以为该装置的处理器,发送单元303可以为该装置的发送器,接收单元301可以为该装置的接收器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口或接口电路。
155.如图11所示,为本技术实施例提供的上述实施例所涉及的访问控制装置的另一种可能的结构示意图,该装置可以作为可以作为sdp控制器或者sdp控制器内置的芯片,该装置包括:处理器311,还可以包括存储器312、通信接口313和总线314,处理器311、存储器312和通信接口313通过总线314连接。
156.其中,处理器311用于对该装置的动作进行控制管理。在一种可能的实施例中,处理器311可用于支持该装置执行上述方法实施例中s202、s203a、s204、s208、和/或本文所描述的其他技术过程中的一个或者多个步骤。通信接口313用于支持该装置进行通信,比如支持该装置与sdp客户端设备和sdp网关进行通信。
157.在本技术实施例中,处理器311可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述图11中的总线314可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,上述图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
158.在采用集成的单元的情况下,图12示出了本技术实施例中所涉及的访问控制装置的一种可能的结构示意图,该装置可以作为sdp客户端设备或者sdp客户端设备内置的芯片,该装置包括:发送单元401,接收单元402和处理单元403。具有图12所示结构的sdp客户端设备能够实现上述方法实施例描述的方案中sdp客户端设备的功能。
159.在一种可能的实施例中,发送单元401用于向sdp控制器发送第一报文,第一报文的传输控制协议tcp选项字段中携带该sdp客户端设备的设备标识。如果sdp控制器对该sdp客户端设备的单包认证失败,sdp控制器关闭第一报文对应的tcp连接。
160.在另一种可能的实施例中,如果sdp控制器对该sdp客户端设备的单包认证成功,发送单元401还用于向该sdp控制器发送第二报文,第二报文的安全传输层协议tls选项字段或者应用层中携带鉴权信息,该鉴权信息包括该sdp客户端设备的用户信息。接收单元402还用于接收该sdp控制器返回的资源列表,该资源列表包括允许该sdp客户端设备访问的至少一个应用服务器的标识。
161.可选的,第一报文和第二报文为同一个tcp连接中的报文;或者,第一报文和第二报文为不同tcp连接中的报文。进一步的,当第一报文和第二报文为不同tcp连接中的报文时,接收单元402还用于:接收该sdp控制器根据第一报文返回的盐值;相应的,第二报文中还携带该盐值,第二报文携带的该盐值用于该sdp控制器确定第二sdp客户端设备的单包认证已成功。
162.可选的,第一报文是同步syn报文。进一步的,该tcp选项字段中携带的该设备标识为密文形式的设备标识,处理单元403用于基于该sdp客户端设备的明文形式的设备标识获取指定长度的字符串,并使用该syn报文的序列号对该字符串进行加密,得到该密文形式的设备标识。在一种实施例中,该指定长度的字符串是通过对该明文的设备标识进行哈希运算得到的。
163.进一步的,发送单元401还用于向sdp网关发送第三报文,第三报文的tcp选项字段中携带该sdp客户端设备的设备标识。接收单元402用于接收该应用服务器返回的业务数据,该业务数据是该sdp网关根据第三报文的tcp选项字段中携带的该设备标识确定该sdp客户端设备合法后将第三报文转发给该应用服务器后,该应用服务器发送的。
164.可选的,第三报文是syn报文。第三报文的tcp选项字段中携带的该设备标识为密文形式的设备标识。
165.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
166.在采用硬件实现的基础上,本技术实施例中的处理单元403可以为该装置的处理器,发送单元401可以为该装置的发送器,接收单元402可以为该装置的接收器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口或接口电路。
167.如图13所示,为本技术实施例提供的上述实施例所涉及的访问控制装置的另一种可能的结构示意图,该装置可以作为可以作为sdp客户端设备或者sdp客户端设备内置的芯片,该装置包括:处理器411,还可以包括存储器412、通信接口413和总线414,处理器411、存储器412和通信接口413通过总线414连接。
168.其中,处理器411用于对该装置的动作进行控制管理。在一种可能的实施例中,处理器411可用于支持该装置执行上述方法实施例中的对该sdp客户端设备的设备标识进行加密、生成第一报文至第三报文、解析sdp控制器和sdp网关发送的信息的等步骤中的一个或者多个。通信接口413用于支持该装置进行通信,比如支持该装置与sdp控制器和sdp网关进行通信。
169.在本技术实施例中,处理器411可以是中央处理器单元,通用处理器,数字信号处
理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述图13中的总线414可以是pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,上述图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
170.在采用集成的单元的情况下,图14示出了本技术实施例中所涉及的访问控制装置的一种可能的结构示意图,该装置可以作为sdp网关或者sdp网关内置的芯片,该装置包括:接收单元501,处理单元502和发送单元503。具有图14所示结构的sdp网关能够实现上述方法实施例描述的方案中sdp网关的功能。
171.其中,接收单元501用于接收sdp控制器发送的客户端信息,该客户端信息用于指示sdp客户端设备认证通过,该客户端信息包括该sdp客户端设备的设备标识。接收单元501还用于接收该sdp客户端设备发送的第三报文,第三报文的tcp选项字段中携带该sdp客户端设备的设备标识。处理单元502用于根据该客户端信息包括的该设备标识和第三报文包括的该设备标识,确定该sdp客户端设备是否合法。发送单元503用于如果确定该sdp客户端设备合法,将第三报文发送给应用服务器,并将该应用服务器返回的业务数据转发给该sdp客户端设备。
172.在一种实施例中,第三报文是syn报文。可选的,该tcp选项字段中携带的该设备标识为密文形式的设备标识,处理单元502还用于:使用该syn报文的序列号对该密文形式的设备标识进行解密,得到指定长度的第一字符串,第一字符串用于该sdp网关确定该sdp客户端设备是否合法。进一步的,处理单元502还用于:根据该客户端信息包括的该设备标识获取该指定长度的第二字符串;比较第一字符串和第二字符串;如果第一字符串和第二字符串一致,确定该sdp客户端设备合法。
173.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
174.在采用硬件实现的基础上,本技术实施例中的处理单元502可以为该装置的处理器,接收单元501可以为该装置的接收器,发送单元503可以为该装置的发送器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口或接口电路。
175.如图15所示,为本技术实施例提供的上述实施例所涉及的访问控制装置的另一种可能的结构示意图,该装置可以作为可以作为sdp网关或者sdp网关内置的芯片,该装置包括:处理器511,还可以包括存储器512、通信接口513和总线514,处理器511、存储器512和通信接口513通过总线514连接。
176.其中,处理器511用于对该装置的动作进行控制管理。在一种可能的实施例中,处理器511可用于支持该装置接收上述方法实施例中的s208,和/或本文所描述的其他技术过程。通信接口513用于支持该装置进行通信,比如支持该装置与sdp控制器和sdp客户端设备进行通信。
177.在本技术实施例中,处理器511可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑
方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述图15中的总线514可以是pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,上述图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
178.本技术实施例还提供一种访问控制系统,该访问控制系统中可以包括sdp控制器、sdp客户端设备和sdp网关。该sdp控制器、sdp客户端设备和sdp网关可以用于实现上述方法实施例中提供的任意一种访问控制方法。
179.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本技术实施例提供的各个设备(sdp控制器、sdp客户端设备和sdp网关),用于执行上述实施例中对应设备的功能,因此可以达到与上述方法实施例相同的效果。
180.在上述实施例中的功能或动作或操作或步骤等,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
181.基于此,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在计算机设备上运行时,执行上述方法实施例中的sdp控制器的步骤。
182.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在计算机设备上运行时,执行上述方法实施例中的sdp客户端设备的步骤。
183.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行上述方法实施例中的sdp网关的步骤。
184.在本技术的又一方面,提供一种包含指令的计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行上述方法实施例中的sdp控制器的步骤。
185.在本技术的又一方面,提供一种包含指令的计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行上述方法实施例中的sdp客户端设备的步骤。
186.在本技术的又一方面,提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上设备运行时,使得计算机设备执行上述方法实施例中的sdp网关的步骤。
187.最后应说明的是:以上所述,仅为本技术的具体实施方式,但本技术的保护范围并
不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1