一种基于可信第三方的CP-ABE云存储访问控制方案*
2017-02-09钱冲冲
钱冲冲 解 福
(山东师范大学信息科学与工程学院 济南 250000)
一种基于可信第三方的CP-ABE云存储访问控制方案*
钱冲冲 解 福
(山东师范大学信息科学与工程学院 济南 250000)
针对云环境下数据存储和访问控制的安全性问题,提出了一种基于可信第三方的CP-ABE(密文策略的属性加密机制)访问控制方案。该方案在基于数据分块的基础上,通过引入可信第三方,有效解决了数据安全性及用户端密钥的管理与分发、负载过大等问题;并采用CP-ABE机制保证了安全的访问控制。分析结果表明该方案能有效地实现云环境下的安全和细粒度地访问控制,并有效地降低了用户端的负载量。
云存储; 数据分块; CP-ABE算法; 访问控制; 密钥
Class Number TP309.2
1 引言
云计算[1]是指以大规模计算、数据、存储等分布式资源链接在一起,形成以虚拟化为核心的共享资源池。随着云计算技术的高速发展,云存储已是云环境中或不可缺的一部分[2]。云存储[3]通过各种软件将地理位置不同、具有独立功能的存储设备连接起来,实现数据存储、访问控制以及共享资源的功能。云存储作为[4]云计算中一项重要的服务形式,它允许数据拥有者将数据存储在云端服务器,由云端服务器向数据访问者提供数据访问服务。当把数据存储云端服务器后,数据的管理权与所有权与数据拥有者相分离,而云端服务商及特权用户可能会非法获取用户的隐私数据,因此,如何保护云端数据的安全性,提供安全合法的访问控制是我们必须关注的重要问题。
大多数基于传统的数据加密方法和访问控制方案仍然被用于保护云端服务器中数据的安全,然而这些方法在实际的操作过程中增大了开销。针对这种情况,文献[5]提出了一种基于数据分割与分级的云存储数据访问控制方案。即把需要上传到云端服务器的数据进行分割,虽然这种分割策略加强了安全性,但却增大了时间性能,并不能应用于云计算的高速发展。在2005年,研究者Sahai与Waters等提出[6]基于属性的加密算法(Attribute-based Encryption,ABE);在2006年Goyal等提出[7]基于密钥策略的属性加密机制(Key-Policy Attribute Based Encryption,KP-ABE),在2007年Bethencount等提出[8]基于密文策略的属性加密机制(Ciphertext-Policy Attribute Based Encryption,CP-ABE)。其中,CP-ABE机制结合加密算法和访问控制技术的优点,是一种[8~9]有效地访问控制机制。在2015年,施荣华等提出了[10]云环境下一种基于数据分割的CP-ABE隐私保护方案,能够有效解决云数据共享访问时的安全与隐私问题。此方案虽然把系统开销降低了,安全性也增强了。但存在以下两个方面的不足: 1) CP-ABE算法必须要清楚所有访问数据块的用户属性,而用户的属性集随着时间和版本的变化而需动态地改变,数据拥有者需动态实时地了解所有访问数据用户的属性集,从安全和用户隐私的角度来说不能实现。 2) 云端需亲自向有访问数据权限的用户分发密钥,这不仅加大了数据拥有者的工作量,而且通信通道的安全性也不能保证。本文结合数据分割和CP-ABE算法,提出了一种基于可信第三方的云安全存储方案,有效地解决了以上问题。
2 相关知识
2.1 数据分块
文献[11]在2007年提出了线性数据分割的方法LPCA(Linear Partition Combination Algorithm),利用线性方法对存储的数据进行分割,虽然此方法适用于大数据的分布存储,但是安全性不高。随后有研究者提出了另一种新的数据分割方法[5],即将数据上传到云端服务前;将数据分割为两部分,分别是大数据块、小数据块,在本地存储小数据块;根据用户所需的不同级别的加密策略加密大数据块,并在云端服务器存储大数据块。
数据分块的原理:将需存储的数据分解成m个分块,当拥有s个分块且满足s≤m,才能恢复原始数据。这种分块方法的特点是当n=m-s个分块被毁坏或丢失的时候仍能恢复原数据;且小于s个分块被丢失或破坏时,原数据不能被恢复,从而增强了安全性。
数据分块的具体方案:对于小数据块采用抽取大小固定的方法分割小数据块,即将小数据块的具体大小固定为1K(也就是选取1024个字节)。具体步骤如下:
1) 产生0~M(M为文件大小)之间的随机数序列Rs(Random Sequence)。
2) 将Rs按增序进行排序,按序从原文件位置抽取字节。
3) 将按增序排列Rs与抽取的字节共同存储作为小数据块;剩余数据作为大块数据。
该方案的特点是:小数据块的大小相对固定,易于管理,不会产生读或写的压力。但有可能产生不均匀的随机数,会造成大片连续数据的存在,破解后极有可能会从中解析出一些重要的信息,另一方面分割时间0(M),对于M的合理选择难度非常大。
2.2 基于属性的加密机制(ABE)
基于属性的加密机制(ABE)是在基于[12~13]身份加密机制的基础上提出来,通过用属性集表示用户身份。ABE的优势是依据访问策略制定访问结构,如果用户想获得明文数据,则用户提交的属性集必须符合密文或密钥的访问策略,才能解密。这样一方面减轻了密钥管理的负担,限制用户的解密能力,另一方面也保护了密文。
2.3 CP-ABE算法
CP-ABE的核心思想:用户私钥与属性集关联,密文与访问结构关联。即只有用户提交的属性集符合访问结构时,才能获取明文。基于CP-ABE算法的最大优点: 1) 在加密前不需要了解具体的接受方的身份和数量,只要满足解密条件或者符合解密策略的接收者都可以解密加密后的消息。 2) CP-ABE具有灵活性满足加密者的需求,并适合应用动态的解密且分布式环境。
CP-ABE算法的相关定义:
1) 属性:设E={E1,E2,E3,…,En}为所有属性的集合,D∈{E1,E2,E3,…,En},则D代表每个用户的属性,那么n个属性可以鉴别2n个用户。
2) 访问结构[14]:访问结构ES是属性集E={E1,E2,…,En}的一个非空子集,ES∈{E1,E2,…,En}。
3) 访问树:叶子节点表示属性;非叶子节点表示门限关系,可以是或门限(Or)、与门限(And)等。
CP-ABE算法主要由四部分组成:
1) 系统初始化:数据提供者利用Setup函数生成公钥Pk(Public Key)和主密钥Mk(Main Key)。
2) 加密:CT=Encrypt(Pk,G,T)对明文G使用(Encrypt)加密函数,访问树T进行加密后,得到密文CT。
3) 生成私钥:Sk=keyGen(Mk,D)。采用Mk和D生成私钥SK。
4) 明文数据:W=Decrypt(CT,Sk)。使用私钥SK对密文进行解密,得到明文数据W。
2.4 基于数据分割的CP-ABE访问控制方案
本文已经介绍了CP-ABE算法和数据分割方法,基于数据分割的CP-ABE加密方案具体步骤如下:
数据拥有者需要将上传到云端服务器的数据进行分割,分为大数据块和小数据块;并用CP-ABE算法对小数据块进行加密;用中、低强度算法对大数据块进行加密。
用户访问云端数据,首先判断用户提交的相关信息是否属于小数据块的属性结合;如果属于则用CP-ABE算法对小数据块进行解密。最后将大数据块和小数据块进行组装,恢复原始数据信息。
基于数据分割的CP-ABE加密方案如图1所示。
图1 数据分割的CP-ABE加密机制方案
3 基于可信第三方的CP-ABE访问控制方案
通过图1可以看出,此方案虽然加强了安全性;但是CP-ABE算法需要知道所有访问小数据块用户的属性,亲自向有访问权限的用户亲自分发密钥。从系统安全和用户隐私方面来说在实际应用中不现实,而且极大地增加了数据拥有者的工作量。因此,针对这种情况,本文提出一种基于可信第三方数据分块的CP-ABE设计方案,如图2所示。本方案具体过程如下:
1) 将数据存储在云端服务器的过程包括以下几个步骤:
(1)数据准备:数据拥有者将需存储在云端的数据进行分块,分割成大数据块、小数据块。
(2)加密数据:在将小数据上传到云端服务器前,首先选取合适的对称加密(3DES)算法加密小数据块。
(3)密钥密文生成:首先对CP-ABE算法初始化,生成Mk和Pk。数据拥有者制定访问策略,其次,使用CP-ABE加密密文小数据块,得到解密密钥。最后,将密文和解密密钥分别传输到云端服务器和可信第三方。
(4)生成私钥:用户属性与SK关联,将私钥传到可信第三方。用户提交的属性集合必须满足小数据块的T,才可以获得解密密钥对小数据块进行解密。
(5)对大数据块采用TEA算法进行加密。在可信第三方上存储密钥,将加密的密文存储在云端服务器。
(6)将与小数据块、大数据块的有关信息上传到云端服务器。
2) 用户访问云端数据的过程包括以下几个步骤:
(1)验证:云端服务器首先检查用户的信息,查看与用户相关的信息判断用户是否属于小数据块。
(2)数据块解密:在可信第三方中存在三种密钥,分别是小数据块的解密密钥和私钥,大数据块的解密密钥。如果用户要访问云端的数据必须全部拥有三把密钥才能获取访问权限。
(3)将大数据块和小数据块进行合并,用户就可以获得明文。
(4)用户权限的撤销:数据拥有者在进行对小数据块访问权限的更改时,每次都需要将访问结构重新定义才能使已经失去权限的用户不能获得解密密钥。为了减少将访问结构重新定义产生的复杂计算问题,可以将访问树中根节点的子节点用用户属性集中的标识属性来表示。这样的好处是不用修改整棵访问树,每次对用户访问小数据块的权限撤销时,只需将此用户相对应的访问树中的标识属性直接删除就可以。
在实际应用中,一方面由于CP-ABE算法效率不高,假如用CP-ABE算法加密全部的数据,那将会导致系统的开销非常大。另一方面随着云的飞速发展,会有大量的数据存储在云端,那么用户的属性集也会越来越多。因此,在图2中本方案采用DES算法对小数据块进行加密,有效地降低了系统开销;然后把生成的访问结构,密钥发送给可信第三方,可信第三方依据访问结构并使用CP-ABE算法得到私钥,最后把密文上传到云端服务器。不能将密文和密钥同时存储在云端,这样的优势是防止云端服务商有特权的用户会窥探数据内容。当有数据更新时,只需将密文重新生成并上传到云端服务商。若需更改用户访问权限时,只要把访问结构重新更新后上传到可信第三方即可;而将剩余的工作交给可信第三方,减少了数据拥有者将密钥重新生成、分发的时间量。而且由于大数据块在分块的基础上采用了简单、速度快、效率高、系统开销低的TEA算法,因此使得本方案的安全性比较好,并且有效降低了系统开销。
图2 基于可信第三方的CP-ABE云存储架构
4 方案分析
4.1 安全性分析
云存储系统安全的关键:数据安全性、数据机密性、访问权限的控制。
1) 访问权限控制。本方案采用CP-ABE机制作为访问权限控制,密钥密文表示两种不同的控制权限,当用户可以解密密钥或密文时,说明拥有读或者读写的权限,并通过在访问结构中引入用户标识属性,解决了由用户属性的撤销而引起的权限撤销等问题。
2) 数据的机密性。在本方案中,在数据分块的基础上分别采用DES算法和TEA算法分别加密大、小数据块;使用CP-ABE算法控制用户的访问权限。当用户访问云端服务器的数据时,从可信第三方获得访问结构、密钥返回给访问小数据块的用户。整个系统在实现中,云端服务商不会获得任何关于访问树和解密密钥的信息,保证了数据在云端服务器的机密性。
3) 数据的安全性。在本方案中采用数据分块和将密钥存储在可信第三方。分块使得攻击者不能完全恢复数据;可信第三方存储密钥,不会造成密钥的泄露,从而保证了数据的安全性。
4.2 模拟实验与性能分析
模拟实验的环境是在Matlab上进行数据仿真,实验环境如下:操作系统win8 64位,CPU为Intel Core i3-3110M 2.40GHZ,内存为4GB,仿真软件Matlab 7.x。将小数据块分割成12块,文件大小为1.5MB。通过仿真实验来比较采用CP-ABE方案加密所有的数据块时和本方案加密小数据块的加密时间的变化。
图3 用CP-ABE分别加密小数据块和 采用CP-ABE加密所有数据的, 在文件大小为1.5MB时,加密时间的比较
图4 用CP-ABE分别加密小数据块和 采用CP-ABE加密所有数据的, 在文件大小为12MB时,加密时间的比较
从图3和图4所示,本方案在属性数量较少的时候加密时间比较高,但随着属性数量的增加本方案的加密时间会变得相对小一些,在云存储中,用户属性的个数随着数据的增多而增加,所以基于可信第三方的CP-ABE方案非常适合应用在云存储中。
表1 基于小数据块的两种方案的时间复杂度比较
将本文提出的方案与文献[7]提出的方案进行复杂度分析比较,两种方案的时间复杂度比较如表1所示,其中TCA表示CP-ABE算法加密的次数,ES表示DES加密的次数。
5 结语
本文提出了基于可信第三方的CP-ABE云存储安全访问控制方案,利用CP-ABE机制控制管理用户的访问权限,实现了云存储中安全的访问控制。将密钥和CP-ABE加密操作转移到可信第三方完成,从而保证了安全性并减少了用户端的工作量,在确保云存储中的数据安全的同时,利用可信第三方进一步降低用户端的负担量,将是后续研究工作的任务。
[1] 康瑛石,王海宁,虞江锋.基于云计算的虚拟化系统研究[J].电信科学,2011,04(5):61-67. KANG Yingshi, WANG Haining, YU Jiangfeng. The virtualization system research based on cloud computing[J]. Journal of Telecom Science,2011,04(4):61-67.
[2] 潘华,尹芝.云存储在高效数字资源建设中的应用[J].中国新通信,2013,23(3):93-94. PAN Hua, YIN Zhi. The application of the cloud storage in high efficiency digital resources construction[J]. China New Communication,2013,23(3):93-94.
[3] 高健,曾康,金恒展,等.基于CP-ABE的云存储数访问控制方案[J].东北大学学报,2015,10(36):16-21. GAO Jian, CENG Kang, JIN Hengzhan, et al. Cloud storage data access control scheme based on CP-ABE[J]. Journal of Northeastern University,2015,10(36):16-21.
[4] 边根庆,高松,邵必林.面向分散式存储的云存储安全架构[J].西安交通大学学报,2011,45(4):41-45. BIAN Genqing, GAO Song, SHAO Bilin. Cloud storage security architecture for distributed storage[J]. Journal of Xi’an Jiaotong University,2011,45(4):41-45.
[5] 徐小龙,周静岚,杨庚.一种基于数据分割与分级的云存储数据隐私保护机制[J].计算科学,2013,40(2):98-102. XU Xiaolong, ZHOU Jinglan, YANG Geng. Cloud storage data privacy protection mechanism based on data segmentation and classification[J]. Computing Science,2013,40(2):98-102.
[6] Sahai A, Waters B. Fuzzy identity — based encryption[C]//Proe of the 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques. Berlin: Spinger-Verlag,2005:457-4733.
[7] Goyal V, PANDEY O, SAHAI A, et al. Attribute based encryption for fine-grained access control of encrypted data[C]//Proc of ACM Conference on Computer and Communications Security. New York: ACM Press,2006:89-98.
[8] Bethencount J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C]//Proc of IEEE Symosium on Security and Privacy. [S.l.]: IEEE Press,2007:321-334.
[9] 孙国梓,董宇,李云.基于CP-ABE算法的云存储数据访问控制[J].通信学报,2011,32(7):146-152. SUN Guozi, DONG Yu, LI Yun. Cloud storage data access control based on CP-ABE algorithm[J]. Journal of Communication,2011,32(7):146-152.
[10] 施荣华,刘鑫,董健,等.云环境下一种基于数据分割的CP-ABE隐私保护方案[J].计算机应用研究,2015,32(2):522-527. SHI Ronghua, LIU Xin, DONG Jian, et al. A CP-ABE privacy protection scheme based on data partitioning in cloud environment[J]. Application Research of Computers,2015,32(2):522-527.
[11] 张薇,马建峰.LPCA-分布式存储中的数据分离算法[J].系统工程与电子技术,2007,290(3):453-458. ZHANG Wei, MA Jianfeng. LPCA-data separation algorithm in distributed storage[J]. System Engineering and Electronic Technology,2007,290(3):453-458.
[12] Shamir A. Identity-based cryptosystems and signature schemes[C]//Advances in Cryptology, Lncs 196. Berlin: Springer,1985:47-53.
[13] Boneh D, Matt F. Identity-based encryption from the Weil pairing[C]//Advances in Cryptology-Crypto 2001, Lncs 2139. Berlin: Springer,2001:213-229.
[14] Yu S, Wang C, Ren K, et al. Achieving secure, scalable, and fine-grained data access control in cloud computing[J]. In INFOCOM, 2010 Proceedings IEEE,2010:1-9.
Cloud Storage Access Control Scheme Using CP-ABE Based on Trusted Third Party
QIAN Chongchong XIE Fu
(School of Information Science & Engineering, Shandong Normal University, Jinan 250000)
According to the security problems of data storage and access control under cloud environment, this paper proposes a CP-ABE(cipher text policy-attribute based encryption scheme) based on trusted third party. Based on the data clock, by introducing trusted third party, this scheme effectively solves the problems of data security, the distributiono and management of users key and too large load, and the CP-ABE mechanism is used to ensure the security of access control. The analysis results show that the scheme can effectively achieve the cloud environment safety and fine-grained access control, and effectively reduces the load of the user.
cloud storage, data partition, CP-ABE algorithms, access control, key
2016年7月5日,
2016年8月17日
钱冲冲,女,硕士研究生,研究方向:信息管理大数据、云安全等。解福,男,博士,副教授,研究方向:云安全。
TP309.2
10.3969/j.issn.1672-9722.2017.01.026