一种基于动态跨域安全令牌的云资源访问控制方法

文档序号:7866587阅读:161来源:国知局
专利名称:一种基于动态跨域安全令牌的云资源访问控制方法
技术领域
本发明属于信息安全中的访问控制领域,具体涉及一种基于动态跨域安全令牌的云资源访问控制方法。
背景技术
随着云计算技术的出现及广泛应用,其具有的跨域和异构等特性使原来的资源共享模式正向资源消费模式转变。在云资源消费者中,不仅有大量的用户长期使用云资源,还有一些动态临时用户偶尔访问云资源。近年来,一些科研机构和企业针对上述云资源的发展趋势,提出了相应的解决方案。OpenID是一个去中心化的网络身份认证系统,它通过统一资源标识符(URL)对网络用户进行标识和身份认证,它将身份管理、身份认证从应用业务中分离出来,并托管给专业的身份服务提供商。由于OpenID使用URL标识用户,URL的公开化不利于保护用户的隐私。此外,OpenID是以用户为中心的使用模式,不是以组织架构为中心,不适用于云资源中高效、跨域的访问模式。Amazon Web Service是其中较为典型的云资源服务商,它在向云用户提供资源方面有其自身的优势,但也存在一些不足之处。例如,它的签名认证过程较为复杂。此外,Amazon没有考虑用户和云资源服务商之间进行安全通信时的会话密钥,因此机密信息的安全传输无法得到保证。最后,没有对动态临时用户的访问控制策略进行设定。

发明内容
本发明旨在针对云资源中的身份认证及访问控制问题所面临的挑战,提出了一种基于动态安全令牌的云资源访问控制方法。本发明采用Restful标准模式对请求进行描述,简化了身份认证过程。本发明涉及了身份管理、身份认证、会话密钥的生成及使用、动态临时用户的访问策略的设定。下面简要介绍本发明的基本思想。具体来说,本发明的技术方案包括以下四个方面一、在本发明的身份管理中,采用在云资源处预埋代理的方式,代理通过机构内部的身份认证系统对这些动态临时用户进行认证,然后为他们提供动态安全令牌。临时用户使用这些动态安全令牌,可以在有效期内访问特定的云资源服务。二、在本发明的身份认证中,将云资源用户的认证请求(即消息)具体化,并采用两轮HMAC运算(即基于散列的消息认证码;参考《信息安全原理与应用》第5. 3节,电子工业出版社,王昭等著),既加强了对身份密钥(Identity key)的保护,又使身份认证的过程不至于太复杂。其中,通过使用身份密钥,创建了基于散列的消息认证码。三、本发明提出了用户和云资源服务商之间进行安全通信时的会话密钥(Sessionkey)。使用对称加密算法AES,将随机UUID标识以及与服务商的共享密钥Identity key作为输入参数,生成Session key,并说明了 Session key如何使用。该部分方案保证了用户和云资源服务商之间进行会话的安全性。四、访问策略用于指定动态安全令牌的权限或普通云资源用户的权限。在本发明中,把策略附在云资源用户以及所有的动态安全令牌上,进一步限制了动态临时用户对云资源的访问。本发明将动态临时用户的访问控制策略进行了设定。归纳起来,本发明与现有技术相比,具有以下显著优点I.高效性。本发明使用动态跨域令牌,实现了更高效的跨域鉴权机制。2.本发明采用HMAC方式,通过令牌中的身份密钥,实现了消息鉴别和认证机制,实现方法简便,避免了复杂的运算。3.本发明通过由身份密钥衍生出的会话密钥,保证了机密信息的安全传输。

4.本发明通过设定动态临时用户的访问策略,提高了判定效率。


图I本发明的总体框架结构图;图2本发明的身份认证过程图;图3本发明的访问策略规则I的示意图;图4本发明的访问策略规则2的示意图;图5本发明的访问策略规则3的示意图;图6本发明的访问策略规则4的示意图。
具体实施例方式下面通过具体实施方式
并结合附图,对本发明进行详细说明。附图I为该方案实施的总体框架,主要包括以下内容。一、基于动态安全令牌的身份管理随着云计算技术的出现,其具有的跨域和异构等特性使原来的资源共享模式正向资源消费模式转变。在云资源消费者中,不仅有大量的用户长期使用云资源,还有一些动态临时用户偶尔访问云资源。对于长期用户来说,可以在云资源服务提供方处为它们建立账户。每个帐户有其自己对云资源的计费,我们将这些长期用户称之为普通云资源用户。对于偶尔访问云资源的用户来说,没有必要分别为他们建立账户,这些用户称之为动态临时用户。动态临时用户的访问可以通过使用代理。首先将代理agent预埋在云资源服务提供方处,他相当于一个普通的云资源用户,具有访问云资源的一些权限。Agent通过机构内部的身份认证系统对这些动态临时用户进行身份认证,然后代理为动态临时用户向云资源服务提供方发送动态安全令牌请求消息,云资源服务提供方接收到代理发送动态安全令牌请求后,为动态临时用户生成动态安全令牌并发送给相应的代理,由代理通过安全信道统一分发给相应的动态临时用户。动态安全令牌具有有效期,临时用户使用动态安全令牌,可以在有效期内访问云资源。拥有动态安全令牌的用户在何种程度上可以访问云资源,取决于访问策略的设置。动态安全令牌提供了增强的安全性,它们生命周期短,到期后不能重复使用。举例说明使用动态安全令牌的情况。例如公司有许多员工需要访问云资源,公司有自己的身份认证系统,并且员工已经拥有公司的身份标识。首先,公司将agent预埋在云资源服务提供方处,agent成为一个普通的云资源用户。然后,agent使用公司现有的身份认证系统对员工进行身份验证,并向云资源服务提供方发送请求为员工创建具有唯一标识的动态安全令牌。Agent为员工向云资源服务提供方请求动态安全令牌时,云资源服务提供方为动态安全令牌设置访问策略并发放动态安全令牌。员工可以使用这些动态安全令牌访问云资源,直到动态安全令牌过期,而无需在云资源服务提供方处为每个需要访问的员工创建新的身份。动态安全令牌允许用户访问特定的云资源服务,甚至是云资源服务提供的功能子集。临时用户的访问权限由动态安全令牌附带的访问策略和代理的访问策略确定。动态安全令牌包括访问密钥ID (Access key ID),身份密钥(Identity key),有效期(Expirationtime)。其中,访问密钥ID是代理的标识;身份密钥是代理请求动态安全令牌时由云资源服务提供方根据代理的访问密钥ID,通过某个算法随机生成唯一的身份密钥;有效期是由云资源服务提供方在生成动态安全令牌时设定。二、云资源中的身份认证
一般来说,进行通信的双方基于安全的考虑需要对对方发过来的消息进行认证,以确定消息是未经第三方修改过的。认证过程如下(I)动态临时用户根据其动态安全令牌与云资源服务提供方共同约定一个共享密钥,可以将身份密钥(Identity key)作为共享密钥,这个共享密钥是对第三方保密的;(2)消息的发送方(即动态临时用户)使用该共享密钥对发送的消息产生一个认证码(签名),并发送认证请求消息,认证请求消息包括认证码(签名)、消息和动态安全令牌的标识;(3)消息的接收方(即云资源服务提供方)在接收到认证请求消息之后,分别获取认证码和动态安全令牌的标识。然后,云资源服务提供方依据令牌标识从安全令牌中取出身份密钥作为共享密钥,对该消息生成一个认证码;(4)然后将两个校验码进行比较,如果相同,说明消息未经第三方修改;如果不同,说明消息很可能被非法修改过,则该消息不可信,需要对方重发。其中,生成校验码的算法一般采用HMAC,第三方在不知密钥的情况下,不可能在修改消息后能同时修改校验码,使之与修改后的消息匹配。在该身份认证过程中,通过只传输校验码(签名)而不传输身份密钥,实现了对身份密钥进行了保护。在本发明的身份认证中,利用云资源用户的认证请求信息,采用HMAC-SHA512算法,进行两轮HMAC运算,加强了对Identity key的保护。通过使用Identity key,创建了基于散列的消息校验码。其中,HMAC算法表示HMAC-SHA512函数。步骤如下I. Request 格式Request 米用 Restful 标准格式,Request = (Requestpoint, Time)。其中,Requestpoint指具体的请求,Time指用户提出请求的时间。Requestpoint 的格式为Action/object servicelD.Action 指读取(Get)、创建(Post)、更新(Put)和删除(Delete)操作。Obiect是Action具体作用的对象。servicelD是服务接口的标识。例如,Requestpoint:Get/name = John&age = 20&sex = man API = Qwerty2012
Time采用UTC时间,精确到秒,格式为YYYYMMDDhhmmssZ.例如,Time20121020091508Z.2.第一轮HMAC运算使用Identity key和Time作为HMAC函数的两个输入参数,生成派生密钥derived key。第 二轮HMAC运算使用第一轮的派生密钥derived key和Requestpoint作为两个输入参数,进行HMAC运算,生成用户校验码,即创建签名。签名的生成过程derived key = HMAC(Identity key, Time)Signature = HMAC(derived key, Requestpoint)3.用户和云资源服务商进行交互时,经常通过SSL(Https)协议建立一种安全通道。用户将请求Request和用户校验码Signature发送给云资源服务提供方。云资源服务提供方收到请求后,首先判定请求的时间是否在安全令牌的有效期内,如果在有效期内,继续进行下一步;如果不在有效期内,终止认证过程。4.云资源服务商对该请求进行认证,同样经过两轮HMAC运算得到用户身份认证码Signature。将两个Signature进行比较,如果相同,就认证该请求没有被修改过。本发明的身份认证过程如图2所示。三、安全通信的会话密钥会话密钥(Session key)是为了保证用户和云资源服务提供方之间进行安全通信会话而随机产生的加密和解密密钥。I.本发明基于会话随机通用唯一识别UUID,会话方每次提出会话请求,产生一个128位的随机UUID标识,表示为UUID128,Session issuer通过使用对称加密算法AES,用128位的共享密钥Identity key对128位的随机UUID标识进行加密,生成一个128位的会话密钥 Session key。2.会话发起方(Session issuer),即动态临时用户,使用会话密钥Session key对发送的访问请求进行加密,将加密后的访问请求和UUID传给云资源服务提供方(Cloudprovider)。3.云资源服务提供方(Cloud provider)采用相同的对称加密算法AES,输入128位会话方UUID标识和共享密钥Identity key,产生相同的会话密钥Session key。4. Cloud provider用会话密钥Session key对访问请求进行解密,恢复原始信息。5.回复会话确认消息。Cloud provider将收到的UUID值加I,用Session key进行加密,返回至Session issuer。Session issuer进行解密,验证本次会话是否正常。6.然后,对资源的访问使用步骤四中的访问策略对临时用户的请求进行判定。四、动态临时用户的访问策略使用访问策略给用户授予权限。策略是一个文件,正式声明一个或多个权限。为了给云资源用户权限,编写策略并将其附在用户上。将策略附在用户上,即授予它在策略中声明的权限。策略用于指定动态安全令牌的权限或普通云资源用户的权限。在云资源中,把策略附在云资源用户以及所有的动态安全令牌上。通过对动态安全令牌附一个额外的策略,进一步限制了动态临时用户访问云资源。Agent是云资源的普通用户,它有自己的访问策略。对于动态临时用户来说,动态安全令牌也附带策略。云资源服务提供方判定动态安全令牌的策略和agent的策略是否发生冲突。假设agent的访问权限用椭圆A表示,动态安全令牌的访问权限用椭圆B表示。A代表了普通用户agent的云资源权限集合,B是拥有动态安全令牌的临时用户可以访问的资源集合。动态临时用户的访问策略设定如下I.当动态安全令牌附带的策略权限范围小于agent的访问权限范围时,则动态安全令牌附带的访问权限优先,即动态临时用户的访问权限是集合B。如图3所示。2.当动态安全令牌附带的访问权限范围和agent的访问权限范围发生冲突时,则agent的访问权限优先,即动态临时用户的访问权限是集合A。如图4所示。3.当访问的资源相同,且访问权限类型相同时(即,同时为允许或拒绝),动态安全令牌附带的访问权限范围和agent的访问权限范围有交集时,则动态临时用户的访问权 限是交集部分。如图5所示。4.对于同一资源,动态安全令牌附带的访问策略和agent的访问策略一个是允许,另一个是拒绝时,显式拒绝优先。显式拒绝覆盖任何策略的允许,如图6所示。
权利要求
1.一种基于动态跨域安全令牌的云资源访问控制方法,其步骤为 1)在云资源服务提供方预设一访问代理,所述访问代理为一普通云资源用户; 2)所述访问代理对通过该访问代理进行云资源访问的动态临时用户进行身份认证,为认证通过后的每一动态临时用户向云资源服务提供方请求一动态安全令牌; 3)云资源服务提供方生成具有唯一标识的动态安全令牌并设定其访问策略,然后经所述访问代理将动态安全令牌发送给对应动态临时用户;所述动态安全令牌包括访问密钥ID,身份密钥,有效期; 4)每一动态临时用户与云资源服务提供方之间分别设定一相同的共享密钥; 5)动态临时用户用自己的共享密钥对访问请求进行签名,生成并发送一认证请求消息给云资源服务提供方;所述认证请求消息包括签名、访问请求和动态安全令牌的标识; 6)云资源服务提供方接收到认证请求消息后,分别获取签名和动态安全令牌的标识,然后依据令牌标识对应的共享密钥对该认证请求消息进行签名,如果该签名与收到的签名相同,则对该动态临时用户的认证通过; 7)云资源服务提供方判定动态安全令牌及其访问代理的访问策略,根据判定结果响应该动态临时用户的访问请求。
2.如权利要求I所述的方法,其特征在于所述访问请求Request采用Restful标准格式 Request = (Requestpoint, Time);其中,Requestpoint 指具体的操作请求,Time 指提出访问请求的时间。
3.如权利要求2所述的方法,其特征在于所述签名的方法为首先使用所述共享密钥和所述访问请求中的Time作为HMAC函数的两个输入参数,生成派生密钥derived key ;然后使用第一轮的派生密钥derived key和Requestpoint作为HMAC函数两个输入参数,进行第二轮HMAC运算,创建所述签名。
4.如权利要求I所述的方法,其特征在于步骤7)之前,云资源服务提供方与动态临时用户进行双向确认,其方法为动态临时用户发送所述认证请求消息给云资源服务提供方时,生成一随机UUID标识;然后使用对称加密算法AES用所述共享密钥对该UUID标识进行加密,生成一会话密钥;然后使用所述会话密钥对发送的访问请求进行加密,将加密后的访问请求和该UUID传给云资源服务提供方;云资源服务提供方采用相同的对称加密算法AES,根据该UUID标识和共享密钥,产生所述会话密钥;然后用所述会话密钥对访问请求进行解密;云资源服务提供方将该UUID值加I后用所述会话密钥对返回一会话确认消息给该动态临时用户,该动态临时用户确认后进行步骤7)。
5.如权利要求4所述的方法,其特征在于云资源服务提供方利用所述会话密钥对该动态临时用户访问请求的响应进行加密后发送给该动态临时用户。
6.如权利要求I所述的方法,其特征在于所述云资源服务提供方判定动态安全令牌及其访问代理的访问策略,得到所述判定结果的方法为 a)当动态安全令牌附带的访问策略的权限范围小于访问代理的访问权限范围时,则动态安全令牌附带的访问策略优先; b)当动态安全令牌附带的访问策略的权限范围和访问代理的访问权限范围发生冲突时,则访问代理的访问权限优先;c)当动态安全令牌及其访问代理的访问资源相同,且访问策略的权限类型相同,动态安全令牌附带的访问策略的权限范围和访问代理的访问权限范围有交集时,则动态临时用户的访问权限是该交集部分; d)对于同一资源,动态安全令牌附带的访问策略和访问代理的访问策略一个是允许,另一个是拒绝时,则拒绝优先。
7.如权利要求I所述的方法,其特征在于步骤6)中,云资源服务提供方收到该认证请求消息后,先判定请求的时间是否在该动态安全令牌的有效期内,如果不在有效期内,则终止认证过程。
8.如权利要求I 7任一权利要求所述的方法,其特征在于所述共享密钥为所述身份密钥。
9.如权利要求8所述的方法,其特征在于所述身份密钥是由云资源服务提供方根据访问代理的访问密钥ID随机生成唯一的身份密钥。
全文摘要
本发明公开了一种基于动态跨域安全令牌的云资源访问控制方法。本方法为1)在云资源服务提供方预设一访问代理;代理对动态临时用户身份认证后,为每一动态临时用户向云资源提供方请求一动态安全令牌;2)云资源提供方生成动态安全令牌并设定其访问策略,发送给动态临时用户;3)每一动态临时用户与云资源提供方之间分别设定一共享密钥;4)动态临时用户用共享密钥对访问请求进行签名,并发送一认证请求消息给云资源提供方;5)云资源提供方用共享密钥对该认证请求消息签名,如果签名相同,则认证通过;判定动态安全令牌及其访问代理的访问策略,根据判定结果响应该动态临时用户的访问请求。本发明实现了高效的跨域鉴权机制,判定效率高。
文档编号H04L29/06GK102984252SQ20121048860
公开日2013年3月20日 申请日期2012年11月26日 优先权日2012年11月26日
发明者王雅哲, 马书南, 林东岱, 王瑜 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1