一种资源操作方法及装置与流程

文档序号:13617367阅读:133来源:国知局
一种资源操作方法及装置与流程

本发明实施例涉及物联网技术领域,尤其涉及一种资源操作方法及装置。



背景技术:

物联网是指将人与物、物与物相联,实现信息化、远程管理控制和智能化的网络。现有物联网技术中,根据开放授权协议(webauthorizationprotocol,oauth)2.0或机器对机器(onemachinetomachine,onem2m)等协议,基于令牌的认证授权方案的基本流程可以参见图1。

在图1所示流程中,终端1100首先通过步骤101向授权服务器1200发送令牌请求消息以获取令牌。授权服务器1200在步骤102中将令牌发送给终端1100。终端1100通过步骤103将获取到的令牌携带于资源请求消息中发送给资源服务器1300。资源服务器1300基于时钟同步机制,通过步骤104验证令牌的有效性,或者,资源服务器1300通过步骤105将令牌发送给授权服务器1200进行有效性验证,并通过步骤106获取令牌验证结果。当确定令牌有效时,资源服务器1300根据预设策略确定终端1100可操作的资源,并将可操作的资源通过步骤107中的资源响应消息反馈给终端。

由于资源服务器与授权服务器之间通常是通过因特网进行远程通信的,当资源服务器为物联网中具有低能耗、低存储、低资源处理能力的资源受限设备时,则可能无法支持时钟同步机制,也不能通过因特网与授权服务器保持实时连接,因而无法对终端发送的令牌的有效性进行验证,从而使得终端无法访问资源服务器中的资源。



技术实现要素:

本发明实施例提供一种资源操作方法及装置,可以使得资源服务器不能与授权服务器实时连接时,也能对终端发送的令牌进行有效性验证的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明实施例提供一种资源操作方法,包括:首先,资源服务器接收终端发送的资源请求消息。其中,该资源请求消息中携带有令牌和密文信息,密文信息为令牌验证信息加密后的信息。其次,资源服务器根据与授权服务器协商的解密密钥,对密文信息进行解密获得令牌验证信息。而后,资源服务器根据令牌验证信息确定令牌是否有效,并在令牌有效时,向终端发送资源响应消息。这样,资源服务器可以根据事先与授权服务器协商的解密密钥从密文信息中获取令牌验证信息,从而根据令牌验证信息对令牌进行有效性验证,因而可以使得资源服务器在不能与授权服务器保持实时连接的情况下,也能对令牌的有效性进行验证。

在一个可能的设计中,在资源服务器根据与授权服务器协商的解密密钥,对密文信息进行解密获得令牌验证信息之前,该方法还包括:资源服务器与授权服务器协商解密密钥。

在一个可能的设计中,资源服务器与授权服务器协商解密密钥包括:资源服务器向授权服务器发送协商请求消息,并接收授权服务器发送的协商响应消息。或者,资源服务器接收授权服务器发送的协商请求消息,并向授权服务发送协商响应消息。其中,协商请求消息或协商响应消息中携带有解密密钥。这样,资源服务器与授权服务器协商了一个解密密钥,且该解密密钥与所有终端相对应。

在一个可能的设计中,资源服务器与授权服务器协商解密密钥包括:资源服务器向授权服务器发送协商请求消息,并接收授权服务器发送的协商响应消息,其中,协商请求消息中携带有至少一个映射关系,每个映射关系为解密密钥与至少一个终端标识的对应关系。或者,接收授权服务器发送的协商请求消息,并向授权服务器发送协商响应消息,其中,协商响应消息中携带有至少一个映射关系,每个映射关系为解密密钥与至少一个终端标识的对应关系。这样,资源服务器与授权服务器协商了至少一个解密密钥,一个解密密钥可以对应至少一个终端,不同终端可能对应不同的解密密钥,资源服务器需要根据终端对应的解密密钥,对终端发送的资源请求消息中的密文信息进行解密,从而进一步提高了资源操作过程的安全性。

在一个可能的设计中,令牌验证信息包括初始验证数和验证数区间,方法还包括:资源服务器与授权服务器协商验证函数。这样,资源服务器可以根据令牌验证信息包括初始验证数和验证数区间,以及事先协商的验证函数,对令牌进行有效性验证。

在一个可能的设计中,资源请求消息中还携带有终端标识,资源服务器根据令牌验证信息确定令牌是否有效包括:当资源服务器中与终端标识对应的本地验证数为空时,资源服务器将令牌验证信息中的初始验证数代入验证函数获得第一计算结果;若第一计算结果在验证数区间内,则资源服务器确定令牌有效,并将本地验证数设置为第一计算结果;若第一计算结果不在验证数区间内,则资源服务器确定令牌无效,并将本地验证数置为空。

在一个可能的设计中,资源请求消息中还携带有终端标识,资源服务器根据令牌验证信息确定令牌是否有效包括:当资源服务器中与终端标识对应的本地验证数不为空时,资源服务器将本地验证数代入验证函数获得第二计算结果;若第二计算结果在验证数区间内,则资源服务器确定令牌有效,并将本地验证数设置为第二计算结果;若第二计算结果不在验证数区间内,则资源服务器确定令牌无效,并将本地验证数置为空。

在一个可能的设计中,当资源服务器确定令牌无效时,向终端发送错误指示消息。进一步地,错误指示消息中还可以携带有令牌无效指示信息。终端接收到错误指示消息后,可以向授权服务器获取新的令牌和密文信息,以使得终端可以从授权服务器获取有效令牌,从而根据有效令牌向资源服务器请求资源操作。

第二方面,本发明实施例提供了一种计算机存储介质,用于储存为上述资源服务器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

第三方面,本发明实施例提供了一种装置,具有实现上述方法中资源服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

第四方面,本发明实施例提供了一种资源服务器,该资源服务器的结构中包括存储器,收发器和处理器。其中存储器用于存储计算机可执行程序代码,并与和收发器耦合。所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述资源服务器执行上述方法中所涉及的信息或者指令。

第五方面,本发明实施例提供了一种资源操作方法,该方法包括:首先,终端向授权服务器发送的令牌请求消息,令牌请求消息中携带有资源服务器标识,或资源服务器标识和终端标识。其次,终端接收授权服务器根据资源服务器标识,或资源服务器标识和终端标识发送的令牌和密文信息。其中,该密文信息为令牌验证信息加密后的信息。而后,终端向资源服务器标识对应的资源服务器发送资源请求消息,资源请求消息中携带有令牌和密文信息。其中,密文信息用于根据资源服务器与授权服务器协商的解密密钥进行解密获得令牌验证信息,并根据令牌验证信息验证令牌是否有效。

这样,终端可以将从授权服务器获取的令牌和密文信息转发给资源服务器,以使得资源服务器根据事先与授权服务器协商的解密密钥从密文信息中获取令牌验证信息,从而根据令牌验证信息对令牌进行有效性验证,因而可以使得资源服务器在不能与授权服务器保持实时连接的情况下,也能够对令牌的有效性进行验证。

第六方面,本发明实施例提供了一种计算机存储介质,用于储存为上述终端所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

第七方面,本发明实施例提供了一种装置,具有实现上述方法中终端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

第八方面,本发明实施例提供了一种终端,该终端的结构中包括存储器,收发器和处理器。其中存储器用于存储计算机可执行程序代码,并与和收发器耦合。所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述终端执行上述方法中所涉及的信息或者指令。

第九方面,本发明实施例提供了一种资源操作方法,该方法包括:授权服务器与资源服务器协商解密密钥。并且,授权服务器接收终端发送的令牌请求消息,该令牌请求消息中携带有资源服务器标识,或资源服务器标识和终端标识。而后,授权服务器根据资源服务器标识,或资源服务器标识和终端标识,将令牌和密文信息发送给终端。其中,密文信息为根据与解密密钥配对的加密密钥对令牌验证信息加密后的信息。密文信息用于根据解密密钥进行解密获得令牌验证信息,并根据令牌验证信息验证令牌是否有效。

这样,授权服务器可以将令牌和密文信息通过终端转发给资源服务器,以使得资源服务器可以根据事先与授权服务器协商的解密密钥从密文信息中获取令牌验证信息,从而根据令牌验证信息对令牌进行有效性验证,因而可以使得资源服务器在不能与授权服务器保持实时连接的情况下,也能够对令牌的有效性进行验证。

在一个可能的设计中,授权服务器与资源服务器协商解密密钥包括:授权服务器向资源服务器发送协商请求消息,并接收资源服务器发送的协商响应消息。或者,接收资源服务器发送的协商请求消息,并向资源服务发送协商响应消息。其中,协商请求消息或协商响应消息中携带有解密密钥。这样,资源服务器与授权服务器协商了一个解密密钥,且该解密密钥与所有终端相对应。

在一个可能的设计中,授权服务器与资源服务器协商解密密钥包括:授权服务器向资源服务器发送协商请求消息,并接收资源服务器发送的协商响应消息,其中,协商响应消息中携带有至少一个映射关系,每个映射关系为解密密钥与至少一个终端标识的对应关系。或者,接收资源服务器发送的协商请求消息,并向资源服务器发送协商响应消息,其中,协商请求消息中携带有至少一个映射关系,每个映射关系为解密密钥与至少一个终端标识的对应关系。这样,资源服务器与授权服务器协商了至少一个解密密钥,一个解密密钥可以对应至少一个终端,不同终端可能对应不同的解密密钥,资源服务器需要根据终端对应的解密密钥,对终端发送的资源请求消息中的密文信息进行解密,从而进一步提高了资源操作过程的安全性。

在一个可能的设计中,令牌验证信息包括初始验证数和验证数区间,方法还包括:授权服务器与资源服务器协商验证函数。这样,资源服务器可以根据令牌验证信息包括初始验证数和验证数区间,以及事先协商的验证函数,对令牌进行有效性验证。

第十方面,本发明实施例提供了一种计算机存储介质,用于储存为上述授权服务器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

第十一方面,本发明实施例提供了一种装置,具有实现上述方法中授权服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

第十二方面,本发明实施例提供了一种授权服务器,该授权服务器的结构中包括存储器,收发器和处理器。其中存储器用于存储计算机可执行程序代码,并与和收发器耦合。所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述授权服务器执行上述方法中所涉及的信息或者指令。

结合上述所有方面,在一个可能的设计中,令牌验证信息包括初始验证数、验证数区间和验证函数,这样可以使得资源服务器根据令牌验证信息中的初始验证数、验证数区间和验证函数,对令牌的有效性进行验证。

结合上述所有方面,在一个可能的设计中,对令牌信息进行加密生成密文信息的加密密钥和解密密钥为对称密钥。

结合上述所有方面,在一个可能的设计中,对令牌信息进行加密生成密文信息的加密密钥和解密密钥为非对称密钥。

这样,可以使得加密密钥和解密密钥的设置方式更为灵活。

相较于现有技术,本发明实施例提供的方案中,终端将从授权服务器获取的令牌和密文信息转发给资源服务器,资源服务器可以根据事先预授权服务器协商的解密密钥从密文信息中获取令牌验证信息,从而根据令牌验证信息对令牌进行有效性验证,因而可以使得资源服务器在不能与授权服务器保持实时连接的情况下,仍然可以对令牌的有效性进行验证,从而使得终端能够根据有效令牌正常访问资源服务器中的资源。

为了便于理解,示例的给出了部分与本发明相关概念的说明以供参考。如下所示:

物联网:即物物相连的互联网,利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管理控制和智能化的网络。物联网是互联网的延伸,它包括互联网及互联网上所有的资源,兼容互联网所有的应用,但物联网中所有的元素(所有的设备、资源及通信等)都是个性化和私有化。

对称密钥:发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。

非对称密钥:又称为公私密钥,公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以叫非对称密钥。

传输层安全协议(transportlayersecurity,tls):用于在两个通信应用程序之间提供保密性和数据完整性。

数据包传输层安全协议(datagramtransportlayersecurity,dtls):tls的一个支持数据报传输的版本,用以保证用户数据报协议(userdatagramprotocol,udp)上传输的数据的安全性。

附图说明

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

图1为现有技术中提供的一种基于令牌的认证授权方案的基本流程图;

图2为本发明实施例提供的一种基于令牌的认证授权系统的基本架构示意图;

图3为本发明实施例提供的一种资源服务器、终端或授权服务器的结构示意图;

图4为本发明实施例提供的一种资源操作方法流程示意图;

图5为本发明实施例提供的一种确定令牌是否有效的具体流程示意图;

图6为本发明实施例提供的一种资源服务器的装置结构示意图;

图7为本发明实施例提供的一种终端的装置结构示意图;

图8为本发明实施例提供的一种授权服务器的装置结构示意图。

具体实施方式

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

在物联网领域,基于令牌的认证授权系统的基本架构可以参见图2。如图2所示,授权服务器2200可以与终端2101、终端2102等多个终端通过因特网进行远程通信;授权服务器2200也可以与资源服务器2301、资源服务器2302等多个资源服务器通过因特网进行远程通信。每个资源服务器可以与多个终端进行通信;每个终端也可以与多个资源服务器进行通信。其中,终端与资源服务器之间可以通过射频识别、蓝牙、红外等技术进行近场通讯,也可以通过因特网进行远程通信,这里不作具体限定。

现有技术中,当图2中的资源服务器为资源受限设备,无法支持时钟同步机制,也不能通过因特网与授权服务器保持实时连接。因此,资源服务器无法对终端发送的令牌进行有效性验证,从而使得终端无法访问资源服务器中的资源。

针对上述问题,本发明实施例中,图2所示系统架构中的授权服务器2200主要用于,与资源服务器2301、资源服务器2302等分别协商解密密钥并使用与解密密钥配对的加密密钥对令牌验证信息进行加密生成密文信息,并将令牌和密文信息发送给终端2101、终端2102等。图2所示架构中的终端2101、终端2102等主要用于,从授权服务器2200获取令牌和密文信息,并通过资源请求消息将令牌和密文信息转发给资源服务器2301、资源服务器2302等,以请求对资源服务器2301、资源服务器2302等中的资源进行操作。图2所示架构中的资源服务器2301、资源服务器2302等,主要用于与授权服务器2200等协商解密密钥,并根据解密密钥对终端2101、终端2102等发送的资源请求消息中的密文信息进行解密,从而获得令牌验证信息,进而根据令牌验证信息确定令牌是否有效。这样,即便资源服务器不支持时钟同步机制,也不能与授权服务器保持实时连接,也仍然可以对令牌进行有效性验证,从而使得终端能够根据有效令牌对资源服务器中的资源进行操作。

图3显示了本发明实施例提供的一种设备300的结构示意图,可以应用于图2所示系统架构中。该设备300可以包含一个或多个端口304,与收发器(transceiver)303相耦合。收发器303可以是发射器,接收器或其组合,从其他网络节点通过端口304发送或接收数据包。处理器301耦合到收发器303,用于处理数据包。处理器301可包含一个或多个多核处理器和/或存储器302。处理器301可以是一个通用处理器,专用集成电路(applicationspecificintegratedcircuit,asic),或数字信号处理器(dsp)。

存储器302可为非瞬时性的存储介质,与处理器301相耦合,用于保存不同类型的数据。存储器302可包含只读存储器(readonlymemory,rom),随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。存储器302可用于保存资源操作相关方法的指令。可以理解,通过编程或装载可执行指令到设备300的处理器301,缓存和长期存储中的至少一个。

设备300可实现根据本发明的实施例执行一个或多个指令以执行资源操作方法。这些指令可存储在存储器302中,也可集成在网元的操作系统的内核或内核的插件中。

图3所示设备300可以作为本发明实施例提供的资源服务器的结构示意图。设备300作为资源服务器,可以包括存储器302,处理器301和收发器303以及与收发器耦合的一个或多个端口304。存储器302,用于存储计算机可执行程序代码;处理器301与存储器302和收发器303耦合。其中,程序代码包括指令,当处理器执行指令时,指令使设备300执行图4和图5中资源服务器执行的相关步骤。

另外,图3所示设备300还可以作为本发明实施例提供的终端的结构示意图。作为终端,可以包括存储器302,处理器301和收发器303以及与收发器耦合的一个或多个端口304。存储器302,用于存储计算机可执行程序代码;处理器301与存储器302和收发器303耦合。其中,程序代码包括指令,当处理器执行指令时,指令使设备300执行图4中终端执行的相关步骤。

此外,图3所示设备300还可以作为本发明实施例提供的授权服务器的结构示意图。作为授权服务器,可以包括存储器302,处理器301和收发器303以及与收发器耦合的一个或多个端口304。存储器302,用于存储计算机可执行程序代码;处理器301与存储器302和收发器303耦合。其中,程序代码包括指令,当处理器执行指令时,指令使设备300执行图4中授权服务器执行的相关步骤。

结合图2所示系统架构以及图3所示结构的资源服务器、终端和授权服务器,本发明实施例提供一种资源操作方法,具体为一种终端根据从授权服务器获取的令牌,请求对资源服务器中的资源进行操作的方法,参见图4,该方法主要可以包括:

401、授权服务器与资源服务器协商解密密钥。

其中,解密密钥是一个密钥,用于资源服务器对密文信息进行解密从而获得令牌验证信息;密文信息是授权服务器根据与解密密钥配对的加密密钥对令牌验证信息加密后的信息,并通过终端转发给资源服务器;令牌验证信息是授权服务器在终端请求令牌时生成的,用于验证令牌有效性的信息。关于解密密钥、密文信息和令牌验证信息的详细描述,具体可以参见下文。

授权服务器与资源服务器协商的解密密钥,具体可以与认证授权系统中的一个终端对应或多个终端对应,也可以与认证授权系统中的所有终端对应。例如,授权服务器在与资源服务器协商解密密钥时,可以不涉及终端的相关信息,该种情况下协商的解密密钥可以对应于认证授权系统中的所有终端。再例如,授权服务器在与资源服务器协商解密密钥时,可以具体协商至少一个终端与解密密钥的对应关系,该种情况下协商的解密密钥可以对应认证授权系统中的一个终端或多个终端。需要说明的是,授权服务器与资源服务器协商解密密钥的过程是一个交互过程,具体可以是授权服务器主动发起交互的过程,也可以是资源服务器主动发起交互的过程,这里不做具体限定。

示例性的,授权服务器与资源服务器协商解密密钥具体可以包括:授权服务器向资源服务器发送协商请求消息,该协商请求消息中携带有解密密钥,并接收资源服务器发送的协商响应消息;或者,授权服务器接收资源服务器发送的协商请求消息,该协商请求消息中携带有解密密钥,并向资源服务发送协商响应消息;或者,授权服务器向资源服务器发送协商请求消息,并接收资源服务器发送的协商响应消息,该协商响应消息中携带有解密密钥;或者,授权服务器接收资源服务器发送的协商请求消息,并将协商响应消息发送给资源服务器,该协商响应消息中携带有解密密钥。通过类似方式完成协商后,授权服务器和资源服务器对已协商的解密密钥进行保存,该解密密钥可以与所有终端相对应。

此外,资源服务器中还可能事先保存有终端标识,当授权服务器与资源服务器进行解密密钥协商时,资源服务器可以将解密密钥与至少一个终端标识的对应关系发送给授权服务器。例如,授权服务器可以向资源服务器发送协商请求消息,并接收资源服务器发送的协商响应消息,其中,该协商响应消息中携带有至少一个映射关系,每个映射关系为一个解密密钥与至少一个终端标识的对应关系;或者,授权服务器可以接收资源服务器发送的协商请求消息,并向资源服务器发送协商响应消息,其中,该协商请求消息中携带有至少一个映射关系,每个映射关系为一个解密密钥与至少一个终端标识的对应关系。通过类似方式完成协商后,授权服务器和资源服务器分别对不同解密密钥与至少一个终端标识的对应关系进行映射存储,每个解密密钥仅与部分终端相对应,而不是与所有终端相对应。这样,资源服务器只有通过与终端标识对应的正确的解密密钥,才能对终端标识对应的终端发送的资源请求消息中的密文信息进行正确解密,从而可以进一步提高资源操作过程的安全性。

具体的,解密密钥的协商过程需要资源服务器与授权服务器保持连接时才能进行。在实际应用中,资源服务器可能会周期性地上线,也可能仅在需要时不定期上线。示例性的,资源服务器可以在首次上线时与授权服务器进行解密密钥协商,之后不再与资源服务器进行解密密钥协商,资源服务器长期采用协商的该解密密钥对密文信息进行解密。

或者,资源服务器也可以在每次上线时,均与授权服务器进行解密密钥协商,从而对上一次协商的解密密钥进行更新,资源服务器根据动态变化的解密密钥对密文信息进行解密,从而可以进一步提高资源操作过程的安全性。当然,资源服务器每次与授权服务器协商的解密密钥,可以是与所有终端对应的一个解密密钥,也可以是分别与至少一个终端标识对应的多个解密密钥。

进一步地,当资源服务器与授权服务器每次协商的解密密钥,是分别与至少一个终端对应的多个解密密钥时,还可以在每次协商时,增加新加入认证授权系统的终端与解密密钥的对应关系。

并且,授权服务器和资源服务器之间还可以采用基于tls/dtls建立的安全网络通道,对解密密钥进行协商,以提高解密密钥的传输安全性,使得解密密钥不会被授权服务器和资源服务器以外的第三方窃取。

在本发明实施例中,解密密钥以及与解密密钥配对的加密密钥具体可以是对称密钥、非对称密钥或其它密钥机制,这里不作具体限定。其中,当解密密钥与加密密钥为对称密钥时,加密密钥可以为对称密钥中的私钥,解密密钥可以为对称密钥中的公钥。

此外,需要说明的是,步骤401中的操作应在步骤405中“资源服务器根据与授权服务器协商的解密密钥,对密文信息进行解密获得令牌验证信息”“这一操作”之前执行,步骤401中的操作与“这一操作”之前的其它操作没有明确的先后关系。

402、授权服务器接收终端发送的令牌请求消息,该令牌请求消息中携带有资源服务器标识,或资源服务器标识和终端标识。

终端在向资源服务器发送资源请求消息之前,首先会向授权服务器发送令牌请求消息,以向授权服务器获取令牌,从而可以以从授权服务器获取的令牌为凭证向资源服务器请求资源操作。其中,令牌请求消息中可以携带有资源服务器标识,或资源服务器标识和终端标识。资源服务器标识用于唯一标识一个资源服务器,终端标识用于唯一标识一个终端。

403、授权服务器根据资源服务器标识,或资源服务器标识和终端标识,将令牌和密文信息发送给终端,密文信息为根据与解密密钥配对的加密密钥对令牌验证信息加密后的信息。

在接收到终端发送的携带有资源服务器标识,或资源服务器标识和终端标识的令牌请求消息之后,授权服务器可以根据资源服务器标识,或资源服务器标识和终端标识,生成与资源服务器标识,或与资源服务器标识和终端标识对应的令牌和令牌验证信息。在生成令牌验证信息之后,进一步地,授权服务器可以根据预设策略确定一个加密密钥,从而对令牌验证信息进行加密生成密文信息。

示例性的,当授权服务器已经与资源服务器标识对应的资源服务器进行解密密钥协商,且协商的解密密钥是与所有终端对应的一个解密密钥时,授权服务器可以根据与解密密钥配对的加密密钥,对令牌验证信息进行加密,从而生成密文信息。

进一步地,当令牌请求消息中携带有终端标识,授权服务器已经与资源服务器标识对应的资源服务器进行解密密钥协商,且协商的是分别与至少一个终端标识对应的多个解密密钥时,授权服务器可以从保存的解密密钥与至少一个终端标识的对应关系中,查找并获取与令牌请求消息中携带的终端标识对应的解密密钥,并根据与获取的解密密钥配对的加密密钥对令牌验证信息进行加密,从而生成密文信息。

示例性的,当授权服务器尚未与资源服务器标识对应的资源服务器进行解密密钥协商,且授权服务器中保存有资源服务器标识与加密密钥的对应关系时,授权服务器可以根据令牌请求消息中的资源服务器标识,获取对应的加密密钥,并根据获取的加密密钥对令牌验证信息进行加密,从而生成密文信息。此后,当授权服务器与资源服务器标识对应的资源服务器进行解密密钥协商时,授权服务器可以将与该加密密钥配对的解密密钥发送给资源服务器。

进一步地,当令牌请求消息中携带有终端标识,授权服务器尚未与资源服务器标识对应的资源服务器进行解密密钥协商,且授权服务器中保存有资源服务器标识、终端标识以及加密密钥的对应关系时,授权服务器可以根据令牌请求消息中的资源服务器标识和终端标识获取对应的加密密钥,并根据获取的加密密钥对令牌验证信息进行加密,从而生成密文信息。此后,当授权服务器与资源服务器标识对应的资源服务器进行解密密钥协商时,授权服务器可以将与该加密密钥配对的解密密钥发送给资源服务器。

示例性的,当授权服务器尚未与资源服务器标识对应的资源服务器进行解密密钥协商,且授权服务器中未保存有资源服务器标识与加密密钥的对应关系时,授权服务器可以随机生成一个加密密钥,从而对令牌信息进行加密生成密文信息。此后,当授权服务器与资源服务器标识对应的资源服务器进行解密密钥协商时,授权服务器可以将与该加密密钥配对的解密密钥发送给资源服务器。

在生成令牌和密文信息之后,授权服务器可以将该令牌和密文信息发送给终端,以通过终端发送的资源请求消息转发至资源服务器。

404、终端在接收到授权服务器发送的令牌和密文信息后,向资源服务器标识对应的资源服务器发送资源请求消息,资源请求消息中携带有令牌和密文信息。

终端从授权服务器获取令牌和密文信息后,向资源服务器标识对应的资源服务器发送资源请求消息,以请求对资源服务器中的资源进行操作。具体的,终端对资源服务器中资源的操作可以是对资源的修改,增加,访问和删除等操作,本发明实施例在此不做限定。此外,从授权服务器获取的令牌和密文信息也携带于资源请求消息中被转发给资源服务器。

与步骤404中终端向资源服务器发送资源请求消息相对应,资源服务器可以接收终端发送的资源请求消息。需要说明的是,在本发明实施例中“资源服务器接收终端发送的资源请求消息”与“步骤401中资源服务器与授权服务器协商解密密钥”之间,没有明确的先后关系。

405、资源服务器在接收到终端发送的资源请求消息后,根据与授权服务器协商的解密密钥,对密文信息进行解密获得令牌验证信息。

在接收到终端发送的资源请求消息后,资源服务器可以根据事先与授权服务器协商的解密密钥,对资源请求消息中携带的密文信息进行解密,从而获得令牌验证信息。其中,由于解密密钥是与步骤403中的加密密钥配对的密钥,因而当加密密钥加密后的密文信息通过终端转发至资源服务器后,资源服务器可以根据解密密钥对密文信息进行解密,从而根据令牌验证信息验证令牌是否有效。

具体的,当资源服务器与授权服务器在步骤401中协商的是与所有终端对应的一个解密密钥时,资源服务器中保存有该解密密钥,在接收到终端发送的资源请求消息后,资源服务器可以获取该解密密钥,并根据该解密密钥对资源请求消息中的密文信息进行解密,从而获得令牌验证信息。

进一步地,终端发送的资源请求消息中还可以携带有终端标识。当资源服务器与授权服务器在步骤401中协商的是与分别与至少一个终端标识对应的至少一个解密密钥时,资源服务器中保存有解密密钥与终端标识的对应关系,资源服务器可以根据资源请求消息中的终端标识,获取与终端标识对应的解密密钥,并根据获取到的解密密钥对资源请求消息中的密文信息进行解密,从而获得令牌验证信息。

406、资源服务器根据令牌验证信息确定令牌是否有效。

资源服务器根据从密文信息中解密获得的令牌验证信息,确定资源请求消息中的令牌是否有效。其中,资源服务器确定令牌是否有效的具体过程,可以参见后文关于图5的相关描述。

需要说明的是,由于授权服务器事先与资源服务器进行了解密密钥协商,并通过与解密密钥配对的加密密钥对令牌验证信息进行加密生成密文信息,而后将令牌和密文信息通过终端发送的资源请求消息转发给资源服务器,因而在资源服务器接收到终端发送的资源请求消息后,即便资源服务器当前不在线,即资源服务器当前未与授权服务器保持连接,且资源服务器也不支持时钟同步机制,资源服务器也可以根据事先与授权服务器协商的解密密钥从密文信息中获取令牌验证信息,从而根据令牌验证信息对令牌进行有效性验证。

407、当令牌有效时,资源服务器向终端发送资源响应消息。

当资源服务器根据令牌验证信息确定令牌有效时,可以根据内部的预设策略确定终端可以操作的资源,并向终端发送资源响应消息。终端接收资源服务器发送的资源响应消息,从而对资源服务器中的资源进行操作。进一步地,当令牌有效时,还可以在资源响应消息中携带有令牌有效指示信息。

另外,当资源服务器根据令牌验证信息确定令牌无效时,该令牌可能已经过期或失效,资源服务器可以向终端发送错误指示消息,以指示终端无法对资源服务器中的资源进行操作。进一步地,该错误指示消息中还可以包括令牌无效指示信息。终端接收到资源服务器发送的错误指示消息后,若当前处于在线状态(即终端与授权服务器保持连接的状态),则可以直接向授权服务器请求获取新的令牌和密文信息;若当前处于离线状态(即终端与授权服务器已断开连接),则可以待终端上线后,向授权服务器请求获取新的令牌和密文信息,从而以新的令牌为凭证,向资源服务器请求资源操作。

具体的,在本发明实施例中,令牌验证信息可以包括初始验证数、验证数区间和验证函数,资源服务器具体可以在步骤406中根据令牌验证信息中的初始验证数、验证数区间以及验证函数,对资源请求消息中的令牌进行有效性验证。

或者,本发明实施例中的令牌验证信息也可以包括初始验证数和验证数区间,而不包括验证函数。该种情况下,资源服务器在接收终端发送的资源请求消息之前,还可以与授权服务器协商验证函数,从而使得资源服务器在步骤406中可以根据令牌验证信息中的初始验证数、验证数区间以及事先与授权服务器协商的验证函数,对资源请求消息中的令牌进行有效性验证。例如,资源服务器可以在与授权服务器协商解密密钥的同时对验证函数进行协商。需要说明的是,在授权服务器事先与资源服务器协商验证函数之后,授权服务器在生成令牌验证信息中的初始验证数和验证数区间时,要以事先协商的验证函数为依据。

其中,这里的初始验证数具体可以是一个数值;验证数区间具体可以是一个数值区间,包括最小验证数和最大验证数;验证函数具体可以是一种计算规则,例如可以是递增函数、递减函数、椭圆曲线函数等,这里不予以具体限定。

进一步地,终端发送的资源请求消息中还可以携带有终端标识。参见图5,资源服务器在步骤406中根据令牌验证信息确定令牌是否有效具体可以包括以下两种情况。

第(1)种情况、资源服务器中与终端标识对应的本地验证数为空,步骤406具体可以为:

511、资源服务器将令牌验证信息中的初始验证数代入验证函数获得第一计算结果。

其中,资源服务器中的本地验证数是与终端标识一一对应的,当终端标识对应的终端从未向资源服务器发送资源请求消息时,资源服务器中与该终端标识对应的本地验证数为空。

512、若第一计算结果在验证数区间内,则资源服务器确定令牌有效,并将本地验证数设置为第一计算结果。

513、若第一计算结果不在验证数区间内,则资源服务器确定令牌无效,并将本地验证数置为空。

当资源服务器确定终端发送的资源请求消息中的令牌无效时,将资源服务器中该终端的终端标识对应的本地验证数置为空。

第(2)种情况、资源服务器中与终端标识对应的本地验证数不为空,步骤406具体可以为:

521、资源服务器将本地验证数代入验证函数获得第二计算结果。

522、若第二计算结果在验证数区间内,则资源服务器确定令牌有效,并将本地验证数设置为第二计算结果;

523、若第二计算结果不在验证数区间内,则资源服务器确定令牌无效,并将本地验证数置为空。

示例性的,以下将以图2所示架构中的终端2101,从授权服务器2200获取的密文信息解密后的令牌验证信息中,初始验证数为0,验证数区间为[1,32],且令牌验证信息中的验证函数或资源服务器2301与授权服务器2200事先协商的验证函数为y=2x+1为例,对上述步骤406进行详细说明。

当终端2101向资源服务器2301发送资源请求消息时,资源服务器2301根据事先与授权服务器2200协商的解密密钥,对资源请求消息中的密文信息进行解密,从而可以获得令牌验证信息中的具体内容。其中,该解密密钥可以是与所有终端对应的解密密钥,也可以是与包括终端2101的终端标识1在内的至少一个终端标识对应的解密密钥。具体的,终端2101第1-6次向资源服务器2301发送资源请求消息时的具体情况参见如下表1。其中,表1中所示的本地验证数,均为资源服务器2301第1-6次分别接收到终端2101发送的资源请求消息,并通过上述第(1)或第(2)种情况处理后的结果。

终端2101第1次向资源服务器2301发送资源请求消息,资源请求消息中携带有终端2101的终端标识1,令牌验证信息中的初始验证数为数值0,资源服务器2301由于首次接收到终端2101发送的资源请求,因而资源服务器2301中与终端标识1对应的本地验证数为空,该场景对应于上述第(1)种情况。此时,资源服务器2301将令牌验证信息中的初始验证数0作为自变量x代入验证函数y=2x+1中,获得第一计算结果为数值1。由于数值1在验证数区间[1,32]范围内,因而资源服务器2301确定令牌有效,从而可以向终端2101发送资源响应消息,并将资源服务器2301中与终端标识1对应的本地验证数设置为上述第一计算结果“1”。此时,资源服务器2301中与终端标识1对应的本地验证数为“1”,而不再为空。

终端2101第2次向资源服务器2301发送资源请求消息,资源请求消息中携带有终端2101的终端标识1,资源服务器2301中与终端标识1对应的本地验证数为“1”,而不为空,该场景对应于上述第(2)种情况。此时,资源服务器2301可以将本地验证数“1”作为自变量x代入验证函数y=2x+1,获得第二计算结果“3”。由于第二计算结果“3”在验证数区间[1,32]范围内,因而资源服务器2301确定令牌有效,从而可以向终端2101发送资源响应消息,并将资源服务器2301中与终端标识1对应的本地验证数设置为第二计算结果“3”。

终端2101第3次至第5次向资源服务器2301发送资源请求消息的情况与第2次类似,这里不再赘述。在终端2101第5次向资源服务器2301发送资源请求消息后,资源服务器2301确定令牌有效,从而向终端2101发送资源响应消息,并将资源服务器2301中与终端标识1对应的本地验证数设置为“31”。

在终端2101第5次向资源服务器2301发送资源请求消息之后,若终端2101第6次向资源服务器2301发送资源请求消息,资源请求消息中携带有终端2101的终端标识1,资源服务器中与终端标识1对应的本地验证数为“31”,而不为空,因而对应于上述第(2)种情况。此时,资源服务器2301可以将本地验证数“31”作为自变量x代入验证函数y=2x+1,获得第二计算结果“63”。由于第二计算结果“63”不在验证数区间[1,32]范围内,因而资源服务器2301可以确定令牌无效,从而可以将错误指示消息发送给终端2101,并将资源服务器2301中与终端标识1对应的本地验证数置为空。终端2101在接收到资源服务器2301发送的错误指示消息后,可以向授权服务器2200获取新的令牌和密文信息。

在终端2101第6次向资源服务器2301发送资源请求消息之后,若终端2101向授权服务器2200获取了新的令牌和密文信息,并第7次向资源服务器2301发送资源请求消息,资源请求消息中携带有终端2101的终端标识1,以及新的令牌和新的密文信息,此时,由于资源服务器2301中与终端标识1对应的本地验证数已被置为空,因而对应于上述第(1)种情况。此时,资源服务器2301可以根据事先协商的解密密钥解密新的密文信息,从而获得新的令牌验证信息,并根据新的令牌验证信息和第(1)种情况中的处理策略,对新的令牌进行有效性验证。

表1

在终端2101第n(正整数)次向资源服务器2301发送资源请求消息之后,若终端2102第1次向资源服务器2301发送资源请求消息,资源请求消息中携带有令牌、密文信息和终端2102的终端标识2,则资源服务器2301可以根据事先与授权服务器2200协商的解密密钥,对资源请求消息中的密文信息进行解密,从而可以获得令牌验证信息中的具体内容,例如,解密获得的令牌验证信息中的初始验证数可以为“10”。其中,该解密密钥可以是与所有终端对应的解密密钥,也可以是与包括终端2102的终端标识2在内的至少一个终端标识对应的解密密钥。此时,由于资源服务器2301首次接收终端2102发送的资源请求消息,资源服务器2301中与终端标识2对应的本地验证数为空,因而资源服务器2301可以根据上述第(1)种情况对资源请求消息中的令牌进行有效性验证,这里不再赘述。事实上,由于不同终端在资源服务器中对应的本地验证数不同,因而不同终端向资源服务器发送资源请求消息,以请求进行资源操作的过程可以是相互独立的。

本发明实施例提供的一种资源操作方法,授权服务器事先与资源服务器协商解密密钥,并通过与解密密钥配对的加密密钥对令牌验证信息进行加密生成密文信息,而后将令牌和密文信息通过终端发送的资源请求消息转发给资源服务器,以使得资源服务器可以根据事先协商的解密密钥从密文信息中获取令牌验证信息,从而根据令牌验证信息对令牌进行有效性验证。这样可以使得资源服务器在不支持时钟同步机制,也不能与授权服务器保持实时连接的情况下,仍可以对令牌的有效性进行验证,从而使得终端能够根据有效令牌正常访问资源服务器中的资源。

如图6所示,本发明实施例还提供了一种资源服务器的装置结构示意图。该装置600可以包括:接收单元601,解密单元602,确定单元603和发送单元604和协商单元605。

其中,接收单元601,可以用于接收终端发送的资源请求消息,资源请求消息中携带有令牌和密文信息,密文信息为令牌验证信息加密后的信息;

解密单元602,可以用于根据资源服务器与授权服务器协商的解密密钥对密文信息进行解密获得令牌验证信息;

确定单元603,可以用于根据令牌验证信息确定令牌是否有效;

发送单元604,可以用于当令牌有效时,向终端发送资源响应消息。

进一步的,确定单元603还可以用于执行图5中资源服务器执行的步骤511-513以及步骤521-523。本发明实施例在此不再详述。此外,图6中的装置600可以用于执行上述方法流程中资源服务器执行的任一流程。

进一步的,图6中的装置600是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到图6中的装置600可以采用图3所示的形式,各单元可以通过图3的处理器和存储器来实现。

如图7所示,本发明实施例还提供了一种终端的装置结构示意图。该装置700可以包括:发送单元701和接收单元702。

其中,发送单元701,可以用于向授权服务器发送令牌请求消息,令牌请求消息中携带有资源服务器标识,或资源服务器标识和终端标识;

接收单元702,可以用于接收授权服务器根据资源服务器标识,或资源服务器标识和终端标识发送的令牌和密文信息,密文信息为令牌验证信息加密后的信息;

发送单元701还可以用于,向资源服务器标识对应的资源服务器发送资源请求消息,资源请求消息中携带有令牌和密文信息,密文信息用于根据资源服务器与授权服务器协商的解密密钥进行解密获得令牌验证信息,并根据令牌验证信息验证令牌是否有效;

接收单元702还可以用于,当令牌有效时,接收资源服务器发送的资源响应消息。

此外,图7中的装置可以用于执行上述方法流程中终端执行的任一流程。

进一步的,图7中的装置700是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路asic,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到图7中的装置700可以采用图3所示的形式,各单元可以通过图3的处理器和存储器来实现。

如图8所示,本发明实施例还提供了一种授权服务器的装置结构示意图。该装置800可以包括:协商单元801,接收单元802和发送单元803。

其中,协商单元801,可以用于与资源服务器协商解密密钥;

接收单元802,可以用于接收终端发送的令牌请求消息,令牌请求消息中携带有资源服务器标识,或资源服务器标识和终端标识;

发送单元803,可以用于根据资源服务器标识,或资源服务器标识和终端标识,将令牌和密文信息发送给终端,密文信息为根据与解密密钥配对的加密密钥对令牌验证信息加密后的信息,密文信息用于根据解密密钥进行解密获得令牌验证信息,并根据令牌验证信息验证令牌是否有效。

此外,图8中的装置可以用于执行上述方法流程中授权服务器执行的任一流程。

进一步的,图8中的装置800是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路asic,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到图8中的装置800可以采用图3所示的形式,各单元可以通过图3的处理器和存储器来实现。

本发明实施例还提供了一种计算机存储介质,用于储存为上述图6所示的资源服务器、图7所示的终端或图8所示的授权服务器所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现对资源进行操作。

本发明实施例还提供一种系统,该系统的基本架构示意图可以参见图2。该系统可以包括如图2或如图6所示的资源服务器,如图2或如图7所示的终端,以及如图2或如图8所示的授权服务器。该系统中的资源服务器、终端和授权服务器用于执行图4和图5所示的资源操作流程。

本领域普通技术人员应该了解本申请的所有或部分标的物可在结合硬件和/或固件的软件中实施。例如,本文描述的标的物可在一个或多个处理器执行的软件中实施。在一项示例性实施方式中,本文描述的标的物可使用存储有计算机可执行指令的非瞬时计算机可读介质实施,当计算机处理器执行该计算机可执行指令时,该指令控制计算机执行步骤。适于实施本文描述的标的物的示例计算机可读介质包括非瞬时计算机可读介质,例如磁盘存储器设备、芯片存储器设备、可编程逻辑设备和专用集成电路。另外,实施本文描述的标的物的计算机可读介质可位于单个设备或计算平台上,或可在多个设备或计算平台上分发。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备、方法和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器rom、随机存取存储器ram、磁碟或者光盘等各种可以存储程序代码的介质。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1