面向移动云存储的属性基解密服务中间件
属性基加密(ABE)算法支持对云端计算机网络数据的细粒度访问控制。针对属性基解密计算复杂度高,难以在资源受限的移动终端上实现的问题,提出并实现了一种面向移动云存储的属性基解密服务中间件。在保证密文信息不被中间件获取的前提下,中间件为移动终端代理属性基解密服务,实现了基于树形结构的线性秘密共享(LSSS)矩阵求解,降低了终端的计算与通信开销,提高了解密速度;属性权威可以在不需要用户参与的条件下,即时、细粒度地撤销用户属性;所有接口均使用Restful服务,保证了通用性。实验结果表明,属性基解密服务中间件提高移动设备解密性能近30倍,具备较好的并发性能,属性撤销具有实用性。
0引言
近年来,随着信息技术的发展,人们开始越来越广泛地使用各种类型的移动云服务,比如远程管理、存储备份、在线搜索、移动便签等。根据中国互联网络信息中心(China Internet Network Information Center, CNNIC)《第34次中国互联网络发展状况统计报告》[1]统计,截至2014年6月,中国网民规模达6.32亿。其中,手机网民数达5.27亿。网民上网设备中,手机使用率达83.4%,首次超越PC机80.9%的使用率。与传统的PC相比,移动设备在计算能力、存储能力、续航能力、网络通信能力方面,都存在着较大差距,因此,移动智能设备往往需要跟云相结合,才能发挥其最大的使用价值。
然而,移动设备将数据存储在云端又会带来安全问题[2]。为了保证用户云端数据的隐私性。一种可行的方法是,先将数据使用某种加密算法进行加密;然后,将加密密钥发送给被授权的用户,只有被授权的用户才能访问数据内容。然而,随着系统中用户以及被分享数据的增多,这种方案将带来巨大的密钥管理开销[3-4]。
基于属性的加密(Attribute Based Encryption, ABE)算法被认为是解决云环境下访问控制问题的一种方案[5-6]。属性基加密算法可基于密钥策略(Key PolicyAttribute Based Encryption, KPABE)或基于密文策略(Ciphertext PolicyAttribute Based Encryption, CPABE)。在KPABE中,用户私钥与访问策略相关联,而密文与属性集合相关联,当密文的属性集合满足用户私钥的访问策略时,用户就可以解密密文[3]。而CPABE则恰恰相反,密文与访问策略相关联,而用户私钥与属性集合相关联,当私钥的属性集合满足密文的访问策略时,用户就可以解密密文[6]。属性基加密算法在保证数据机密性同时,提供了对数据细粒度的访问控制,因此,在云环境下使用ABE算法来保护云端数据,已经成为一个研究热点[7]。
在移动云计算环境中,移动设备受到计算资源、电池容量的严格限制。而基于属性的解密计算开销较大,不适合直接在终端设备上运行。此外,当系统的权限分配发生变化时,需要撤销用户的权限,而在属性基加密机制中,属性撤销问题是一难点[8]。针对属性撤销问题,Pirretti等[9]通过周期性地更新用户私钥来完成属性撤销,但该方案的属性撤销不能实时进行,并且用户需要保存各个时间周期内的私钥,开销较大。Asim等[10]通过在密文中加入撤销用户名单来完成用户撤销,但该方案中密文大小,解密算法复杂度都会随撤销用户数而增大,效率较低。王鹏翩等[11]在合数阶双线性群上,基于双系统加密思想构造了支持细粒度撤销的CPABE方案。虽然以上方案在一定程度上解决了属性撤销问题,但这些方案都需要数据拥有者对数据进行重新加密,并不适合在实际系统中使用。
为了解决以上问题,本文提出一种面向移动云存储的属性基解密服务中间件。该中间件所有服务由Restful接口定义[12],各种移动设备可以通过标准的超文本传输协议(HyperText Transfer Protocol, HTTP)调用接口,从而保证了中间件的通用性。属性基加密过程只运行一次,仍由移动用户自主控制,有利于保护用户数据的私密性。而属性基解密过程会多次调用,因此由中间件代理执行解密过程的大部分计算,从而提高解密速度;同时降低移动设备的通信开销。另外,当系统需要撤销某个用户的权限时,仅需要中间件和属性权威的参与,从而屏蔽属性撤销对用户的影响。通过实验验证了中间件在移动云存储系统应用中的解密和属性撤销能力。
1属性基加密算法
本服务中间件的属性基加解密算法基于文献[6]和文献[13]提出的CPABE,主要包括如下。
2属性基解密服务中间件
2.1系统架构
应用属性基解密服务中间件的移动云存储系统架构如图1所示,主要由5部分组成:数据分享者(Data Sharer, DS),属性权威(Attribute Authority, AA)、解密服务中间件(Decrypt Middleware, DM)、云存储提供商(Cloud Storage Provider, CSP)、移动智能设备用户(User, U)。
其中AA是系统的核心,负责系统的初始化、密钥生成等工作,AA必须保证绝对安全。数据分享DS负责将数据根据一定的访问控制策略进行加密然后上传到云存储提供商CSP。解密服务中间件DM部署在云端,它负责执行部分解密任务与属性撤销工作。在整个系统中,云端主机都是忠诚但好奇的,即云主机会正确执行系统发出的命令;同时又会设法获取数据信息。移动智能设备用户U是CSP中文件的请求者。
在本系统架构中,涉及两种加密算法:基于属性加密算法和对称加密算法。基于属性加密算法负责对一个对称密钥进行加密,生成密文CT。而对称加密算法使用该对称密钥对文件进行加密,生成加密文件。用户只有通过属性基解密算法解密CT,得到对称密钥后,才能解密被加密的文件。
2.2解密服务中间件的结构模型
解密服务中间件的结构模型如图2所示。其中,数据库设计包括CT属性依赖表,TK属性表。功能模块包括CT上传模块、TK上传模块、CSP用户上传目录管理模块、属性撤销模块、属性公钥查询模块、代理解密模块。
TK上传模块面向属性权威AA提供服务。当AA发布某个用户的TK到服务中间件后。该模块将TK保存,并为该用户分配独立的用户上传目录。
CSP用户上传目录管理模块通过CSP提供的访问控制接口,管理云端目录访问权限。在服务中间件的控制下,只有指定的用户可以增加、删除、修改目录中的文件,从而保证每个数据分享者的文件都可以独立存放。例如:Aliyun OSS(阿里云对象存储系统)提供了STS(Security Token Service)。通过STS,服务中间件可以为用户分配一个临时账号,该账号的权限、访问目录、有效期都可以定义。
CT上传模块面向数据分享者提供服务。当数据分享者上传CT后,该模块将CT保存并将其属性依赖关系保存到CT属性依赖表。在属性撤销阶段,通过CT属性依赖表可以快速定位到需要更新的CT组件,从而避免属性撤销阶段对CT的加载与分析,提高属性撤销的速度。
属性撤销模块该模块负责加载CT组件返回给AA,并利用AA生成的升级密钥对用户转换密钥和CT进行升级。而属性被撤销的用户,由于未获得用户升级密钥,TK中对应于该属性的密钥组件失效。
属性公钥查询模块在数据分享者对数据加密之前,先通过该模块查询是否有属性公钥发生了变化。如果发生了变化,则数据分享者先对属性公钥进行更新。
代理解密模块当移动设备用户需要访问某文件时,代理解密模块使用该用户的TK,将对应文件的CT进行代理解密,并将结果CT′发送给用户。
2.3Restful服务接口
随着移动互联网的快速发展,一些互联网协议接口相继出现,例如简单对象访问协议(Simple Object Access Protocol, SOAP)接口、Restful接口等。Restful接口无状态、简单、易理解,在移动云计算中得到了广泛的应用。它基于HTTP协议,可用可扩展标记语言(Extensible Markup Language, XML)和JavaScript对象表示法(JavaScript Object Notation, JSON)等格式定义消息数据。相比SOAP,具有数据格式简单、易于解析、通信流量小等特点。在本服务中间件中,所有服务都通过Restful接口定义。
Restful将应用程序接口描述成资源,每一个资源都可以通过统一资源定位符(Uniform Resource Locator, URL)进行标识。用户可以直接通过HTTP协议对相应的URL进行访问来完成对服务接口的调用。表1列出了本服务中间件的主要服务接口。
2.4数据的上传与下载
2.4.1数据上传
数据上传流程如图3所示,具体流程如下。
1)数据分享者随机生成对称加密密钥ψ,并根据访问控制策略A使用Encrypt算法对ψ加密,生成CT。然后,通过Restful接口,将CT和A上传至服务中间件。
2)服务中间件生成唯一的FID,以FID作为文件名将CT保存。然后,通过A分析该CT的属性依赖关系,保存到CT属性依赖表。
3)服务中间件查询当前用户的CSP上传目录,定义该目录的访问策略(包括写权限,有效期)并发送至CSP的访问控制接口。CSP将分配临时的访问凭证accessId,accessKey并返回给服务中间件。
4)服务中间件将accessId,accessKey以及FID返回给数据分享者。
5)数据分享者以ψ作为对称密钥,使用AES加密算法对分享的文件进行加密,并通过临时访问凭证将加密过的文件上传至CSP。
2.4.2数据下载
数据下载流程如图4所示,具体流程如下。
1)用户将需要获取文件的FID发送给服务中间件。
2)服务中间件根据FID加载CT,并查询该用户的属性集。测试属性集是否满足CT的访问控制策略:若满足,则继续步骤3);否则返回失败信息给用户。
3)服务中间件加载当前用户的TK,使用Transform算法对CT代理解密,得到CT′。
4)服务中间件生成云端文件的url地址,并将CT′以及url返回给用户。
5)用户通过使用Decrypt算法将CT′解密,得到ψ,并通过url下载云端加密文件,最后以ψ作为对称密钥,使用AES解密算法将文件解密,得到明文。
3属性基加密关键技术实现
3.1LSSS矩阵求解及优化
在解密阶段,需要求W向量使W·M={1,0,0,…,0},但在以往的ABE方案中,都没有给出向量W的生成算法。我们实现了一种基于树形结构的求解算法,解决了LSSS矩阵的构造与W向量求解问题;同时,降低了解密计算量。
3.1.1LSSS矩阵的构造
首先,将逻辑式表示为树形结构。每个非叶子节点表示一个逻辑操作,每个叶子节点表示一个属性。逻辑式(a and (b or c) and (d or (e and f)))的树形表示如图5所示。
取公共参数c=1。从根节点开始,为每一个节点构造向量,设根节点的向量为“[1]”。然后,针对其子节点构造向量,如果该节点操作符为“or这两处的大写“OR”与“AND”,是否应该与图5中的小写or和and保持一致?请明确。”,则其子节点的向量与其相同。如果该节点操作符为“and”,其向量长度为m,子节点个数为n,则取c+n-1为其子节点的向量长度。设其子节点编号为0至n-1。0号子节点构造向量方法为:向量前m个元素与该节点向量相同,第c+1个元素为1,其他元素都为0。n-1号子节点构造向量的方法为:向量最后一个元素为-1,其他都为0。其他i号子节点构造向量的方法为:向量第i+c个元素为-1,第i+c+1个元素为1,其他都为0。然后,令c=c+n-1。再对下一级子节点构造向量,直到遍历完整个树。最后,将每个叶子节点的向量复制为LSSS矩阵中的每一行,长度不同的部分用0补齐。图6构造的LSSS矩阵与其对应的属性为:
3.1.2W向量的求解
解密时,需要求向量W={w1,w2,…,wn},使W·M={1,0,0,…,0}。通过以上方法构造的LSSS矩阵,其每一行对应于树形结构的一个叶子节点。若某些叶子节点正好满足该树,设它们在矩阵中的行号分别为r1,r2,…,那么,令wr1=1,wr2=1,…,其他元素设置为0,就可得到W向量。例如:在图6中,{a,b,d}正好满足逻辑式,它们在矩阵中的行号分别为1,2,4。设置w1=1,w2=1,w4=1。即得到:W={1,1,0,1,0,0}。根据用户属性集合,通过遍历树形结构,即可得到该用户拥有的哪些叶子节点正好满足逻辑式,进而求得W向量。遍历算法如下:
程序前
FUNCTION isSatisfiedWithAttr(userAttrs){
IF isLeafNode THEN//如果是叶子节点
//如果用户属性集包含该节点的属性,则该节点被满足
IF userAttrs contain thisNodeAttr THEN
satisfiedRows=rowNum;
RETURN TRUE;
ELSE THEN
//若不包含,则节点不被满足
RETURN FALSE;
END IF
ELSE IF isAndNode THEN//如果是AND节点
//如果该节点的所有子节点被满足,则满足当前节点的行//是其所有子节点的行的并集
IF allChildrenNodes is satisfied THEN
satisfiedRows={All ChildNode’s satisfiedRows};
RETURN TRUE;
ELSE THEN
RETURN FALSE;//否则当前节点不被满足
END IF
ELSE IF isOrNode THEN//如果是OR节点
//如果当前节点的任一子节点被满足,则当前节点的行//是被满足的某一子节点的行
FOR node in childrenNodes{
IF node is satisfied THEN
satisfiedRows=iedRows;
RETURN TRUE;
END IF
}
//如果当前节点的任何子节点都不被满足,则当前节点不被满足
RETURN FALSE;
END IF
}
程序后
上述算法完成后,根节点的satisfiedRows就是正好满足访问树的叶子节点在LSSS矩阵中的行号,进而求得W向量。
3.1.3算法优化
通过上述方法求得的向量W,由于其元素只取0或1。所以,在解密阶段计算e(Ci wi ,L)·e(Di wi ,Ki )时,可以减少计算量。当wi=0时,其结果恒为1,计算可以省略。当wi=1时,e(Ci wi ,L)·e(Di wi ,Ki ) = e(Ci ,L)·e(Di ,Ki ),可以减少两次指数运算。因此,通过这种构造LSSS矩阵与求解向量W的方法,在一定程度上降低了解密计算开销。
3.2属性撤销
如图6所示,是属性撤销流程。如果AA希望撤销某用户的attr属性,流程如下。
1)AA为attr属性选择一个新的属性参数V′attr,计算PKattr=gV′attr,并将attr与PKattr发送至服务中间件。
2)服务中间件更新属性公钥查询模块中attr属性的属性公钥为PKattr。
3)服务中间件查询CT属性依赖表,得到所有依赖该属性的CT的FID与该属性在CT中对应的行号,并根据FID和行号加载Dattr=gri。
4)服务中间件将Dattr返回给AA。
5)AA根据Dattr生成CT更新密钥,即:CUK=Dattr-(V′attr-Vattr)=g-ri(V′attr-Vattr),并发送给服务中间件。
6)服务中间件使用CUK对CT进行更新,即计算Cattr=Cattr,old·CUK。化简可得Cattr=gaλi·[gV′attr·ρ(attr)]-ri。
7)AA为未被撤销attr属性的用户生成用户升级密钥,即UUK=g(V′attr-Vattr)·β/z,并发送给服务中间件。
8)服务中间件使用UUK对用户的TK进行升级,即Kattr=Kattr,old·UUK。化简可得Kattr=[gV′attrρ(attr)]β/z。
以上过程完成后,CT中attr属性的属性参数由Vattr升级到V′attr。未被撤销attr属性的用户,AA为其生成了UUK,可以将Kattr中attr属性的属性参数同样升级为V′attr。而被撤销attr属性的用户,由于其未获得UUK,无法对Kattr进行升级,因此,Kattr失效,相当于其attr属性被撤销。
4实验分析
4.1实验环境
实验环境包括一台曙光服务器与一台智能手机,其中在服务器上配置两台VMware虚拟机,分别部署属性权威和服务中间件。具体的硬件参数如表2所示。
4.2代理解密性能
实验分别测试了CT中属性个数为10~100时使用服务中间件解密和移动设备直接解密的时间开销,耗时对比如图7所示。
从实验结果可以看出,通过使用中间件,大幅度降低了属性基解密时间。如表3所示,当CT中含有10个属性时,解密时间降低了19.5倍解密时间降低到原来的1/19.5此处原为“解密时间降低了19.5倍”,现在改为这样的描述,是否符合要求,请明确。回复:问题2,问题3:可以按照您的建议进行修改。,并且CT中属性数较多时,优势更加明显。当属性个数增加到100个时,解密时间降低了30.7倍解密时间降低到原来的1/30.7此处原为“解密时间降低了30.7倍”,现在改为这样,是否符合表达,请明确。。通过分析算法可知,无论CT中访问控制策略如何复杂,当引入解密服务中间件后,移动设备端仅需要执行一次指数算法和一次除法运算,即可解密得到ψ。而在不引入中间件的情况下,移动设备需要执行的指数运算,配对运算的个数与CT中属性个数成正比。随着属性个数的上升,中间件代理解密的方法对解密时间的加速效果越来越好。这种使用中间件代理设备解密的方案,降低了对终端设备的要求,充分体现了云计算的优势。
4.3系统并发性能
使用LoadRunner测试工具对服务中间件的并发处理能力进行了测试。针对含10个属性的CT,模拟10至100个并发用户请求解密。在不同的并发数下,服务中间件的响应时间如表4所示。结果表明,当系统有100个并发请求时,响应时间为2.087s,仍然比移动设备直接解密时间短。随着并发量的上升,代理解密时间可能会超过移动设备直接解密时间,但注意到服务中间件是部署在云端的,云计算具有计算资源海量、易伸缩、易部署等特点,可以通过扩展服务中间件的计算资源来解决高并发问题。
4.4属性撤销性能
当撤销用户的某个属性时,需要升级与该属性相关的CT组件和其他未被撤销用户的密钥组件。分别测试了不同CT数、用户数下的属性撤销时间,如表5所示。
实验结果表明,属性撤销时间分别随着与该属性相关的CT数、用户数的增加而近似线性增加。当与被撤销属性相关的CT有1000条,与该属性相关的用户有400个时,属性撤销操作总耗时为17.68s,相当于每5个CT,2个用户耗时88ms。通过分析属性撤销过程以及算法可知,在属性撤销过程中,属性权威需要为每个与该属性相关的CT生成CUK,然后中间件使用该CUK对CT进行更新,并且,属性权威需要为每个持有该属性的用户生成UUK,然后中间件使用该UUK对对应用户的TK进行更新。生成CUK、UUK的算法复杂度以及它们的大小都是恒定的,并且服务中间件更新每个CT、TK的算法复杂度也都是恒定的,因此,属性撤销时间应该分别随着与该属性相关的CT数,用户数的增加而近似线性增加,这与实验结果相一致。此属性撤销过程在系统后台运行,不需要任何用户参与,并且通过增加中间件个数可以进一步提高性能,与方案[9-11]中,需要用户重新加密数据的属性撤销方法相比,具有很大的优势。
5结语
针对属性基解密计算复杂度高,难以在资源受限的移动终端上实现的问题,本文提出并实现了一种面向移动云存储的属性基解密服务中间件。给出了系统架构和基于树形结构的LSSS矩阵求解方法,实现了属性基加解密算法。基于服务中间件,移动设备可在不泄露信息的前提下,将属性基解密过程中的大量计算外包;属性权威可在不影响任何用户的前提下,完成对用户属性的细粒度撤销。中间件实现的所有服务均通过Restful接口向外提供,非常适合移动设备调用。面向移动云存储应用测试了中间件的性能,结果表明,属性基解密服务中间件可以提高移动设备解密的性能,并且并发性能和属性撤销性能都能够满足实际应用的需求,在移动云存储领域具有广阔的应用前景。在后续的工作中,将进一步展开多属性基加解密服务中间件的分布式集成方法的研究。
作者:蔡孟飞 何倩 程东生王士成 来源:计算机应用 2016年7期