云计算技术将大量计算资源、存储资源与软件资源链接在了一起,形成规模巨大的共享虚拟IT资源池[1].云存储是云计算的系统架构中的重要组成部分之一[2].云存储数据的安全性是云计算领域的研究热点问题.2007年SaaS服务提供商Salesforce.com遭受攻击,导致大量租户隐私数据泄露丢失;2010年Google两名员工入侵租户的Google Voice、Gtalk等账户,引起隐私数据泄露[3].许多著名的公司都发生过资料外泄的安全事件,因此引发了广大用户对云存储是否安全的疑问,产生了对云存储服务的不信任,导致许多企业和个人都不愿意将重要的数据上传到云存储服务器.传统的安全策略可通过物理上和逻辑上的安全域定义边界和保护设备用户[4],但不能直接应用于云计算环境中.存储安全问题已经成为了制约云计算发展的首要问题[5].
Juels等[6]提出了一种面向用户单独验证的数据可取回性证明.设立“哨兵”,基于概率论中的“切诺夫限”定理,使该系统能以高置信概率判断云端数据的完整性.Ateniese等[7]提出了PDP模型(Provable Data Possession,可证明数据持有),但是该模型没有考虑传输过程中的安全性.Erway等[8]拓展了PDP模型,提出了支持可证更新的DPDP模型.张维纬等[9]提出了一种新的高效的单向代理重加密方案,该方案只需一次强签名函数以及单向、抗碰撞的散列函数.伍琦等[10]提出了一个改进的云存储共享方案,该方案减弱了对随机数的依赖,提高了对服务器端恶意篡改的防御能力.基于属性的加密是在模糊身份基加密的基础上提出的一种新的公钥加密机制[11].Sahai等[12]提出了最早的基于属性加密(attribute-based encryption,ABE)的算法,提出将对象特性直接作为身份信息应用于基于身份的加密方案中.Goyal等[13]在基于模糊身份加密的基础上提出了基于密钥策略的属性加密方案(Key-policy attribute-based encryption,KP-ABE).Bethencourt等[14]在基于属性加密的基础上提出了基于属性的密文策略加密(Ciphertext-policy attribute-based encryption,CP-ABE)方案,将用户身份表示为属性集合,加密数据则与用户的属性相关,用户能否解密,取决于密文所关联的属性集合与用户的访问结构是否匹配.
刘孟占等[15]在CP-ABE的基础上提出了一个基于密文策略的属性基加密技术的云存储数据共享机制.该方案解决了公钥基础设施中用户撤销操作需要重复执行大量非对称加密操作带来的系统拓展问题,但是存在几个不足之处:(1)所有的加密过程都在用户端进行,由于CP-ABE算法效率不够高,加密的代价很大,这对于数据所有者来说是难以接受的.(2) CP-ABE算法需要知道所有访问者的属性,并且要维护大量的密钥,而且用户属性会随着时间的推移和版本更新而改变,需要数据所有者实时地了解所有用户的属性,从系统安全和用户隐私方面来说都是不现实的.(3)需要向有访问权限的用户亲自分发密钥,这不仅不能保证通信通道的安全,也极大地增加了数据所有者的工作量.本文在CP-ABE算法的基础上,提出了一个基于可信第三方(Trusted Third Party,TTP)的密文策略属性加密技术的云存储共享方案,解决了以上3个问题.
1 相关知识 1.1 CP-ABE相关术语定义(1) 属性:设P={p1,p2, …, pn}为所有属性的集合,则每个属性A是P的一个非空子集,A⊆{P1, P2, ..., Pn}, 那么n个属性可以鉴别2n个用户.
(2) 访问结构:访问的结构T是全集{P1, P2, ..., Pn}的一个非空子集,T⊆2{p1, p2, ..., pn}\{φ}.T代表一个属性判断条件:在T中的属性集合称为授权集,不在T中的属性集合称为非授权集.
(3) 访问结构树:用来描述每一个访问结构, 如图 1,树的每个节点代表一个属性项,每个内部节点代表一个门关系,可以是AND(n of n)、or(1 of n)以及n of m(m>n)等[16].
![]() |
图 1 访问结构树 Figure 1 Access sturcture tree |
CP-ABE算法的主要步骤如下:
(1) Setup.生成主密钥MK和公开参数PK.
(2) CT=Encrypt(PK, M, T).使用PK、访问结构T和加密数据明文M,加密后的密文为CT.
(3) SK=KeyGen(MK, A).使用MK和用户属性集A生成用户的私钥SK.
(4) M=Decrypt(CT, SK).使用私钥解密密文CT得到明文M[17].
2 安全假定(1) 可信第三方是完全可信的.
(2) 云服务提供商(Cloud Service Provider,CSP)是不完全可信的.不完全可信说明CSP不会随意泄露其服务端的数据,会向可信第三方提供其用户准确的属性集,而且可能会窥探数据内容.
(3) 具有访问权限的用户不会有意泄露自己的个人信息和密文相关信息给其他的用户或CSP.
3 方案实现 3.1 主要思想在实际应用中,由于CP-ABE算法是非对称,算法效率不高,不适合直接对大规模数据文件进行加密.因此,在加密过程中数据所有者首先使用对称加密算法加密源文件得到数据密文和密文密钥,然后把数据密文、数据密文密钥和访问结构发送给TTP.TTP根据不同的权限的访问结构使用CP-ABE加密数据密文密钥得到相应的密钥密文,然后把密钥密文发送给CSP.用户向CSP提出申请访问权限,得到数据密文、密钥密文和签名,向TTP发送自己的属性证书,从而得到私钥.利用私钥解密密钥密文得到数据密文密钥,再对数据密文进行解密访问数据文件.当数据所有者需要对文件进行更新时,只需重新生成一份数据密文发送给CSP.若需要更改访问策略时,只需要把更新后的访问结构发送给可信第三方,而由可信第三方来完成剩下的工作,降低了数据所有者重新生成密钥和分发密钥的时间代价.其基本架构如图 2所示.
![]() |
图 2 密文策略属性加密云存储架构 Figure 2 The structure of cloud storage based on CP-ABE |
本方案中各个实体间的通信通道默认是安全的,下文将不再赘述.
1) 加密文件
生成并存储3DES算法的密钥K3d,数据所有者将文件F用K3d进行加密得到加密后的密文Cf,因为CSP虽然是可信但是好奇,不能将K3d与Cf同时存储在云端,防止CSP窥探数据内容,数据所有者将Cf、K3d以及访问结构T(包括只读访问结构Tro和读写访问结构Trw)发送给TTP.
2) 生成密钥密文
TTP从用户得到K3d与访问结构T,并初始化CP-ABE算法生成主密钥MK和公开参数PK,一个RSA公私钥对Ksign/Kverify用于对加密后的数据进行签名/验证.为了控制访问权限,假设只读权限的访问结构为Tro,则对应密文为CTro=Encrypt(PK, {K3d, Kverify}, Tro).假设读写权限的访问结构为Trw,则对应密文为CTrw=Encrypt(PK, {K3d, Kverify, Ksign}, Trw).密钥SK与用户属性相关联,当用户属性满足访问结构Tro或Trw时,才能对密钥密文CTro或CTrw解密.Ksign对密文Cf签名得到SIGf,并把Cf、SIGf、CTro与CTrw上传至CSP.
3) 访问文件
(1) 读数据
用户首先向CSP获取文件F读权限的请求,云端返回Cf、SIGf以及CTro.接着向TTP发送自己的属性证书AC.TTP动态生成密钥SK=KeyGen(MK, AC)并返回给用户,用户通过SK解密CTro得到K3d和Kverify,首先使用Kverify验证签名SIGf的正确性,最后使用K3d解密Cf得到文件F.
(2) 写数据
用户首先向CSP获取文件F读写权限的请求,云端返回Cf、SIGf以及CTrw.接着向TTP发送自己的属性证书AC.TTP动态生成密钥SK=KeyGen(MK, AC)并返回给用户,用户通过SK解密CTrw得到K3d、Kverify和Ksign.首先使用Kverify验证签名SIGf的正确性,其次用K3d解密Cf得到文件F,写入数据后,用K3d加密F得到Cf, 用Ksign对Cf加密得到SIGf,最后将Cf与SIGf上传至云存储服务器.
4) 访问权限控制
数据所有者更改访问权限时,只需更改访问结构,并将更改后的访问结构T发送给TTP.TTP及时更新访问结构Tro及Trw.若用户的权限被撤销,则其私钥SK=KeyGen(MK,AC)将不能再解密CTro或CTrw,因而保证了文件F的安全.
4 方案分析 4.1 安全性分析通信安全、访问权限控制和数据机密性是云存储系统安全的关键.使用加密的通信方式保证了云端、可信第三方与客户端之间对话的机密性.访问权限控制实现了用户对云存储数据细粒度的访问控制,保证了访问用户的合法性.数据加密则确保了只有拥有了解密密钥和有访问权限的属性集的情况下才能解密云端的数据.
(1) 通信安全.通信安全主要通过加密信息传递来实现,为了提高加解密的效率,通信的加密算法为对称加密.可信第三方与CSP都拥有用户的密钥Kco,因为可信第三方是完全可信的且CSP是可信的,因此,不会造成Kco泄露的安全问题.而通过加密算法也能防止信息被截取,造成泄密.
(2) 访问权限控制.访问控制机制可以授权合法用户访问特定的资源,同时拒绝非法用户的访问.授权方法一般分为两类:访问控制模型和密文机制[16].访问控制模型就是按照特定的访问策略分成不同的角色,系统通过区分用户的角色类型,授予不同的权限,从而控制对数据或系统的访问.密文机制可在存储环境不可信的情况下保证数据的机密性.数据所有者在数据存储之前对其加密,通过控制用户对密钥的获取来实现访问控制.本方案采用密文机制作为控制访问权限,密钥密文CTro与CTrw分别代表不同的权限,当用户能够解密CTro或CTrw时,说明其拥有读或读写的权限,从而可以进行进一步的操作.
(3) 数据机密性.在本方案中,数据使用公钥加密技术加密,解密密钥使用CP-ABE技术加密,数据所有者分享数据时,向可信第三方提供访问结构.当请求访问用户提供的属性证书AC,可信第三方会动态生成私钥,返回给请求的用户,用户的AC是可信第三方颁发的,能够确保其真实性.只有当用户的私钥满足密文的访问结构时才能对密钥密文进行解密,从而对加密数据进行解密.在整个加解密过程中,CSP是不知道任何关于密钥和访问结构的信息,确保了在云端这个不完全安全的环境下数据的机密性.
(4) 抗合谋攻击性.用户一旦被撤销权限,就不能再访问该文件.对于已撤销用户和其他用户之间的合谋攻击,由于用户是进行立即撤销的,当一个用户被撤销时,授权中心将会更新访问结构,导致被撤销用户不能再访问,所以用户之间的合谋攻击无效.
4.2 性能分析复杂度比较分析.根据文献[15]提出的方案与本文提出的方案,可以看到系统参与各方需要进行的计算和存储信息如下:
(1) 终端用户.在加密过程中生成并存储密钥K3d,加密文件F,对数据文件F与密钥K3d用通信密钥加密并传输.在解密过程中,传输属性证书AC,解密CTro或CTrw,验证SIGf,解密Cf.
(2) 可信第三方.生成并存储密钥Ksign和Kverify,生成访问结构CTro和CTrw,对密文Cf进行签名,对CTro、CTrw、Cf、SIGf用通信密钥加密并传输.在解密过程中,动态生成密钥SK, 传输密钥SK.
(3) CSP.在加密过程中存储CTro、CTrw、Cf和SIGf.在解密过程中,传输CTro或CTrw、Cf和SIGf.
上述描述中并没有涉及各方在进行加密计算时进行加密算法的初始化以及随机数的生成.将本文的方案与文献[15]提出的方案进行分析比较,量化的运算次数比较结果如表 1所示,其中CAB表示运行CP-ABE算法加密的次数,SN表示对称加密的次数.
![]() |
表 1 两种方案的时间复杂度比较 Table 1 The comparison of time complexity |
从表 1可以看出,本文方案相对于文献[15]提出的方案在加密阶段性能有显著提高,主要是将大量的计算加密解密转移到了可信第三方上,而用户仅需对文件F进行对称加密,后续消耗与其无关.把CP-ABE这种非对称加密算法转移到了可信第三方上,不仅大大减少了用户端所要进行的计算消耗,而且也把密钥管理这个繁杂的任务交给了可信第三方,可信第三方采取了动态生成密钥的方法,也就是用户发送申请时才动态生成相应的密钥,进而减少了密钥分发所消耗的时间.根据以上分析,本文提出的方案实现了在终端与可信第三方之间建立安全通道,将密钥生成和文件签名等计算量大的任务放在可信第三方上,终端用户只需执行文件对称加密的任务.系统实现了主要的目标:使得用户端的存储和计算负载量尽可能的小,符合云存储平台发展的初衷.
5 结语本文提出基于可信第三方属性加密技术的云存储共享方案,利用密文机制控制访问权限,实现了在不完全可信的云环境下的访问控制.利用可信第三方完成计算繁杂的非对称加密操作,从而在保证安全性的前提下在云环境中简化了用户端计算负载,符合云存储的发展趋势.后续研究工作包括建立原型系统和进一步减少用户端的负载,最大限度地发挥可信第三方在系统中的作用.
[1] |
冯登国, 张敏, 张妍, 等. 云计算安全研究[J].
软件学报, 2011, 22(1): 71-83.
Feng D G, Zhang M, Zhang Y, et al. Study on cloud computing securi-ty[J]. Journal of Software, 2011, 22(1): 71-83. |
[2] |
边根庆, 高松, 邵必林. 面向分散式存储的云存储安全架构[J].
西安交通大学学报, 2011, 45(04): 41-45.
Bian G Q, Gao S, Shao B L. Security structure of cloud storage based on dispersal[J]. Journal of Xi'an Jiaotong University, 2011, 45(04): 41-45. |
[3] |
林闯, 苏文博, 孟坤, 等. 云计算安全:架构、机制与模型评价[J].
计算机学报, 2013, 36(9): 1765-1784.
Lin C, Su W B, Meng K, et al. Cloud computing security: architecture, mechanism and modeling[J]. Chinese Journal of Computers, 2013, 36(9): 1765-1784. |
[4] |
Wang C, Wang Q, Ren K, et al. Ensuring data storage security in Cloud Computing[C]//Quality of Service, 2009. IWQoS. 17th International Workshop on. [ S. l. ]: IEEE, 2009: 13-15.
|
[5] |
任敏. 云计算环境下密钥协商协议的应用与改进[J].
计算机应用, 2013, 33(10): 2835-2837, 2864.
Ren M. Application and improvement of key agreement protocol in could computation environment[J]. Journal of Computer Applications, 2013, 33(10): 2835-2837, 2864. |
[6] |
Ari Juels, Burton S. Kaliski Jr. PORs: Proofs of retrievability for large files[C]//Proceedings of the 14th ACM conference of Computer and communications security. [S. l. ]: ACM, 2007: 584-597.
|
[7] |
Giuseppe Ateniese, Randal Burns, Reza Curtmola, et al. Provable data possession at untrusted stores[C]//Proceedings of the 14th ACM conference of Computer and communications security. [S. l. ]: ACM, 2007: 598-609.
|
[8] |
C Chris Erway, Alptekin Kupcu, Charalampos Papamanthou, et al. Dynamic provable data possession[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security. [ S. l. ]: ACM, 2009: 213-222.
|
[9] |
张维纬, 张茹, 刘建毅, 等. 高效的选择密文安全的单向代理重加密方案[J].
通信学报, 2013, 37(7): 87-97.
Zhang W W, Zhang R, Liu J Y, et al. Efficient chosen-ciphertext secure proxy re-encryption scheme[J]. Journal on Com-munications, 2013, 37(7): 87-97. |
[10] |
伍琦, 万常选, 李国林, 等. 一个改进型云存储共享方案[J].
计算机科学, 2012, 39(8): 99-103.
Wu Q, Wan C X, Li G L, et al. Improved data sharing scheme over cloud storage[J]. Computer Science, 2012, 39(8): 99-103. |
[11] |
陈勤, 党正芹, 张金漫, 等. 一种多认证机构可验证的属性基加密方案[J].
计算机应用研究, 2012, 29(1): 308-311.
Chen Q, Dang Z Q, Zhang J M, et al. Verifiable attribute base encryption scheme with multi-authority[J]. Application Research of Computers, 2012, 29(1): 308-311. |
[12] |
Sahai A, Waters B. Fuzzy identity-based encryption[C]//Advances in Cryptology—EUROCRYPT 2005. [S. l. ]: Springer Berlin Heideberg, 2005: 457-473.
|
[13] |
Goyal V, Pandey O, Sahai A, et al. Attribute-Based encryption for fine-grained access control of encrypted data[C]//Proceedings of the 13th ACM conference on Computer and communications security. [ S. l. ]: ACM, 2006: 89-98.
|
[14] |
Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption. security and privacy[C]//2007 IEEE Symposium on Security and Privacy. [ S. l. ]: IEEE, 2007: 321-334.
|
[15] |
刘孟占, 印凯泽. 基于密文规则的属性基加密技术的云存储数据共享机制[J].
计算机应用, 2013, 33(z2): 133-135, 161.
Liu M Z, Yin K Z. Cloud storage data sharing mechanism based on cipher-policy attribute-based encryption technology[J]. Journal of Comput-er Applications, 2013, 33(z2): 133-135, 161. |
[16] |
孙国梓, 董宇, 李云. 基于CP-ABE算法的云存储数据访问控制[J].
通信学报, 2011, 32(7): 146-152.
Sun G Z, Dong Y, Li Y. CP-ABE based data access control for cloud storage[J]. Journal on Communications, 2011, 32(7): 146-152. |
[17] |
洪澄, 张敏, 冯登国, 等. 面向云存储的高效动态密文访问控制方法[J].
通信学报, 2011, 32(7): 125-132.
Hong C, Zhang M, Feng D G, et al. Achieving efficient dynamic cryptographic access control in cloud storage[J]. Journal on Communications, 2011, 32(7): 125-132. |