程思嘉,张昌宏,潘帅卿
(海军工程大学信息安全系,湖北武汉430033)
摘要:云存储作为一种新兴的数据存储和云计算管理系统,得到了社会越来越多的关注。
在云存储应用过程中,已经暴露出许多安全性问题,从而制约了云存储的进一步发展。针对云存储安全问题,文章提出了一种基于密文策略属性加密的安全、高效、细粒度的密文访问控制方案。文章首先对CP-ABE算法原理进行介绍,并在此基础上提出了改进算法,通过减少密钥计算量降低系统开销,提高运算效率。其次,建立密钥管理中心、用户和云存储服务器三方实体,同时对系统初始化、私钥申请、文件上传及文件下载流程进行描述。方案中数据属主利用私钥对文件摘要进行签名实现数据认证,避免了验证PKI公钥证书过程,提升认证效率;采用收敛加密技术实现密文数据冗余检测,提升存储空间利用率。最后,文章针对新方案的安全性进行理论分析,并通过仿真实验测试运行效率。实验证明,与一般方法相比,在用户属性和用户个数增长的条件下,新方案消耗的生成私钥时间最短且占有最小的存储空间。
0引言
云存储是在云计算的基础上延伸、发展而来,作为一种新兴服务形式以其弹性配置、按需购买、易于维护等优点得到了越来越多的关注与支持。在云存储的服务模式中,由于数据处在不可控域中,许多用户因为安全性的顾虑不愿将重要数据放在云中。事实上,云计算的几个重要服务商如Google、Amazon、Linkup都曾出现过各类安全问题,并导致严重后果。
密文访问控制是实现用户数据机密性和进行隐私保护的重要手段。在SHAMIR提出基于身份体制概念后,SAHAI等人提出了最早的基于属性加密的雏形。COYAL等人提出了密钥策略的属性加密方案。BETHENCOURT等人针对GOYAL的方案首次提出更实用的访问控制系统密文策略的基于属性加密的方案。近年来很多学者对CP-ABE( Ciphertext Policy Attribute Based Encryption)算法如何应用到密文访问控制中做了大量研究,但是多集中在属性撤销、授权管理、访问结构等方面,数据的安全性和存储开销方面并没有得到过多关注。将密码算法和授权结合,通过选择性加密实现访问控制,通过采用基于用户的访问控制树减少其持有密钥数量,但是访问控制树创建算法复杂,且权限更新代价大。通过访问控制矩阵构建了密钥树,利用单向Hash函数完成密钥派生,然而维护派生密钥函数族的存储仍然是一笔很大的开销。本文使用收敛加密技术保证了数据机密性,云存储服务器具有冗余检测功能,提高了存储空间利用率;使用数字签名技术防止数据被篡改;使用改进的CP-ABE算法减少系统耗时。本文方法拥有高效率、细粒度及高灵活性的特点,具有良好的应用前景。
1安全假设
针对云存储服务器的可靠性问题,本文采取主流应用情景,即假定服务器端是诚实但好奇的,服务器会正确执行访问控制策略,但是会尝试获得文件的明文信息,与此同时,可能存在恶意用户,会尝试越权访问不属于自己的文件信息。本文的目的是防止服务器获取数据属主( DataOwner)的明文信息和用户的越权访问这两种攻击方式。为了完成既定目标,本文假设如下:
1)服务器数据处理能力强,忠实执行访问控制策略以及数据属主和用户的各项请求,但是会尝试获取数据;
2)用户处理能力有限,会遵守和数据属主之间的协议,不泄露明文数据给其他实体;
3)各方之间信道畅通,可以随时保证数据传输。
2 CP-ABE算法
CP-ABE加密方案是基于密文策略和属性的加密方案,用户身份可以通过属性集合表示,加密数据与访问结构直接关联,用户解密密文的能力取决于密文所关联的属性集合与用户身份所对应的访问结构是否完全匹配。一个数量为Ⅳ的属性集合最多可以鉴别2N个用户。使用访问控制树描述系统的访问控制结构,当用户的属性集满足数据属主所定义的访问控制结构时,用户才可以解密数据。
CP-ABE算法包括以下4个步骤。
1)参数初始化(Setup):生成主密钥MK和公开参数PK。
2)密钥生成算法(Key Gen(MK,S)):使用MK和用户属性值S生成用户私钥SK。
3)数据加密算法(Encrypt(PK,M,T)):使用PK和访问控制树T加密明文M为CT。
4)密文解密算法(Decrypt):使用私钥SK解密密文CT得到明文M。
3改进的CP-ABE算法
改进的CP-ABE算法具体相关变量定义如下:
1) Go是一个生成元为g的p阶双线性群;
2)e表示双线性映射,e:Go×Go→G1;
3)△i.j为拉格朗日系数;
4)H为哈希函数,其中,H:{0,1)*→Go;
5) Pa(x)表示访问控制树T中节点x的父节点;
6)At(x)表示与叶子节点相关的属性;
7) In(x)表示节点x的子节点的索引。
3.1参数初始化
算法Setup(g,Go,a,β)→(pK,MK)中,a,β∈Zp是两个随机选择的指数。设系统属性集A={A1,A2,…,An}中的元素数量为n,并且随机定义M个群元素属于Go与其进行关联。属主的主密钥为MK=ga,系统公钥PK可以通过公式(1)获得。
3.2密钥生成
密钥生成算法为Key Gen(MK,S)→SK。算法首先选择随机数r∈Zp,为每个属性j∈S选择随机数rj∈Zp后,计算Dy=gy·H(j)rj和Dy'=g'rj,钥SK由D=g(a+β)/β,Dy=gy·H(j)rj和Dy’=grj组成,即SK=(D,Dy,Dj'),其中,∨j∈S。
3.3加密算法
加密算法为Encr ypt(PK,M,T)→CT,使用PK和访问控制树T加密明文M。算法需要构造访问控制树T,其核心思想是:设节点x的门限值为kx,为节点x选择(kx-1)次随机多项式代表该节点的信息。选择随机数s∈Zp,并令R为根节点。对于其他节点x,令qx=qpa(x)=(In(x))。假设Y是叶子节点的集合,则加密后的密文CT如公式(2)所示。
3.4解密算法
使用私钥SK解密密文CT得到明文Mo定义递归运算DecryptNode(CT,SK,x),令i=At(y),对于每个叶子节点x进行递归运算,如公式(3)所示。
对于每个非叶子节点x,利用至少Kx个e(g,g)rqx(0)作为拉格朗日多项式的插值节点,计算得到e(g,g)rqAj(0),其中,e(g,g)rqx(0)是从节点x的孩子节点{zj}计算得到的。再令A=e(g,g)rs,则明文M=Cr/(e(D,C)/A)。
4云计算下访问控制方案设计
通过分析发现,基于密文策略的属性加密十分灵活,并且简单易扩展,只要属性满足访问控制树的策略就可以解密,相当于实现了类似基于角色访问控制的功能。在云存储环境中,政府和企业外包的数据都是需要多用户进行访问的,并且权限不同,可以应用密文策略属性加密实现访问控制。本文设计了一种基于CP-ABE算法的密文访问控制方案,旨在实现安全、快速、细粒度的访问控制,方案支持数据认证(包括数据源认证和数据完整性认证)。数据认证使用的方法基于身份的签名技术,这样避免了验证PKI公钥证书的过程,提升认证效率。为了实现对文件数据的数据源认证和完整性认证,需要发布者用私钥对文件数据的摘要进行签名,通过验证摘要值确认数据完整性,通过验证签名判别数据源真伪。同时方案支持密文数据冗余检测,旨在提升存储空间利用率。本文采用收敛加密技术实现密文数据冗余检测。收敛加密技术使用由数据明文属性派生的密钥加密明文,相同明文经过加密,密文亦相同。收敛加密技术主要体现两点优势:首先,因为密钥既可以加密,也可以用于数据完整性验证,这样减少了存储空间;其次,因为相同明文的加密结果相同,可以检测加密冗余数据,提高了存储空间的利用率。本文采用数据自加密方式,密钥为文件块摘要和偏移量的连接,对文件块自身进行加密,如图1所示。
因此本文的对称密钥加密采用收敛加密,利用文件的Hash值加密文件,相同文件具有相同的加密结构,从而云存储服务提供商( Cloud Service Provider,CSP)可以实现密文冗余数据检测。
本文方案设定一个可信第三方和两个角色。密钥管理中心(PKG)作为可信第三方,负责系统初始化,管理用户属性和系统全体属性,根据用户所提供的属性集分发相应私钥。角色一是用户,包括加密上传用户(DO端)和解密下载用户( User)。角色二是CSP。为了保障数据安全,本方案对数据的访问控制权限进行设定,采用基于访问树设置访问控制结构。整体方案共分为系统初始化、私钥申请、文件上传及文件下载4个部分。整体方案实现了在不完全可信环境下的云数据共享系统。方案架构如图2所示。
4.1系统初始化
系统初始化共包括以下3个部分:
1) PKG生成属性公钥PKA和属性私钥MKA、身份公钥PKI、身份私钥MKI。
系统生成公共参数PKc={p,Go,G1,e,g,H},然后随机选择3个伪随机数a,β,s∈Zp,获得属性公钥PKA,属性私钥MK4,身份公钥PKi=(PKc,gs),身份私钥MKr=(S)。
2)构建属性集合整体。
PKG承担为申请私钥的User颁发与其属性相关的私钥的任务,因此PKG需要存储一个包含所有用户属性的全体属性集合。系统初始化时,PKG创建一个新的属性列表,向其添加不同的用户属性。
3) PKG为每个User生成属性证书。
在系统初始化阶段,PKG需要为每个用户生成相应的属性证书,将用户身份与其具有的属性进行绑定,以防用户申请自己不具有的属性对应的私钥,产生数据安全隐患。
4.2私钥申请
User从CSP下载以密文形式存储的文件,为了解密密文获得明文文件,使用者需要从PKC申请文件私钥。当PKG接收到User的申请时,会生成对应的属性私钥,并将其返回给User。该环节包含属性私钥的申请与身份私钥的申请两个部分。
1)属性私钥的申请
属性私钥申请与颁发过程是本文方案中的重要部分,私钥颁发过程中主要面临两个问题:一是PKG如何将生成的属性私钥发送给User;二是User如何向PKG证明自身申请属性集合的合法性。本文采用DH密钥交换(Diffie-Hellman Key Exchange)解决问题一;对于第二个问题,通过引入包含用户属性集合的属性证书进行验证。具体交互过程如图3所示。
具体流程如下:
(1) User将DH公钥PKDH-A发送到PKG,PKG用DH私钥SKDH-B生成会话密钥key;
(2) PKG将DH公钥PK DH-B发送给用户,用户用自己的私钥SKDII-B生成会话密钥key;
(3)用户用会话密钥key加密属性证书cert,生成Enc(certy),发送给PKG;
(4) PKG用会话密钥key解密Enc(certr),获取属性证书certr
(5) PKG验证属性证书的有效性,若证书有效则提取属性集合S;
(6) PKG用属性集合S和主密钥MKA生成属性私钥SKA,用会话密钥key加密;
(7)用户用会话密钥key解密Enc(SKA)获得属性私钥SKA。
2)身份私钥的申请
身份私钥的申请过程与属性私钥的申请过程相同,用户身份的验证是通过验证用户自身持有的验证数据来实现的。例如,用户身份标识为账户用户名,用户的验证数据即为账户密码,只有拥有账户密码的用户才可以获取身份私钥。
4.3文件上传
文件由DO端执行上传操作。DO制定文件具体的访问控制规则,通过访问控制规则将文件加密传送到CSPo同时对文件摘要进行签名,旨在验证文件完整性和数据源真实性。DO与CSP的交互过程如图4所示。
具体流程如下:
1) DO计算文件F的摘要值h;
2) DO用私钥对摘要进行签名生成signh;
3) DO用h加密文件F生成Enc(F);
4) DO制定访问控制规则Rule,用Rule加密文件摘要sign^和文件的摘要值h,生成加密头部Enc(head);
5)将Enc(F)、Enc(head)、加密规则Rule、用户身份ID发送到CSP。
4.4文件下载
当文件的访问者属性私钥对应的属性集合满足文件的访问控制规则时,文件访问者可以对密文文件进行解密,同时还可以进行文件完整性和数据源正确性的判断,以防文件被篡改。
系统用户与云端服务器的交互过程如图5所示。
具体流程如下:
1) User向CSP请求文件;
2)云端将加密后的文件Enc(F)、封装的头部Enc(head)、加密规则Rule、用户身份ID返回给访问者;
3)如果访问者的属性私钥对应的属性集合不满足加密规则Rule,文件下载流程结束;否则解密封装的头部Enc(head),获取文件摘要sign^和文件的摘要值h;
4)访问者用对称密钥h'解密加密文件Enc(F)获取文件;
5)计算文件F的摘要值h’,判断h'与解密获取的摘要值h是否相等,不相等表示完整性被破坏;
6)验证摘要的签名是否有效,如果有效表示数据源真实,否则为伪造。
5方案安全性分析
数据访问控制策略主要是基于CP-ABE方案,在判定性BDHE假设下,该方案可以有效地应对共谋攻击。在CSP不完全可信的环境中,避免CSP参与数据加密密钥的生成和管理,完全由DO端对其他用户进行访问授权增加了访问权限管理的安全性。访问控制规则与加密数据绑定,解密密钥与用户属性绑定,当用户属性符合访问控制规则时才能进行解密。访问控制规则支持与、或、门限等操作,符合绝大多数访问控制规则的设定,并且拥有良好的细粒度。利用Hash函数对数据作摘要,数据发布者用私钥对摘要进行签名,从而保证被伪造和篡改的CSP数据都可以被识别,保证数据的完整性和数据源的真实性。综上所述,本文方案可以有效地保证数据安全性。
6仿真及性能分析
为了对本文方法性能进行验证,将本文方法与CP-ABE方法、文献[14]方法进行实验。实验环境:处理器为Inter Core 2.2 GHz CPU,内存为8 GB,操作系统为Windows 7,虚拟机为VMware Workstation 6.5.1,性台能仿真软件为Ubuntu 10.10。实验代码基于CP-ABE-O.11库编写,对称加密采用基于Openssl-l.0.0库的128位AES加密算法。实验从用户私钥产生时间和存储空间两个角度进行分析,在整个实验过程中忽略数据传输过程中的网络延迟。
6.1私钥产生时间比较
图6描述了随着属性数量变化,DO端生成用户私钥所需的时间比较。
从图6可以看出,3种方法对应用户私钥产生时间都随着属性数量增加呈现增长的趋势。CP-ABE方法、方法和本文方法的私钥产生平均时间分别约为331 ms、287 ms和212 ms,本文方法平均时间最少。3种方法在属性数量低于50时,耗时差别不大,但是随着属性数量继续增长,CP-ABE方法增加得更快。本文方法在整个实验期间对应的用户私钥产生时间一直低于另外两种方法。
图7为私钥产生时间与用户数量关系。从图7可以看出,随着用户数量从0增加到500,3种方法对应的用户私钥产生时间都呈现出增长的趋势,但CP-ABE方法的增幅最快,本文方法增长得最为缓慢。3种方法的私钥产生平均时间依次约为2363 ms、990 ms和362 ms,显然本文方法的用户私钥产生时间远远低于另外两种方法。
通过图6和图7的实验结果可以观察到,本文方法的主密钥产生过程直接应用了用户属性集合所对应的参数,其产生的时间复杂度与密文长度无关,而另外两种方法与密文长度具有线性关系。由此可以看出,本文方法的私钥产生机制具有简单有效的优点。
6.2存储空间比较
如图8所示,3种方法的存储空间随着用户数量从0到500的增加而逐渐增长,且在前期增长缓慢,后期增长迅速。当用户数量达到500时,CP-ABE方法、方法和本文方法所占用的存储空间大小分别为49.8 MB、42.1 MB和34.7 MB,本文方法相对CP-ABE方法,效率分别提高了31.7%和19.2 %。显然本文方法更具优越性,这是因为本文方法可以将文件对应的密钥信息进行更加紧密的存储,所以具有相对较小的存储空间开销。
本文方法DO端利用收敛加密技术对文件进行加密后将其存储在CSP端,使用收敛加密技术加密相同数据具有相同的密文,因此在CSP端接收到相同的密文后,CSP端可以识别出冗余数据,相比其他两种方法提高了存储空间的利用率。
7结束语
本文提出的访问控制方案能够高效、灵活、细粒度地进行数据访问控制,并支持数据完整性验证和数据源验证。方案应用收敛加密技术加密文件,使云存储端支持密文冗余检测,提高了存储空间利用率。通过使用改进的CP-ABE算法,减少了生成用户私钥时间,并降低了存储空间。实验仿真结果表明,本文方案具有较强的实用性,具有耗时少、存储开销小的优点。
上一篇:光模块内置OTDR数据及格式分析