资源访问请求的处理方法、装置、存储介质及电子设备与流程



1.本发明涉及信息安全技术领域,具体而言,涉及一种资源访问请求的处理方法、装置、存储介质及电子设备。


背景技术:



2.近些年来零信任模型受到了重视和推崇,其最核心的原则是永不信任,始终验证,始终基于所有可用数据点进行身份验证和授权,包括用户身份、位置、设备、数据源、服务或工作负载。持续验证意味着不存在可信区域、设备或用户。现有技术中,通过固定token或有规律的token保证访问安全性,但是,由于一次或多次token泄露,都会导致攻击者非法访问目标资源以及造成所有资源处于风险当中。
3.此外,现有技术中,还通过服务器定期向客户端发放新token,并将旧的token无效化来保证安全性,但是由于每次发放新的token都需要特别保证安全性,特别是通过token协商等复杂算法来发放token,其涉及的流程较多,并且上述方法仅仅是将token泄露的风险降低到了一定时间范围内,即泄露的token一定时间后会失效,并不能做到绝对安全。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:



5.本发明实施例提供了一种资源访问请求的处理方法、装置、存储介质及电子设备,以至少解决现有技术中客户端在访问服务器资源的过程中所存在的安全风险高的技术问题。
6.根据本发明实施例的一个方面,提供了一种资源访问请求的处理方法,包括:在目标客户端首次连接服务器时,确定初始令牌,其中,初始令牌是目标客户端和服务器基于预设算法协商确定的;对初始令牌进行n次迭代,得到服务器的首次访问令牌;基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性,得到识别结果,其中,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到,n为大于1的正整数;在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源,其中,在目标客户端非首次访问服务器时,服务器对服务器的上一次访问令牌进行迭代,以确定目标客户端的访问请求是否合法,上一次访问令牌是对服务器的首次访问令牌进行k次迭代得到的,k+1为目标客户端访问服务器的访问次数。
7.进一步地,资源访问请求的处理方法还包括:目标客户端通过如下方式对初始令牌进行n次迭代得到目标客户端的首次访问令牌:步骤11,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;步骤12,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤13,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;步骤14,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;步骤15,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;步骤16,重复执行步骤14至
步骤15,直至执行次数达到n次,确定第三令牌为目标客户端的首次访问令牌。
8.进一步地,资源访问请求的处理方法还包括:步骤21,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;步骤22,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤23,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;步骤24,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;步骤25,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;步骤26,识别第三令牌是否与目标客户端的首次访问令牌一致;如果第三令牌与目标客户端的首次访问令牌一致,则确定第三令牌为服务器的首次访问令牌;如果第三令牌与目标客户端的首次访问令牌不一致,则重复执行步骤24至步骤25,直至执行次数达到n次,拒绝目标客户端的访问请求。
9.进一步地,资源访问请求的处理方法还包括:步骤31,在目标客户端首次成功访问服务器,并且,目标客户端访问服务器中的单一资源时,接收目标客户端发送的资源访问请求,其中,资源访问请求中至少包括目标客户端的客户端标识以及目标令牌,目标令牌是目标客户端对上一次访问服务器的令牌进行迭代得到的;步骤32,基于客户端标识确定服务器的上一次访问令牌;步骤33,以上一次访问令牌作为盐值,对服务器的上一次访问令牌进行加盐哈希计算,得到第一令牌;步骤34,以第一令牌作为盐值,对上一次访问令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤35,以上一次访问令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌。
10.进一步地,资源访问请求的处理方法还包括:步骤41,在目标客户端首次成功访问服务器,并且,目标客户端访问服务器中的多个资源时,接收目标客户端发送的资源访问请求,其中,资源访问请求中至少包括目标客户端的客户端标识以及目标令牌,目标令牌是目标客户端对上一次访问服务器的令牌进行迭代得到的;步骤42,基于客户端标识确定服务器的第k-1次访问令牌,以及目标客户端对应的q个可访问资源,其中,每个可访问资源具有对应的子令牌,q为大于1的正整数;步骤43,以第k-1次访问令牌作为盐值,对服务器的第k-1次访问令牌与第k-1次访问令牌对应的秘密值之和进行加盐哈希计算,得到当前秘密值;步骤44,以目标客户端本次访问的第k+i个可访问资源的子令牌作为盐值,对当前秘密值进行加盐哈希计算,得到第k次访问令牌,其中,1≤i≤q;步骤45,重复执行步骤43至步骤44,直至执行次数达到q次,得到目标客户端访问多个可访问资源时所对应的令牌。
11.进一步地,资源访问请求的处理方法还包括:在对第一秘密值进行加盐哈希计算,得到第二令牌之后,在第二令牌与目标令牌一致的情况下,确定目标客户端的资源访问请求为正常访问请求,允许目标客户端访问服务器;在第二令牌与目标令牌不一致的情况下,确定目标客户端的资源访问请求为非法访问请求,禁止目标客户端访问服务器。
12.进一步地,资源访问请求的处理方法还包括:在确定目标客户端的资源访问请求为正常访问请求之后,更新服务器中的目标令牌,并向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标客户端中的目标令牌。
13.根据本发明实施例的另一方面,还提供了一种资源访问请求的处理装置,包括:令牌确定模块,用于在目标客户端首次连接服务器时,确定初始令牌,其中,初始令牌是目标客户端和服务器基于预设算法协商确定的;迭代计算模块,用于对初始令牌进行n次迭代,
得到服务器的首次访问令牌;请求识别模块,用于基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性,得到识别结果,其中,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到;结果识别模块,用于在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源,其中,在目标客户端非首次访问服务器时,服务器对服务器的上一次访问令牌进行迭代,以确定目标客户端的访问请求是否合法,上一次访问令牌是对服务器的首次访问令牌进行k次迭代得到的,k+1为目标客户端访问服务器的访问次数。
14.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的资源访问请求的处理方法。
15.根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的资源访问请求的处理方法。
16.根据本发明实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述的资源访问请求的处理方法。
17.在本发明实施例中,采用对初始令牌进行n次迭代得到服务器的首次访问令牌,基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性来确定资源访问请求是否为正常访问请求的方式,首先通过在目标客户端首次连接服务器时,确定初始令牌;然后对初始令牌进行n次迭代,得到服务器的首次访问令牌;其次基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性,得到识别结果;最后在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源;其中,初始令牌是目标客户端和服务器基于预设算法协商确定的,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到,n为大于1的正整数,在目标客户端非首次访问服务器时,服务器对服务器的上一次访问令牌进行迭代,以确定目标客户端的访问请求是否合法,上一次访问令牌是对服务器的首次访问令牌进行k次迭代得到的,k+1为目标客户端访问服务器的访问次数。
18.在上述过程中,令牌可采取预设算法自动生成,无需目标客户端与服务器每次进行配发,从而提高了令牌生成效率以及令牌的安全性;此外,通过对令牌进行迭代,即使攻击者捕获了多次访问的当前令牌,也无法预测下一次访问的令牌,进一步提高了基于令牌访问服务器资源的过程中的安全性;并且令牌的迭代算法中秘密维护的秘密值自始至终是变化的、无法猜测的、不会暴露在互联网上的,进一步提高了基于令牌访问服务器资源的过程中的安全性,进而解决了相关技术中客户端在访问服务器资源的过程中所存在的安全风险高的技术问题。
19.由此可见,通过本发明的技术方案,达到了对资源请求的处理的目的,从而实现了提高客户端在访问服务器资源的过程中的安全性的技术效果,进而解决了相关技术中,客户端在访问服务器资源的过程中所存在的安全风险高的技术问题。
附图说明
20.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
21.图1是根据本发明实施例的一种资源访问请求的处理方法的流程图;
22.图2是根据本发明实施例的一种可选的资源访问请求的处理方法的示意图;
23.图3是根据本发明实施例的一种可选的资源访问请求的处理装置的示意图;
24.图4是根据本发明实施例的一种可选的服务器的示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.需要说明的是,本发明所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
28.实施例1
29.根据本发明实施例,提供了一种资源访问请求的处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
30.图1是根据本发明实施例的一种可选的资源访问请求的处理方法的流程图,如图1所示,该方法包括如下步骤:
31.步骤s102,在目标客户端首次连接服务器时,确定初始令牌,其中,初始令牌是目标客户端和服务器基于预设算法协商确定的。
32.步骤s104,对初始令牌进行n次迭代,得到服务器的首次访问令牌。
33.步骤s106,基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性,得到识别结果,其中,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到。
34.步骤s108,在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源,其中,在目标客户端非首次访问服务器时,服务器对服务器的上一次访问令牌进行迭代,以确定目标客户端的访问请求是否合法,上一次访问令牌是对服务器的首次访问令牌进行k次迭代得到的,k+1为目标客户端访问服务器的访问次数。
35.基于上述步骤s102至步骤s108所限定的方案,可以获知,在本发明实施例中,采用对初始令牌进行n次迭代得到服务器的首次访问令牌,基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性来确定资源访问请求是否为正常访问请求的方式,首先通过在目标客户端首次连接服务器时,确定初始令牌;然后对初始令牌进行n次迭代,得到服务器的首次访问令牌;其次基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性,得到识别结果;最后在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源;其中,初始令牌是目标客户端和服务器基于预设算法协商确定的,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到,n为大于1的正整数,在目标客户端非首次访问服务器时,服务器对服务器的上一次访问令牌进行迭代,以确定目标客户端的访问请求是否合法,上一次访问令牌是对服务器的首次访问令牌进行k次迭代得到的,k+1为目标客户端访问服务器的访问次数。
36.在上述过程中,令牌可采取预设算法自动生成,无需目标客户端与服务器每次进行配发,从而提高了令牌生成效率以及令牌的安全性;此外,通过对令牌进行迭代,即使攻击者捕获了多次访问的当前令牌,也无法预测下一次访问的令牌,进一步提高了基于令牌访问服务器资源的过程中的安全性;并且令牌的迭代算法中秘密维护的秘密值自始至终是变化的、无法猜测的、不会暴露在互联网上的,进一步提高了基于令牌访问服务器资源的过程中的安全性,进而解决了相关技术中客户端在访问服务器资源的过程中所存在的安全风险高的技术问题。
37.由此可见,通过本发明的技术方案,达到了对资源请求的处理的目的,从而实现了提高客户端在访问服务器资源的过程中的安全性的技术效果,进而解决了相关技术中客户端在访问服务器资源的过程中所存在的安全风险高的技术问题。
38.在步骤s102中,本实施例通过服务器处理目标客户端的首次连接请求。可选的,服务器可以包含代理网关、网络安全边界等功能的服务器,设备本身隔离了目标客户端和服务器的资源之间的网络,并进行访问控制。
39.在本实施例中,令牌在技术实现中通常表述为token,其中,用户的身份安全依赖于token,用户每次通过目标客户端访问服务器都需要验证token,此外,在本实施例中,在目标客户端首次连接服务器时,可基于预设算法协商确定初始令牌,例如,如图2所示,可基于密钥交换算法完成初始令牌的配发工作。
40.可选的,在通过密钥交换算法配发初始令牌之前,还需要通过多因素认证、口令认证等方式保证用户身份准确无误。
41.需要说明的是,通过密钥交换算法能够保证服务器和客户端都生成约定的令牌,同时令牌本身不会在信道上传递,从而保证了安全性。
42.可选的,在本实施例中,密钥交换算法为ecdhe密钥交换算法。ecdhe密钥交换算法确定初始令牌的基本过程如下:
43.(1)目标客户端随机生成第一随机值ra,通过如下公式计算得到第二随机值:
44.pa(x,y)=ra*q(x,y)
45.其中,q(x,y)为公认的某个椭圆曲线算法的基点,pa(x,y)为第二随机值,然后目标客户端将pa(x,y)发送至服务器。
46.(2)服务器随机生成第三随机值rb,通过如下公式计算得到第三随机值:
47.pb(x,y)=rb*q(x,y)
48.其中,pb(x,y)为第三随机值,服务器将第三随机值发送至目标客户端。
49.(3)目标客户端通过如下公式计算得到第四随机值:
50.sa(x,y)=ra*pb(x,y)
51.其中,sa(x,y)为第四随机值。
52.(4)服务器通过如下公式计算得到第五随机值:
53.sb(x,y)=rb*pa(x,y)
54.其中,sb(x,y)为第五随机值。
55.(5)通过上述算法保证了sa(x,y)=sb(x,y)=s,其中,s为目标随机值,然后提取s的x向量作为初始令牌。
56.在步骤s104中,服务器对初始令牌进行n次迭代得到服务器的首次访问令牌。
57.在步骤s106中,服务器通过识别目标客户端的首次访问令牌与服务器的首次访问令牌是否一致,得到识别结果。可选的,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到,n为大于1的正整数。
58.进一步的,目标客户端通过如下方式对初始令牌进行n次迭代得到目标客户端的首次访问令牌:
59.步骤11,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;
60.步骤12,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;
61.步骤13,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;
62.步骤14,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;
63.步骤15,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;
64.步骤16,重复执行步骤14至步骤15,直至执行次数达到n次,确定第三令牌为目标客户端的首次访问令牌。
65.在本实施例中,使用的hash算法为sha256,以t为初始令牌。为了隐藏首次访问令牌与初始令牌之间的联系,目标客户端对该资源进行首次访问时,其初始令牌不直接使用,而是按照一定形式进行n次哈希运算。
66.在步骤11中,对初始令牌t进行第一次哈希运算过程为:
67.[t]1=sha(t,t)
ꢀꢀꢀꢀꢀꢀꢀ
(1)
[0068]
其中,t是通过上述密钥协商算法计算出来的初始令牌,上式中哈希运算的盐值使用了初始令牌本身。[t]1表示第一令牌,上标1表示初始令牌经过一次哈希运算的结果,同样地,使用中括号加上标k表示初始令牌经过k次哈希运算的结果。
[0069]
在步骤12中,对初始令牌与第一令牌之和t+[t]1进行加盐哈希计算,得到第一秘
密值,计算公式如下:
[0070]
secret=sha(t+[t]1,[t]1)
ꢀꢀꢀꢀꢀꢀꢀ
(2)
[0071]
其中,其结果是base64编码,使用的盐值为第一令牌[t]1,secret为第一秘密值。
[0072]
在步骤13中,对第一秘密值进行加盐哈希计算,得到第二令牌,计算公式如下:
[0073]
[t]2=sha(secret,t)
ꢀꢀꢀꢀꢀꢀꢀ
(3)
[0074]
其中,使用的盐值为初始令牌,[t]2为第二令牌。
[0075]
在步骤14中,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值,计算公式如下:
[0076]
secret=sha(t+[t]2,[t]2)
ꢀꢀꢀꢀꢀꢀꢀ
(4)
[0077]
在步骤15中,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌,计算公式如下:
[0078]
[t]3=sha(secret,t)
ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0079]
在步骤16中,重复执行步骤14至步骤15,直至执行次数达到n次,确定第三令牌为目标客户端的首次访问令牌,具体公式如下:
[0080]
[t]n=sha(secret,t)
[0081]
secret=sha(secret+[t]n,[t]n)
ꢀꢀꢀꢀꢀꢀꢀ
(6)
[0082]
容易注意到的是,通过隐藏首次访问的令牌与初始令牌之间关系,因为哈希运算是不可逆的,攻击者即使捕获了首次访问的令牌,也无法猜测初始令牌,提高了客户端在访问服务器资源的过程中的安全性。
[0083]
在另一种可选的,通过如下步骤基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性:
[0084]
步骤21,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;
[0085]
步骤22,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;
[0086]
步骤23,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;
[0087]
步骤24,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;
[0088]
步骤25,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;
[0089]
步骤26,识别第三令牌是否与目标客户端的首次访问令牌一致;如果第三令牌与目标客户端的首次访问令牌一致,则确定第三令牌为服务器的首次访问令牌;如果第三令牌与目标客户端的首次访问令牌不一致,则重复执行步骤24至步骤25,直至执行次数达到n次,拒绝目标客户端的访问请求。
[0090]
在本实施例中,步骤21-26执行的计算公式如上述公式(1)-(6),此处不再赘述。可选的,服务器并不知道客户端生成的迭代次数的大小,因此服务器只能按照公式(6)重复迭代,直到到该整数n,使得服务器计算的token与客户端一致。或者,服务器计算了最多n次迭代,仍然没能使得其计算的token与客户端一致,则该访问为非法的,可拒绝目标客户端的访问请求。
[0091]
需要说明的是,由于秘密值在目标客户端与服务器是保密存储的,从未在网络上传递过,因而相对安全。每次访问的token是变化的,即使被多次捕捉,攻击者也无法计算下
一次的token。实际上,secret值可以看成此前所有历史token的汇总,但即使攻击者获取了所有的历史token,也无法获得secret值,因为对于攻击者而言,原始token是未知的、因而首次访问使用的n值也是未知的。由于每次token的迭代,因此访问无需使用时间戳、随机数等来防止重放攻击。
[0092]
在步骤s108中,在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源,例如,识别结果表征目标客户端的首次访问令牌与服务器的首次访问令牌一致时,允许目标客户端访问服务器中的资源;识别结果表征目标客户端的首次访问令牌与服务器的首次访问令牌不一致时,禁止目标客户端访问服务器中的资源。
[0093]
可选的,在目标客户端非首次访问服务器时,服务器需要对服务器的上一次访问的令牌进行k次迭代,得到服务器的当前访问令牌,在服务器的当前访问令牌与目标客户端的当前访问令牌一致时,允许目标客户端访问服务器中的资源。可选的,k+1为目标客户端访问服务器的当前访问次数。
[0094]
进一步的,在本实施例中遵循零信任模型(ztna模型)中如下两个基本的原则:
[0095]
(1)资源分段原则,传统网络公开了对所有数据资产、服务器和应用程序的直接访问。零信任模型划分了这些资源的各个子集,并取消了用户直接访问它们而无需首先通过严格控制的网关的能力,即“网络隔离”。ztna模型中网络目标资源相对独立,即使某一目标资源收到入侵,也不会威胁到其它目标资源。
[0096]
(2)访问控制原则,无论用户是实际位于办公室还是远程工作,他们都应该只能访问符合其各自角的信息和资源。网络的每个部分都应该进行身份验证和授权,以确保流量是从受信任的用户发送的,并且需要限制访问终端的环境。
[0097]
在现有技术中,用户通过在aaa服务器认证,通过vpn等方式接入目标网络,匹配策略获得访问对应应用资源的权限。认证过程只有一次,每次访问不再接受验证。而在本实施例中,用户的身份安全依赖于动态令牌,每次访问都需要验证动态令牌。该动态令牌需要满足以下多个条件:
[0098]
(1)令牌每次访问都必须是变化的,不固定的。
[0099]
(2)令牌只会在初始配发时使用算法进行协商生成,并不需要服务器每次进行配发,后续采取约定算法自动生成。即客户端知道如何生成该令牌并使用该令牌进行访问,服务器知道客户端会生成怎样的令牌,以便访问到来时进行验证。
[0100]
(3)动态令牌生成所需要的参数是不会在网络上进行传递的,从而保证令牌是不会被人计算的。
[0101]
(4)令牌并不是依赖于上一次,或前几次访问的令牌而生成的,对于攻击者而言,令牌应当看上去是随机的,但服务器又可以预测客户端下次访问的令牌,如果不符,则服务器会拒绝访问。
[0102]
可选的,首次访问验证通过后,服务器与客户端对于每次访问的安全验证过程如下:
[0103]
(1)目标客户端计算本次访问令牌,携带令牌发起访问。
[0104]
(2)服务器收到访问请求,使用与目标客户端相同的算法迭代访问令牌,目标客户端提供的令牌与服务器提供的令牌相同,则访问合法,否则判断本次访问为非法,拒绝访
问。
[0105]
(3)服务器回复客户端的访问之后,认为本次访问成功,基于迭代程序更新令牌,下次目标客户端需使用该令牌才可访问成功。目标客户端收到服务器回复,认为本次访问成功,基于迭代程序更新令牌,下次使用该令牌进行访问。
[0106]
为满足上述对令牌的要求,目标客户端和服务器对每次访问的令牌都通过特定迭代来确定,例如,第k次访问使用的令牌是原始令牌经过n+k-1次迭代的结果。
[0107]
一种可选的实施例,在目标客户端首次成功访问服务器,并且,目标客户端访问服务器中的单一资源时,通过如下步骤确定第二令牌,其中,第二令牌为目标客户端访问服务器中的单一资源时服务器对应的令牌:
[0108]
步骤31,接收目标客户端发送的资源访问请求,其中,资源访问请求中至少包括目标客户端的客户端标识以及目标令牌,目标令牌是目标客户端对上一次访问服务器的令牌进行迭代得到的;
[0109]
步骤32,基于客户端标识确定服务器的上一次访问令牌;
[0110]
步骤33,以上一次访问令牌作为盐值,对服务器的上一次访问令牌进行加盐哈希计算,得到第一令牌;
[0111]
步骤34,以第一令牌作为盐值,对上一次访问令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;
[0112]
步骤35,以上一次访问令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌。
[0113]
在本实施例中,客户端标识可以为目标客户端的ip地址、物理地址等标识,服务器基于客户端标识可以识别对应的目标客户端。可选的,目标令牌为基于目标客户端上一次访问服务器生成的令牌。
[0114]
可选的,在步骤31-32中,如图2所示,在目标客户端访问服务器中的单一资源时,服务器迭代n次计算首次访问令牌,并验证访问的合法性。在后续的每次访问时,对令牌进行迭代,直到访问结束。即服务器通过目标客户端的访问请求可以确定目标客户端的客户端标识以及目标令牌,服务器可基于目标客户端的客户端标识确定服务器的上一次访问令牌。在步骤33-35中,可分别通过上述公式(1)-(3)进行计算得到第二令牌,基于第二令牌对服务器的单一资源及逆行访问。
[0115]
需要说明的是,通过客户端标识确定当前令牌,基于唯一的客户端标识,提高了确定当前令牌的准确性。
[0116]
另一种可选的实施例,在目标客户端首次成功访问服务器,并且,目标客户端访问服务器中的多个资源时,通过如下步骤确定目标客户端访问多个可访问资源时所对应的令牌:
[0117]
步骤41,接收目标客户端发送的资源访问请求,其中,资源访问请求中至少包括目标客户端的客户端标识以及目标令牌,目标令牌是目标客户端对上一次访问服务器的令牌进行迭代得到的;
[0118]
步骤42,基于客户端标识确定服务器的第k-1次访问令牌,以及目标客户端对应的q个可访问资源,其中,每个可访问资源具有对应的子令牌,q为大于1的正整数;
[0119]
步骤43,以第k-1次访问令牌作为盐值,对服务器的第k-1次访问令牌与第k-1次访
问令牌对应的秘密值之和进行加盐哈希计算,得到当前秘密值;
[0120]
步骤44,以目标客户端本次访问的第k+i个可访问资源的子令牌作为盐值,对当前秘密值进行加盐哈希计算,得到第k次访问令牌,其中,1≤i≤q;
[0121]
步骤45,重复执行步骤43至步骤44,直至执行次数达到q次,得到目标客户端访问多个可访问资源时所对应的令牌。
[0122]
在本实施例中,如图2所示,在目标客户端访问服务器中的多个资源时,即资源访问类型为多资源访问类型时,服务器针对每个访问资源再配发一个令牌,并迭代n次计算访问的令牌,同时验证访问的合法性。然后,在每次访问时,服务器根据访问的资源对令牌进行迭代,直到访问结束。即服务器通过将零信任模型中划分了资源的各个子集,利用哈希算法的不可逆性将多资源访问的令牌迭代结合在一起,能在很大程度上降低各个令牌泄露的风险。例如,将可以访问的应用资源分为若干个子集,通过一次严密的认证过程获取i个资源子集的访问权限,通常可以匹配访问用户的终端运行环境相关的策略,匹配用户组织信息相关的策略,以及其它常规策略,然后决定为其授权哪些资源子集的访问权限。
[0123]
可选的,服务器基于客户端标识确定服务器的第k-1次访问令牌,以及目标客户端对应的q个可访问资源,其中,每个可访问资源具有对应的子令牌,q为大于1的正整数,然后为目标客户端配发i个子令牌,每个资源对应一个子令牌,分别记作t1,t2,...,ti。子令牌既可以通过安全性高的密钥交换算法配发,也可以在安全信道中直接传递。子令牌通常是用户访问对应资源的权限证明,可以基于策略匹配进行配发、吊销等等。
[0124]
本实施例规定首次访问用于验证客户身份合法性,并不实际访问特定资源,首次访问结束后,后续访问资源时验证过程如下,若客户端本次访问的是资源j,0≤j≤i,其中,tj是为用户配发的针对资源j的子令牌,[t]
k-1
作为当前令牌,则访问资源j时,执行如下计算,以确定本次访问服务器的k+i个资源中的资源j的令牌[t]k,并更新secret的值:
[0125]
[t]k=sha(secret,tj)
ꢀꢀꢀꢀꢀꢀ
(7)
[0126]
secret=sha(secret+[t]k,[t]k)
[0127]
可选的,下次访问任何资源,假定资源编号为p,令牌继续使用上述公式进行迭代,将上述公式中的tj换成t
p
,其中t
p
是为资源p配发的子令牌。以上算法对于服务器而言是已知的,因而该token是可以轻易验证的。
[0128]
进一步的,重复执行上述公式(7),直至执行次数达到q次,得到目标客户端访问多个可访问资源时所对应的令牌。
[0129]
需要说明的是,在多资源访问时,secret可以看作是客户端和服务器时刻秘密计算并更新的约定值,该约定值汇总了多个资源子集对应的token,由于该汇总过程是完全不可逆的,无法通过汇总结果推导汇总前的各个token,因此该过程利用多个token的汇总计算保护了每个token的私密性。并且始终维护的secret值还可以作为约定的令牌,用于二次加密隐私数据,例如密码、终端环境信息、用户信息等等。由于secret是时刻动态变化的,对于攻击者而言是无法发现规律的。因此使用secret值作为对称加密的密钥,二次加密一些隐私数据是相对安全的。
[0130]
进一步的,在对第一秘密值进行加盐哈希计算,得到第二令牌之后,服务器在第二令牌与目标令牌一致的情况下,确定目标客户端的资源访问请求为正常访问请求,允许目标客户端访问服务器;在第二令牌与目标令牌不一致的情况下,确定目标客户端的资源访
问请求为非法访问请求,禁止目标客户端访问服务器。
[0131]
可选的,服务器通过识别第二令牌与目标令牌是否一致来确定是否允许目标客户端访问服务器的资源,在第二令牌与目标令牌一致时,确定为目标客户端的资源访问请求为正常访问请求,允许访问服务器的资源;在第二令牌与目标令牌不一致时,确定目标客户端的资源访问请求为非法访问请求,不允许访问服务器的资源。
[0132]
进一步的,在确定目标客户端的资源访问请求为正常访问请求之后,更新服务器中的目标令牌,并向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标客户端中的目标令牌。
[0133]
可选的,在确定资源访问请求为正常访问请求之后,向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标令牌。
[0134]
需要说明的是,通过向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标令牌,可以防止对服务器的攻击,从而进一步提高资源访问的安全性。
[0135]
由上述内容可知,本技术通过哈希运算对令牌进行迭代,由于哈希算法运算量小,每次只生成固定长度的哈希值,减少了由于迭代次数增加而导致客户端和服务器的存储和运算的负担;即使攻击者捕获了多次访问的密钥,也无法预测下一次的访问密钥,此外,即使攻击者多次试图对某一应用资源的进行非法访问,也会因为各个密钥之间的混淆运算而无法破解;并且无需时间戳,通过密钥的迭代防止重放攻击;最后,基于密钥迭代算法中秘密维护的secret值自始至终是变化的、无法猜测的、不会暴露在互联网上的,还可以作为对称密钥二次加密隐私数据。
[0136]
实施例2
[0137]
根据本发明实施例,还提供了一种资源访问请求的处理装置的实施例,其中,图3是根据本发明实施例的一种可选的一种资源访问请求的处理装置的示意图,如图3所示,该装置包括:令牌确定模块301、迭代计算模303、请求识别模块305以及结果识别模块307。
[0138]
其中,令牌确定模块301,用于在目标客户端首次连接服务器时,确定初始令牌,其中,初始令牌是目标客户端和服务器基于预设算法协商确定的。
[0139]
可选的,在本实施例中,令牌在技术实现中通常表述为token,其中,用户的身份安全依赖于token,用户每次通过目标客户端访问服务器都需要验证token,此外,在本实施例中,在目标客户端首次连接服务器时,可基于预设算法协商确定初始令牌,例如,如图2所示,可基于密钥交换算法完成初始令牌的配发工作。
[0140]
可选的,在通过密钥交换算法配发初始令牌之前,还需要通过多因素认证、口令认证等方式保证用户身份准确无误。
[0141]
需要说明的是,通过密钥交换算法能够保证服务器和客户端都生成约定的令牌,同时令牌本身不会在信道上传递,从而保证了安全性。
[0142]
可选的,在本实施例中,密钥交换算法为ecdhe密钥交换算法。ecdhe密钥交换算法确定初始令牌的基本过程如下:
[0143]
(1)目标客户端随机生成第一随机值ra,通过如下公式计算得到第二随机值:
[0144]
pa(x,y)=ra*q(x,y)
[0145]
其中,q(x,y)为公认的某个椭圆曲线算法的基点,pa(x,y)为第二随机值,然后目标客户端将pa(x,y)发送至服务器。
[0146]
(2)服务器随机生成第三随机值rb,通过如下公式计算得到第三随机值:
[0147]
pb(x,y)=rb*q(x,y)
[0148]
其中,pb(x,y)为第三随机值,服务器将第三随机值发送至目标客户端。
[0149]
(3)目标客户端通过如下公式计算得到第四随机值:
[0150]
sa(x,y)=ra*pb(x,y)
[0151]
其中,sa(x,y)为第四随机值。
[0152]
(4)服务器通过如下公式计算得到第五随机值:
[0153]
sb(x,y)=rb*pa(x,y)
[0154]
其中,sb(x,y)为第五随机值。
[0155]
(5)通过上述算法保证了sa(x,y)=sb(x,y)=s,其中,s为目标随机值,然后提取s的x向量作为初始令牌。
[0156]
迭代计算模块303,用于对初始令牌进行n次迭代,得到服务器的首次访问令牌。
[0157]
可选的,服务器对初始令牌进行n次迭代得到服务器的首次访问令牌。
[0158]
请求识别模块305,用于基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性,得到识别结果,其中,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到,n为大于1的正整数。
[0159]
可选的,服务器通过识别目标客户端的首次访问令牌与服务器的首次访问令牌是否一致,得到识别结果。可选的,目标客户端的首次访问令牌是目标客户端对初始令牌进行n次迭代得到,n为大于1的正整数。
[0160]
结果识别模块307,用于在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源,其中,在目标客户端非首次访问服务器时,服务器对服务器的上一次访问令牌进行迭代,以确定目标客户端的访问请求是否合法,上一次访问令牌是对服务器的首次访问令牌进行k次迭代得到的,k+1为目标客户端访问服务器的访问次数。
[0161]
可选的,在识别结果表征目标客户端的首次访问令牌为正确令牌的情况下,允许目标客户端访问服务器中的资源,例如,识别结果表征目标客户端的首次访问令牌与服务器的首次访问令牌一致时,允许目标客户端访问服务器中的资源;识别结果表征目标客户端的首次访问令牌与服务器的首次访问令牌不一致时,禁止目标客户端访问服务器中的资源。
[0162]
进一步的,在本实施例中遵循零信任模型(ztna模型)中如下两个基本的原则:
[0163]
(1)资源分段原则,传统网络公开了对所有数据资产、服务器和应用程序的直接访问。零信任模型划分了这些资源的各个子集,并取消了用户直接访问它们而无需首先通过严格控制的网关的能力,即“网络隔离”。ztna模型中网络目标资源相对独立,即使某一目标资源收到入侵,也不会威胁到其它目标资源。
[0164]
(2)访问控制原则,无论用户是实际位于办公室还是远程工作,他们都应该只能访问符合其各自角的信息和资源。网络的每个部分都应该进行身份验证和授权,以确保流量是从受信任的用户发送的,并且需要限制访问终端的环境。
[0165]
在现有技术中,用户通过在aaa服务器认证,通过vpn等方式接入目标网络,匹配策略获得访问对应应用资源的权限。认证过程只有一次,每次访问不再接受验证。而在本实施
例中,用户的身份安全依赖于动态令牌,每次访问都需要验证动态令牌。该动态令牌需要满足以下多个条件:
[0166]
(1)令牌每次访问都必须是变化的,不固定的。
[0167]
(2)令牌只会在初始配发时使用算法进行协商生成,并不需要服务器每次进行配发,后续采取约定算法自动生成。即客户端知道如何生成该令牌并使用该令牌进行访问,服务器知道客户端会生成怎样的令牌,以便访问到来时进行验证。
[0168]
(3)动态令牌生成所需要的参数是不会在网络上进行传递的,从而保证令牌是不会被人计算的。
[0169]
(4)令牌并不是依赖于上一次,或前几次访问的令牌而生成的,对于攻击者而言,令牌应当看上去是随机的,但服务器又可以预测客户端下次访问的令牌,如果不符,则服务器会拒绝访问。
[0170]
可选的,首次访问验证通过后,服务器与客户端对于每次访问的安全验证过程如下:
[0171]
(1)目标客户端计算本次访问令牌,携带令牌发起访问。
[0172]
(2)服务器收到访问请求,使用与目标客户端相同的算法迭代访问令牌,目标客户端提供的令牌与服务器提供的令牌相同,则访问合法,否则判断本次访问为非法,拒绝访问。
[0173]
(3)服务器回复客户端的访问之后,认为本次访问成功,基于迭代程序更新令牌,下次目标客户端需使用该令牌才可访问成功。目标客户端收到服务器回复,认为本次访问成功,基于迭代程序更新令牌,下次使用该令牌进行访问。
[0174]
为满足上述对令牌的要求,目标客户端和服务器对每次访问的令牌都通过特定迭代来确定,例如,第k次访问使用的令牌是原始令牌经过n+k-1次迭代的结果。
[0175]
进一步的,资源访问请求的处理装置还包括:目标迭代计算模块,用于目标客户端通过如下方式对初始令牌进行n次迭代得到目标客户端的首次访问令牌:步骤11,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;步骤12,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤13,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;步骤14,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;步骤15,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;步骤16,重复执行步骤14至步骤15,直至执行次数达到n次,确定第三令牌为目标客户端的首次访问令牌。
[0176]
可选的,目标客户端通过如下方式对初始令牌进行n次迭代得到目标客户端的首次访问令牌:
[0177]
步骤11,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;
[0178]
步骤12,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;
[0179]
步骤13,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;
[0180]
步骤14,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;
[0181]
步骤15,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;
[0182]
步骤16,重复执行步骤14至步骤15,直至执行次数达到n次,确定第三令牌为目标客户端的首次访问令牌。
[0183]
在本实施例中,使用的hash算法为sha256,以t为初始令牌。为了隐藏首次访问令牌与初始令牌之间的联系,目标客户端对该资源进行首次访问时,其初始令牌不直接使用,而是按照一定形式进行n次哈希运算。
[0184]
在步骤11中,对初始令牌t进行第一次哈希运算过程为:
[0185]
[t]1=sha(t,t)
ꢀꢀꢀꢀꢀꢀꢀ
(1)
[0186]
其中,t是通过上述密钥协商算法计算出来的初始令牌,上式中哈希运算的盐值使用了初始令牌本身。[t]1表示第一令牌,上标1表示初始令牌经过一次哈希运算的结果,同样地,使用中括号加上标k表示初始令牌经过k次哈希运算的结果。
[0187]
在步骤12中,对初始令牌与第一令牌之和t+[t]1进行加盐哈希计算,得到第一秘密值,计算公式如下:
[0188]
secret=sha(t+[t]1,[t]1)
ꢀꢀꢀꢀꢀꢀꢀ
(2)
[0189]
其中,其结果是base64编码,使用的盐值为第一令牌[t]1,secret为第一秘密值。
[0190]
在步骤13中,对第一秘密值进行加盐哈希计算,得到第二令牌,计算公式如下:
[0191]
[t]2=sha(secret,t)
ꢀꢀꢀꢀꢀꢀꢀ
(3)
[0192]
其中,使用的盐值为初始令牌,[t]2为第二令牌。
[0193]
在步骤14中,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值,计算公式如下:
[0194]
secret=sha(t+[t]2,[t]2)
ꢀꢀꢀꢀꢀꢀꢀ
(4)
[0195]
在步骤15中,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌,计算公式如下:
[0196]
[t]3=sha(secret,t)
ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0197]
在步骤16中,重复执行步骤14至步骤15,直至执行次数达到n次,确定第三令牌为目标客户端的首次访问令牌,具体公式如下:
[0198]
[t]n=sha(secret,t)
[0199]
secret=sha(secret+[t]n,[t]n)
ꢀꢀꢀꢀꢀꢀꢀ
(6)
[0200]
容易注意到的是,通过隐藏首次访问的令牌与初始令牌之间关系,因为哈希运算是不可逆的,攻击者即使捕获了首次访问的令牌,也无法猜测初始令牌,提高了客户端在访问服务器资源的过程中的安全性。
[0201]
可选的,请求识别模块还包括:请求识别单元,用于通过步骤21,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;步骤22,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤23,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;步骤24,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;步骤25,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;步骤26,识别第三令牌是否与目标客户端的首次访问令牌一致;如果第三令牌与目标客户端的首次访问令牌一致,则确定第三令牌为服务器的首次访问令牌;如果第三令牌与目标客户端的首次访
问令牌不一致,则重复执行步骤24至步骤25,直至执行次数达到n次,拒绝目标客户端的访问请求。
[0202]
在另一种可选的,通过如下步骤基于服务器的首次访问令牌识别目标客户端的首次访问令牌的正确性:
[0203]
步骤21,以初始令牌作为盐值,对初始令牌进行加盐哈希计算,得到第一令牌;
[0204]
步骤22,以第一令牌作为盐值,对初始令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;
[0205]
步骤23,以初始令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌;
[0206]
步骤24,以第二令牌作为盐值,基于第二令牌更新第一令牌,对初始令牌与第二令牌之和进行加盐哈希计算,得到第二秘密值;
[0207]
步骤25,以初始令牌作为盐值,对第二秘密值进行加盐哈希计算,得到第三令牌;
[0208]
步骤26,识别第三令牌是否与目标客户端的首次访问令牌一致;如果第三令牌与目标客户端的首次访问令牌一致,则确定第三令牌为服务器的首次访问令牌;如果第三令牌与目标客户端的首次访问令牌不一致,则重复执行步骤24至步骤25,直至执行次数达到n次,拒绝目标客户端的访问请求。
[0209]
在本实施例中,步骤21-26执行的计算公式如上述公式(1)-(6),此处不再赘述。可选的,服务器并不知道客户端生成的迭代次数的大小,因此服务器只能按照公式(6)重复迭代,直到到该整数n,使得服务器计算的token与客户端一致。或者,服务器计算了最多n次迭代,仍然没能使得其计算的token与客户端一致,则该访问为非法的,可拒绝目标客户端的访问请求。
[0210]
需要说明的是,由于秘密值在目标客户端与服务器是保密存储的,从未在网络上传递过,因而相对安全。每次访问的token是变化的,即使被多次捕捉,攻击者也无法计算下一次的token。实际上,secret值可以看成此前所有历史token的汇总,但即使攻击者获取了所有的历史token,也无法获得secret值,因为对于攻击者而言,原始token是未知的、因而首次访问使用的n值也是未知的。由于每次token的迭代,因此访问无需使用时间戳、随机数等来防止重放攻击。
[0211]
进一步的,资源访问请求的处理装置还包括:第一访问请求接收模块、第一令牌确定模块、第一迭代计算模块、第二迭代计算模块以及第三迭代计算模块。访问请求接收模用于在目标客户端首次成功访问服务器,并且,目标客户端访问服务器中的单一资源时,接收目标客户端发送的资源访问请求,其中,资源访问请求中至少包括目标客户端的客户端标识以及目标令牌,目标令牌是目标客户端对上一次访问服务器的令牌进行迭代得到的;第一令牌确定模块用于基于客户端标识确定服务器的上一次访问令牌;第一迭代计算模块用于以上一次访问令牌作为盐值,对服务器的上一次访问令牌进行加盐哈希计算,得到第一令牌;第二迭代计算模块用于以第一令牌作为盐值,对上一次访问令牌与第一令牌之和进行加盐哈希计算,得到第一秘密值;第三迭代计算模块用于以上一次访问令牌作为盐值,对第一秘密值进行加盐哈希计算,得到第二令牌。
[0212]
可选的,在本实施例中,客户端标识可以为目标客户端的ip地址、物理地址等标识,服务器基于客户端标识可以识别对应的目标客户端。可选的,目标令牌为基于目标客户端上一次访问服务器生成的令牌。
[0213]
可选的,如图2所示,在目标客户端访问服务器中的单一资源时,服务器迭代n次计算首次访问令牌,并验证访问的合法性。在后续的每次访问时,对令牌进行迭代,直到访问结束。即服务器通过目标客户端的访问请求可以确定目标客户端的客户端标识以及目标令牌,服务器可基于目标客户端的客户端标识确定服务器的上一次访问令牌。可分别通过上述公式(1)-(3)进行计算得到第二令牌,基于第二令牌对服务器的单一资源及逆行访问。
[0214]
需要说明的是,通过客户端标识确定当前令牌,基于唯一的客户端标识,提高了确定当前令牌的准确性。
[0215]
进一步的,资源访问请求的处理装置还包括:第二访问请求接收模块、第二令牌确定模块、第四迭代计算模块、第五迭代计算模块以及重复执行模块。第二访问请求接收模块用于在目标客户端首次成功访问服务器,并且,目标客户端访问服务器中的多个资源时,接收目标客户端发送的资源访问请求,其中,资源访问请求中至少包括目标客户端的客户端标识以及目标令牌,目标令牌是目标客户端对上一次访问服务器的令牌进行迭代得到的;第二令牌确定模块用于基于客户端标识确定服务器的第k-1次访问令牌,以及目标客户端对应的q个可访问资源,其中,每个可访问资源具有对应的子令牌,q为大于1的正整数;第四迭代计算模块用于以第k-1次访问令牌作为盐值,对服务器的第k-1次访问令牌与第k-1次访问令牌对应的秘密值之和进行加盐哈希计算,得到当前秘密值;第五迭代计算模块用于以目标客户端本次访问的第k+i个可访问资源的子令牌作为盐值,对当前秘密值进行加盐哈希计算,得到第k次访问令牌,其中,1≤i≤q;重复执行模块用于步骤5,重复执行步骤3至步骤4,直至执行次数达到q次,得到目标客户端访问多个可访问资源时所对应的令牌。
[0216]
可选的,在本实施例中,如图2所示,在目标客户端访问服务器中的多个资源时,即资源访问类型为多资源访问类型时,服务器针对每个访问资源再配发一个令牌,并迭代n次计算访问的令牌,同时验证访问的合法性。然后,在每次访问时,服务器根据访问的资源对令牌进行迭代,直到访问结束。即服务器通过将零信任模型中划分了资源的各个子集,利用哈希算法的不可逆性将多资源访问的令牌迭代结合在一起,能在很大程度上降低各个令牌泄露的风险。例如,将可以访问的应用资源分为若干个子集,通过一次严密的认证过程获取i个资源子集的访问权限,通常可以匹配访问用户的终端运行环境相关的策略,匹配用户组织信息相关的策略,以及其它常规策略,然后决定为其授权哪些资源子集的访问权限。
[0217]
可选的,服务器基于客户端标识确定服务器的第k-1次访问令牌,以及目标客户端对应的q个可访问资源,其中,每个可访问资源具有对应的子令牌,q为大于1的正整数,然后为目标客户端配发i个子令牌,每个资源对应一个子令牌,分别记作t1,t2,...,ti。子令牌既可以通过安全性高的密钥交换算法配发,也可以在安全信道中直接传递。子令牌通常是用户访问对应资源的权限证明,可以基于策略匹配进行配发、吊销等等。
[0218]
本实施例规定首次访问用于验证客户身份合法性,并不实际访问特定资源,首次访问结束后,后续访问资源时验证过程如下,若客户端本次访问的是资源j,0≤j≤i,其中,tj是为用户配发的针对资源j的子令牌,[t]
k-1
作为当前令牌,则访问资源j时,执行如下计算,以确定本次访问服务器的k+i个资源中的资源j的令牌[t]k,并更新secret的值:
[0219]
[t]k=sha(secret,tj)
ꢀꢀꢀꢀꢀꢀ
(7)
[0220]
secret=sha(secret+[t]k,[t]k)
[0221]
可选的,下次访问任何资源,假定资源编号为p,令牌继续使用上述公式进行迭代,
将上述公式中的tj换成t
p
,其中t
p
是为资源p配发的子令牌。以上算法对于服务器而言是已知的,因而该token是可以轻易验证的。
[0222]
进一步的,重复执行上述公式(7),直至执行次数达到q次,得到目标客户端访问多个可访问资源时所对应的令牌。
[0223]
需要说明的是,在多资源访问时,secret可以看作是客户端和服务器时刻秘密计算并更新的约定值,该约定值汇总了多个资源子集对应的token,由于该汇总过程是完全不可逆的,无法通过汇总结果推导汇总前的各个token,因此该过程利用多个token的汇总计算保护了每个token的私密性。并且始终维护的secret值还可以作为约定的令牌,用于二次加密隐私数据,例如密码、终端环境信息、用户信息等等。由于secret是时刻动态变化的,对于攻击者而言是无法发现规律的。因此使用secret值作为对称加密的密钥,二次加密一些隐私数据是相对安全的。
[0224]
进一步的,资源访问请求的处理装置还包括:访问请求判断模块,用于在第二令牌与目标令牌一致的情况下,确定目标客户端的资源访问请求为正常访问请求,允许目标客户端访问服务器;在第二令牌与目标令牌不一致的情况下,确定目标客户端的资源访问请求为非法访问请求,禁止目标客户端访问服务器。
[0225]
可选的,服务器通过识别第二令牌与目标令牌是否一致来确定是否允许目标客户端访问服务器的资源,在第二令牌与目标令牌一致时,确定为目标客户端的资源访问请求为正常访问请求,允许访问服务器的资源;在第二令牌与目标令牌不一致时,确定目标客户端的资源访问请求为非法访问请求,不允许访问服务器的资源。
[0226]
进一步的,资源访问请求的处理装置还包括:令牌更新模块,用于更新服务器中的目标令牌,并向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标客户端中的目标令牌。
[0227]
可选的,在确定资源访问请求为正常访问请求之后,向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标令牌。
[0228]
需要说明的是,通过向目标客户端发送目标应用资源和/或确认信息,以使目标客户端更新目标令牌,可以防止对服务器的攻击,从而进一步提高资源访问的安全性。
[0229]
实施例3
[0230]
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的资源访问请求的处理方法。
[0231]
实施例4
[0232]
根据本发明实施例的另一方面,还提供了一种电子设备,其中,图4是根据本发明实施例的一种可选的电子设备的示意图,如图4所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的资源访问请求的处理方法。
[0233]
实施例5
[0234]
根据本发明实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述的资源访问请求的处理方法。
[0235]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0236]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0237]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0238]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0239]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0240]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0241]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:


1.一种资源访问请求的处理方法,其特征在于,包括:在目标客户端首次连接服务器时,确定初始令牌,其中,所述初始令牌是所述目标客户端和所述服务器基于预设算法协商确定的;对所述初始令牌进行n次迭代,得到所述服务器的首次访问令牌;基于所述服务器的首次访问令牌识别所述目标客户端的首次访问令牌的正确性,得到识别结果,其中,所述目标客户端的首次访问令牌是所述目标客户端对所述初始令牌进行n次迭代得到;在所述识别结果表征所述目标客户端的首次访问令牌为正确令牌的情况下,允许所述目标客户端访问所述服务器中的资源,其中,在所述目标客户端非首次访问所述服务器时,所述服务器对所述服务器的上一次访问令牌进行迭代,以确定所述目标客户端的访问请求是否合法,所述上一次访问令牌是对所述服务器的首次访问令牌进行k次迭代得到的,k+1为所述目标客户端访问所述服务器的访问次数。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述目标客户端通过如下方式对所述初始令牌进行n次迭代得到所述目标客户端的首次访问令牌:步骤11,以所述初始令牌作为盐值,对所述初始令牌进行加盐哈希计算,得到第一令牌;步骤12,以所述第一令牌作为盐值,对所述初始令牌与所述第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤13,以所述初始令牌作为盐值,对所述第一秘密值进行加盐哈希计算,得到第二令牌;步骤14,以所述第二令牌作为盐值,基于所述第二令牌更新所述第一令牌,对所述初始令牌与所述第二令牌之和进行加盐哈希计算,得到第二秘密值;步骤15,以所述初始令牌作为盐值,对所述第二秘密值进行加盐哈希计算,得到第三令牌;步骤16,重复执行步骤14至步骤15,直至执行次数达到n次,确定所述第三令牌为所述目标客户端的首次访问令牌。3.根据权利要求1所述的方法,其特征在于,基于所述服务器的首次访问令牌识别所述目标客户端的首次访问令牌的正确性,包括:步骤21,以所述初始令牌作为盐值,对所述初始令牌进行加盐哈希计算,得到第一令牌;步骤22,以所述第一令牌作为盐值,对所述初始令牌与所述第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤23,以所述初始令牌作为盐值,对所述第一秘密值进行加盐哈希计算,得到第二令牌;步骤24,以所述第二令牌作为盐值,基于所述第二令牌更新所述第一令牌,对所述初始令牌与所述第二令牌之和进行加盐哈希计算,得到第二秘密值;步骤25,以所述初始令牌作为盐值,对所述第二秘密值进行加盐哈希计算,得到第三令牌;
步骤26,识别所述第三令牌是否与所述目标客户端的首次访问令牌一致;如果所述第三令牌与所述目标客户端的首次访问令牌一致,则确定所述第三令牌为所述服务器的首次访问令牌;如果所述第三令牌与所述目标客户端的首次访问令牌不一致,则重复执行步骤24至步骤25,直至执行次数达到n次,拒绝所述目标客户端的访问请求。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:步骤31,在所述目标客户端首次成功访问所述服务器,并且,所述目标客户端访问所述服务器中的单一资源时,接收所述目标客户端发送的资源访问请求,其中,所述资源访问请求中至少包括所述目标客户端的客户端标识以及目标令牌,所述目标令牌是所述目标客户端对上一次访问所述服务器的令牌进行迭代得到的;步骤32,基于所述客户端标识确定所述服务器的上一次访问令牌;步骤33,以所述上一次访问令牌作为盐值,对服务器的上一次访问令牌进行加盐哈希计算,得到第一令牌;步骤34,以所述第一令牌作为盐值,对所述上一次访问令牌与所述第一令牌之和进行加盐哈希计算,得到第一秘密值;步骤35,以所述上一次访问令牌作为盐值,对所述第一秘密值进行加盐哈希计算,得到第二令牌。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:步骤41,在所述目标客户端首次成功访问所述服务器,并且,所述目标客户端访问所述服务器中的多个资源时,接收所述目标客户端发送的资源访问请求,其中,所述资源访问请求中至少包括所述目标客户端的客户端标识以及目标令牌,所述目标令牌是所述目标客户端对上一次访问所述服务器的令牌进行迭代得到的;步骤42,基于所述客户端标识确定所述服务器的第k-1次访问令牌,以及所述目标客户端对应的q个可访问资源,其中,每个可访问资源具有对应的子令牌;步骤43,以所述第k-1次访问令牌作为盐值,对所述服务器的第k-1次访问令牌与第k-1次访问令牌对应的秘密值之和进行加盐哈希计算,得到当前秘密值;步骤44,以所述目标客户端本次访问的第k+i个可访问资源的子令牌作为盐值,对所述当前秘密值进行加盐哈希计算,得到第k次访问令牌,其中,1≤i≤q;步骤45,重复执行步骤43至步骤44,直至执行次数达到q次,得到所述目标客户端访问多个可访问资源时所对应的令牌。6.根据权利要求4所述的方法,其特征在于,在对所述第一秘密值进行加盐哈希计算,得到第二令牌之后,所述方法还包括:在所述第二令牌与所述目标令牌一致的情况下,确定所述目标客户端的资源访问请求为正常访问请求,允许所述目标客户端访问所述服务器;在所述第二令牌与所述目标令牌不一致的情况下,确定所述目标客户端的资源访问请求为非法访问请求,禁止所述目标客户端访问所述服务器。7.根据权利要求6所述的方法,其特征在于,在确定所述目标客户端的资源访问请求为正常访问请求之后,所述方法还包括:更新所述服务器中的目标令牌,并向所述目标客户端发送目标应用资源和/或确认信息,以使所述目标客户端更新所述目标客户端中的目标令牌。
8.一种资源访问请求的处理装置,其特征在于,包括:令牌确定模块,用于在目标客户端首次连接服务器时,确定初始令牌,其中,所述初始令牌是所述目标客户端和所述服务器基于预设算法协商确定的;迭代计算模块,用于对所述初始令牌进行n次迭代,得到所述服务器的首次访问令牌;请求识别模块,用于基于所述服务器的首次访问令牌识别所述目标客户端的首次访问令牌的正确性,得到识别结果,其中,所述目标客户端的首次访问令牌是所述目标客户端对所述初始令牌进行n次迭代得到;结果识别模块,用于在所述识别结果表征所述目标客户端的首次访问令牌为正确令牌的情况下,允许所述目标客户端访问所述服务器中的资源,其中,在所述目标客户端非首次访问所述服务器时,所述服务器对所述服务器的上一次访问令牌进行迭代,以确定所述目标客户端的访问请求是否合法,所述上一次访问令牌是对所述服务器的首次访问令牌进行k次迭代得到的,k+1为所述目标客户端访问所述服务器的访问次数。9.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的资源访问请求的处理方法。10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行权利要求1至7任一项中所述的资源访问请求的处理方法。

技术总结


本发明公开了一种资源访问请求的处理方法、装置、存储介质及电子设备。该方法包括:目标客户端首次连接服务器时确定初始令牌,初始令牌是目标客户端和服务器基于预设算法协商确定的;对初始令牌进行N次迭代得到服务器首次访问令牌;基于服务器首次访问令牌识别目标客户端首次访问令牌的正确性得到识别结果,目标客户端首次访问令牌是目标客户端对初始令牌进行N次迭代得到;识别结果表征目标客户端首次访问令牌为正确令牌时允许目标客户端访问服务器中的资源,目标客户端非首次访问服务器时,对服务器上一次访问令牌进行迭代确定目标客户端访问请求是否合法。本发明解决了现有技术中客户端在访问服务器资源过程中所存在的安全风险高的技术问题。的安全风险高的技术问题。的安全风险高的技术问题。


技术研发人员:

余祖愿 万腾飞 李家顺 尹伟伟 韩翀

受保护的技术使用者:

山石网科通信技术股份有限公司

技术研发日:

2022.09.05

技术公布日:

2022/12/8

本文发布于:2024-09-24 18:23:42,感谢您对本站的认可!

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

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

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