掌桥专利:专业的专利平台
掌桥专利
首页

版本授权控制方法、装置、计算设备及存储介质

文献发布时间:2023-06-19 12:18:04


版本授权控制方法、装置、计算设备及存储介质

技术领域

本发明实施例涉及计算机技术领域,特别涉及一种版本授权控制方法、装置、计算设备及存储介质。

背景技术

近些年来,随着网络信息的发展,各种数据对象的版本迭代速度都非常快。比如,运行在终端设备上的操作系统、实现不同功能的软件、存储有用于进行入侵检测的规则特征库等。由于不同版本的数据对象可以授权给不同的用户端,因此这些数据对象都需要进行版本管理。

相关技术中,服务端会将用户端对应权限的数据对象加载到本地对应该用户端的存储位置上,并直接利用该存储位置上存储的数据对象为该用户端提供服务。

发明内容

基于版本授权可控性较差的问题,本发明实施例提供了一种版本授权控制方法、装置、计算设备及存储介质,能够保证版本授权的可控性。

第一方面,本发明实施例提供了一种版本授权控制方法,应用于服务端,包括:

接收用户端发送的数据服务请求;

根据所述数据服务请求确定所述用户端对应的授权文件;

根据所述授权文件获取与所述用户端对应权限的目标版本数据对象;

利用所述目标版本数据对象为所述用户端提供服务。

优选地,所述授权文件是由所述服务端为所述用户端提供的,所述服务端存储有所述授权文件;

所述根据所述数据服务请求确定所述用户端对应的授权文件,包括:

根据所述数据服务请求中携带的所述用户端的用户标识,利用预先存储的用户标识与授权文件的对应关系,确定与所述用户端的用户标识对应的授权文件。

优选地,所述授权文件是由外部授权服务器为所述用户端提供的,所述数据服务请求中携带加密后的授权文件;

在所述接收用户端发送的数据服务请求之前,还包括:接收所述授权服务器发送的用于解密所述用户端的授权文件的解密密钥;

所述根据所述数据服务请求确定所述用户端对应的授权文件,包括:利用所述解密密钥对所述数据服务请求中携带的加密后的授权文件进行解密,得到所述授权文件。

优选地,所述授权文件中包括对应所述用户端的授权信息和对应所述用户端的私钥;

所述根据所述授权文件获取与所述用户端对应权限的目标版本数据对象,包括:

获取加密的至少一个版本的数据对象;

根据所述用户端的授权信息,从加密的至少一个版本的数据对象中确定与所述用户端对应权限的加密的目标版本数据对象;

根据所述用户端的私钥和加密的所述目标版本数据对象,解密得到该目标版本数据对象。

优选地,所述至少一个版本的数据对象是由数据存储中心加密得到的;

所述获取加密的至少一个版本的数据对象,包括:接收所述数据存储中心下发的结构性文件;所述结构性文件包括:至少一个版本的数据对象、与各用户端分别对应的加密后的密钥集合;

其中,各密钥集合的内容相同,该密钥集合中存储有至少一个版本密钥,所述至少一个版本密钥与所述至少一个版本的数据对象一一对应,所述结构性文件包括的每一个版本数据对象被对应版本密钥加密;各用户端中每一个当前用户端对应的加密后的密钥集合是由与该当前用户端的私钥对应的公钥加密得到的。

优选地,所述授权文件中还包括针对所述用户端生成的唯一标识;

所述根据所述用户端的私钥和加密的所述目标版本数据对象,解密得到该目标版本数据对象,包括:

利用针对所述用户端生成的唯一标识,获取与所述用户端对应的密钥集合;

利用所述用户端的私钥解密得到所述密钥集合中的至少一个版本密钥;

根据加密的所述目标版本数据对象,从所述至少一个版本密钥中确定与所述目标版本数据对象对应的目标版本密钥;

根据所述目标版本密钥对所述目标版本数据对象进行解密,得到解密后的所述目标版本数据对象。

优选地,所述授权信息为授权过期时间;所述至少一个版本的数据对象分别对应有发布时间;

所述根据所述用户端的授权信息,从加密的至少一个版本的数据对象中确定与所述用户端对应权限的加密的目标版本数据对象,包括:

根据所述至少一个版本的数据对象中每一个版本数据对象的发布时间,确定发布时间早于所述授权过期时间、且距离所述授权过期时间最近的目标发布时间;

将所述目标发布时间对应版本的数据对象,确定为所述目标版本数据对象。

第二方面,本发明实施例还提供了一种版本授权控制装置,位于服务端中,包括:

接收单元,用于接收用户端发送的数据服务请求;

授权文件确定单元,用于根据所述数据服务请求确定所述用户端对应的授权文件;

数据对象获取单元,用于根据所述授权文件获取与所述用户端对应权限的目标版本数据对象;

服务单元,用于利用所述目标版本数据对象为所述用户端提供服务。

第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。

本发明实施例提供了一种版本授权控制方法、装置、计算设备及存储介质,当服务端接收到用户端的数据服务请求后,不管本地与该用户端对应存储位置上是否加载有数据对象,均需要重新根据该数据服务请求获取到与用户端对应权限的目标版本数据对象,以保证为用户端提供服务时使用的数据对象的版本是该用户端具有权限的版本,以保证版本授权的可控性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种版本授权控制方法流程图;

图2是本发明一实施例提供的一种目标版本数据对象的确定方法流程图;

图3是本发明一实施例提供的一种结构性文件生成方法示意图;

图4是本发明一实施例提供的一种结构性文件的结构图;

图5是本发明一实施例提供的一种计算设备的硬件架构图;

图6是本发明一实施例提供的一种版本授权控制装置结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如前所述,在相关技术中,服务端将用户端对应权限的数据对象加载到本地对应该用户端的存储位置上。服务端每当接收到用户端发起的数据服务请求时,确定对应该用户端的存储位置上是否存储有数据对象,如果有,则直接利用该存储位置上存储的数据对象为该用户端提供服务。然而,若用户端通过某种方式获取到未授权版本的数据对象,将该未授权版本的数据对象替换掉服务端对应该用户端的存储位置上存储的数据对象,此时该用户端是不具有服务端对应该用户端的存储位置上存储的数据对象的权限的。而服务端并未对存储位置上存储的数据对象的权限进行验证,从而导致版本授权的可控性较差。

当服务端对应用户端存储位置上的数据对象更换版本后,若需要更换后的版本生效,需要用户端重新发送数据服务请求,因此,可考虑服务端每当收到用户端发送的数据服务请求后,均重新根据该数据服务请求获取与用户端对应权限的数据对象,以使为用户端提供服务时使用的数据对象的版本都是该用户端具有权限的版本。

下面描述以上构思的具体实现方式。

请参考图1,本发明实施例提供了一种版本授权控制方法,该方法包括:

步骤100,接收用户端发送的数据服务请求。

步骤102,根据该数据服务请求确定该用户端对应的授权文件。

步骤104,根据该授权文件获取与该用户端对应权限的目标版本数据对象;

步骤106,利用该目标版本数据对象为该用户端提供服务。

本发明实施例中,当服务端接收到用户端的数据服务请求后,不管本地与该用户端对应存储位置上是否加载有数据对象,均需要重新根据该数据服务请求获取到与用户端对应权限的目标版本数据对象,以保证为用户端提供服务时使用的数据对象的版本是该用户端具有权限的版本,以保证版本授权的可控性。

下面描述图1所示的各个步骤的执行方式。

首先,针对步骤100,接收用户端发送的数据服务请求。

在本发明实施例中,该数据服务请求用于请求服务端利用数据对象为用户端提供服务。该数据对象可以是规则库,也可以是包括软件功能的代码数据。

用户端向服务端发送数据服务请求的时机至少可以包括:1、用户端在获得数据对象的授权后,首次向服务端发送数据服务请求;2、服务端在利用数据对象为用户端提供服务的过程中,用户端重新向服务端发送数据服务请求,以请求更换最新版本的数据对象。

然后,针对步骤102,根据该数据服务请求确定用户端对应的授权文件。

在本发明一个实施例中,授权文件用于指示用户端针对数据对象所具有的权限。

在本发明一个实施例中,该授权文件可以由不同设备提供,至少可以包括如下两种情况:

第一种情况:由服务端提供。

第二种情况:由外部授权服务器提供。

下面分别针对上述两种情况对本步骤进行说明。

在第一种情况下,用户端预先向服务端发送携带有用户端的用户标识的授权请求,服务端根据授权请求生成与用户端对应的授权文件,然后存储该用户端的用户标识与授权文件的对应关系。

那么本步骤102可以包括:根据该数据服务请求中携带的该用户端的用户标识,利用预先存储的用户标识与授权文件的对应关系,确定与该用户端的用户标识对应的授权文件。

在第一种情况下,服务端生成授权文件之后,直接存储在服务端本地,在用户端发送数据服务请求时,可以快速获取到与服务端对应的授权文件,提高了数据服务效率。另外,授权文件没有离开过本地,因此可以降低授权文件被篡改的概率,提高授权文件的安全性。

在第二种情况下,用户端预先向授权服务器发送授权请求,授权服务器根据授权请求生成与用户端对应的授权文件,然后利用加密密钥将该授权文件加密,并将加密后的授权文件发送给用户端,以及将用于解密该授权文件的解密密钥发送给服务端。

那么在本步骤100中,用户端发送的数据服务请求中携带有加密后的授权文件;

在步骤100之前,还包括:接收授权服务器发送的用于解密该用户端的授权文件的解密密钥;

本步骤102可以包括:利用该解密密钥对该数据服务请求中携带的加密后的授权文件进行解密,得到授权文件。

其中,不同用户端的授权文件可以使用同一个解密密钥解密,该解密密钥预先与授权服务器进行协商。

在该第二种情况下,如果利用该用户端的解密密钥无法对数据服务请求中携带的加密后的授权文件进行解密,表明解密失败,可以向用户端报错。

在该第二种情况下,授权服务器将授权文件加密后发送给用户端,可以降低用户端对授权文件篡改的概率,提高授权文件的安全性。

不管是上述第一种情况,还是上述第二种情况,生成的授权文件可以相同。具体地,该授权文件至少包括对应该用户端的授权信息;除此之外,该授权文件还可以包括:对应该用户端的随机密钥,和/或,对应该用户端的唯一标识。

在本发明一个实施例中,授权信息用于表征对该用户端授权的数据对象的版本,该授权信息可以是授权码、授权过期时间等。

在本发明一个实施例中,随机密钥用于解密出与该用户端对应版本的数据对象。其中,该随机密钥可以是使用任意可实现的加密算法生成的。优选地,使用非对称加密算法,那么该授权文件中的随机密钥为私钥。当授权文件对应上述第一种情况时,服务端生成与该用户端对应的密钥对,将密钥对中的私钥放置到授权文件中,密钥对中的公钥存储在本地端;当授权文件对应上述第二种情况时,授权服务器生成与该用户端对应的密钥对,将密钥对中的私钥放置到授权文件中,将密钥对中的公钥发送给用于加密数据对象的一端(服务端或者数据存储中心)。

在本发明一个实施例中,由于不同用户端可能存在相同用户标识的情况,为了避免该情况造成的管理混乱,可以针对用户端生成唯一标识,以保证每一个请求数据服务的用户端都对应有唯一标识。该唯一标识可以使用随机数或者随机字符串。比如,该唯一标识为“6b2224ae-5b55-488d-a18f-2d21958a2785”。

该授权文件中除上述几种数据以外,还可以根据实际需要在授权文件中添加其它所需字段,以实现该字段对应的目的。

总结来说,当授权文件是由授权服务器生成的时(即对应上述第二种情况),授权服务器需要将授权信息、公钥、唯一标识发送给用于加密数据对象的一端(服务端或者数据存储中心),以及将授权文件的解密密钥发送给服务端。

接下来,针对步骤104,根据该授权文件获取与该用户端对应权限的目标版本数据对象。

当步骤102中授权文件中包括对应用户端的授权信息和对应用户端的私钥时,请参考图2,本步骤104可以包括:

步骤200:获取加密的至少一个版本的数据对象。

在本发明一个实施例中,该加密的至少一个版本的数据对象可以由不同设备提供,具体可以对应如下两种情况:

情况A:由外部数据存储中心提供;

情况B:由服务端提供。

下面分别针对上述两种情况对本步骤200进行说明。

对应情况A时,该加密的至少一个版本的数据对象由外部数据存储中心提供。

数据存储中心用来存储和管理各个版本的数据对象。数据对象会定期或不定期的更新,因此,数据对象可以对应至少一个版本。每次更新的版本都会在数据存储中心发布。当有新版本的数据对象发布后,数据存储中心针对至少一个版本的数据对象的存储方式至少可以包括两种方式:

方式1、存储旧版本的数据对象,以及存储新版本相对于旧版本的更新信息。

在该种方式下,该旧版本的数据对象可以是基本版本的数据对象,当有新版本发布时,可以继续将新版本相对于该基本版本的数据对象的更新信息进行存储。比如,以数据对象为规则库为例,基本版本的数据对象是一个基本规则库,该基本规则库中包括有若干条规则,当有新版本发布时,可以存储的更新信息为:删除基本版本中的规则为……,新增规则为……。在该方式1下,存储的数据对象不重复,可以节省存储空间。

方式2、同时存储旧版本的数据对象和新版本的数据对象。

在该种方式下,每个版本的数据对象是独立的,便于不同版本的数据对象的查找与管理,且可以快速获取到所需版本的数据对象。

在本发明一个实施例中,数据存储中心将数据对象下发给服务端的方式可以以结构性文件(Structured Data Object,SDO)的方式进行下发。该结构性文件可以存储不同数据类型的对象,比如,该数据类型可以是文件、压缩包、字节流等。

下面以数据存储中心针对至少一个版本的数据对象的存储方式采用上述方式2、以及数据对象为规则库为例,对该结构性文件的生成方式进行说明,请参考图3,数据存储中心存储有所有发布的规则库,从发布时间由近至远依次为待发布的规则库M、本月发布的规则库M1、上月发布的规则库M2、上上月发布的规则库M3、……、基本规则库Mn。这些规则库在数据存储中心存储时可以是加密状态,也可以是未加密状态。

每发布一个版本的规则库时,同时生成用于加密该版本的规则库的版本密钥,该版本密钥可以使用任意的加密算法生成,图3中以非对称密钥为例,生成的版本密钥是密钥对,与上述规则库M至规则库Mn分别一一对应的密钥对为Kp、Kp1、Kp2、Kp3、……、Kpn。

使用对应密钥对中的公钥(p、p1、p2、p3、……、pn)将对应版本规则库进行加密,得到加密库E、加密库E1、加密库E2、加密库E3、……、加密库En,得到加密规则库集合。

将各密钥对中的私钥(K、K1、K2、K3、……、Kn)生成密钥集合Kset。并利用每一个用户端的公钥将密钥集合进行加密,得到用户数据库。该加密用户数据库中包括各用户端分别对应的加密密钥集合Kset。比如用户1……用户n分别对应有加密密钥集合Kset,其中,用户1对应的加密密钥集合Kset是由该用户1的公钥(授权服务器或服务端针对用户1生成授权文件时生成并发来的)进行加密的,用户n对应的加密密钥集合Kset是由该用户n的公钥(授权服务器或服务端针对用户n生成授权文件时生成并发来的)进行加密的。

对上述过程中生成的加密规则库集合和用户数据库生成结构性文件。

在本发明一个实施例中,该结构性文件的格式至少可以为如图4所示的一种格式,该结构性文件由文件头元数据、节段1、节段2……节段n组成。其中,文件头元数据可以包括如下内容:

文件Magic:代表存储的文件类型;

文件长度:代表此文件类型的长度;

文件头Magic:代表文件头的类型,比如,FlatBuffer;

文件头长度:代表文件头的类型的长度,比如,FlatBuffer数据的长度;

FlatBuffer:包括封装时间、节段个数、各节段的偏移量等。

每一个节段存储一个内容,比如,节段1为加密库E1、节段2为加密库E2、……、节段n为用户数据库。通过读取FlatBuffer中的数据可以获得各个节段的内容。

需要说明的是,数据存储中心对各个版本的数据对象进行加密的方式以及生成结构性文件的方式除上述描述的方式以外,均可以使用其它方式。比如,数据存储中心利用生成授权文件时生成的与用户端对应的公钥加密各个版本的数据对象,针对每一个用户端中的当前用户端,得到加密后的至少一个版本的数据对象,然后将各用户端分别对应的加密后的至少一个版本的数据对象生成结构性文件进行下发。

在该种情况A下,本步骤200可以包括:接收数据存储中心下发的结构性文件;该结构性文件包括:至少一个版本的数据对象、与各用户端的唯一标识分别对应的加密后的密钥集合;其中,各密钥集合的内容相同,该密钥集合中存储有至少一个版本密钥,该至少一个版本密钥与该至少一个版本的数据对象一一对应,该结构性文件包括的每一个版本数据对象被对应版本密钥加密;各用户端中每一个当前用户端对应的加密后的密钥集合是由与该当前用户端的私钥对应的公钥加密得到的。

在该种情况A下,由数据存储中心对各个版本的数据对象进行存储和管理,可以降低被窃取的概率,提高数据对象的安全性。

以上完成了对情况A中该加密的至少一个版本的数据对象由外部数据存储中心提供的说明,下面继续对情况B中该加密的至少一个版本的数据对象由服务端提供进行说明。

在情况B中,由服务端对各个版本的数据对象进行存储和管理。其方式可以与情况A中数据存储中心对各个版本的数据对象进行存储和管理的方式相同(省略结构性文件的生成和下发过程),在此不在赘述。

在该种情况B下,由服务端对各个版本的数据对象进行存储和管理,便于对各个版本的数据对象的获取,提高数据服务的效率。

步骤202:根据该用户端的授权信息,从加密的至少一个版本的数据对象中确定与该用户端对应权限的加密的目标版本数据对象。

在本发明一个实施例中,该授权信息可以是授权码、授权过期时间等,当授权信息为授权码时,可以预先存储授权码与数据对象的版本的对应关系,利用该对应关系可以快速确定出与授权信息对应的目标版本数据对象。当授权信息是授权过期时间时,该至少一个版本的数据对象分别对应有发布时间,可以利用各版本的数据对象的发布时间确定目标版本数据对象,具体地,至少可以采用如下两种确定规则:

第一种确定规则:当前时间未达到授权过期时间,利用最新版本的数据对象为用户端提供服务;当前时间超过授权过期时间,不为用户端提供服务。

在该第一种确定规则下,本步骤202可以包括:服务端确定当前时间与授权过期时间的关系,若当前时间未达到授权过期时间,则将至少一个版本的数据对象中发布时间距离当前时间最近的数据对象确定为目标版本数据对象。利用该种确定规则,可以确保仅用户端在授权期间内才给用户端提供服务,从而可以保证版本授权的可控性。

第二种确定规则:利用早于授权过期时间发布的数据对象为用户端提供服务。

在该第二种确定规则下,即使当前时间超过授权过期时间,也依然为用户端提供服务。本步骤202可以包括:根据该至少一个版本的数据对象中每一个版本数据对象的发布时间,确定发布时间早于该授权过期时间、且距离该授权过期时间最近的目标发布时间;将该目标发布时间对应版本的数据对象,确定为目标版本数据对象。利用该种确定规则,可以确保使用该用户端具有权限的、且最新版本的数据对象为该用户端提供服务,从而可以保证版本授权的可控性。

步骤204:根据该用户端的私钥和加密的该目标版本数据对象,解密得到该目标版本数据对象。

当至少一个版本的数据对象是利用如图3所示的加密方式进行加密得到的时,该授权文件种除包括对应客户端的授权信息和对应客户端的私钥以外,还包括针对用户生成的唯一标识;那么本步骤204可以包括:利用针对该用户端生成的唯一标识,获取与该用户端对应的密钥集合;利用该用户端的私钥解密得到该密钥集合中的至少一个版本密钥;根据加密的该目标版本数据对象,从该至少一个版本密钥中确定与该目标版本数据对象对应的目标版本密钥;根据该目标版本密钥对该目标版本数据对象进行解密,得到解密后的该目标版本数据对象。

举例来说,该授权文件中包括的用户端的唯一标识比如为用户1,那么可以获取到与用户1对应的加密的密钥集合Kset,由于该密钥集合是由用户1对应的公钥加密得到的,因此,使用该授权文件中包括的对应该用户端的私钥可以对该加密的密钥集合进行解密,得到密钥集合中包括的至少一个版本密钥。假设加密的目标版本数据对象是加密规则库E2,那么可以使用与加密规则库E2对应的版本密钥解密该加密规则库E2,从而可以得到解密后的规则库M2。

本发明一个实施例中,在从至少一个版本密钥中确定目标版本密钥时,可以通过密钥信息来确定,该密钥信息可以包括:Key名称ID、Key算法名称等。利用该密钥信息可以确定目标版本密钥。

需要说明的是,若授权文件中包括的用户端的唯一标识,服务端未能查找到与该唯一标识对应的加密的密钥集合,那么表明该用户端未得到授权,可以向用户端返回查找结果。若利用用户端的唯一标识对对应的加密的密钥集合进行解密时,无法解密得到密钥集合,也可以向用户返回解密结果。

通过图2所示的方式获取与用户端对应权限的目标版本数据对象,不仅可以通过私钥解密的方式实现对用户端的进一步验证,即当私钥能够解密得到密钥集合时,可以进一步确保该授权文件的可信性,从而实现对用户端的进一步验证。利用使用至少一个版本密钥对至少一个版本的数据对象进行加密,且解密时只对目标版本的数据对象解密即可,无需对其它版本的数据对象进行解密,不仅可以提高目标版本数据对象的获取效率,还可以保证其它版本数据对象的安全性。

需要说明的是,本步骤104除了上述图2所示的方式确定与用户端对应权限的目标版本数据对象以外,还可以使用其它方式来确定。比如,服务端或数据存储中心存储该至少一个版本的数据对象,服务端中存储有授权信息与数据对象的版本的对应关系,服务端可以直接根据该对应关系以及授权文件中的授权信息确定出目标版本数据对象,然后从本地得到该目标版本数据对象,或者,向数据存储中心请求获取该目标版本数据对象,数据存储中心将目标版本数据对象发送给服务端。

最后,针对步骤106,利用该目标版本数据对象为该用户端提供服务。

当数据对象为规则库时,比如,规则库内包括用于检测威胁事件的规则,在利用目标版本数据对象为用户端提供服务时,可以利用目标版本规则库包括的规则进行威胁事件的检测,然后向用户端展示检测到的威胁事件。

当数据对象为软件功能的代码数据时,在利用目标版本数据对象为用户端提供服务时,可以为用户端提供该目标版本数据对象能够实现的软件功能。

如图5、图6所示,本发明实施例提供了一种版本授权控制装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图5所示,为本发明实施例提供的一种版本授权控制装置所在计算设备的一种硬件架构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图6所示,作为一个逻辑意义上的装置,是通过其所在计算设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种版本授权控制装置,该装置可以包括:

接收单元601,用于接收用户端发送的数据服务请求;

授权文件确定单元602,用于根据所述数据服务请求确定所述用户端对应的授权文件;

数据对象获取单元603,用于根据所述授权文件获取与所述用户端对应权限的目标版本数据对象;

服务单元604,用于利用所述目标版本数据对象为所述用户端提供服务。

在本发明一个实施例中,所述授权文件是由所述服务端为所述用户端提供的,所述服务端存储有所述授权文件;

所述授权文件确定单元602,具体用于根据所述数据服务请求中携带的所述用户端的用户标识,利用预先存储的用户标识与授权文件的对应关系,确定与所述用户端的用户标识对应的授权文件。

在本发明一个实施例中,所述授权文件是由外部授权服务器为所述用户端提供的,所述数据服务请求中携带加密后的授权文件;

所述接收单元601,还用于接收所述授权服务器发送的用于解密所述用户端的授权文件的解密密钥;

所述授权文件确定单元602,具体用于利用所述解密密钥对所述数据服务请求中携带的加密后的授权文件进行解密,得到所述授权文件。

在本发明一个实施例中,所述授权文件中包括对应所述用户端的授权信息和对应所述用户端的私钥;

所述数据对象获取单元603,具体用于获取加密的至少一个版本的数据对象;根据所述用户端的授权信息,从加密的至少一个版本的数据对象中确定与所述用户端对应权限的加密的目标版本数据对象;根据所述用户端的私钥和加密的所述目标版本数据对象,解密得到该目标版本数据对象。

在本发明一个实施例中,所述至少一个版本的数据对象是由数据存储中心加密得到的;

所述数据对象获取单元603,在执行所述获取加密的至少一个版本的数据对象时,具体用于接收所述数据存储中心下发的结构性文件;所述结构性文件包括:至少一个版本的数据对象、与各用户端分别对应的加密后的密钥集合;其中,各密钥集合的内容相同,该密钥集合中存储有至少一个版本密钥,所述至少一个版本密钥与所述至少一个版本的数据对象一一对应,所述结构性文件包括的每一个版本数据对象被对应版本密钥加密;各用户端中每一个当前用户端对应的加密后的密钥集合是由与该当前用户端的私钥对应的公钥加密得到的。

在本发明一个实施例中,所述授权文件中还包括针对所述用户端生成的唯一标识;

所述数据对象获取单元603,在执行所述根据所述用户端的私钥和加密的所述目标版本数据对象解密得到该目标版本数据对象时,具体用于利用针对所述用户端生成的唯一标识,获取与所述用户端对应的密钥集合;利用所述用户端的私钥解密得到所述密钥集合中的至少一个版本密钥;根据加密的所述目标版本数据对象,从所述至少一个版本密钥中确定与所述目标版本数据对象对应的目标版本密钥;根据所述目标版本密钥对所述目标版本数据对象进行解密,得到解密后的所述目标版本数据对象。

在本发明一个实施例中,所述授权信息为授权过期时间;所述至少一个版本的数据对象分别对应有发布时间;

所述数据对象获取单元603,在执行所述根据所述用户端的授权信息,从加密的至少一个版本的数据对象中确定与所述用户端对应权限的加密的目标版本数据对象时,具体用于根据所述至少一个版本的数据对象中每一个版本数据对象的发布时间,确定发布时间早于所述授权过期时间、且距离所述授权过期时间最近的目标发布时间;将所述目标发布时间对应版本的数据对象,确定为所述目标版本数据对象。

可以理解的是,本发明实施例示意的结构并不构成对一种版本授权控制装置的具体限定。在本发明的另一些实施例中,一种版本授权控制装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种版本授权控制方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种版本授权控制方法。

具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

本发明各实施例至少具有如下有益效果:

1、本发明一个实施例中,当服务端接收到用户端的数据服务请求后,不管本地与该用户端对应存储位置上是否加载有数据对象,均需要重新根据该数据服务请求获取到与用户端对应权限的目标版本数据对象,以保证为用户端提供服务时使用的数据对象的版本是该用户端具有权限的版本,以保证版本授权的可控性。

2、本发明一个实施例中,授权文件由服务端直接提供,服务端生成授权文件之后,直接存储在服务端本地,在用户端发送数据服务请求时,可以快速获取到与服务端对应的授权文件,提高了数据服务效率。另外,授权文件没有离开过本地,因此可以降低授权文件被篡改的概率,提高授权文件的安全性。

3、本发明一个实施例中,授权文件由授权服务器提供,且授权服务器将授权文件加密后发送给用户端,可以降低用户端对授权文件篡改的概率,提高授权文件的安全性。

4、本发明一个实施例中,在对用户端的授权请求进行响应时,可以针对用户端生成唯一标识,从而可以避免由于用户端存在相同用户标识的情况造成的管理混乱。

5、本发明一个实施例中,在存储不同版本的数据对象时,可以同时存储旧版本的数据对象和新版本的数据对象,如此每个版本的数据对象是独立的,便于不同版本的数据对象的查找与管理,且可以快速获取到所需版本的数据对象。

6、本发明一个实施例中,各版本的数据对象由数据存储中心进行存储和管理,并将各版本的数据对象分别加密生成结构性文件下发给服务端,如此可以降低数据对象被窃取的概率,提高数据对象的安全性。

7、本发明一个实施例中,通过私钥解密的方式可以实现对用户端的进一步验证,即当私钥能够解密得到密钥集合时,可以进一步确保该授权文件的可信性,从而实现对用户端的进一步验证。利用使用至少一个版本密钥对至少一个版本的数据对象进行加密,且解密时只对目标版本的数据对象解密即可,无需对其它版本的数据对象进行解密,不仅可以提高目标版本数据对象的获取效率,还可以保证其它版本数据对象的安全性。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 版本授权控制方法、装置、计算设备及存储介质
  • 授权控制方法、授权方法、装置及计算设备
技术分类

06120113240390