一种基于属性密码的分布式跨域授权和访问控制方法与流程

文档序号:15202866发布日期:2018-08-19 22:34阅读:157来源:国知局

本发明属于计算机信息安全学科中的数据安全存储访问领域,特别涉及分布式环境下的分布式跨域授权和访问控制方法。



背景技术:

随着计算机技术、互联网的快速发展,每天产生的大量数据以数字化的形式存储在计算机上。云计算是一种新兴技术,在这种技术中,用户可以租用公司提供的服务器(也称为云)的存储和计算资源。用户只需要连接到互联网的终端、智能手机或平板电脑。应用程序在云中运行,而不是用户的机器。云可以存储大量的数据,因此移动用户不必携带他们的数据。一些云供应商提供应用程序服务(例如,googleapps,微软在线),一些提供基础设施支持(如:亚马逊的ec2,eucalyptus,nimbus)。这种分布式的数据访问过程逐渐成为一种趋势;云计算技术为海量数据的存储和处理提供了一个有效的解决方案,提供大量不同类别的服务;其中,雾计算作为当前一个被大众讨论的热点,利用自身低延迟,位置感知以及广泛分布的位置节点的优势。现实生活环境中,相关的雾计算设备不仅能够提高数据的计算效率,而且能够及时把数据反馈给用户。通过利用雾设备广泛分布的地理位置的特点,用户能够有效的、快速的访问数据。在依托于雾计算的分布式处理、储存和虚拟化等技术,雾计算嫣然成为当下对于解决数据的管理、分析和挖掘的一种有效的解决方式。在雾计算环境中,用户可以把数据储存在雾设备中,但是这种数据储存的方式会导致用户失去对数据的安全管理控制,从而给雾设备上的数据带来的极大的安全隐患。例如智能手环、智能家居和智能办公系统里面储存的各种敏感数据等,这些隐私信息一旦被泄露出去,会对人们的日常生活工作产生很大的负面影响。

然而通过数据加密技术和访问控制方法,可以实现上述用户对数据隐私信息的保护需求。传统的访问控制方法需要一个完全可信的服务器和可信的管理员来执行,系统中用户的数量和储存的数据大小成为了系统效率的一个瓶颈,若该服务器被攻击者攻陷时,保存在服务器上的用户隐私数据将会被泄露,对于现有的雾计算环境是不适用的。而数据加密技术则为用户的数据提供了更强的保护手段,传统的公钥密码或者对称加密机制对于不同的用户,系统需要生成不同的密钥,从而对于加密者使用不同的密钥加密相同的文件储存在服务器上,在对海量的用户和庞大的数据系统中,密钥管理需要很大的开销,这也是传统加密应用在实际生活中存在的问题。并且在雾计算环境中,数据拥有者不需要提前知道会有哪些用户需要访问该数据,仅仅需要根据加密策略对需要共享的数据进行加密,这种环境下,传统的访问控制机制下构建的加密方案不能够提供细粒度的访问,所以传统的加密技术和访问控制方法不能高效地应用在雾计算环境下。

基于上述存在的问题,基于属性加密(attribute-basedencryption,abe)被认为是目前最适合解决在雾计算环境下的隐私数据的安全保护以及实现细粒度的数据访问的技术之一,该方法可以实现一对多的加密访问控制机制,同时,具有可扩展性,分布式的特点。abe有两种延伸的结构,一种是基于密文策略的abe(cp-abe)和基于密钥策略的abe(kp-abe),在cp-abe中,每个用户的密钥与一组属性集相关,密文则与访问结构有关;而在kp-abe中正好相反,密文与一组属性集相关,用户的密钥与访问结构有关。当把abe应用到雾计算环境中,为了达到数据拥有者能够有效地管理以及控制存储在雾设备上的隐私数据时,cp-abe更适合进行数据访问控制,数据拥有者可以自由定义具有哪些属性的用户可以访问保存在雾设备上的隐私数据。

然而在雾环境中,存在这样的需求:用户在特定环境下需要把自己的密钥委托给其他用户,通过这种方式不仅可以让用户充分的利用自身拥有的密钥,同时也在一定程度上减轻了用户每次都需要向系统提交注册请求的计算开销和效率问题。在现有的属性加密研究中,作者wangg等在文献“hierarchicalattribute-basedencryptionforfinegrainedaccesscontrolincloudstorageservices”一文中,在层次化的属性加密方案中,提出了一种有效的密钥委托机制,可以实现用户间密钥委托;cn105915333a中提出了高效的秘钥分配方法,但是只有一个单独的属性权威在分配秘钥,在实际实施过程中,大大的加重了权威的负担。在中国专利文献cn2015101068880.5中,名称为《一种基于属性加密的分布式访问控制方法》的专利提出了一种不仅能够保护数据的隐私安全,而且能够实现高效的分布式以及可扩展性的细粒度访问控制的加密方法,通过利用多个权威来分担单一权威的工作量,而且可以实现高效的外包解密和用户撤销,但是没有对属性进行层次化管理,效率不高。cn106059763a提出了基于多权威的层次化密文加密策略,但是不支持秘钥委托。另外,作者luani等在文献“mediatedciphertext-policyattribute-basedencryptionanditsapplication”一文中,提出了带仲裁的属性加密机制,提出了密钥分离,实现了即时的用户撤销。



技术实现要素:

有鉴于此,本发明要解决的技术问题是提出一种基于属性密码的分布式跨域授权和访问控制方法,本发明设计了一种多权威(attributeauthorities,aas)和具有受控密钥委托的层次化属性加密机制(hierarchicalattribute-basedencryptionwithcontrolledkeydelegation,ma-habe-ckd),支持为多个域的用户进行非中心化和受控的安全授权,防止密钥委托滥用,以此为基础实现非交互式访问控制。该方法也支持解密外包,支持轻量级的用户获得授权以访问系统,即,本发明既能一种既能满足在分布式环境下的高效的多权威属性加密的需求,又能实现密钥委托的访问控制机制。

为了达到上述目的,本发明提供如下的技术方案:

本发明的系统模型如图1所示,该模型由五个实体组成,分别为可信的身份联盟供应商(fip)、服务供应商(sps)、数据拥有者、服务节点(sn)以及用户。其中fip负责用户的认证和注册,并给合法用户分发全局身份标识(gid)、证书和用户全局私钥;各个sp都是独立运营的并且负责管理自己域中的属性,同时它们还负责给注册的合法用户分发属性密钥,并把用户的属性密钥uaskgid,1和uaskgid,2分别发送给服务设备和用户;数据拥有者基于定义的访问结构来加密数据,并把加密的数据存储到服务节点上,服务节点提供存储和访问服务;当一个合法用户访问授权的数据,服务设备首先检索用户的属性密钥,然后利用该属性密钥解密密文并生成一个解密令牌(dt)并把该dt和密文发给用户,接着用户利用全局私钥和dt来解密密文,最终获得需要访问的数据。

本发明提供的在分布式环境下,层次化的属性加密方法,包括以下几个步骤:

s1:系统初始化:生成系统公共参数、服务供应商(serviceproviders,sps)的公/私钥对以及属性的公/私钥对、身份联盟供应商(federatedidentityprovider,fip)的公/私钥对;

s2:数据加密:数据拥有者加密数据,并且把加密后的数据存储在服务节点(servicenode,sn)上;

s3:用户注册和密钥生成:请求注册,身份联盟供应商fip分配一个全局身份标识(globalidentifier,gid),并给该用户分发被签名的属性证书和全局私钥,sps则基于用户的属性证书给其分发相应的属性私钥,属性私钥被分为两部份,一部份发送给用户,另一部份发送给服务节点;

s4:访问数据:用户向服务节点sn提交数据访问请求,当且仅当用户的属性集满足密文中的访问结构,由用户和服务节点联合解密密文,服务节点承担部分解密计算任务,减轻终端用户的负担;

s5:用户属性密钥委托:只有在用户和服务节点sn两者合作的情况下,即在服务节点的控制下,上级用户能够为下级用户生成属性密钥,实现安全的秘钥委托。

进一步地,所述步骤s1包括如下步骤:

s11:身份联盟供应商fip初始化:输入安全参数,生成系统公共参数和身份联盟供应商的公/私钥对;

s12:服务供应商sps初始化,包括:

s121:每个服务供应商sp从身份联盟供应商fip处接收到系统公共参数和fip的公钥;

s122:每个服务供应商sp定义属性,构建属性树并为其管理的属性生成公/私钥对。

进一步地,所述步骤s2包括如下步骤:

s21:数据拥有者分别从身份联盟供应商fip和服务供应商处接收到系统公共参数和属性的公钥;

s22:对于待加密的数据m,数据拥有者基于全局属性集s,给数据定义一个访问结构a,用(m,ρ,τ)来表示,其中m是一个l行n列的访问矩阵,函数ρ(i)将矩阵m的第i行映射到s中的一个属性向量函数表示属性向量到属性树τ的映射;

s23:数据拥有者从整数zp中选取随机数s和随机数组并令s为向量的第一个元素;

s24:计算其中mi是矩阵m的第i行,i∈{1,2,...,l};

s25:选取随机数ri∈zp,i∈{1,2,...,l};

s26:加密消息m,输出密文ct;

s27:数据拥有者把密文ct上传到服务节点上。

进一步,所述步骤s3包括如下步骤:

s31:用户请求加入系统,向身份联盟供应商fip提交身份信息进行注册;

s32:身份联盟供应商fip首先认证用户;

s33:若用户合法,则给用户分配一个全局身份标识gid,并给用户分发一个证书和全局私钥,其中证书包含用户的全局身份标识gid、用户的属性列表以及用户的全局公钥,身份联盟供应商fip利用私钥对证书签名,应用安全的方式把证书和私钥发给用户;若该用户不合法,则拒绝该用户加入系统;

s34:当用户收到身份联盟供应商fip发来的证书和全局私钥后,便把证书发给相关的服务供应商sps;

s35:当服务供应商sps收到用户的证书后,服务供应商sps使用身份联盟供应商fip的公钥验证证书;

s36:服务供应商sps验证用户的全局身份标识gid是否属于用户撤销列表(url);若则服务供应商sps基于用户的属性列表给用户生成属性私钥的两个份额uaskgid,1和uaskgid,2;若gid∈url,服务供应商sps终止操作;

s37:sps把用户的属性私钥uaskgid,1和uaskgid,2分别发送给服务节点sn和用户。

进一步地,所述步骤s4包括如下步骤:

s41:拥有全局身份标识gid的用户向sn发送数据访问请求,并把自己的证书发给sn;

s42:服务节点sn使用身份联盟供应商fip的公钥验证证书,并验证用户的全局身份标识gid是否属于用户撤销列表(url);

s43:若则继续以下操作;若gid∈ul,服务节点sn终止操作;

s44:服务节点sn检索用户的属性私钥uaskgid,1;

s45:服务节点sn使用用户的属性私钥预解密密文,并生成解密令牌dt;

其中s45包括如下步骤:

s451:令且i={i:ρ(i)∈ra},其中ra表示访问矩阵a对应的属性向量集合。若根据访问矩阵m,{λi}i∈i是加密指数s的有效分享,则存在恢复系数{wi∈zp}i∈i能够重构出加密指数是首先服务节点sn获取恢复系数{wi∈zp}i∈i;

s452:接着服务节点sn计算解密令牌dt;

s46:服务节点sn把解密令牌dt发送给用户;

s47:最后用户使用属性私钥uask(gid,2)和解密令牌dt解密密文,若用户的属性满足密文中的访问结构,则用户成功解密;若不满足,则解密失败。

进一步地,所述步骤s5包括如下步骤:

s51:拥有全局身份标识gid'的下层用户向拥有全局身份标识gid的上层用户请求委托秘钥;

s52:拥有全局身份标识gid的上层用户先计算出uask(gid',2);

s53:上层用户计算密钥令牌kt;

s54:上层用户把属性密钥uask(gid',2)委托给下层用户;

s55:上层用户向服务节点sn发出密钥委托请求,并把密钥令牌kt发送给服务节点sn;

s56:服务节点sn根据用户发来的密钥令牌kt,首先检测用户是否合法;

s57:如果合法,则执行密钥委托请求;如果不合法,则拒绝密钥委托请求;

s58:服务节点sn生成相应的属性密钥uask(gid',2),并存储在服务节点sn上。

本发明的优点在于:本发明提出了一个多权威的层次化的属性加密机制,每一个sp都是独立运行的并且相互不影响,本发明利用多个sp来分担以前只有一个sp的工作量,并且可以有效地避免sp成为系统的瓶颈以及安全漏洞;另外,本发明通过利用fip给系统中每个用户分配一个全局身份标识gid的方式,从而达到防止用户共谋的手段,因为fip是唯一存在的,拥有系统中所有用户的gid,所以fip在本系统中必须是完全可信的。

另外,在本发明中,通过利用秘钥分离技术,把用户的私钥分为用户全局私钥和用户属性私钥,其中用户全局私钥只有用户拥有,而用户属性私钥则被分为两部分,一部分由用户保存,另外一部分由sn进行存储;所以,在本发明中,用户、sp和sn三个实体每一方都没有完全解密密文的能力,当用户需要解密密文时,用户需要sn的协助下才能正确的解密密文而且只有在用户的属性满足密文中的访问结构时,sn才会帮助用户进行解密密文的工作,这种数据访问的方式在一定程度上加强了系统的安全性。另外,本发明不仅能够实现在分布式环境下数据的安全隐私保护,而且可以实现访问数据有效快速的进行,把部分解密密文的过程委托给sn,而且由于sn只拥有用户的部分属性私钥,sn仅仅能够部分的解密密文,通过这种方式,不仅提高了解密的效率,同时也保证了本系统的安全性。

本发明设计了一个新颖的用户属性密钥委托的方法。在本系统中,用户的属性是通过分层的方式进行排列的,sp和fip只需对上层用户分发密钥,当其他的下层用户想要访问sn中的数据时,下层的用户需要向上层的用户进行密钥请求,这时候上层的用户会请求sn的帮助,在两者的协助下,下层的用户会得到一个新的属性私钥,sn也会为下层的用户生成一个新的属性私钥并且保存下来;因此,本发明中的密钥委托方法是受控的,这样的优点不仅可以阻止用户密钥委托的滥用,同时由于sn并不是完全被信任的,通过用户和sn两者合作的方式,使得密钥委托工作更加安全可靠。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:

图1为系统模型;

其中:(1)用户注册;(2)给用户分发全局私钥和证书;(3)发送属性密钥请求;(4)、分发属性密钥;(5)上传密文;(6)发送访问请求;(7)提供解密令牌;(8)请求密钥委托;(9)密钥委托;(10)发送密钥令牌;

图2为本发明的流程框图;

图3为系统初始化流程框图;

图4为数据加密流程框图;

图5为用户密钥生成流程框图;

图6为访问数据流程框图;

图7为密钥委托流程框图。

具体实施方式

以将结合附图,对本发明的优选实施例进行详细的描述。

本发明提供的基于属性密码的分布式跨域授权和访问控制方法,参见图2,包括以下步骤:

s1:系统初始化生成:系统公共参数、服务供应商(serviceproviders,sps)的公/私钥对以及属性的公/私钥对、身份联盟供应商(federatedidentityprovider,fip)的公/私钥对;

进一步,参见图3,所述步骤s1包括如下步骤:

s11:身份联盟供应商fip初始化:输入安全参数,生成系统公共参数和身份联盟供应商的公/私钥对,包括:

s111:输入安全参数λ,

s112:生成系统公共参数pp,其中系统公共参数包括两个阶为p的双线性群g1和g2、其中g是g1的生成元以及双线性映射e:g1×g1→g2;

s113:fip的公/私钥对(skfip,pkfip);

s12:服务供应商sps初始化,包括:

s121:每个服务供应商sp从fip处接收到系统公共参数{g,g1,g2,e(g,g)}和fip的公钥pkfip;

s122:各个服务供应商sp选取三个随机数αk,βk,γk∈zp作为属性树的私钥,即为{αk,βk,γk},然后为属性树生成公钥另外对于sp管理的属性树,sp额外选择一个随机数vk∈zp,并定义hk,1,hk,2,…,hk,l∈g,其中l是属性树的高度,而且vk,hk,1,hk,2,…,hk,l都是公开的。

s2:数据加密:数据拥有者加密数据,并且把加密后的数据存储在服务节点上;

进一步,参见图4,所述步骤s2包括如下步骤:

s21:数据拥有者分别从fip和sp处接收到系统公共参数{g,g1,g2,e(g,g)}和属性的公钥

s22:对于待加密的消息m,数据拥有者基于全局属性集s,给数据定义一个访问结构a,用(m,ρ,τ)来表示,其中m是一个l行n列的访问矩阵,函数ρ(i)将矩阵m的第i行映射到s中的一个属性向量函数表示属性向量到属性树τ的映射;

s23:数据拥有者从整数zp中选取随机数s和随机数组并令s为向量的第一个元素;

s24:计算其中mi是矩阵m的第i行,i∈{1,2,...,l};

s25:选取随机数ri∈zp,i∈{1,2,...,l};

s26:加密消息m,输出密文ct为

其中ra表示访问结构a中的属性集;

s27:数据拥有者把密文ct存储在sn上。

s3:用户注册和密钥生成:请求注册,身份联盟供应商fip分配一个全局身份标识(globalidentifier,gid),并给该用户分发被签名的属性证书和全局私钥,sps则基于用户的属性证书给其分发相应的属性私钥,属性私钥被分为两部份,一部份发送给用户,另一部份发送给服务节点;

进一步,参见图5,所述步骤s3包括如下步骤:

s31:用户请求加入系统,向身份联盟供应商fip提交身份信息进行注册;

s32:身份联盟供应商fip首先认证用户;

s33:若用户合法,则给用户分配一个gid,并选择一个随机数ugid∈zp作为用户全局私钥ugskgid,接着生成用户全局公钥然后fip使用私钥skfip生成证书其中algid表示用户的属性列表;fip把ugskgid和证书acertgid同时发给用户;若该用户不合法,则拒绝该用户加入系统;

s34:当用户收到身份联盟供应商fip发来的证书和全局私钥后,便把证书发给相关的服务供应商sps;

s35:当服务供应商sps收到证书acertgid后,sps使用fip的公钥pkfip验证证书acertgid

s36:服务供应商sps验证用户的全局身份标识gid是否属于用户撤销列表(url);若则服务供应商sps基于用户的属性列表给用户生成属性私钥的两个份额uaskgid,1和uaskgid,2;若gid∈url,服务供应商sps终止操作;

s37:sps则根据用户的属性列表algid,给用户生成与之相对应的属性私钥,如下:

其中s37包括如下步骤:

s371:sp把用户的属性私钥发送给sn;

s372:sp把用户的属性私钥发送给用户。

s4:访问数据:用户向服务节点sn提交数据访问请求,当且仅当用户的属性集满足密文中的访问结构,由用户和服务节点联合解密密文,服务节点承担部分解密计算任务,减轻终端用户的负担;

进一步,参见图6,所述步骤s4包括如下步骤:

s41:拥有全局身份标识gid的用户向服务节点sn发送数据访问请求,并把自己的证书发给服务节点sn;

s42:服务节点sn使用身份联盟供应商fip的公钥验证证书,并验证用户的全局身份标识gid是否属于用户撤销列表(url);

s43:若则继续以下操作;若gid∈url,服务节点sn终止操作;

s44:服务节点sn检索用户的属性私钥uaskgid;

s45:服务节点sn使用用户的属性私钥uask(gid,1)解密密文,并生成解密令牌dt;

其中,s45包括如下步骤:

s451::令且i={i:ρ(i)∈ra},其中ra表示访问矩阵a对应的属性向量集合。若根据访问矩阵m,{λi}i∈i是加密指数s的有效分享,则存在恢复系数{wi∈zp}i∈i能够重构出加密指数是首先服务节点sn获取恢复系数{wi∈zp}i∈i;

s452:接着sn计算解密令牌dt:

s46:服务节点sn把解密令牌dt和密文发送给用户;

s47:最后用户使用属性私钥ugsk(gid,2)和解密令牌dt解密密文,若用户的属性满足密文中的访问结构,则用户成功解密,

最终用户获得数据m=c0/m';若不满足,则解密失败。

s5:用户属性密钥委托:只有在用户和服务节点sn两者合作的情况下,即在服务节点的控制下,上级用户能够为下级用户生成属性密钥,实现安全的秘钥委托。

进一步,参见图7,所述步骤s5包括如下步骤:

s51:拥有全局身份标识gid'的下层用户向拥有全局身份标识gid的上层用户请求委托秘钥;

s52:拥有全局身份标识gid的上层用户首先随机选取两个随机数u,t∈zp,然后用户gid计算得到ugsk(gid',2)={k'(x,2,),k'(x,d+2),…,k'(x,l)},其中

s53:上层用户计算密钥令牌

s54:上层用户把属性密钥uask(gid',2)委托给用户gid';

s55:上层用户向服务节点sn发出密钥委托请求,并把密钥令牌kt发送给服务节点sn;

s56:服务节点sn根据用户发来的密钥令牌kt,首先检测用户是否合法;

s57:如果合法,则执行密钥委托请求;如果不合法,则拒绝密钥委托请求;

s58:服务节点sn生成相应的属性密钥并存储在服务节点sn上。

最后说明的是,以上优选实例仅用以说明本发明的技术方案而非限制,对于本领域的技术人员来说,可以根据以上的技术方案内容,在形式和细节上做出各种相应的改变,但所有的这些改变都应该包括在本发明权利要求的保护范围内。

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