鉴权方法、装置、设备及存储介质与流程

文档序号:31467719发布日期:2022-09-09 22:06阅读:143来源:国知局
鉴权方法、装置、设备及存储介质与流程

1.本公开涉及但不限于互联网技术领域,尤其涉及一种鉴权方法、装置、设备及存储介质。


背景技术:

2.随着互联网技术的普及和网络服务的复杂程度不断增加,传统技术中将所有计算任务都放到服务器的运行模式造成服务器的负载越来越高。为了解决上述问题,网络服务的管理员可以将部分或者全部的计算任务放在终端设备中执行,以降低服务器的负载。例如,可以采用webassembly(wasm)技术将计算任务保存在wasm文件中,作为算法文件部署至终端设备。在计算任务通过算法文件部署至终端设备的情况下,由于源代码完全交给终端设备控制,会存在计算任务被非法调用的问题。


技术实现要素:

3.有鉴于此,本公开实施例至少提供一种鉴权方法、装置、设备、存储介质及程序产品。
4.本公开实施例的技术方案是这样实现的:
5.一方面,本公开实施例提供一种鉴权方法,所述方法包括:响应于对目标数据的访问请求,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息;向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应;对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识;基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;并基于所述鉴权结果,确定是否允许访问所述目标数据。
6.在一些实施例中,所述第一待验证信息还包括以下至少之一:所述访问请求对应的第一地址,所述第一地址用于被所述鉴权服务器解密得到后作为是否发送所述鉴权响应的判断条件;第一时间戳,所述第一时间戳为所述访问请求对应的访问页面的当前时间戳。
7.在本公开实施例中,由于在进行鉴权的过程中,不仅将该第一许可信息作为第一待验证消息,还将第一地址和第一时间戳中的至少之一作为该第一待验证消息,可以提升鉴权过程的安全性。其中,通过验证第一地址,可以有效的避免未授权网站对该目标数据的调用。通过验证该第一时间戳,可以避免重放攻击,提升系统的安全性。
8.在一些实施例中,所述对第一待验证信息进行加密,得到第一密文,包括:基于第一公钥对所述第一待验证信息进行加密,得到所述第一密文;所述鉴权服务器中存储有所述第一公钥对应的第一私钥;所述对所述第二密文进行解密,得到第一解密数据,包括:基于第二私钥对所述第二密文进行解密,得到所述第一解密数据;所述第二密文为所述鉴权服务器基于所述第二私钥对应的第二公钥对所述第二待验证信息进行加密得到的。
9.在本公开实施例中,由于采用了非对称加密的方式对终端和鉴权服务器之间的数
据进行加密,可以有效的减低密钥传递过程的密钥泄露风险,提升安全性。
10.在一些实施例中,所述向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应,包括:与所述鉴权服务器建立连接通道;利用所述连接通道向所述鉴权服务器发送携带所述第一密文的鉴权请求;所述鉴权请求用于指示所述鉴权服务器对所述第一密文进行解密,并基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识;接收所述鉴权服务器利用所述连接通道发送的携带所述第二密文的鉴权响应。
11.在本公开实施例中,由于终端与鉴权服务器建立连接通道,并基于该连接通道完成该鉴权服务器与该终端之间的数据交互,在保证数据传输效率的同时,还可以提升数据传输的安全性,进而提升了鉴权过程中的安全性。
12.在一些实施例中,所述基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果,包括:获取所述第一许可信息中的第一标识;基于所述第一标识和所述第一解密数据中包括的目标标识的对应关系,生成所述鉴权结果。
13.在本公开实施例中,由于该目标标识是鉴权服务器基于部署于终端的第一许可信息可以部署于鉴权服务器的第二许可信息生成的,即,完成了许可信息的第一重验证;终端在基于该第一许可信息对该目标标识进行验证的过程中,可以完成对该许可信息的第二重验证,由此,本公开实施例分别通过终端和鉴权服务器对许可信息进行了双重验证,提升了鉴权过程的安全性。
14.在一些实施例中,所述第一解密数据包括第二时间戳;在基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果之前,所述方法还包括:基于所述第二时间戳和所述访问请求对应的访问页面的第三时间戳,生成第一时间戳验证结果;所述第二时间戳为所述鉴权服务器生成所述目标标识时的时间戳;在所述第一时间戳验证结果为验证成功的情况下,基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果。
15.在本公开实施例中,由于在接收到鉴权服务器的鉴权响应后,还会基于该鉴权响应中携带的第二时间戳和页面服务器当前的第三时间戳生成该第一时间戳验证结果,可以防止非法用户重复利用鉴权服务器的鉴权响应,进而避免部署于终端的目标数据被非法调用。
16.在一些实施例中,所述目标数据为第一底层库中的算法文件;在对第一待验证信息进行加密,得到第一密文之前,所述方法还包括:接收针对所述第一底层库中的算法文件的初始化请求;所述初始化请求用于请求调用所述算法文件中的算法任务;所述基于所述鉴权结果确定是否允许访问所述目标数据,包括:在所述鉴权结果为通过的情况下,确定所述算法文件的初始化结果为初始化成功,允许所述终端调用所述算法文件中的算法任务;在所述鉴权结果为未通过的情况下,确定所述算法文件的初始化结果为初始化失败,禁止所述终端调用所述算法文件中的算法任务。
17.在本公开实施例中,通过获取对算法文件的初始化请求,并获取服务器通过加密通道传输的鉴权结果,根据鉴权结果得到初始化结果,可以保证该算法文件中算法任务的安全性,防止非法用户对该算法文件中算法任务的非法调用。
18.另一方面,本公开实施例提供一种鉴权方法,应用于鉴权服务器,所述方法包括:接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的
访问请求发送的;对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息;基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识;向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
19.在一些实施例中,所述第二解密数据包括第一时间戳;在所述基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识之前,所述方法还包括:基于所述第一时间戳和所述鉴权服务器的第四时间戳,生成第二时间戳的验证结果;所述第一时间戳为所述访问请求对应的访问页面的当前时间戳;在所述第二时间戳验证结果表征验证成功的情况下,基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识。
20.在一些实施例中,所述基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,包括:解析所述第一许可信息,得到所述第一许可信息中的第一标识;解析所述第二许可信息,得到所述第二许可信息中的第二标识;在所述第一标识和所述第二标识一致的情况下,基于所述第一标识和所述第二标识,生成所述目标标识。
21.在一些实施例中,所述基于所述第一标识和所述第二标识,生成所述目标标识,包括以下至少之一:将所述第一标识或所述第二标识作为所述目标标识;基于预设的变换算法,对所述第一标识或所述第二标识进行变换处理,得到所述目标标识。
22.在一些实施例中,所述第二待验证数据还包括第二时间戳;在所述对第二待验证数据进行加密,得到第二密文之前,所述方法还包括:获取所述鉴权服务器对应的第二时间戳;所述第二时间戳为所述鉴权服务器生成所述目标标识时的当前时间戳;所述第二时间戳用于作为所述终端是否对所述第一解密数据进行验证的判断条件。
23.在一些实施例中,所述对第二待验证数据进行加密,得到第二密文,包括:基于第二公钥对所述第二待验证信息进行加密,得到所述第二密文;所述终端中存储有所述第二公钥对应的第二私钥;所述对所述第一密文进行解密,得到第二解密数据,包括:基于第一私钥对所述第一密文进行解密,得到第二解密数据;所述第一密文为所述终端基于所述第一私钥对应的第一公钥对所述第一待验证信息进行加密得到的。
24.在一些实施例中,所述第二解密数据还包括第一地址;在所述向所述终端发送携带所述第二密文的鉴权响应之前,所述方法还包括:获取所述访问请求的第二地址;在所述第一地址和所述第二地址一致的情况下,向所述终端发送携带所述第二密文的鉴权响应。
25.再一方面,本公开实施例提供一种鉴权装置,包括:第一加密模块,用于响应于对目标数据的访问请求,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息;第一传输模块,用于向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应;第一解密模块,用于对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识;鉴权模块,用于基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;并基于所述鉴权结果,确定是否允许访问所述目标数据。
26.又一方面,本公开实施例提供一种鉴权装置,包括:接收模块,用于接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的;第二解密模块,用于对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息;第二加密模块,用于基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识;发送模块,用于向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
27.再一方面,本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
28.又一方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
29.又一方面,本公开实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
30.又一方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
31.本公开实施例中,通过将部分鉴权过程转移至鉴权服务器中,同时结合终端完成其他鉴权过程,并生成最终的鉴权结果,相比于仅通过终端进行鉴权的方案,可以提升鉴权过程的安全性。一方面,本公开实施例分别通过终端和鉴权服务器对许可信息进行了双重验证,进一步提升了鉴权过程的安全性;另一方面,由于预先在终端侧部署第一许可信息且在鉴权服务器侧部署第二许可信息,鉴权的主要过程,即基于所述第一许可信息和第二许可信息确定目标标识的过程放在了鉴权服务器侧,避免了鉴权方法的泄露。
32.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
33.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
34.图1为本公开实施例提供的一种鉴权方法的实现流程示意图;
35.图2为本公开实施例提供的一种鉴权方法的实现流程示意图;
36.图3为本公开实施例提供的一种鉴权方法的实现流程示意图;
37.图4为本公开实施例提供的一种鉴权方法的实现流程示意图;
38.图5为本公开实施例提供的一种鉴权方法的实现流程示意图;
39.图6为本公开实施例提供的一种鉴权方法的实现流程示意图;
40.图7为本公开实施例提供的一种鉴权方法的实现流程示意图;
41.图8为本公开实施例提供的一种鉴权方法的实现流程示意图;
42.图9为本公开实施例提供的一种鉴权方法的实现流程示意图;
43.图10为本公开实施例提供的一种鉴权方法的实现流程示意图;
44.图11为本公开实施例提供的一种鉴权方法的实现流程示意图;
45.图12为本公开实施例提供的一种鉴权方法的实现流程示意图;
46.图13为本公开实施例提供的一种鉴权方法的实现流程示意图;
47.图14为本公开实施例提供的一种鉴权方法的实现流程示意图;
48.图15为本公开实施例提供的一种鉴权装置的组成结构示意图;
49.图16为本公开实施例提供的一种鉴权装置的组成结构示意图;
50.图17为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
51.为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
52.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
53.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
54.本公开实施例提供一种鉴权方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。
55.图1为本公开实施例提供的一种鉴权方法的实现流程示意图,如图1所示,该方法包括如下步骤s101至步骤s103:
56.步骤s101,响应于对目标数据的访问请求,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息。
57.在一些实施例中,所述第一待验证信息包括部署于所述终端的第一许可信息。其中,该第一许可信息可以包括该终端对应的权限信息,该权限信息用于在本地鉴权的过程中,确定该终端可以调用的目标数据的数据标识。相应地,在向鉴权服务器发送鉴权请求并得到鉴权结果的过程中,发送的鉴权请求只能用于请求调用该数据标识对应的目标数据,鉴权结果也只能指示终端调用该目标数据。
58.在一些实施例中,该第一许可信息还可以包括该终端对应的第一标识,该第一标识为该终端的唯一标识。在将该第一标识发送至鉴权服务器的情况下,鉴权服务器可以基
于该唯一标识确定该终端是否存在调用算法的权限,进而生成对应的鉴权响应。
59.在一些实施例中,该访问请求为终端访问互联网提供的页面,该页面需要调用目标数据实现特定功能。
60.在一些实施例中,终端是通过该第一底层库完成对该第一待验证信息的加密过程的,也就是说,对该第一待验证信息的加密方法是封装于该第一底层库中的,在执行上述s101对该第一待验证信息进行加密的过程中,只需要将该第一待验证信息输入至该第一底层库,第一底层库可以基于封装的加密方法完成对该第一待验证信息的加密过程,并输出该第一密文。相应地,上述s101可以为在访问页面的过程中,通过第一底层库对第一待验证信息进行加密,得到第一密文。
61.在一些实施例中,该第一底层库可以以软件开发包(software development kit,sdk)的形式缓存在该终端中,即响应于所述终端访问该页面,页面服务器可以将该页面对应页面文件(如html文件)和第一底层库缓存至终端中,并通过终端的浏览器对该页面文件进行解析并呈现给用户。其中,相比于页面文件对应的页面代码,该页面代码可以以明文代码的形式存储于页面文件中,而该第一底层库中的程序代码是被加密封装为软件开发包,并非以明文代码的形式存储。
62.步骤s102,向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应。
63.在一些实施例中,该鉴权服务器可以与至少一个所述终端建立连接,并接收任一终端发送的鉴权请求,并基于该鉴权请求携带的第一密文生成对应的鉴权响应,将鉴权响应发送至该终端,以完成鉴权服务器侧的部分鉴权过程。
64.在一些实施例中,该终端可以将生成的第一密文作为该鉴权请求发送至鉴权服务器。其中,该鉴权请求可以携带请求标识,相应地,在终端接收到鉴权服务器发送的鉴权响应后,该鉴权响应也包括与该请求标识对应的响应标识,进而确定该鉴权响应与该鉴权请求之间的关联关系。
65.在一些实施例中,在页面需要调用目标数据实现特定功能的情况下,可以通过该页面向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应。
66.步骤s103,对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识。
67.在一些实施例中,与上述对第一待验证信息进行加密得到第一密文的过程一样,对该第二密文的解密过程也通过该第一底层库进行,即,对该第二密文的解密算法被封装在该第一底层库中,终端在接收到该第二密文之后,需要将该第二密文传输至该第一底层库,第一底层库可以调用该解密算法完成对该第二密文的解密过程,得到第一解密数据。
68.其中,该第一解密数据包括目标标识,该目标标识是鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的。在一些实施例中,该目标标识可以为该第一许可信息和第二许可信息中相同的标识信息;该目标标识也可以是第一许可信息经过变换处理后,与该第二许可信息中相同的标识信息。需要说明的是,在鉴权服务器判定该第一许可信息和第二许可信息中不存在相同的标识信息,或第一许可信息经过变换处
理后与该第二许可信息中不存在相同的标识信息的情况下,可以不发送该鉴权响应,也可以发送与该第一许可信息不存在关联的目标标识。
69.在一些实施例中,终端在通过该第一底层库完成对该第二密文的解密,得到包括目标标识的第一解密数据之后,仍然通过该第一底层库完成对该第一解密数据的验证过程。即,对该第一解密数据的验证算法也封装在该第一底层库中,在第一底层库完成对该第一解密数据的验证并得到鉴权结果之后,可以将该鉴权结果输出给终端的页面中,进而该页面可以基于该鉴权结果确定是否可以调用第一底层库中的算法任务。
70.在一些实施例中,上述基于所述第一许可信息对所述第一解密数据进行验证可以通过以下方法实现:确定该目标标识与该第一许可信息之间的关联关系确定该鉴权结果;提取该第一许可信息中的第一标识,基于该第一标识与该目标标识之间的关联关系确定该鉴权结果。其中,在存在关联关系的情况下,生成鉴权通过的鉴权结果,在不存在关联关系的情况下,生成鉴权不通过的鉴权结果。该关联关系可以但不限于是,目标标识包含于该第一许可信息中,目标标识与该第一标识相同,目标标识可以通过对该第一许可信息进行变换处理得到。
71.步骤s104,基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;并基于所述鉴权结果,确定是否允许访问所述目标数据。
72.在一些实施例中,在鉴权结果为鉴权通过的情况下,可以允许终端访问所述目标数据;在鉴权结果为鉴权不通过的情况下,禁止终端访问所述目标数据。
73.在一些实施例中,以页面调用目标数据,且目标数据为第一底层库中的算法任务为例,在鉴权结果为鉴权通过的情况下,可以允许该页面用所述第一底层库中的算法任务;在鉴权结果为鉴权不通过的情况下,禁止该页面用所述第一底层库中的算法任务。
74.其中,上述算法任务为基于该鉴权结果确定所述页面是否可以调用的程序,该第一底层库还可以包括除了该算法任务的程序的其他程序,该其他程序至少包括上述对第一待验证信息进行加密的加密程序,还可以包括上述对该二密文进行解密的解密程序,当然,也可以包括其他任意支撑本公开实施例实现的程序。
75.本公开实施例中,通过将部分鉴权过程转移至鉴权服务器中,同时结合终端完成其他鉴权过程,并生成最终的鉴权结果,相比于仅通过终端进行鉴权的方案,可以提升鉴权过程的安全性。一方面,本公开实施例分别通过终端和鉴权服务器对许可信息进行了双重验证,进一步提升了鉴权过程的安全性;另一方面,由于预先在终端侧部署第一许可信息且在鉴权服务器侧部署第二许可信息,鉴权的主要过程,即基于所述第一许可信息和第二许可信息确定目标标识的过程放在了鉴权服务器侧,避免了鉴权方法的泄露。
76.在一些实施例中,所述第一待验证信息还包括以下至少之一:所述访问请求对应的第一地址,所述第一地址用于被所述鉴权服务器解密得到后作为是否发送所述鉴权响应的判断条件;第一时间戳,所述第一时间戳为所述访问请求对应的访问页面的当前时间戳。请参阅图2,图2是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图1,在图1中的s101之前,所述方法还可以包括s201至s203,s101可以更新为s204,将结合图2示出的步骤进行说明。
77.在本实施例中,响应于进行鉴权过程,可以先获取鉴权过程需要的第一待验证信息,该第一待验证信息可以包括图1实施例中部署于终端的第一许可信息。相应地,该第一
待验证信息还可以包括第一地址和第一时间戳中的至少之一,图2公开的实施例将对此场景进行说明。其中,步骤s201为获取第一许可信息的过程,步骤s202为获取第一地址的过程,步骤s203为获取第一时间戳的过程。
78.步骤s201,获取所述第一许可信息。
79.步骤s202,在所述第一待验证信息还包括所述第一地址的情况下,获取所述第一地址。
80.在一些实施例中,该第一地址为该访问请求对应的地址,示例性的,该地址可以为包括但不限于是域名、ip地址。终端可以通过该第一地址访问页面服务器,页面服务器基于该第一地址向该终端提供该页面。
81.在本实施例中,在该第一地址作为该第一待验证信息之一的情况下,由于本公开将部分鉴权过程放在了该终端对应的鉴权服务器侧,因此,在该第一地址作为第一待验证信息被加密为第一密文被发送至鉴权服务器之后,可以由鉴权服务器进行解密得到该第一地址,并基于第一地址确定是否向该终端发送鉴权响应。
82.步骤s203,在所述第一待验证信息还包括所述第一时间戳的情况下,获取所述访问请求对应的第一时间戳。
83.步骤s204,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息;所述第一待验证信息还包括以下至少之一:第一地址和第一时间戳。
84.在一些实施例中,该第一待验证信息可以包括该第一许可信息和所述访问请求对应的第一地址;在另一些实施例中,该第一待验证信息可以包括该第一许可信息和第一时间戳;在另一些实施例中,该第一待验证信息可以包括该第一许可信息、所述访问请求对应的第一地址和第一时间戳。
85.步骤s102,向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应。
86.步骤s103,对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识。
87.步骤s104,基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;并基于所述鉴权结果,确定是否允许访问所述目标数据。
88.在本公开实施例中,由于在进行鉴权的过程中,不仅将该第一许可信息作为第一待验证消息,还将第一地址和第一时间戳中的至少之一作为该第一待验证消息,可以提升鉴权过程的安全性。其中,通过验证该访问请求的第一地址,可以有效的避免未授权网站对该目标数据的调用。通过验证该第一时间戳,可以避免重放攻击,提升系统的安全性。
89.图3是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于上述任一实施例,以基于图1为例,图1中的s101可以更新为s301,图1中的s103可以更新为s302,将结合图3示出的步骤进行说明。
90.步骤s301,基于第一公钥对所述第一待验证信息进行加密,得到所述第一密文;所述鉴权服务器中存储有所述第一公钥对应的第一私钥;所述第一待验证信息包括部署于所述终端的第一许可信息。
91.在一些实施例中,可以通过非对称加密方式对该第一待验证信息进行加密传输。示例性的,可以基于该第一公钥对该第一待验证信息进行加密,得到第一密文;相应地,在鉴权服务器对该第一密文进行解密的过程中,也可以该第一公钥对应的第一私钥对该第一待验证信息进行解密。
92.在本实施例中,该第一公钥和第一私钥可以由鉴权服务器生成,鉴权服务器在生成包括该第一公钥和第一私钥的第一密钥对之后,将该第一公钥传输至需要进行鉴权的至少一个终端。
93.步骤s102,向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应。
94.步骤s302,基于第二私钥对所述第二密文进行解密,得到所述第一解密数据;所述第二密文为所述鉴权服务器基于所述第二私钥对应的第二公钥对所述第二待验证信息进行加密得到的。
95.在一些实施例中,鉴权服务器在发送该鉴权请求对应的鉴权响应的过程中,也可以通过非对称加密的方式对该鉴权响应进行加密。其中,鉴权服务器可以基于第二公钥对第二待验证信息进行加密得到对应的第二密文,之后向终端发送该第二密文。终端在接收到该第二密文之后,可以基于与该第二公钥对应的第二密钥对该第二密文进行解密,得到该第二待验证信息。
96.在本实施例中,该第二公钥和第二私钥可以由终端生成,终端在生成包括该第二公钥和第二私钥的第二密钥对之后,将该第二公钥传输至鉴权服务器。
97.步骤s104,基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;并基于所述鉴权结果,确定是否允许访问所述目标数据。
98.在本公开实施例中,由于采用了非对称加密的方式对终端和鉴权服务器之间的数据进行加密,可以有效的减低密钥传递过程的密钥泄露风险,提升安全性。
99.图4是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图1,图1中的s102可以包括s401至s403,将结合图4示出的步骤进行说明。
100.步骤s401,与所述鉴权服务器建立连接通道。
101.在一些实施例中,该连接通道可以为超文本传输协议(hyper text transfer protocol,http)通道;在另一些实施例中,该连接通道可以为以安全为目标的超文本传输协议通道(hyper text transfer protocol over securesocket layer,https)。
102.步骤s402,利用所述连接通道向所述鉴权服务器发送携带所述第一密文的鉴权请求;所述鉴权请求用于指示所述鉴权服务器对所述第一密文进行解密,并基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识。
103.步骤s403,接收所述鉴权服务器利用所述连接通道发送的携带所述第二密文的鉴权响应。
104.在一些实施例中,终端可以利用建立好的连接通道向该鉴权服务器发送携带第一密文的鉴权请求。相应地,终端也可以通过该建立好的连接通道接收鉴权服务器返回的鉴权响应。
105.在本公开实施例中,由于终端与鉴权服务器建立连接通道,并基于该连接通道完
成该鉴权服务器与该终端之间的数据交互,在保证数据传输效率的同时,还可以提升数据传输的安全性,进而提升了鉴权过程中的安全性。
106.图5是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图1,图1中的s103可以更新为s501至s502,将结合图5示出的步骤进行说明。
107.步骤s101,响应于对目标数据的访问请求,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息。
108.步骤s102,向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应。
109.步骤s501,对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识和第二时间戳。
110.在一些实施例中,该第一解密数据不仅包括上述目标标识,还可以包括第二时间戳,该第二时间戳为响应于所述鉴权服务器生成所述目标标识所述鉴权服务器的当前时间戳。鉴权服务器可以在基于该第一许可信息和第二许可信息生成该目标标识之后,获取当前鉴权服务器系统的当前时间戳作为该第二时间戳,并将该第二时间戳和该目标标识一起作为第二待验证信息进行加密,得到第二密文。
111.步骤s502,基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果。
112.在一些实施例中,在授权当前终端使用目标数据的情况下,该第一许可信息和第二许可信息存在第一关联关系,相应地,在鉴权服务器基于该第一许可信息和第二许可信息生成目标标识的情况下,该目标标识与该第一许可信息也存在第二关联关系。在该步骤s502中,可以判断该第一许可信息和第一解密数据中的目标标识是否满足上述第二关联关系,进而得到该鉴权结果。其中,该第一关联关系和该第二关联关系可以是相同的关联关系,也可以是不同的关联关系,本公开对此不作限定。
113.其中,该目标数据可以为部署于该当前终端的第一底层库的算法任务。
114.在一些实施例中,在需要授权当前终端使用部署于该当前终端的目标数据的情况下,部署于该终端的第一许可信息和部署于该鉴权服务器的第二许可信息之间的第一关联关系可以包括但不限于是以下至少之一:第一许可信息与第二许可信息包括相同的标识信息、第一许可信息与第二许可信息中至少一个字段位置中的字段相同、第一许可信息中的标识信息基于第一变换处理后与该第二许可信息中的标识信息相同。
115.其中,在该第一关联关系为第一许可信息与第二许可信息包括相同的标识信息的情况下,鉴权服务器可以在判断该第一许可信息与第二许可信息包括相同的标识信息的情况下,将该相同的标识信息作为该目标标识经过加密后发送至终端,终端可以通过第一底层库解密得到该目标标识,并判断该第一许可信息中是否包括该相同的标识信息,进而生成对应的鉴权结果。
116.其中,在该第一关联关系为第一许可信息与第二许可信息中至少一个字段位置中的字段相同的情况下,鉴权服务器可以在判断该第一许可信息与第二许可信息包括相同的至少一个字段位置中的字段的情况下,将该相同的至少一个字段位置中的字段作为该目标标识经过加密后发送至终端,终端可以通过第一底层库解密得到该目标标识,并判断该第
一许可信息中是否包括该相同的至少一个字段位置中的字段,进而生成对应的鉴权结果。
117.其中,在该第一关联关系为第一许可信息中的标识信息基于第一变换处理后与该第二许可信息中的标识信息相同的情况下,鉴权服务器可以对得到的第一许可以信息的标识信息之后,对该标识信息进行第一变换处理,在判断该经过第一变换处理后的标识信息与该第二许可信息的标识信息相同的情况下,将该第二许可信息的标识信息作为该目标标识经过加密后发送至终端,终端可以通过第一底层库解密得到该目标标识,并对该第二许可信息的标识信息进行第二变换处理,判断经过第二变换处理的第二许可信息的标识信息与该第一许可信息中的标识信息是否相同,进而生成对应的鉴权结果。该第二变换处理为该第一变换处理的逆处理过程。
118.在一些实施例中,可以通过s5021至s5022实现上述基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果。
119.步骤s5021、获取所述第一许可信息中的第一标识。
120.在一些实施例中,许可信息可以为字符串形式,相应地,该许可信息中的标识为该字符串中部分字符。其中,可以获取该第一标识对应的标识位置,基于该标识位置在该第一许可信息中查找所述第一标识;或者,还可以获取该第一标识对应的标识字段,基于该标识字段在该第一许可信息中查询所述标识字段对应的字符串,并确定为该第一标识。
121.步骤s5022、基于所述第一标识和所述第一解密数据中包括的目标标识的对应关系,生成所述鉴权结果。
122.在一些实施例中,该第一标识与该目标标识的对应关系满足预设条件的情况下,生成表征鉴权成功的鉴权结果;在该第一标识与该目标标识的对应关系不满足该预设条件的情况下,生成表征鉴权失败的鉴权结果。其中,该预设条件可以包括以下至少之一:所述第一标识与该目标标识相同、所述第一标识在经过第一变换处理后与该目标标识相同、所述第一标识与经过第三变换处理后的目标标识相同。
123.步骤s503,基于所述鉴权结果,确定是否允许访问所述目标数据。
124.在一些实施例中,所述方法还包括步骤s504。
125.步骤s504、基于所述第二时间戳和所述访问请求对应的访问页面的第三时间戳,生成第一时间戳验证结果;所述第二时间戳为所述鉴权服务器生成所述目标标识时的时间戳。
126.在一些实施例中,该第三时间戳为得到所述第一解密数据时所述页面服务器的当前时间戳。
127.在一些实施例中,可以获取该第二时间戳与该第三时间戳之间的第一时间间隔,并基于该第一时间间隔与预设的时间间隔阈值确定该第一时间戳验证结果。其中,在该第一时间间隔小于或等于该时间间隔阈值的情况下,生成表征验证成功的第一时间戳验证结果;在该第一时间间隔大于该时间间隔阈值的情况下,生成表征验证失败的第一时间戳验证结果。
128.其中,在所述第一时间戳验证结果为验证成功的情况下,执行步骤s502。在该第一时间戳验证结果为验证失败的情况下,生成鉴权失败的鉴权结果。
129.在本公开实施例中,由于在接收到鉴权服务器的鉴权响应后,还会基于该鉴权响应中携带的第二时间戳和页面服务器当前的第三时间戳生成该第一时间戳验证结果,可以
防止非法用户重复利用鉴权服务器的鉴权响应,进而避免部署于终端的目标数据被非法调用。
130.在本公开实施例中,由于该目标标识是鉴权服务器基于部署于终端的第一许可信息可以部署于鉴权服务器的第二许可信息生成的,即,完成了许可信息的第一重验证;终端在基于该第一许可信息对该目标标识进行验证的过程中,可以完成对该许可信息的第二重验证,由此,本公开实施例分别通过终端和鉴权服务器对许可信息进行了双重验证,提升了鉴权过程的安全性。
131.图6是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。所述目标数据为第一底层库中的算法文件,基于图1,所述方法还包括步骤s601,图1中的s104可以更新为s602至s603,将结合图6示出的步骤进行说明。
132.步骤s601,接收针对所述第一底层库中的算法文件的初始化请求;所述初始化请求用于请求调用所述算法文件中的算法任务。
133.在一些实施例中,该第一底层库为至少包括用于实现算法任务的算法文件,该页面可以用于调用该第一底层库中的算法文件,以实现对应的算法任务。终端可以在接收到对目标服务的使用请求的情况下,执行本公开实施例提供的鉴权方法。该目标服务对应至少一个算法任务,终端在使用该目标服务的过程中,需要使用该目标服务对应的至少一个算法任务。然而,在使用该目标服务之前,需要对该目标服务的使用权限(或对该至少一个算法任务的调用权限)进行验证,即对该使用请求进行鉴权,执行本公开实施例提供的鉴权方法。该目标服务包括但不限于是各种查询服务,图像识别服务,计算服务等。以该目标服务为图像识别服务为例,在终端接收到对该图像识别服务的使用请求的情况下,需要调用该图像识别服务对应的识别算法任务,因此,响应于该使用请求,终端可以对该图像识别服务的使用请求进行鉴权,执行本公开实施例提供的鉴权方法。
134.在一些实施例中,终端可以接收用户针对该页面的访问请求,向该页面所在的页面服务器发送访问请求,相应地,页面服务器可以为该终端提供该页面和该页面对应的第一底层库。响应于用户操作或预设的其他触发条件,该页面需要对该页面对应的第一底层库中的算法文件进行初始化,即该页面会向该第一底层库发送针对算法文件的初始化请求,该初始化请求用于调用该算法文件中的算法任务。即为了调用该算法任务,需要先根据针对算法文件的初始化请求对该算法文件进行初始化,在初始化成功的情况下,可以允许终端调用该算法文件中所有的算法任务或该算法文件中的部分算法任务;在初始化失败的情况下,禁止终端调用该算法文件中的算法任务。
135.步骤s101,响应于对目标数据的访问请求,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息。
136.步骤s102,向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应。
137.步骤s103,对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识。
138.步骤s602,在所述鉴权结果为通过的情况下,确定所述算法文件的初始化结果为初始化成功,允许所述终端调用所述算法文件中的算法任务。
139.步骤s603,在所述鉴权结果为未通过的情况下,确定所述算法文件的初始化结果为初始化失败,禁止所述终端调用所述算法文件中的算法任务。
140.本公开实施例中,通过获取对算法文件的初始化请求,并获取鉴权服务器通过加密通道传输的鉴权结果,根据鉴权结果得到初始化结果,可以保证该算法文件中算法任务的安全性,防止非法用户对该算法文件中算法任务的非法调用。
141.图7是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。将结合图7示出的步骤进行说明。
142.步骤s701,接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的。
143.步骤s702,对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息。
144.步骤s703,基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识。
145.步骤s704,向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
146.在一些实施例中,鉴权服务器可以通过鉴权服务器中的第二底层库对所述第一密文进行解密,相应地,也可以通过所述第二底层库基于所述第一许可信息和部署于所述鉴权服务器第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文。
147.其中,该第二底层库可以以软件开发包(software development kit,sdk)的存储于该鉴权服务器中,即,响应于所述终端发送的携带第一密文的鉴权请求,鉴权服务器将第一密文传输至该第二底层库,通过该第二底层库执行步骤s702至s703,得到第二密文。其中,该第二底层库中的程序代码是被加密封装为软件开发包,并非以明文代码的形式存储。
148.本公开实施例中,通过将部分鉴权过程转移至鉴权服务器中,同时结合终端完成其他鉴权过程,并生成最终的鉴权结果,相比于仅通过鉴权服务器进行鉴权的方案,可以提升鉴权过程的安全性。同时,本公开实施例分别通过终端和鉴权服务器许可信息进行了双重验证,进一步提升了鉴权过程的安全性。
149.图8是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图7,图7中的s702可以更新为s801,s703可以更新为s802至s803,将结合图8示出的步骤进行说明。
150.步骤s701,接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的。
151.步骤s801,对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息和第一时间戳。
152.步骤s802,基于所述第一时间戳和所述鉴权服务器的第四时间戳,生成第二时间戳的验证结果;所述第一时间戳为所述访问请求对应的访问页面的当前时间戳。
153.步骤s803,在所述第二时间戳验证结果表征验证成功的情况下,基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并对第二待验证数据进行
加密,得到第二密文;所述第二待验证数据包括所述目标标识。
154.步骤s704,向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
155.在本公开实施例中,由于在进行鉴权的过程中,不仅将该第一许可信息作为第一待验证消息,还将第一时间戳作为该第一待验证消息,可以提升鉴权过程的安全性。其中,通过验证该第一时间戳和所述鉴权服务器的第四时间戳,可以避免重放攻击,提升系统的安全性。
156.图9是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图7,图7中的s703可以更新为s901至s904,将结合图9示出的步骤进行说明。
157.步骤s701,接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的。
158.步骤s702,对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息。
159.步骤s901,解析所述第一许可信息,得到所述第一许可信息中的第一标识。
160.步骤s902,解析所述第二许可信息,得到所述第二许可信息中的第二标识。
161.步骤s903,在所述第一标识和所述第二标识一致的情况下,基于所述第一标识和所述第二标识,生成所述目标标识。
162.步骤s904,对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识。
163.步骤s704,向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
164.本公开实施例中,由于该目标标识是鉴权服务器基于部署于终端的第一许可信息可以部署于鉴权服务器的第二许可信息生成的,即,完成了许可信息的第一重验证;终端在基于该第一许可信息对该目标标识进行验证的过程中,可以完成对该许可信息的第二重验证,由此,本公开实施例分别通过终端和鉴权服务器对许可信息进行了双重验证,提升了鉴权过程的安全性。
165.图10是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图9,所述方法还包括s1001,s904可以更新为s1002,将结合图10示出的步骤进行说明。
166.步骤s701,接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的。
167.步骤s702,对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息。
168.步骤s901,解析所述第一许可信息,得到所述第一许可信息中的第一标识。
169.步骤s902,解析所述第二许可信息,得到所述第二许可信息中的第二标识。
170.步骤s903,在所述第一标识和所述第二标识一致的情况下,基于所述第一标识和
所述第二标识,生成所述目标标识。
171.步骤s1001,获取所述鉴权服务器对应的第二时间戳;所述第二时间戳为所述鉴权服务器生成所述目标标识时的当前时间戳;所述第二时间戳用于作为所述终端是否对所述第一解密数据进行验证的判断条件。
172.步骤s1002,对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识和第二时间戳。
173.步骤s704,向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
174.在本公开实施例中,由于将该响应于所述生成所述目标标识所述鉴权服务器的当前时间戳作为第二待验证信息,加密后通过鉴权响应发送至终端,可以使终端基于该鉴权响应中携带的第二时间戳和页面服务器当前的第三时间戳生成该第一时间戳验证结果,可以防止非法用户重复利用鉴权服务器的鉴权响应,进而避免部署于终端的第一底层库中的算法文件被非法调用。
175.图11是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图7,图7中的s702可以更新为s1101,s703可以更新为s1102,将结合图11示出的步骤进行说明。
176.步骤s701,接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的。
177.步骤s1101,基于第一私钥对所述第一密文进行解密,得到第二解密数据;所述第一密文为所述终端基于所述第一私钥对应的第一公钥对所述第一待验证信息进行加密得到的;第二解密数据包括第一许可信息。
178.步骤s1102,基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并基于第二公钥对所述第二待验证信息进行加密,得到所述第二密文;所述终端中存储有所述第二公钥对应的第二私钥,所述第二待验证数据包括所述目标标识。
179.步骤s704,向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
180.在本公开实施例中,由于采用了非对称加密的方式对终端和鉴权服务器之间的数据进行加密,可以有效的减低密钥传递过程的密钥泄露风险,提升安全性。
181.图12是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。基于图7,图7中的s702可以更新为s1201,s704可以更新为s1202至s1203,将结合图12示出的步骤进行说明。
182.步骤s701,接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的。
183.步骤s1201,对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息和第一地址。
184.步骤s703,基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目
标标识。
185.步骤s1202,获取所述访问请求的第二地址。
186.在一些实施例,该第二地址为该鉴权请求中所述页面所在的地址。其中,终端在发送鉴权请求之前,可以通过所述页面与所述鉴权服务器建立连接通道,该连接通道的一端的地址为所述页面的地址,即该第二地址,该连接通道的另一端的地址为该鉴权服务器的地址。步骤s1202可以通过获取该连接通道在该页面侧的地址,进而得到该第二地址。
187.步骤s1203,在所述第一地址和所述第二地址一致的情况下,向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
188.本公开实施例中,通过比对鉴权请求中第二密文携带该页面的第一地址,和通过连接通道获取该页面的第二地址,可以有效的避免未授权网站对该第一底层库中算法文件的调用。
189.图13是本公开实施例提供的鉴权方法的一个可选的流程示意图,该方法可以由计算机设备的处理器执行。将结合图13示出的步骤进行说明。
190.步骤s1301,在访问页面的过程中,终端通过第一底层库对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息。
191.步骤s1302,终端通过所述页面向鉴权服务器发送携带所述第一密文的鉴权请求。
192.步骤s1303,鉴权服务器接收终端在访问页面的过程中发送的携带第一密文的鉴权请求。
193.步骤s1304,鉴权服务器通过第二底层库对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息和第一地址。
194.步骤s1305,鉴权服务器通过所述第二底层库基于所述第一许可信息和部署于所述鉴权服务器第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识。
195.步骤s1306,获取所述鉴权请求对应的所述页面的第二地址;在所述第一地址和所述第二地址一致的情况下,向所述终端发送携带所述第二密文的鉴权响应。
196.步骤s1307,终端接收所述鉴权服务器发送的携带第二密文的鉴权响应。
197.步骤s1308,终端通过所述第一底层库对所述第二密文进行解密,得到第一解密数据,并基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器第二许可信息确定的目标标识。
198.步骤s1309,终端基于所述鉴权结果确定页面是否可以调用所述第一底层库中的算法任务。
199.在本公开实施例中,由于该目标标识是鉴权服务器基于部署于终端的第一许可信息可以部署于鉴权服务器的第二许可信息生成的,即,完成了许可信息的第一重验证;终端在基于该第一许可信息对该目标标识进行验证的过程中,可以完成对该许可信息的第二重验证,由此,本公开实施例分别通过终端的第一底层库和鉴权服务器的第二底层库对许可信息进行了双重验证,提升了鉴权过程的安全性。
200.下面说明本公开实施例提供的鉴权方法在实际场景中的应用。以为终端中存储
webassembly(wasm)库为上述实施例中的第一底层库为例进行说明。
201.webar是基于深度学习模型,部署在web端的应用技术。其运行机制是,通过电脑端的浏览器访问网站,web服务端会将webassembly(wasm)库下载到用户的电脑端,利用浏览器通过javascript间接调用wasm低层库来实现c/c++代码的运行,其性能更近于原生(native)的速度,远高于javascript。
202.如上所述,wasm库是下载到每一台用户的电脑上,因此其保密和安全性的处理迫在眉睫。与下载到个人电脑的客户端软件不同,基于web的wasm库通过javascript(js)是无法获取用户电脑真实硬件的绑定信息,故无法生成有效的独一无二的license信息。这样使得客户花钱购买的商业库被其他人轻易盗取,对厂家也是一种经济损失。
203.现有市面上常用的license授权方法是通过javascript获取所在网站的网址,然后wasm库来作对比判断其是否有效,无效可以拒绝提供服务。但这样通过js获取网址是容易被人拦截更改的,伪装成合法的网站再传给wasm底层库。因此本文提供一种全新的“cs架构”鉴权加密机制,即使所有wasm底层库被他人盗取,也无法正常使用。
204.经过研究,相关技术中存在以下技术问题:基于web页面提供的服务是通过javascript语言作为中间桥梁调用wasm底层库的,而javascript语言是无法准确获取使用者计算机或者服务器的有效硬件的id信息。因此对于加密算法而言无法做到唯一绑定性;获取网站的网址信息是常用的license授权方式。但获取网址方式往往过于单一,而且容易被拦截更改。
205.基于上述技术问题,本公开实施例提供的鉴权方案是基于cs构架、公钥和私钥双重机制,对licnese信息(对应上述实施例中的第一许可信息和第二许可信息)和网站(对应上述实施例中的第一地址和第二地址)进行双重绑定,由客户端生成加密字符串,交给上层html(对应上述实施例中的页面)发送给鉴权服务器,鉴权服务器使用密钥进行解密,验证合法性,如果不合法则不返回,客户端便无法使用。也就是说,本公开实施例主要将本地验证机制部分转移到鉴权服务器中了,把收集到的授权信息加密发给服务器,由服务器来判断客户端的合法性。
206.其中,本公开实施例需要两套license文件,这两套license文件不是同一份文件复制二份,客户端license(对应上述实施例中终端的第一许可信息)部署在网页端,service license(对应上述实施例中鉴权服务器的第二许可信息)用于给鉴权服务器验证客户端的license是否合法。
207.请参阅图14提供的鉴权过程示意图。其中,本公开实施例提供的鉴权过程分别由终端141和鉴权服务器142进行,终端141和鉴权服务器142将分别执行以下鉴权步骤。
208.终端的web客户端执行以下步骤:h5页面(对应上述实施例中的页面)将license文件内容(对应上述实施例中的第一许可信息)读出,以明文字符串形式传给wasm底层库(对应上述实施例中的第一底层库);wasm底层库拿到明文license字符串后,调用js获取用户访问的网站url地址(对应上述实施例中的第一地址),同时获取h5页面的服务器(对应上述实施例中的页面服务器)当前的时间戳(对应上述实施例中第一时间戳)。将上述三项信息通过第一公钥进行加密,生成可传输数据(对应上述实施例中第一密文),返回给h5页面,由h5页面通过https请求访问鉴权服务器并传输加密数据。
209.鉴权服务器server执行以下步骤:鉴权服务器收到客户端传来的可传输数据直接
传给底层的鉴权so库(对应上述实施例中的第二底层库),由底层库进行第一私钥解密,得到终端发送的三项信息。判断客户端传来的第一时间戳与服务器本地即时获取的第四时间戳,是否存在合法的时间段内,不合法则直接忽略客户端请求,以防止用户截取数据用于重复发送一直有效。用解密后的license信息(对应上述实施例中的第一许可信息),验证鉴权服务器本地存放的service license(对应上述实施例中的第二许可信息)是否一致,即通过对比其中的唯一id进行验证,不一致则直接忽略客户端请求。
210.如果上述二步都验证通过,则提取license中的唯一id作为目标标识,和服务器时间戳(对应上述实施例中的第二时间戳)组合一起。通过第二公钥进行加密,生成可传输数据与解密得到的网站url(对应上述实施例中的第一地址)一起返回给鉴权服务器,鉴权服务器先验证https连接地址(对应上述实施例中的第二地址)是否与底层库返回的网站url信息一致,不一致则直接忽略客户端请求。通过所有验证后,将新生成的加密串(对应上述实施例中的第二密文)返回给https连接的客户端。
211.终端的web客户端执行以下步骤:客户端h5页面收到服务器的加密串后传给wasm底层库,由底层库解密,先验证鉴权服务器时间(对应上述实施例中的第二时间戳)与网站服务器时间(对应上述实施例中的第三时间戳)是否在合法的时间段内,不合法则直接验证失败,同样为了防止用户截取数据用于重复发送一直有效。最后wasm底层库验证该目标标识是否与license信息中的一致,不合法则验证失败。通过以上所有验证步骤后,客户端license授权成功,继续初始化,加载模型以提供服务,即调用该wasm底层库中的算法任务。
212.基于前述的实施例,本公开实施例提供一种鉴权装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
213.图15为本公开实施例提供的一种鉴权装置的组成结构示意图,如图15所示,鉴权装置1500包括:第一加密模块1501、第一传输模块1502、第一解密模块1503和鉴权模块1504,其中:
214.第一加密模块1501,用于响应于对目标数据的访问请求,对第一待验证信息进行加密,得到第一密文;所述第一待验证信息包括部署于所述终端的第一许可信息;
215.第一传输模块1502,用于向鉴权服务器发送携带所述第一密文的鉴权请求,并接收所述鉴权服务器发送的携带第二密文的鉴权响应;
216.第一解密模块1503,用于对所述第二密文进行解密,得到第一解密数据,所述第一解密数据包括所述鉴权服务器基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定的目标标识;
217.鉴权模块1504,用于基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果;并基于所述鉴权结果,确定是否允许访问所述目标数据。
218.在一些实施例中,所述第一待验证信息还包括以下至少之一:所述访问请求对应的第一地址,所述第一地址用于被所述鉴权服务器解密得到后作为是否发送所述鉴权响应的判断条件;第一时间戳,所述第一时间戳为所述访问请求对应的访问页面的当前时间戳。
219.在一些实施例中,所述第一加密模块1501,还用于:基于第一公钥对所述第一待验
证信息进行加密,得到所述第一密文;所述鉴权服务器中存储有所述第一公钥对应的第一私钥;基于第二私钥对所述第二密文进行解密,得到所述第一解密数据;所述第二密文为所述鉴权服务器基于所述第二私钥对应的第二公钥对所述第二待验证信息进行加密得到的。
220.在一些实施例中,所述第一传输模块1502,还用于:与所述鉴权服务器建立连接通道;利用所述连接通道向所述鉴权服务器发送携带所述第一密文的鉴权请求;所述鉴权请求用于指示所述鉴权服务器对所述第一密文进行解密,并基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识;接收所述鉴权服务器利用所述连接通道发送的携带所述第二密文的鉴权响应。
221.在一些实施例中,所述第一解密模块1503,还用于:获取所述第一许可信息中的第一标识;基于所述第一标识和所述第一解密数据中包括的目标标识的对应关系,生成所述鉴权结果。
222.在一些实施例中,所述第一解密数据还包括第二时间戳;在基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果之前,所述第一解密模块1503,还用于:基于所述第二时间戳和所述访问请求对应的访问页面的第三时间戳,生成第一时间戳验证结果;所述第二时间戳为所述鉴权服务器生成所述目标标识时的时间戳;在所述第一时间戳验证结果为验证成功的情况下,基于所述第一许可信息对所述第一解密数据进行验证,得到鉴权结果。
223.在一些实施例中,所述第一加密模块1501,还用于:接收针对所述第一底层库中的算法文件的初始化请求;所述初始化请求用于请求调用所述算法文件中的算法任务;所述鉴权模块1504,还用于:在所述鉴权结果为通过的情况下,确定所述算法文件的初始化结果为初始化成功,允许所述终端调用所述算法文件中的算法任务;在所述鉴权结果为未通过的情况下,确定所述算法文件的初始化结果为初始化失败,禁止所述终端调用所述算法文件中的算法任务。
224.图16为本公开实施例提供的一种鉴权装置的组成结构示意图,如图16所示,鉴权装置1600包括:接收模块1601、第二解密模块1602、第二加密模块1603和发送模块1604,其中:
225.接收模块1601,用于接收终端发送的携带第一密文的鉴权请求;所述鉴权请求为所述终端响应于对目标数据的访问请求发送的;
226.第二解密模块1602,用于对所述第一密文进行解密,得到第二解密数据;所述第二解密数据包括第一许可信息;
227.第二加密模块1603,用于基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识,并对第二待验证数据进行加密,得到第二密文;所述第二待验证数据包括所述目标标识;
228.发送模块1604,用于向所述终端发送携带所述第二密文的鉴权响应;所述鉴权响应用于指示所述终端对所述第二密文进行解密,并基于部署于所述终端的第一许可信息对解密得到的目标标识生成鉴权结果。
229.在一些实施例中,所述第二解密数据还包括第一时间戳;在所述基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识之前,所述第二加密模块1603,还用于:基于所述第一时间戳和所述鉴权服务器的第四时间戳,生成第二时间戳的验
证结果;所述第一时间戳为所述访问请求对应的访问页面的当前时间戳;在所述第二时间戳验证结果表征验证成功的情况下,基于所述第一许可信息和部署于所述鉴权服务器的第二许可信息确定目标标识。
230.在一些实施例中,所述第二加密模块1603,还用于:解析所述第一许可信息,得到所述第一许可信息中的第一标识;解析所述第二许可信息,得到所述第二许可信息中的第二标识;在所述第一标识和所述第二标识一致的情况下,基于所述第一标识和所述第二标识,生成所述目标标识。
231.在一些实施例中,所述第二加密模块1603,还用于:将所述第一标识或所述第二标识作为所述目标标识;或,基于预设的变换算法,对所述第一标识或所述第二标识进行变换处理,得到所述目标标识。
232.在一些实施例中,所述第二待验证数据还包括第二时间戳;在所述对第二待验证数据进行加密,得到第二密文之前,所述第二加密模块1603,还用于:获取所述鉴权服务器对应的第二时间戳;所述第二时间戳为所述鉴权服务器生成所述目标标识时的当前时间戳;所述第二时间戳用于作为所述终端是否对所述第一解密数据进行验证的判断条件。
233.在一些实施例中,所述第二加密模块1603,还用于:基于第二公钥对所述第二待验证信息进行加密,得到所述第二密文;所述终端中存储有所述第二公钥对应的第二私钥。所述第二加密模块1603,还用于基于第一私钥对所述第一密文进行解密,得到第二解密数据;所述第一密文为所述终端基于所述第一私钥对应的第一公钥对所述第一待验证信息进行加密得到的。
234.在一些实施例中,所述第二解密数据还包括第一地址;在所述向所述终端发送携带所述第二密文的鉴权响应之前,所述发送模块1604,还用于:获取所述访问请求的第二地址;在所述第一地址和所述第二地址一致的情况下,向所述终端发送携带所述第二密文的鉴权响应。
235.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
236.需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的鉴权方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
237.本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
238.本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机
程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
239.本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
240.本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
241.这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
242.图17为本公开实施例提供的一种计算机设备的硬件实体示意图,如图17所示,该计算机设备1700的硬件实体包括:处理器1701和存储器1702,其中,存储器1702存储有可在处理器1701上运行的计算机程序,处理器1701执行程序时实现上述任一实施例的方法中的步骤。
243.存储器1702存储有可在处理器上运行的计算机程序,存储器1702配置为存储由处理器1701可执行的指令和应用,还可以缓存待处理器1701以及计算机设备1700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
244.处理器1701执行程序时实现上述任一项的鉴权方法的步骤。处理器1701通常控制计算机设备1700的总体操作。
245.本公开实施例提供一种计算机存储介质,计算机存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上任一实施例的鉴权方法的步骤。
246.这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开存储介质和设备实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
247.上述处理器可以为目标用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。
248.上述计算机存储介质/存储器可以是只读存储器(read only memory,rom)、可编
程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性随机存取存储器(ferromagnetic random access memory,fram)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(compact disc read-only memory,cd-rom)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
249.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
250.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
251.在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
252.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
253.另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
254.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
255.或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人
计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
256.以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1