改进属性加密结合代理重加密的云计算安全访问控制策略

2019-07-15 11:18王斐玉
计算机应用与软件 2019年7期
关键词:密文访问控制解密

王 磊 李 刚 王斐玉

1(苏州大学信息化建设与管理中心 江苏 苏州 215006)2(新疆交通职业技术学院道路桥梁工程学院 新疆 乌鲁木齐 831401)3(新疆交通职业技术学院运输管理学院 新疆 乌鲁木齐 831401)

0 引 言

云服务或云计算是大数据管理中信服度很高、低成本和高效率的解决方案[1]。当采用云解决方案来存储大规模和高价值的数据时,其安全性和隐私性是非常重要的,通常需要部署加密技术和访问控制模型以满足云对安全性的需求[2]。访问控制[3-4]是网络安全最有效的解决方案之一。大数据的数据访问控制不仅应该支持安全需求,而且还应该对大量用户执行的策略提供灵活的管理,同时需要保证对加密数据进行检索和处理具备最佳的性能。

基于属性的密文加密ABCE是为外包数据和未知解密方制定基于密码和细粒度的访问控制的有效方案。目前,国内外研究人员对访问控制在ABCE中的应用进行了一些研究[5-8],通过对这些研究进行分析可知,这些研究主要集中于最小化密钥管理成本,降低数据拥有者与外包数据存储,提高可扩展性,优化撤销成本等方面。

事实上,策略更新是访问控制管理中最重要的管理任务之一。当客户端的数据影响策略更新时,必须由客户端进行重加密。ABCE中的策略更新使得数据所有者在进行重加密文件以及将加密文件加载回云的过程中,产生了较大的计算和通信开销或成本。这些成本会降低数据访问的服务质量,因为如果频繁更新和大量用户同时访问数据,这些成本将不可预测地增长。然而,仅有少量的研究[9-11]探讨了处理模型中策略变化或策略更新的问题,并且这些方案依赖于将文件重加密过程外包给专用代理,或者根据策略中改变的属性直接更新密文。

此外,大多数基于ABCE的访问控制方案[12-14]通常采用代理重加密(proxy re-encryption,PRE)技术来支持由于属性撤销或策略更新而引起的密文重加密,主要目的是尽可能地减少重加密过程中的高昂开销。由于客户端在处理PRE过程时计算开销被委托给位于云中的代理,因此现有PRE方案会给代理带来沉重负担。在云环境中,云提供商可能会在某些情况下根据CPU时间收取服务使用费。因此,通过减少重加密操作的频率,可以有效降低使用成本,而现有的PRE方案大多忽略了这一方案。

针对以上问题,提出了优化的、低成本的、安全的新型访问控制方案,主要创新点为:1) 针对多权限云中的大数据,提出灵活、安全的访问控制模型;2) 设计基于代理重加密的新型策略更新流程,提高策略更新速度;3) 制定高效的策略更新方案,降低计算开销。最后,通过实验证明了所提方案的有效性。

1 访问模型与加密方案

1.1 适应大数据访问的系统模型

在大数据的外包环境中,多个数据源高速、大量地生成数据流,从而实现数据在专用云存储中的实时集成与处理。图1说明了大数据访问控制的系统模型。本文提出的访问控制系统包括认证颁发机构(CAA)、属性管理机构(AMA)、数据所有者和用户,以及上述各组成部分之间的交互。

图1 大数据云访问与控制方案的系统模型

大数据云环境中参与者的角色和职能如下:

① 证书颁发机构,受信任的第三方,能够为所有实体颁发公钥证书(X509证书),这些实体包括用户、属性管理机构、数据所有者和系统代理。在本文的系统框架中,实体所使用的证书只要在多数据所有者的可信列表中,就可以被使用。

② 属性管理机构,在特定域内根据用户角色来发布、撤销、更新用户属性的独立方。每个属性管理机构负责生成公共属性密钥,并向注册在域中的用户颁发密钥。

③ 数据提供者或数据拥有者,将自身的交易或已处理的数据上传到云中的实体,通过指定访问控制策略来规范用户如何访问特定资源,并对资源权限进行分类和管理。本文假设访问策略仅由数据所有者更新。

④ 用户(U)或数据使用者,请求访问(读取或写入)由数据所有者外包的大数据的主体,属性管理机构为每个用户分配一组与自身角色相关的属性。

为了便于阐述本文的方案,给出如下定义:

• 属性(Attr),一组用于表征用户与特定属性“角色”关联的变量,属性由属性授权机构颁发。

• 角色(R),分配用户和相应属性的超级属性集。

• 权限(P),具有读取(r)和写入(w)值的动作。

• 访问控制策略(ACP),一个基于树的结构,ACP树的每个非叶节点表示角色节点和阈值,其中角色节点是阈值节点的父节点。parent(x)表示树中子节点x的父节点,函数attr(x)仅被定义在x的树叶节点中。为了提供细粒度的访问控制,本文引入与RBAC[15]类似的特殊属性“权限”,用来标识角色的读/写权限。

1.2 改进属性加密

本文提出一种采用多权限ABCE技术的密码处理方案,使用属性权限标识k来表示向用户发布属性的权限,通过属性权限发布属性的每个用户都用下角标(uid,k)进行标识。具体的系统模型的协议加密过程为:首先,由CAA向AMA、数据所有者、用户签发公钥证书,用户解密密钥加密和系统认证,一旦设置了AMA,他们就负责生成用户解密密钥,这些密钥是发布给各个用户的一组属性;然后,生成的UDK通过用户公钥Certuid进行加密,并将它们发送到云中进行存储;最后,数据所有者使用本文设计的加密功能,在将以加密格式数据发送到云端之前,对数据进行加密。为了访问设计的多权限ABCE系统,用户需要使用其有效证书登录系统,如果证书认证成功,他们将被给予加密的凭证来解密密文。

所提方案包括:属性权限初始化(attribute authority setup,AAS)、生成用户密钥(user key generation,UKG)、根解密密钥生成(root decryption key generation,RDKG)、加密(encryption,ENC)和解密(decryption,DEC)。AMA运行AAS、UKG和RDKG,数据所有者或用户执行ENC和DEC。此外,本文选用双线性映射作为系统设置和用户密钥生成协议中的构造方案。表1 列出了本文所提方案中使用的符号及其含义。

表1 方案符号及含义

(1) AAS:

每个AMAk(k∈所有权威SA的集合);令S是一组由权威AMAk签署并管理的属性;AMA(AMAk)选择两个随机数α,β∈Zp;G1是阶数为素数的线性群,g为G1的生成元;公钥PKk为:

PKk=〈g1/βk,gβk,e(g,g)αk〉

私钥SKk为:

SKk=〈βk,gαk〉

(2) UKG:

UKG方案包括UDKG和EDKG两部分,分别用于生成UDKuid,k和EDKuid,k:

① UDKG的输入是属性Suid,k的集合,属性颁发的私钥为SKk,用户证书为Certuid,之后它返回一个用户解密密钥UDKuid,aid的集合方案。首先选择一个随机数r∈Zp,然后对每一个属性i∈Suid,k选择一个随机数ri∈Zp,最后计算得到密钥:

② EDKG使用用户公钥证书Certuid对UDKuid,k进行加密,并输出一个加密后的解密密钥EDKuid,k,加密过程可以描述为:

UDKuid,k→ENCRSA(Certuid,UDKuid,aid)≡EDKuid,k

(3) RDKG:

RDKG将属性授权机构提供的密钥SKk、数据拥有者的实体属性oid以及数据拥有者的数字签名DS作为输入,并产生一个根解密密钥RDKoid用于后续的重加密密钥的生成过程。

(4) ENC:

文件在加密之前,需将其压缩为gzip格式。然后,加密方案将基于此压缩文件进行操作,操作包括两个步骤:

① 消息M的加密。

M→ENCC-CP-ARBE(PKaid,ACP,M)≡CT,该方案将授权的公钥PKk、访问控制策略ACP以及数据M作为输入,并返回一个密文CT。

② 加密密文CT和SS。

式中:ω[i]为属性标记,其取值为-1、0、1,分别表示“不关心”、“必须没有”、“必须有”;σi为随机数。

其次,将组角色参数GRP作为密钥与AES方案一起生成会话密钥,称为保密封条SS;对密文CT进行加密,并将方案返回加封密文SCT:

CT→ENCAES(SS,CT)≡SCT

SS的加密。SS使用用户公钥Certuid加密,方案返回加密后的SS(也就是ESS),并存储于云服务器上,其加密方案为:

SS→ENCRSA(Certuid,SS)≡ESS

(5)DEC:

解密方案包括两个步骤:

① 解密SS和SCT。

该方案使用了用户的全局私钥GSKuid,然后返回了会话密钥SS,进而使用SS解密SCT并获得CT。

② 解密CT。

首先,进行一次解密。如果ω[i]=1,则e(Ci,j,1)=e(g,g)rai。

如果ω[i]=0,则e(Ci,j,2)=e(g,g)rbi。

如果ω[i]=-1,则e(Ci,j,1)=e(Ci,j,2)=e(g,g)rci。

由以上公式可得:

其次,利用云请求EDKuid,k进行二次解密。解密过程如下:

该方案使用用户的全局私钥GSKuid来解密加密后的用户解密密钥EDKuid,k,并使用UDKuid,k解密密文CT。如果属性S满足ACP结构,方案返回压缩后的信息M。最后,方案对M进行解压缩从而返回原始信息M。利用上述改进的属性加密方案,可以有效提升数据访问的安全性,阻止未授权用户的非法访问与操作。

2 访问策略更新方案

基于上文给出的相关定义,设计访问控制策略的更新方案。为了进行策略更新,需要完成两项任务,包括:策略更新和文件重加密。为此,本文提出了一种策略更新方案和一种改进的代理重加密技术,分别用来执行所需完成的任务。

2.1 策略更新管理方案

在典型的基于云的访问控制系统中,当策略发生变化时,数据所有者需要采用新策略对本地文件重加密,并将其发送回云服务器,但这些操作增加了数据所有者的计算开销。因此,需要设计快速的更新策略,以便使数据所有者或管理员以更为高效的方式管理存储在云服务器中的策略属性,包括添加、更新和删除操作。

本文提出一种新的策略更新方案来控制策略在云中的更新过程,不仅可以提高计算速度,而且允许数据所有者随时随地对策略进行更新。本文所提出的策略更新方案包括:添加、更新、删除策略中的属性,语法检查。对于语法检查,方案会检查对属性类型和属性值采取的可能操作数。

在本文所提出的方案中,在策略更新完成之后,代理将自动采用更新后的策略来重加密被更新前的策略加密的密文。

方案1策略更新方案

1. 策略更新

输入:新叶子节点Y′;当前叶子节点Y;策略更新类型typeupdate;ACP

IF (typeupdate==delete)

{

IF (ANDgate associated toY),设置新策略

ACP′=ACP.DelAttr(xj) from_AND(xj=Y)

ELSE IF(ORgate associate toY),设置新策略

ACP′=ACP.DelAttr(xj) from_OR(xj=Y)

ELSE IF (KofNgate associated toY),设置新策略

ACP′=ACP.DelAttr(xj) from_KofN(xj=Y)

}

ELSE IF (typeupdate=edit)

{

SETACP′=ACP.update(Y,Y′)

}

ELSE IF (typeupdate=add)

{

IF (ANDgate associated toY),设置新策略ACP′=ACP.AddAttr(xn+1) from 2AND(xn+1=Y′)

ELSE IF (ORgate associate toY),设置新策略

ACP′=ACP.AddAttr(xn+1) from2OR(xn+1=Y′)

ELSE IF (KofNgate associated toY),设置新策略

ACP′=ACP.AddAttr(xn+1) from2KofN(xn+1=Y′) }

IF (verifyPolicySyntax(ACP′)),输出ACP′

ELSE,输出“策略语法错误”

2. 确认策略语法

输入:ACP

IF (ACP包含负整数或非整数),输出false

ELSE IF (ACP包含阈值),输出false

ELSE IF (ACP以整数开始),输出false

ELSE IF (ACP包含阈值操作符),输出false

ELSE,输出true

2.2 改进代理重加密

改进代理重加密是一个扩展的代理重加密模型,专门为访问控制中的属性撤销或策略更新提供稳定的代理重加密操作。改进代理重加密的实现过程分为两个阶段,包括:生成重加密密钥,更新重加密密钥。当存在属性撤销或策略更新时,所提出的两阶段改进代理重加密即被触发。代理使用重加密密钥RK(rks1→s2)将密文CTk1转换为CTk2,其中RK由代理服务器生成。

(1) 第一阶段:生成重加密密钥。

初始化阶段由预处理(PREC)、生成重加密密钥(RKG)两部分组成,这两部分的详细过程如下:

① 预处理:由数据拥有者进行初始运行。

PREC(IPproxy,Certownerid)→PREConFV1

该方案将代理服务器的网络地址IPproxy以及数据拥有者的公钥证书Certownerid输入代理服务器,用来执行RKG之前的认证,输出PRE配置文件PREConFV1。一旦生成预处理配置文件,就可以一直使用,直至输入参数发生变化。PREConFV1将作为生成重加密密钥RKG方案的输入参数param。

②GenR(R{rs1,rs2,…,rsn})→Rvn

该方案随机选择一组种子rs作为输入,生成安全随机数R。

该方案输出一个重加密密钥rks2→(M′,ACP′),该密钥用来将基于(M,ACP)的密文转换为另一个基于(M′,ACP′)的密文。

⑤ReEnc(param;rks2→(M′,ACP′),CMR,CT(M,ACP))→CTk2

该方案将参数param、重加密密钥rks2→(M′,ACP′)、组合匹配移除函数CMR以及原始加密密文CT(M,ACP)作为输入,输出一个重加密密文CT′ (M′,ACP′)。

根据rks2,通过嵌入组合匹配移除函数CMR来支持重加密过程,函数过程如下:

• 从Rvn(RDKoid)中移除R

RDKoid用来解密旧密文,然后方案应用新的ACP′对数据进行重加密,最后代理服务器使用SS对新的密文CTk2进行加密。

(2) 第二阶段:更新重加密密钥。

更新重加密密钥由两个方案组成,具体为:

使用这一方案,代理服务器不需要随着策略的更新而重新计算一个新的重加密密钥,只需要更新秘钥成分即可,因此可以有效减少计算开销,提高计算效率。

3 实验评估

为了验证本文所提方案的有效性,在搭建的仿真实验平台上进行了相关实验。首先,测试了重加密方案的计算性能;其次,将本文方案与文献[16]中的经典方案以及文献[17]中的最新方案在策略开销和解密计算开销两个方面进行了对比分析;最后,分析了所提方案的服务器吞吐量。本文的仿真试验环境为:代理服务器DELL R430 1U机架式ERP,E5-2630V4,十核,8 GB/1 TB SAS3.5/H330/DVDRW;安装Ubuntu Linux操作系统;客户端云DEL i7-8750H 16 GB 512GSSD GTX1050Ti MaxQ 4 G。

3.1 重加密方案性能测试

本文首先测量重加密过程所花费的时间,包括重加密密钥生成、重加密密钥更新和重加密密钥更换。实验中,使用由15个属性组成的访问策略来加密15 GB的文件,使用随机数发生器作为重加密密钥生成的一部分。图2给出了用于执行重加密方案及其密文重加密的处理时间。由图2可见,密钥更新方案可以用最少的时间来更新重加密密钥,如果存在需要重新生成重加密密钥的策略更新,则其可以显著地降低计算开销或成本;与RKG流程相比,重加密方案将成本降低了约72%;对于重加密密钥更换的处理,与初始重加密密钥生成相比,提出的重加密方案只需较少的处理时间,这是因为重新生成加密密钥时,初始系统参数不需要重新计算。由于策略或密文的大小没有变化,因此用于密文重加密的时间对于所有单独的重加密过程来说都是相同的。

图2 重加密过程的性能

3.2 性能对比分析

为了验证所提方案的运算性能,将所提方案与文献[16]以及文献[17]中的方案进行了对比分析。本文使用基于配对的加密库(PBC library)来模拟这三种方案的加密结构,利用总处理时间来衡量运行策略更新方案和所提重加密过程的开销或成本。

为了展示这两种方案的策略更新成本的明确影响,本文选择“添加属性”来衡量性能。在测试中,访问策略最初包含400个属性,混合了10个门,每个门包含5个“OR”,“AND”和“K of N”门限。首先,使用三种策略来加密1 GB的文件;然后,使用访问策略中增加的属性数量来衡量策略更新的处理时间。图3显示了这三种方案的策略更新性能,由该图可见,文献[16]中的经典方案计算开销最大,这是因为该方案的主要工作在于提出一种新的用户证书描述形式,而并未在计算性能上进行深入研究;文献[17]利用多授权机构把单授权机构的信任和工作量进行了分散承担,有效减轻了传统的单授权机构的计算开销,但随着数据量的成倍增长,其计算性能会因为多授权机构之间的协调而产生一定的折损。本文提出的方案虽然比文献[17]方案的更新开销稍大,但是由于将主要的重加密操作全部外包给代理,从而使得数据所有者一方的计算量显著减少。在本文的方案中,数据所有者只更新策略,并将后续成本全部外包给委托代理,更适合用于大数据量的处理。

图3 策略更新所产生的开销对比

图4给出了三种方案的解密开销。与图3所示的策略开销实验结果类似,文献[16]并未提出较好性能的解密方案,因此其开销较大;文献[17]访问策略树支持AND、OR及Threshold 丰富表达,将用户的身份ID直接放入访问树中进行设计,用户动态撤销后,云只需存储中心更新部分密文,即可使得撤销用户不能再通过解密数据来获得明文信息,从而减少了整个系统的计算开销;本文所提方案因为需要进行两次解密操作,故计算速度与文献[17]相比稍慢,但与经典方案相比仍具备非常好的解密速度。

图4 解密开销对比

在大数据环境中,需要基于一个包含大量属性和运算符的策略对集成数据进行加密。单纯依赖于逻辑运算符的属性数量或类型的策略更新方案通常会降低大数据访问控制中策略更新管理的整体性能。本文方案由于将重加密操作外包给代理,数据所有者只更新策略,并将后续成本外包给委托代理,使得数据所有者一方的计算量显著减少,因此,更适合用于大数据量的处理。

4 结 语

本文针对大数据环境中的安全策略更新问题,提出了新的访问控制模型。策略更新方案旨在安全有效地支持大数据云中的访问策略的变化,同时降低重加密成本或开销。此外,本文对重加密及相关的策略更新方案进行了比较分析和性能评估。实验结果表明,本文提出的策略更新方案提供了有效的策略更新,与相关方案相比,需要的计算成本更少。当有多个策略更新事件发生时,本文所提出的方案在实际部署中有希望支持大量的重加密请求。

猜你喜欢
密文访问控制解密
一种跨策略域的林业资源访问控制模型设计
解密电视剧 人世间
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
炫词解密
炫词解密
炫词解密
一种新的密文策略的属性基加密方案研究
云的访问控制研究