在云计算中实现安全、可伸缩、细粒度数据的访问控制
原文: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给出我们的方案中符号的描述。
系统设置 在这个操作中,数据所有者选择安全参数κ并调用算法层接口ASetup(κ),输出系统公共参数PK和系统主密钥MK。之后数据所有者标记每个组件PK并发送这些有签名的PK到云服务器。
创建新文件上传一个文件到云服务器之前, 数据所有者处理数据文件,如下所示。
•随机选择一个对称数据加密密钥DEK R←K,K是关键的空间,使用DEK加密数据文件;
•给数据文件定义一组属性I, 使用I、DEK、PK加密数据文件
即(˜E{ Ei }I∈) ←AEncrypt(I ,DEK, PK)。
新用户授予 当一个新用户想要加入系统时, 数据所有者分配一个访问结构和同步密钥给用户。该用户的密钥如下。
•给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)。
收到C,用户首先用私钥解密它。之后他还要验证签名δO,(P、SK、PK)。如果正确,他接受(P、SK、PK)作为他的访问结构、密钥, 和系统公钥。
文件删除 此操作只能在执行数据所有者的请求。删除一个文件,数据所有者发送文件的惟一ID和他的签名到云服务器。如果主人的签名的验证返回true,云服务器删除数据文件。
2) 算法级别操作:算法级别操作包括八个算法:ASetup、 AEncrypt、 AKeyGen、 ADecrypt、AUpdateAtt ,AUpdateSK, AUpdateAtt4File、和AMinimalSet。前四个算法和Setup、Encrypt、Key Generation,Decryption一样,我们把焦点放在后四个算法的实现上。图5 描述了两个的四个算法。
AUpdateAtt该算法更新属性到一个新的版本。重新定义了系统主密钥和公钥组件。在属性的旧版本和新版本之间它还输出代理重加密秘钥。
AMinimalSet该算法确定最小集合属性,最小集合属性对访问树来说是必须的。为了这个目的,它构建了访问树的合取范式(CNF),并返回CNF公式的最短条款中的属性作为最小属性集。
我们首先分析我们提出方案的安全性能, 从下面的可用的属性开始讲起。
1) 细粒度访问控制:在我们的提议方案,数据所有者能够定义和执行表达和灵活式的访问结构。具体来说, 每个用户的访问结构被定义为关于数据文件的属性一个逻辑公式,而且他可以代表任何期望的数据文件集。
3) 用户密钥问责:这个属性可以通过使用带有KP-ABE的增强结构立即获得。该结构过去常常用来公开钥匙滥用者的身份(id)。
现在我们分析我们的提议方案的数据保密性。通过加密安全给出证明。
游戏2:这个游戏用于我们提出的方案。这个游戏和第一场比赛之间唯一的区别是,在这个游戏中用户密钥组件的部分公开给对手。
值得注意的是, 我提议的方案的选择密文安全也可以同样证明。因为任何有A提交的解密二进制文件, 可以通过B转给Game0的挑战者。然后可以将答案转发给A。
证明:如前所述,在Game2中,额外的信息公开给对手。其中包含部分用户的秘钥。这部分用户密钥实际上是等价于Game1中对手的密钥查询。因此, 两场比赛,对手的观点是相同的,得证。
本节评估我们提议方案的性能。介绍了每个操作以及密文的大小的计算开销。
计算复杂性:我们分析计算以下六个操作的复杂性:系统设置、新文件创建,文件删除,新用户授予、用户撤销。
文件访问。在这个操作系统设置,数据所有者需要定义潜在的双线性组,并生成PK和MK。可正如III-A节中描述。通过N组对G1的乘法操作。介绍,PK和MK的主要计算开销。
2)密文大小:如图所示部分5-C,密文是由一个ID,head 和body组成。body是一个数据块。数据文件的header由一个属性集I、一组在G2上的元素,G1上|I |组元素组成。
现有工作接近我们可以发现领域的“共享加密文件系统”和“外包数据的访问控制”。
[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/.
[22] M. Atallah, K. Frikken, and M. Blanton,“Dynamic and efficient
在云计算中实现安全、可伸缩、细粒度数据的访问控制相关推荐
- 什么是HADOOP、产生背景、在大数据、云计算中的位置和关系、国内外HADOOP应用案例介绍、就业方向、生态圈以及各组成部分的简介(学习资料中的文档材料)
1. HADOOP背景介绍 1. 1.1 什么是HADOOP 1. HADOOP是apache旗下的一套开源软件平台 2. HADOOP提供的功能:利用服务器集群,根据用户 ...
- 数据安全审计_使用数据级安全性对InfoSphere Guardium中的审计结果进行细粒度访问控制
数据安全审计 数据级安全性对职责分离的重要性 处理数据的组织需要关注遵守不同程度的职责分离强制执行情况. 这意味着要确保没有多人参与和审查就无法完成任务,因为欺诈和人为错误的可能性较小. 这就是为什么 ...
- 云计算中可用的服务种类,主要可以划为哪几类?
云计算的"云"源于绘制互联网的网络图表时的一个习惯--会将其画成一朵云. 最受认同的关于云计算含义的解释是,在一个商业供应者的数据中心上通过互联网远程运行工作负载--也就是所谓的& ...
- 云计算 | 中国信通院《2022 云计算白皮书》阅读、理解与总结
云计算 | 中国信通院<2022 云计算白皮书>阅读.理解与总结 前言 1. 云计算市场 1.1 国内外云计算市场现状对比 1.2 2021年国内公有云与私有云市场对比 1.3 国内公有云 ...
- 提高云计算中的软件质量
为什么80%的码农都做不了架构师?>>> Gavlin Pather在俄罗斯的KZN长大,在那里他学习信息技术并开始了作为一名开发者的职业生涯,后来他又成了测试领域的一名黑 ...
- 在ASP.NET Core中使用Apworks快速开发数据服务
不少关注我博客的朋友都知道我在2009年左右开发过一个名为Apworks的企业级应用程序开发框架,旨在为分布式企业系统软件开发提供面向领域驱动(DDD)的框架级别的解决方案,并对多种系统架构风格提供支 ...
- 云计算中的地域和可用区概念
摘要: 简单来说,可以将地域理解为不同城市的机房,将可用区理解为同一个城市的不同机房 上一篇说数加的文章,很多同学向我吐槽说看不懂,里面有太多云计算的产品和概念,对于没有接触使用云计算的同学来说,确实 ...
- 云计算中存储继承知识
云计算中存储继承知识 存储分为:内存和外存 内存:归类计算资源 外存:硬盘(磁盘) 硬盘:分为机械硬盘(HDD)和固态硬盘(SSD) 物理磁盘类型 SATA盘的全称是Serial Advanced T ...
- 云计算中的存储基础知识
文章目录 前言 云计算虚拟化中的存储架构 虚拟化存储(从下往上看) 非虚拟化存储(从下往上看) 常见的物理磁盘类型 机械硬盘(hard disk drive,HDD) 工作原理 SATA盘 SAS接口 ...
最新文章
- 【数据挖掘】基于密度的聚类方法 - OPTICS 方法 ( 核心距离 | 可达距离 | 族序 )
- 面试题总结(21-40)
- How to use USB to do charger detection instead of PMIC?
- 把tomcat服务器配置为windows服务的方法
- datatables 无法 无法重新初始化datatable_伽巫塔罗:2020年9月运势占卜,摩羯没了热情,无法重新卡死...
- Intel Realsense D435 python 实战(一)
- 跟着书本重学CSS(1)
- vue3图片对比组件
- 信号理论: 信号集及其映射
- 软件测试-mocha入门
- CH7511BeDP转LVDS显示屏转接板CS5211电路图
- 国外的英文JAVA论坛
- 15个国外便宜主机介绍
- 关于个人对UART+DMA +串口空闲中断的理解与疑惑
- android studio 更换darcula主题中的字体颜色以及常用主题
- 男儿当杀人!!!!(诗一首)
- 前后端分离简单项目--蚂蚁博客--后端部分
- java简单的音乐播放器编程_简单实现java音乐播放器
- ListIterator
- expdp和impdp需要注意的地方