原文:Achieving Secure, Scalable, and Fine-grained Data Access Control in Cloud Computing

在云计算中实现安全、可伸缩、细粒度数据的访问控制

摘要:云计算是一个新兴的计算,在云计算平台上,用于计算的基础设施资源通过互联网提供服务。云计算是非常有前景的,与此同时,当用户将敏感数据分享在云服务器上时,而云服务器和新人数据域的数据所有者是不同的。这也给我们带来数据安全和访问控制方面的挑战。为了保护敏感的用户数据免于不信任的服务器,现有的解决方案通常应用将解密钥匙透漏给授权用户的加密方法。然而,当需要细粒度数据访问控制时,对数据拥有者来说,这些解决方案不可避免地引入一个沉重的计算开销。包含密钥分发和数据管理。因此可伸缩性不是很好。同时实现细粒度、可伸缩性、数据机密性的访问控制问题仍未得到解决。本文解决了这个具有挑战性的开放问题,一方面,基于数据属性定义和执行访问策略,另一方面,允许数据拥有者代理大多数涉及细颗度数据访问控制到不可信的云服务器的计算任务。并且不可以将底层数据透漏给云服务器. 我们实现这一目标,通过基于属性加密(ABE)、代理重加密和lazy重加密相结合的技术。我们的方案也有突出用户访问的属性特权用户密钥保密性和问责制。广泛的分析表明,我们的方案是高效的,并且在现有安全模型下是安全的。

1 介绍

云计算是一种很有前途的计算模式,最近受到学术界和各行业的广泛关注。通过结合一系列现有的和新的技术,比如面向服务的体系结构(SOA)和虚拟化等研究领域,云计算被认为是这样的计算模式,基础设施通过在互联网上提供资源的计算服务。沿着这个新的模式,开发出了各种业务模型, 可用术语进行描述,如 “Xas Service (XaaS)”[1], X可能是软件、硬件、数据存储等, 亚马逊的EC2S3[2],Google App Engine[3],和微软Azure[4]都是一些成功的例子。他们都是通过使用付费模式以相对较低的价格为用户提供可伸缩的资源。例如, Amazon的S3数据存储服务每十亿字节收费0.12美元至0.15美元。与建立自己的基础设施相比, 通过将业务移植到云端,用户可以大大的节省他们的资本。随着云计算的技术的不断发展,不难想象在不久的将来,越来越多的业务将会被移入到云。

与此同时,云计算也面临许多挑战,这些挑战如果没有很好的解决,可能阻碍其快速增长。数据安全,就像存在于许多其他应用程序中一样, 在这些挑战中也存在。用户将敏感信息存储在云服务器时,数据安全将引起用户的极大关注。这些问题来自云服务器,因为云服务器通常由商业供应商操作,而这些商业供应商可能在用户外部的信任域。但是当用户外包数据存储在云中,数据保密性不允许云服务器频繁操作数据。在一些实际应用系统中,数据保密性不仅是只有安全/隐私问题,也是法律问题。比如,在医疗应用程序场景中,使用和公开受保护的健康信息(φ)是应满足健康保险可移植性和责任法案(HIPAA)的要求的,并且保持用户数据保密不仅是一种选择,而是一个要求。

此外,我们注意到,还有一些情况,如云用户自身是内容提供商。他们发布数据在云服务器上共享并且需要细粒度的访问控制,在该控制下,依据用户对数据访问权限访问数据类型。例如, 在医疗的实例下,一个医学中心将成为数据拥有者,他将数以百万计的医疗记录存储到云。在HIPAA[5]政策允许条件,它将允许数据消费者如医生、患者,研究人员等,来访问各种类型的医疗记录。为了执行这些访问策略,数据所有者一方面想利用云计算提供的丰富的资源来提高效率和节省开销;另一方面,他们也想让在云服务器上数据内容对云服务器来说是保密的。

作为系统保护的一个重要研究领域, 在过去的三十年数据访问控制一直在发展。开发各种技术[6]-[9]已经有效地实现细粒度的访问控制,他可以灵活的指定个人用户的访问权限。传统的访问控制架构通常假设数据所有者和服务器将数据存储在相同的信任域,服务器完全委托作为一个无所不知的基准监视器,它可以定义和执行监控[10]访问控制策略。然而这种假设不再适用于云计算,因为数据所有者和云服务器很可能是在两个不同的领域。一方面,云服务器是无权访问外包数据内容保密的数据;另一方面,物理上,数据资源不是完全由数据所有者控制的。为了帮助数据所有者享受存储在不可信云服务器数据的细粒度访问控制,一个可行的解决方案是通过某些加密原语加密数据和将解密钥匙告知给只有授权用户。而未经授权的用户,包括云服务器,都无法解密,因为他们没有数据解密密钥。这实际上是现有的工作中一般被广泛采用的方法。它的目的是确保在不可信服务器上的数据存储安全。可是这个方法一个关键的问题是如何实现所需的安全目标,在数据管理和数据加密上不引入高复杂度。现有工作[11]-[14]解决这个问题的方法是为每一文件引入文件访问控制列表(ACL)用于细粒度访问控制,或将文件分成一些文件组来提高效率。然而,随着系统规模,基于文件访问控制列表的方法(the ACL-based schema)的复杂性是与系统中用户数量成正比的。另一方面,基于文件组的方法(The filegroup-based schema)只能够提供粗粒度的数据访问控制。云计算方面,实际上他的目标仍然是实现细粒度、可伸缩性和数据保密的数据访问控制。

在本文中,我们为解决这一开放问题,提出一个安全的、可伸缩的、细粒度的数据访问控制方案用于云计算。基于我们的观察,在实际的应用场景中,每一数据文件都可以关联到一组属性,这些属性在上下文中是有意义。因此,每个用户的访问结构可以被定义为一个独特的关于这些属性逻辑表达式。这些属性反映了用户被允许访问数据文件的范围。由于逻辑表达式代表任何所需的数据文件, 实现细粒度的数据访问控制。为了执行这些访问结构,我们为每个属性定义一个公共密钥组件。数据文件使用与他们属性一致的公钥组件进行加密。用户密钥反映其访问结构,以便用户可以解密密文。当且仅当数据文件属性满足他的访问结构。这样的设计带来的好处是提高效率,与之前的工作相比,优点是1)加密的复杂性只是与相关数据文件的属性的数量有关, 而它在系统中是独立于用户数量的; 2)数据文件创建/删除以及新用户的授权操作只影响当前文件/用户而不涉及整个系统的数据文件更新和秘钥更新。这种设计的一个非常具有挑战性性的问题是  用户撤销,这将不可避免地需要对撤销用户访问过的数据文件进行重加密, 对所有其他用户来说,可能需要更新的密钥。如果所有这些任务的执行都是数据所有者本人的话,这给数据所有者将引入一个沉重的计算开销,数据所有者还需要随时在线。为了解决这一问题,我们提议的方案能够使数据所有者委派数据文件的重加密和用户密钥更新任务到云服务器而没有泄露数据内容或用户访问特权信息。我们实现这一目标。通过一种新型密码原语, 即关键政策属性的加密(KP-ABE)[15],以及将代理重加密(PRE)[16]和懒惰lazy 重加密结合起来的独特的技术。

本文的主要贡献可以概括为。1)我们所知,本文同时实现了在云计算方面细粒度,可伸缩性、数据机密性的数据访问控制;  2)我们的方案使数据所有者委派大多数计算密集型任务到云服务器,而不泄露数据内容或用户访问权限信息;  3) 我们的方案在标准安全模型下可以证明是安全的。此外,我们提出方案可以  支持带有小扩展的用户问责制。

本文的其余部分组织如下。第二节讨论了模型和假设。第三部分回顾涉及到的技术。第四部分介绍我们的方案。在第五部分,分析方案的安全性和性能。第六节总结本文。

2、模型和设想

A系统模型

与[17]一样,我们假设系统模型是由以下三部分组成: 数据所有者,许多数据消费者,许多云服务器,必要时的第三方审计。为了访问数据所有者共享的数据文件,数据消费者, 追求简洁的用户,从云服务器下载他们感兴趣的数据文件,然后解密。数据所有者或者用户都不需要总是在线。为简单起见,我们假设用户唯一访问权限是数据文件阅读。扩展我们的方案以支持数据文件写操作,是微不足道的。通过要求数据写操作者在每个文件更新时签署新的数据文件。从现在开始,我们将用简洁文件称呼数据文件。云服务器总是在线并且受云服务器供应商(CSP)进行操作。认为他们有丰富存储容量和计算能力。第三方审计师是在线党,用于审核每一个文件访问事件。此外,我们还假定数据所有者不仅可以存储数据文件也运行自己的代码,即在云服务器上管理自己的数据文件。这种假设伴随着云计算统一本体被Youseff etal最近提出。

B 安全模型

一般来说,云服务器遵守我们提出的协议,但试图根据他们输入尽可能多的找出秘钥信息[14]。具体来说,比起秘钥信息,我们认为云服务器对文件内容和用户访问特权信息更感兴趣。用户文件内容非常有益时,云服务器可能勾结少量的以收获用户文件内容为目的恶意用户时。根据现有的安全协议,数据所有者/用户和云服务器之间的通信通道是安全的,如SSL。用户试图访问他们的访问权限的范围内文件的内部或外部。为了实现这一目标, 未经授权的用户可能独立工作或合作。另外,每一方加载公钥/私钥对,并且在必要的时候,公钥可以很容易地被其他方获得。 

 

c .设计目标

我们的主要设计目标是帮助数据所有者对存储在云服务器上的文件进行细粒度的访问控制。具体地说,我们想让数据所有者可以执行每个用户的访问结构,精确地指定用户被允许访问的文件集合。我们也想阻止云服务器能够学习数据文件内容和用户访问权限信息。此外,该计划可以实现用户问责和支持基本的操作安全目标,如用户授予/撤销是一对多通信系统所必须的。所有这些设计目标可以有效实现。严格来说,系统具有可扩展性。

3、技术预赛

A、关键政策属性的加密(KP-ABE)

KP-ABE[15]是一对多通信的公共密码学原语。在KP-ABE中,数据关联属性,为每个属性定义公钥组件。每个用户分配一个访问结构,该结构通常定义为一个关于数据属性的访问树,例如,访问树的内部节点是阈值和叶节点是相关联的属性。定义的用户密钥用以反映访问结构,以便用户可以解密一个密文,当且仅当数据属性满足他的访问结构。KP-ABE方案由四个算法组成,可以定义如下:

设置 该算法输入安全参数κ和以N为基数的属性域U= { 1,2,…,N }的.它定义了一个双线性组G1,G1是由产生器g生成的素数序p组成的,双线性映射e:G1×G1→G2,G2有双线性的特性、可计算性和非退化性。它返回公钥PK以及系统主密钥MK,如下所示:PK=(Y,T1,T2,…,TN)  MK=(y,t1,t2,….,tN)  

Ti∈G1和Ti∈Zp属性i,1≤i≤N,且Y∈G2是另一个公共密钥组件。我们有Ti = gti 和Y= e(g,g)Y,Y∈Zp。虽然在系统中PK都是公开给其他成员的,可MK却只是给授权团体。 

加密  该算法需要一个消息M,公钥PK,一组属性I作为输入。它以如下格式输出密文E:

密钥生成 算法需要输入一个访问树T,主键MK,公钥PK。它输出如下一个用户密钥SK。首先,它以自上而下的方式,从根节点开始,为树T中的每个节点i定义了一个随机的多项式Pi(x)。对于每一个非根节点j, pj(0)= pparent(j)(idx(j)),这里parent(j)代表j的父母,idx(j)代表j的唯一索引。对根结点来说,Pr(0)= y。然后按如下输出SK。 。L表示附加到树T叶结点的属性组并且 。  

解密 该算法将用属性集I,用户的密钥SK,和公钥PK三者加密后的密文E作为输入。第一,为叶节点计算 。然后, 使用多项式插值技术以自底向上的方式它聚合这些配对结果。最后, 当且仅当I满足T,它会恢复盲人系数Y s = e(g,g) ys和输出消息M。

更多细节请参阅[15]KP-ABE算法。[19]是一个增强KP-ABE方案,它支持用户密钥问责制。

B代理重加密

代理重加密是一种加密原语,非完全信任的代理不能够将在Alice公钥下加密的密文转换为另一段可以通过Bob的私钥进行解密的密文。正式来说,PRE方法允许代理,代理重加密秘钥rka↔b将公钥pka下的密文翻译成在公钥pkb下的密文。反之亦然。更多细节请参阅[16] 。

4、我们提出的方案

A 主要思想

为了实现在云端对外包数据安全、可伸缩和细粒度的访问,我们使用以下三个高级的密码学的技术结合起来:关键政策属性的加密、代理重加密、lazy重加密。具体来说,我们将带有一组属性的数据文件与为每个用户分配一个富有表现力的访问结构结合起来。这些访问结构定义这些属性。为了执行这种类型的访问控制,我们利用关键政策属性的加密(KP-ABE)护送数据文件的数据加密密钥。这种结构使我们能够立即享受细粒度(fine-grainedness)的访问控制。然而, 如果单独部署的话,这种结构将引入大量的重计算以及对数据拥有者来说所造成数据的开销和繁琐的网络负担,data owner负责所有的业务数据/用户管理。

具体地说,这样一个问题主要是由于用户撤销操作所引起的。这一撤销操作,不可避免的需要数据所有者对访问的所有数据文件进行重新加密,甚至需要数据所有者持续在线为用户更新密钥。要解决这一难题,我们就需要构建一个适合云计算的结构。因此我们把PRE与KP-ABE结合起来。使数据所有者能够代理绝大多数的计算密集型操作到云服务器,而不需要公开的云服务器潜在的文件内容。这种结构允许数据所有者去控制他数据文件访问的最小开销(计算和在线时间两方面计算),因此适合云环境。数据的机密性,是的云服务器不能访问我们结构中任何数据文件的纯文本形式的数据。为了在云服务器上进一步减少计算开销和保存数据所有者的资产,我们利用 lazyre-encryption技术,允许云服务器“聚合”多个系统操作的计算任务。正如5-B节中我们将讨论, 在云服务器上计算的复杂性要么和系统属性的数量成正比,要么和用户访问的结构/树的大小呈线性关系, 在系统中这与用户数量是相互独立的。因此实现可伸缩性。另外,我们的构建(construction)也保护了用户访问特权信息。用户密钥的责任以及标准也可以通过使用KP-ABE的增强方案得以实现。

B 定义和符号

为每个数据文件所有者分配一组有意义的属性,该属性对于访问控制来说是必需的。不同的数据文件可以有共同的属性的一个子集。每一个属性关联到一个用于属性更新的版本号,稍后我们将讨论的属性更新。云服务器保持一个属性历史列表AHL,它用于记录每个属性的版本进化历史和PRE keys的使用。除了这些有意义的属性,我们也定义一个虚拟属性,用符号AttD标示。它的目的是密钥管理。AttD需要包含在每一个数据文件的属性设置中而且永远不会被更新。每个用户的访问结构是通过一个访问树来实现。访问树的内部节点是阈值。访问树的叶节点是与数据文件相关联的属性。为了密钥管理的,我们需要根节点作为一个与(AND)门(即n-of-n阈值)并且其中一个孩子是叶节点,该叶节点与虚拟属性以及其他阈门子节点相关联。在访问树中,虚拟属性不会被连接到其他节点。图1通过一个例子说明了我们定义。此外,云服务器还保持一个用户列表UL ,它记录系统中所有有效用户的id。图2给出我们的方案中符号的描述。

C 方案描述

为了清晰起见,我们将提出我们的方案级别:系统级和算法级。在系统层面上,我们描述了高层的操作,比如, 系统设置、新文件创建,新用户授权,和用户撤销、文件访问、文件删除,参与方之间的交互。在算法层面,我们关注低层次算法的实现,便于系统层操作的调用。

1) 系统级操作:在我们的系统级操作方案设计如下。  

系统设置 在这个操作中,数据所有者选择安全参数κ并调用算法层接口ASetup(κ),输出系统公共参数PK和系统主密钥MK。之后数据所有者标记每个组件PK并发送这些有签名的PK到云服务器。

创建新文件上传一个文件到云服务器之前, 数据所有者处理数据文件,如下所示。  

•为数据选择一个惟一的ID文件;   

•随机选择一个对称数据加密密钥DEK R←K,K是关键的空间,使用DEK加密数据文件;  

•给数据文件定义一组属性I, 使用I、DEK、PK加密数据文件

即(˜E{ Ei }I∈)  ←AEncrypt(I ,DEK, PK)。

最后,每个数据文件以上述格式存储在云上如图3所示。  

新用户授予 当一个新用户想要加入系统时, 数据所有者分配一个访问结构和同步密钥给用户。该用户的密钥如下。

•为新用户分配一个惟一的标识w和访问结构P;   

•给w生成一个密钥SK,即,SK←AKeyGen(P,MK);   

•加密带有用户w的公钥的元组(P、SK、PK、δO(P、SK、PK)),通过C来表示密文;  

•发送元组(T、C、δO,(T、C))到云服务器,在那里T代表元组(w,{j,skj} j∈LP\ AttD)。  

在收到元组(T、C、δO(T、C))时,云服务器进程如下。  

•验证δO(T、C)是否正确;  

•T存储在系统用户UL列表;  

•C转发给用户。

收到C,用户首先用私钥解密它。之后他还要验证签名δO,(P、SK、PK)。如果正确,他接受(P、SK、PK)作为他的访问结构、密钥, 和系统公钥。  

如上所述,云服务器存储所有SK的密钥组件,除了与之相对应的AttD伪属性。这种设计允许云服务器在用户撤销时像我们描述那样,更新这些密钥组件。由于仍然存在有一个不明密钥组件AttD,云服务器不可以使用已知的密钥去正确解密密文。实际上,这些公开的密钥组件,如果给予任何未经授权的用户,不给他任何额外的优势。以上展示了我们的安全分析。

用户撤销  我们从用户撤销操作这一直观操作来说,如下所示。每当有一个用户被吊销,数据所有者首先判断最少属性集,没有离开用户的访问结构。接下来,他通过重新定义MK中相应的系统密钥组件,来更新这些属性,在PK中所有这些更新的属性的公钥组件也相应的重新定义。然后,他相应的更新所有用户的密钥,除了那些撤销后的用户。最后, 影响数据的文件的DEKs是公钥重加密的最新版本。

这个直观方案的主要问题是,对于数据拥有者来说,对数据文件的重新在加密,将引入一个沉重的计算开销。并且可能需要数据所有者总是在线为用户提供密钥更新服务。为了解决这个问题,我们将代理重加密与 KP-ABE相结合。 将数据文件重加密任务和数据密钥更新任务委派给云服务器去执行。更具体地说,我们把用户撤销分为两个阶段,如图4所示。

在第一阶段,数据所有者决定了属性的最小集合, 给相关属性重新定义MK和PK, 并生成相应的PRE的钥匙。然后他发送用户的ID,最小属性集,PRE keys.,已经更新的公钥组件,还有他签名的这些组件到云服务器,之后数据所有者就可以离线了。云服务器,从数据所有者,收到此消息,从系统用户列表UL删除已撤销用户、并且在他上面存储更新后的公共密钥组件以及数据所有者的签名,除此之外,在属性历史列表AHL中记录最近版本的PRE key。每个属性的AHL表是用来每一个属性的版本进化历史以及使用的PRE key每个属性都有自己的AHL。使用AHL, 云服务器能计算出一个PRE key。该PRE key可以使他们能够更新从任何历史版本到最新版本的属性。这个属性允许云服务器以“Lazy”的方式更新用户密钥和数据文件。  遵循。一旦用户撤销事件发生时,云服务器只是记录数据所有者提交的信息 ,就像之前讨论的一样。如果用户只有一个文件数据访问请求,云服务器对请求的文件重加密并且更新请求用户密钥。如果没有发生多个连续用户撤销事件访问请求,云服务器就能够“聚合”多个更新/重加密操作成一个操作,这样可以节省大量计算开销。

文件访问 这是用户撤销的第二阶段。在这一操作中,云服务器响应用户对数据文件访问的请求,更新用户密钥,如果必要的话,对请求数据文件进行重加密。如图图4所示,云服务器首先需要查看UL表,已验证发出请求的用户是一个有效的系统用户。如果是,他们更新该用户的密钥组件到最新版本,重加密使用PK最新版本的数据文件的DEKs。值得注意的是, 如果密钥组件/数据文件已经是最新的版本的话,云服务器将不执行更新/ 重加密操作。最后,云服务器发送已经更新的密钥组件以及用户所请求数据文件的密文给用户。在收到来自云服务器的响应时,用户首先验证收到的版本是比他当前的版本更新的版本。为此,他需要验证数据所有者的签名,即验证属性信息(包括版本信息)的和相应的公钥组件。表单的元组(j,T’j).如图四所示,如果正确,则进一步验证,从云服务器中返回的每一密钥组件是否可以正确计算。他通过计算skj’ 和Tj’之间的双线性配对关系,来确定以上验证。如果验证成功,他将用skj’替换skj,用Tj’更新Tj。最后,他解密数据文件,首先调用ADecrypt(SKP,E)解密DEK,然后使用DEK解密数据文件。

文件删除 此操作只能在执行数据所有者的请求。删除一个文件,数据所有者发送文件的惟一ID和他的签名到云服务器。如果主人的签名的验证返回true,云服务器删除数据文件。

2)  算法级别操作:算法级别操作包括八个算法:ASetup、 AEncrypt、 AKeyGen、 ADecrypt、AUpdateAtt ,AUpdateSK, AUpdateAtt4File、和AMinimalSet。前四个算法和Setup、Encrypt、Key Generation,Decryption一样,我们把焦点放在后四个算法的实现上。图5 描述了两个的四个算法。

AUpdateAtt该算法更新属性到一个新的版本。重新定义了系统主密钥和公钥组件。在属性的旧版本和新版本之间它还输出代理重加密秘钥。

AUpdateAtt4File这个算法将老版本文件属性i的密文组件转换成最新版本。它首先检查这个属性的属性历史列表,确定旧版本的位置信息。然后它乘以所有旧版本和最新版本的PRE KEY,获得一个PRE。最后将这个单一PREkey应用到密文组件Ei中,并返回Ei(n) , Ei(n) 是符合属性i的最新定义的。

AUpdateSK这个算法将用户密钥SK中的属性i的密钥组件从老版本转化成最新版本。它的实现与AUpdateAtt4File是相似的。除了,在最后一步,他(rki↔i(n))−1应用到ski而不是rki↔i(n)。这是因为ti是ski指数部分的分母,而在Ei中,ti是分子。

AMinimalSet该算法确定最小集合属性,最小集合属性对访问树来说是必须的。为了这个目的,它构建了访问树的合取范式(CNF),并返回CNF公式的最短条款中的属性作为最小属性集。

D总结

在我们的方案中,我们利用混合加密技术保护数据文件。即,我们使用对称DEKs和使用KP-ABE加密的DEKs加密数据文件。使用KP-ABE,我们可以立即享受细粒度的数据访问控制和高效的操作。如文件的创建/删除和新用户授予。为了解决用户撤销的这个具有挑战性的问题,我们将带有KP-ABE的代理重加密(re-encryption)和委派繁重的计算任务到云服务器相结合。我们通过让云服务器保持每个用户密钥各部分的副本来实现这一难题。即,除了(虚拟的)属性的所有用户的密钥组件。由于用户撤销,数据所有者需要重新定义属性集,他也生成相应的代理重加密钥并将它们发送至云服务器。根据这些代理重加密密钥, 云服务器可以更新用户密钥组件并相应的重加密数据文件。这种优化将数据所有者从用户撤销所造成的巨大计算开销中解放出来。数据所有者也不需要始终保持在线。因为在获得PRE key后,云服务器将接管繁重的任务。为了进一步节省云服务器上用户撤销的计算开销,我们使用lazy re-encryption技术, 让云服务器能够“聚合”多个连续的秘密更新/文件重加密操作,从而节省计算开销。

5、我们的方案分析

A安全分析

我们首先分析我们提出方案的安全性能, 从下面的可用的属性开始讲起。

1)    细粒度访问控制:在我们的提议方案,数据所有者能够定义和执行表达和灵活式的访问结构。具体来说,   每个用户的访问结构被定义为关于数据文件的属性一个逻辑公式,而且他可以代表任何期望的数据文件集。

2)    用户访问特权保密性:我们的提议的方案只是透露用户访问树的叶节点信息给云服务器。作为访问树内部节点,可以是任何阈值并且对云服务器来说未知的,所以说云服务器很难恢复访问结构,从而得到用户访问特权信息。

3)    用户密钥问责:这个属性可以通过使用带有KP-ABE的增强结构立即获得。该结构过去常常用来公开钥匙滥用者的身份(id)。  

现在我们分析我们的提议方案的数据保密性。通过加密安全给出证明。

4)数据机密性:我们分析我们提议方案的数据机密性,通过将我们的方案与直观的方案进行比较。直观方案中,数据文件使用对称DEKs加密,而DEKs使用标准KP-ABE直接加密。在这个直观的方案只是数据文件的密文发送给云服务器。假设对称密钥算法是安全的,使用标准对称密钥算法。如AES、这个直观方案的安全仅仅是依赖KP-ABE的安全。事实上,在基于属性的选择集模型下,标准的KP-ABE是安全的。  鉴于决策双线性diffie - hellman(DBDH) 问题是困难的。因此, 在同一的模型下,直观的方案是安全的。我们的目标是要表明,我们提议的方案和直观的方案是一样安全的。相比直观的方案,我们方案公开以下额外的
信息到云服务器:一组部分的用户密钥组件(除了一个伪属性,需要为每个解密),代理重加密密钥。基于以上观察,我们的方案通过一系列如下游戏来证明我们方案的安全性。

游戏0:这是安全游戏的直观的方案。  

游戏1:这个游戏和游戏0的区别是,在这个游戏中不仅仅只有(MK ,PK)对的定义,一旦他adversary提交访问结构,就将用于访问结构的PK和密钥给他。此外,对手也考虑到代理重加密密钥(任意两个之间  (MK,PK)对)。  

游戏2:这个游戏用于我们提出的方案。这个游戏和第一场比赛之间唯一的区别是,在这个游戏中用户密钥组件的部分公开给对手。

引理5.1:在比赛0和1中,对手的比赛优势是一样的。  

证明:我们的第一个目标是表明,如果有一个多项式时间算法A,他可以赢了Game1的语义安全比赛。,我们可以使用它建立一个多项式时间算法B,赢得Game0的语义安全游戏。即,基于属性选择集模型的游戏。在语义安全游戏中,对手提交消息m0 、m1两个相等长度的挑战信息。挑战者翻转一个随机硬币b←{ 0,1 },加密mb。之后将挑战密文 E给对手。要求对手输出他的猜测b‘,随机硬币b的值。如果b’= b对手获胜。在这场比赛中,对手是公共参数并允许查询许多用户密钥,除了一个用于挑战的密文。

假设该算法A(对手)能赢得语义安全的游戏,例如,b←(EA,{ PKi } 1≤≤k,{ski} 1≤≤qS,{rk}),不可忽视的优势,{PKi }和{skj}表示所有PK集合和密钥集合,{rk}代表的所有代理重加密密钥,qS表示密钥查询数量,k代表PK的数量,一个多项式时间算法B可以构建为图6所示。因此,Game1中对手的优势不Game0高。然而,Game1对手的优势不能低于Game0由于Game1比Game0多给予对手更多信息。因此,两场比赛的优势都是相同的。

值得注意的是, 我提议的方案的选择密文安全也可以同样证明。因为任何有A提交的解密二进制文件,  可以通过B转给Game0的挑战者。然后可以将答案转发给A。  

引理5.2:Game2和Game1对手的优势一样。  

证明:如前所述,在Game2中,额外的信息公开给对手。其中包含部分用户的秘钥。这部分用户密钥实际上是等价于Game1中对手的密钥查询。因此, 两场比赛,对手的观点是相同的,得证。

根据上述两个前题,我们可以得出这样的结论:我们的方案是安全的直观的方案。并且证明了我们提议方案数据的保密性,即使在云服务器和恶意用户之间的共谋攻击。这是因为在我们的安全的游戏中,对手A和云服务器有相同的能力。云给予服务器许多未经授权用户的密钥。

B技术性能分析

 本节评估我们提议方案的性能。介绍了每个操作以及密文的大小的计算开销。 

计算复杂性:我们分析计算以下六个操作的复杂性:系统设置、新文件创建,文件删除,新用户授予、用户撤销。

文件访问。在这个操作系统设置,数据所有者需要定义潜在的双线性组,并生成PK和MK。可正如III-A节中描述。通过N组对G1的乘法操作。介绍,PK和MK的主要计算开销。

创建新文件。这个操作的主要计算开销使用对称DEK加密数据文件,以及使用KP-ABE对DEK加密。前者的复杂性取决于底层数据文件的大小和不可避免的任何密文方法。后者的计算开销由|I |作用于G1上的乘法操作和1作用于G2的乘法操作所产生的。I表示数据文件的属性集。所有这些操作都是为数据所有者服务的。  

文件删除。此操作涉及到数据所有者和云服务器。前者需要计算一个签名而后者验证这个签名。新用户授予        数据所有者、云服务器和用户交互地执行这个操作。对于数据所有者来说,计算开销主要由用户密钥和使用用户公钥作为密钥解密。前账户在G1上| L |乘法操作,L表示访问树的叶节点集。后者占了一个PKC操作,如,RSA加密。云服务器主要开销是一个签名验证。用户需要做两个PKC操作,一个用于数据解密,另一个签名验证。

用户撤销。这个操作是由两个阶段组成的。第二阶段实际上可以摊销的文件访问操作。第一阶段这里我们只是计数操作开销。第二阶段将包括文件访问操作。第一阶段发生在数据所有者和云服务器。数据所有者的计算开销是由执行AMinimalSet和AUpdateAtt以及用于公钥组件的签名产生的。算法AMinimalSet的复杂性主要是由CNF转换操作产生的。假设AMinimalSet返回最小集的大小是D,D≤N, AUpdateAtt的计算开销主要是通过对在G1上执行 D的乘法操作产生的。此外,该数据拥有者还需要计算D公钥组件的签名。在这个阶段云服务器的计算开销是微不足道的。当计算用户撤销的复杂性,我们使用N来代替访问结构的大小,由于在实际场景中,AMinimalSet是非常有效的,我们限制访问的规模结构(在不影响系统可扩展性),但在G1上每个签名或乘法操作是昂贵的。文件访问         该操作发生在用户和云服务器之间。对于云服务器,主要计算开销是由算法AUpdateSK和算法AUpdateAtt4File的执行产生的。在最坏的情况下,算法AUpdateSK被调用|L |−1次,代表G1上|L |−1乘法操作。算法AUpdateAtt4File的执行在G1上占一个乘法操作。在最坏的情况下, 每一文件的访问,云服务器需要调用AUpdateAtt4File N次。我们的Lazy  reencryption 解决方案将大大减少平均系统调用这两个算法次数。在最坏的情况,文件解密需要| L|双线性配对。

图7总结了我们提出方案的计算复杂性  

 2)密文大小:如图所示部分5-C,密文是由一个ID,head 和body组成。body是一个数据块。数据文件的header由一个属性集I、一组在G2上的元素,G1上|I |组元素组成。

C 相关工作

现有工作接近我们可以发现领域的“共享加密文件系统”和“外包数据的访问控制”。

Kallahallaet al提出plutus作为密码文件系统用以确保不受信任服务器上的文件存储的安全。Plutus将具有相同共享属性文件分成一个文件组。每一个文件组使用唯一的文件块钥匙进行加密。每个文件使用文件块的秘钥进行加密。而文件块秘钥是通过该文件的文件组的lockbox-key进行加密的。如果数据所有者想要共享文件组,他只是提供了相应的lockbox-key 给用户。密钥管理的复杂度与文件组数成正比,plutus不适合细粒度访问控制的数字,因为文件组数可能是巨大的。

Goh 等人提出了SiRiUS,SiRiUS是建立在现有的文件系统之上,如NFS但提供端到端安全。为了访问控制的目的, SiRiUS将元数据文件赋给每个文件,元数据文件包含文件的访问控制列表(ACL),ACL中的每个条目是使用文件加密密钥(FEK)加密的。而文件的加密钥匙是使用授权用户的公钥来进行加密的。SiRiUS的扩展版本使用NNL广播加密算法加密每个文件的FEK来代替用每个用户公钥进行加密。在NNL中,用户撤销方案的复杂性与撤销用户的数量成正比, SiRiUS跟每个元数据文件的大小具有相同的复杂性和加密开销,因此不是可伸缩。

Ateniese 等人,提出了一个基于代理重加密的安全分布式存储方案。具体来说,数据所有者使用对称内容密钥加密内容块。内容秘钥是加密的主公钥, 这只能由数据的所有者的主私钥进行解密。数据所有者使用主私钥和用户的公钥生成代理重加密秘钥,然后不可信的服务器可以将密文转换成执行特定的用户授予和和完成访问控制任务。这个方案的主要问题是恶意服务器勾结任何恶意用户将使所有加密数据的解密密钥暴漏出来,并在系统数据安全方面做出妥协。另外, 代理服务器不接受用户访问权限,也不支持用户密钥责任制。

Vimercati等人提出了一个基于密钥推导方法解决方案来保护在存储不受信任的服务器上的数据。在这个方案中,每个文件是用对称密钥进行加密的,分配给每个用户一个密钥。授予用户访问权限、所有者创建相应的公共令牌和密钥。用户能够获得所需的文件的解密密钥。数据所有者传递这些公共令牌至非完全信任的服务器和委派令牌分布任务给云服务器。鉴于这些公共令牌,服务器无法获得任何文件的解密密钥。这种解决方案介绍最小数量的用户密钥和最小数量的文件加密密钥。然而, 文件创建和用户授予/撤销操作的复杂性与用户的数量是呈线性关系的,这使得该方案是不可伸缩的。而且也不支持用户访问权限责任。

D 讨论

根据上面的分析,我们可以看到,我们的提议方案能够实现所需的安全目标,即,细粒度的访问控制、数据机密性、用户保密特权访问,和用户密钥问责。也实现可伸缩性的目标,不再是依赖系统中的用户数量。因此,我们提出的方案可以作为一个理想的候选人在新兴云计算环境中进行数据访问控制。相反, 在相关领域现有的访问控制方案缺乏可伸缩性[12], [14]和细粒度[11],或者不能够数据机密性提供足够的证据[13]。

6、结论

本文针对在云计算中,细粒度的数据访问控制。在这种背景下的一个挑战是实现细粒度, 同时实现数据机密性和可伸缩性, 而目前没有解决这一问题的方法。在这篇文章,我们提出一个方案来实现这一目标利用KP-ABE,结合代理re-encryption和lazy  re-encryption技术。此外,我们提出的方案可以使数据所有者代理大多数计算开销到强大的云服务器。保密用户访问权限和用户密钥的问责制才能实现。正式的证据表明,我们提出的方案是安全的。

参考文献:

[1] M. Armbrust, A. Fox, R. Griffith, A. D.Joseph, R. H. Katz, A. Konwinski,G. Lee, D. A. Patterson, A. Rabkin, I. Stoica,and M. Zaharia,“Above the clouds: A berkeley view of cloud computing,”University ofCalifornia, Berkeley, Tech. Rep. USB-EECS-2009-28, Feb 2009.

[2]Amazon Web Services (AWS), Online at http://aws. amazon.com.

[3]Google App Engine, Online at http://code.google.com/appengine/.

[4]Microsoft Azure, http://www.microsoft.com/azure/.

[5]104th United States Congress, “Health Insurance Portability and Accountability  Act of 1996 (HIPPA),” Online at http://aspe.hhs.gov/admnsimp/pl104191.htm,1996.

[6]H. Harney, A. Colgrove, and P. D. McDaniel, “Principles of policy in securegroups,” in Proc. of NDSS’01, 2001.

[7]P. D. McDaniel and A. Prakash, “Methods and limitations of security policyreconciliation,” in Proc. of SP’02, 2002.

[8]T. Yu and M. Winslett, “A unified scheme for resource protection in automatedtrust negotiation,” in Proc. of SP’03, 2003.

[9]J. Li, N. Li, and W. H. Winsborough, “Automated trust negotiation using cryptographiccredentials,” in Proc.of CCS’05, 2005.

[10]J. Anderson, “Computer Security Technology Planning Study,” Air ForceElectronic Systems Division, Report ESD-TR-73-51, 1972, http: //seclab.cs.ucdavis.edu/projects/history/.

[11]M. Kallahalla, E. Riedel, R. Swaminathan, Q. Wang, and K. Fu,“Scalable securefile sharing on untrusted storage,” in Proc. of FAST’03,2003.

[12]E. Goh, H. Shacham, N. Modadugu, and D. Boneh, “Sirius: Securing remoteuntrusted storage,” in Proc. of NDSS’03, 2003.

[13]G. Ateniese, K. Fu, M. Green, and S. Hohenberger, “Improved proxy  re-encryption schemes with applications tosecure distributed storage,” in Proc. of NDSS’05, 2005.

[14]S. D. C. di Vimercati, S. Foresti, S. Jajodia, S. Paraboschi, and P. Samarati,“Over-encryption: Management of access control evolution on outsourced data,”in Proc. of VLDB’07, 2007.

[15]V. Goyal, O. Pandey, A. Sahai, and B. Waters, “Attribute-based encryption forfine-grained access control of encrypted data,” in Proc. Of  CCS’06, 2006.

[16]M. Blaze, G. Bleumer, and M. Strauss, “Divertible protocols and atomic proxycryptography,” in Proc.of EUROCRYPT ’98,1998.

[17]Q. Wang, C. Wang, J. Li, K. Ren, and W. Lou, “Enabling public verifiability anddata dynamics for storage security in cloud computing,” in Proc. of ESORICS ’09, 2009.

[18]L. Youseff, M. Butrico, and D. D. Silva, “Toward a unified ontology of cloudcomputing,” in Proc.of GCE’08, 2008.

[19]S. Yu, K. Ren, W. Lou, and J. Li, “Defending against key abuse attacks inkp-abe enabled broadcast systems,” in Proc. of SECURECOMM’09, 2009.

[20]D. Sheridan, “The optimality of a fast CNF conversion and its use with SAT,” inProc. of SAT’04, 2004.

[21]D. Naor, M. Naor, and J. B. Lotspiech, “Revocation and tracing schemes forstateless receivers,” in Proc. of CRYPTO’01, 2001.

[22] M. Atallah, K. Frikken, and M. Blanton,“Dynamic and efficient

在云计算中实现安全、可伸缩、细粒度数据的访问控制相关推荐

  1. 什么是HADOOP、产生背景、在大数据、云计算中的位置和关系、国内外HADOOP应用案例介绍、就业方向、生态圈以及各组成部分的简介(学习资料中的文档材料)

    1. HADOOP背景介绍 1. 1.1 什么是HADOOP 1.        HADOOP是apache旗下的一套开源软件平台 2.        HADOOP提供的功能:利用服务器集群,根据用户 ...

  2. 数据安全审计_使用数据级安全性对InfoSphere Guardium中的审计结果进行细粒度访问控制

    数据安全审计 数据级安全性对职责分离的重要性 处理数据的组织需要关注遵守不同程度的职责分离强制执行情况. 这意味着要确保没有多人参与和审查就无法完成任务,因为欺诈和人为错误的可能性较小. 这就是为什么 ...

  3. 云计算中可用的服务种类,主要可以划为哪几类?

    云计算的"云"源于绘制互联网的网络图表时的一个习惯--会将其画成一朵云. 最受认同的关于云计算含义的解释是,在一个商业供应者的数据中心上通过互联网远程运行工作负载--也就是所谓的& ...

  4. 云计算 | 中国信通院《2022 云计算白皮书》阅读、理解与总结

    云计算 | 中国信通院<2022 云计算白皮书>阅读.理解与总结 前言 1. 云计算市场 1.1 国内外云计算市场现状对比 1.2 2021年国内公有云与私有云市场对比 1.3 国内公有云 ...

  5. 提高云计算中的软件质量

    为什么80%的码农都做不了架构师?>>>    ‍ Gavlin Pather在俄罗斯的KZN长大,在那里他学习信息技术并开始了作为一名开发者的职业生涯,后来他又成了测试领域的一名黑 ...

  6. 在ASP.NET Core中使用Apworks快速开发数据服务

    不少关注我博客的朋友都知道我在2009年左右开发过一个名为Apworks的企业级应用程序开发框架,旨在为分布式企业系统软件开发提供面向领域驱动(DDD)的框架级别的解决方案,并对多种系统架构风格提供支 ...

  7. 云计算中的地域和可用区概念

    摘要: 简单来说,可以将地域理解为不同城市的机房,将可用区理解为同一个城市的不同机房 上一篇说数加的文章,很多同学向我吐槽说看不懂,里面有太多云计算的产品和概念,对于没有接触使用云计算的同学来说,确实 ...

  8. 云计算中存储继承知识

    云计算中存储继承知识 存储分为:内存和外存 内存:归类计算资源 外存:硬盘(磁盘) 硬盘:分为机械硬盘(HDD)和固态硬盘(SSD) 物理磁盘类型 SATA盘的全称是Serial Advanced T ...

  9. 云计算中的存储基础知识

    文章目录 前言 云计算虚拟化中的存储架构 虚拟化存储(从下往上看) 非虚拟化存储(从下往上看) 常见的物理磁盘类型 机械硬盘(hard disk drive,HDD) 工作原理 SATA盘 SAS接口 ...

最新文章

  1. 【数据挖掘】基于密度的聚类方法 - OPTICS 方法 ( 核心距离 | 可达距离 | 族序 )
  2. 面试题总结(21-40)
  3. How to use USB to do charger detection instead of PMIC?
  4. 把tomcat服务器配置为windows服务的方法
  5. datatables 无法 无法重新初始化datatable_伽巫塔罗:2020年9月运势占卜,摩羯没了热情,无法重新卡死...
  6. Intel Realsense D435 python 实战(一)
  7. 跟着书本重学CSS(1)
  8. vue3图片对比组件
  9. 信号理论: 信号集及其映射
  10. 软件测试-mocha入门
  11. CH7511BeDP转LVDS显示屏转接板CS5211电路图
  12. 国外的英文JAVA论坛
  13. 15个国外便宜主机介绍
  14. 关于个人对UART+DMA +串口空闲中断的理解与疑惑
  15. android studio 更换darcula主题中的字体颜色以及常用主题
  16. 男儿当杀人!!!!(诗一首)
  17. 前后端分离简单项目--蚂蚁博客--后端部分
  18. java简单的音乐播放器编程_简单实现java音乐播放器
  19. ListIterator
  20. expdp和impdp需要注意的地方

热门文章

  1. lcd屏和oled屏的优缺点 lcd屏和oled屏哪个省电
  2. 推荐美国简单的选项卡功能实现
  3. 机器学习-问答题准备(英文)-更新中
  4. 视频跟踪之光流算法简介
  5. php中文网线上视频,看php中文网视频课程的正确姿势!
  6. 创建恶意无线热点--Mdk3
  7. 【操作系统】互斥与同步,吃水果,吃巧克力问题(C++源码)
  8. 谷歌《元宇宙研究报告》、阿里《低代码实战》.pdf 开放下载
  9. js 时间转东八区_dayjs处理utc转换
  10. 基于JavaWeb的电影信息网站的设计