邵志毅, 杨 波, 张文政
(1.陕西师范大学 图书馆, 陕西 西安 710119;2.陕西师范大学 计算机科学学院,陕西 西安710119;3.保密通信重点实验室,四川 成都 610041;4.信息安全国家重点实验室, 北京 100093)
云计算环境下的安全
邵志毅1,2,3,4, 杨 波2,3,4, 张文政3
(1.陕西师范大学 图书馆, 陕西 西安 710119;2.陕西师范大学 计算机科学学院,陕西 西安710119;3.保密通信重点实验室,四川 成都 610041;4.信息安全国家重点实验室, 北京 100093)
云计算给人们的工作生活带来了不可比拟的便利,然而安全问题是其优势进一步发挥的最大障碍。文章对云计算的特点进行了分析,从云计算的三层架构和内容层次对安全问题进行了深入讨论,着重探讨了可搜索公钥加密和外包数据完整性验证的研究现状以及存在的问题。
云计算安全;可搜索公钥加密;数据完整性验证
云计算是一种新型的计算机和网络的软、硬件资源管理、调度和获取模型。云服务提供商将诸如CPU、存储、网络、软件等计算资源统一放置在资源池中进行分类管理,并针对不同的终端用户进行统一调度。终端用户根据自己的业务需要,向云服务提供商申请资源,并按照资源的申请数量或实际使用情况进行支付。通过云计算,用户以最小的代价,享受到便捷的、弹性的计算资源获取;云服务提供商则以最少的成本、最高效的方式实现大规模计算资源的统一管理、调度。这是美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)对云计算的定义[1]。这一定义描述了云计算的5个关键特点、4个部署方式、以及3个服务模型[2]。5个关键特点[3-4]是(1)在线自服务:终端用户通过网络接口进行资源的请求、获取,该过程无需与云服务提供商交互;(2)泛在资源获取:终端用户可以使用笔记本、移动电话等各种智能设备获取资源;(3)资源池化:云服务提供商将各种计算资源集中管理、调度,终端用户无需知晓具体的物理设备;(4)弹性服务:终端用户根据需要,随时随地的进行计算资源的动态申请或撤销;(5)计量服务:云服务提供商对终端用户的资源使用情况进行监控,以便计量收费;收费的另一种实现方式是按照资源的申请数量计算。云计算的4种部署模型[5]包括:(1)私有云(Private Cloud):云计算资源部署在某一个单位内部,供单位内部统一管理和调度。私有云可有效将单位内部的云环境和单位外部环境隔离,在一定程度上保护了单位用户的数据安全;(2)公共云(Public Cloud):云计算资源在整个网络中共享,不限定终端用户类型,各类用户共享云计算资源。国外著名的公共云有亚马逊的Amazon EC2、IBM的Blue Cloud、谷歌的AppEngine、Goole Drive、微软的Azure等;国内著名的公共云服务提供商有阿里巴巴、腾讯、华为、京东等。公共云的服务提供商是独立机构,其不可完全被信赖性一直以来都是云安全问题产生的重要原因。(3)社区云(Community Cloud):云计算资源是在若干个组织之间共享,比如学校和学校之间、企业和企业之间,因此终端用户是以机构的形式存在;(4)混合云(Hybrid Cloud):按照以上3种部署方式任意组合、取长补短。云计算的3种服务模型[6]包括:(1)软件即服务(Software as a Service,SaaS);(2)平台即服务(Platform as a Service,PaaS),(3)基础设施即服务(Infrastructure as a Service,IaaS)。对应的可以将云计算平台分为三个层次:SaaS层、PaaS层、以及IaaS层。SaaS层对终端用户来讲是一种软件租用的服务模式。云服务提供商将软件安装在云服务器上,用户通过网络浏览器等接口租用软件的使用权,其实质是对计算资源的租用。IaaS层的主要任务是对计算能力、存储能力、网络能力的虚拟化,以及对计算资源的调度。PaaS层介于SaaS层和IaaS层之间,是分布式环境的管理平台,它屏蔽了IaaS层的可见性,但是又为Web应用程序提供了可靠性、可扩展性等。云计算代表着计算能力和存储能力飞跃式的提升,终端用户因此能够以更少的投入按需获取更多的计算或存储能力[7]。
云计算为人们提供了诸多便利,如节约成本、提高资源利用率、弹性资源获取、服务不受时空限制、风险转移等[8-11]。虚拟化技术(Virtualization)、格计算技术(Grid Computing)、以及源于服务的体系结构(Service-Oriented Architecture,SOA)等伴随云计算一起发展,并成为云计算走向成功必不可少的技术[12]。然而,诸如数据隐私以及数据完整性等突出的安全问题使得庞大的用户群对云计算的使用心有余悸,这一直都是阻碍云计算取得更大成功的关键。这些安全问题产生的一个根本原因在于云服务提供商相对终端用户来讲,是一个外部的、独立的实体,终端用户和云服务提供商处在不同的安全域中;而且,终端用户通常不再对外包数据从物理上进行存储、控制[13]。云计算中,唯一能够保证用户权益的合法文件是云服务提供商和用户之间签署的服务等级协议(Service Level Agreements,SLA)[14]。然而,诸如此类的协议,对云服务提供商仅仅是一种约束,无法完全保证用户数据的安全,因为恶意的云服务提供商会出于经济利益或政治需求,在用户不知情的情况下窥视用户数据。在这种情况下,即便云计算能够给用户带来不可比拟的好处,用户也无法安心的将数据或计算外包给云服务提供商。因此数据安全和隐私是云计算需要解决的关键问题。
1.1 三层架构上的安全划分
云计算的安全可以从三层服务架构上来划分,分别是SaaS层的安全、PaaS层的安全、以及IaaS层的安全。但这种划分方式是比较模糊的,因为有些安全是某一层特有的,有些安全则是三层共有的。粗略的讲,SaaS层中的安全主要是云计算用户对云服务提供商的信任安全,具体的包括数据安全、网络安全、系统安全、鉴别与授权、访问控制、业务连续性等。PaaS层主要是要提供一个安全的运行平台以及为用户提供安全的编程接口,其安全包括设备和设备之间、进程和进程之间的安全通信和信息传递。IaaS层为用户提供网络、计算、存储等基础性资源,因此这一层的关键问题主要是硬件设施的安全和环境安全等。在不同层次中,数据安全、访问控制、通信安全等实际上是各个层次共有的安全特征。
1.2 内容上的安全划分
云计算的安全也可以从内容上进行划分,包括外包数据安全、外包计算安全、访问控制、可信的服务计量、多租赁环境下的安全、可信云计算和安全的服务等级协议等。
外包数据安全,又包括数据的机密性和数据的完整性。在云环境中,用户数据的存储有明文和密文两种形式。如果以明文形式存储,云服务器可以代替用户进行相应的操作,从而减轻用户的负担;但是,云服务提供商可能出于各种利益刺激,窥探用户数据,这对用户隐私造成了威胁。对数据进行加密,然后再外包给云服务器,这可以有效保护数据隐私,但同时也阻碍了云服务器对用户数据进行操作。所以,针对不同的应用需求设计相应的安全协议成为云计算的研究热点。在云计算的诸多应用中,关键字搜索是最基本的应用需求。传统的关键字搜索是针对明文的,在云计算环境下,如何针对密文进行关键字搜索成为近些年的研究热点,随之形成的一个研究方向即为可搜索加密[15-16]。与数据机密性相对应的是数据的完整性[17-18]。用户之所以将数据外包给云服务器,一个重要原因就是数据量太大,因此用户进行数据完整性验证时无法采取先下载数据,然后再验证的方式。因为云计算环境中的资源使用是要计费的,大量计算资源的消耗对用户来讲是无法容忍的。当数据外包后,用户如何能够在不需要下载数据的情况下完成完整性验证就成为了研究关键。而且,为了提高验证效率,用户可能将该任务外包给第三方,因此如何在不解密的条件下对加密数据进行完整性验证是保护用户隐私的关键。
外包计算安全[19]。对于明文数据,云服务器很容易代替用户进行计算,从而最大限度的发挥云计算的优势。然而隐私问题是其优势发挥的最大障碍。但是数据经过加密,将失去很多明文数据享有的可操作性。虽然全同态加密[20](Fully Homomorphic Encryption,FHE)可以解决这一问题,但是因其无法被承受的计算开销,这一技术一直停留在理论研究中,很难实用。因此,针对不同的计算操作,如何有针对性的设计具体的、高效的、实用的安全计算协议,成为外包计算的关键。这一问题通常是从安全多方计算的角度展开研究[21]。而且,如何让用户确信云服务器能够正确的进行计算[22],也是需要解决的另一个关键问题。
访问控制。传统的访问控制的做法是,用户将数据保存在服务器上,然后在服务器上进行设置,从而实现不同终端用户针对同一数据的不同访问权限,但这里的用户和服务器处于同一个安全域。而在云计算环境下,用户数据是外包给云服务提供商的。云服务提供商和用户处于不同的可信域,这就使得传统的访问控制方式无法直接应用在云计算中。解决这一问题的最简单、最直接的方式就是对数据进行加密。例如针对不同权限的用户进行差分式的数据加密,然后将加密密钥分发给相应的用户。然而当终端用户数量较大时,这一方法会造成资源的严重浪费。因此,如何在对数据进行一次加密的情况下同时实现对不同用户的访问控制,是云计算环境下进行访问控制的关键[23]。同时,如何对用户权限进行更新也是研究的重要内容。
可信服务计量[24]。云计算的一个很大特点是用户可以按需向云服务提供商申请资源,云服务提供商按照用户的资源使用情况或者申请数量进行收费。如IBM是以用户的使用时间计费,Google是以用户使用的CPU时钟周期总数计费,这些计费方式都是Pay-Per-Use的。国内的腾讯云是按照用户的资源申请量进行计费的。针对前一种方式存在两个问题。(1)云服务器内部的架构和使用情况对用户来讲是完全透明的,因此用户无法获悉自己到底使用了多少计算资源;(2)终端用户共享云服务器的基础资源,而诸如网络带宽、I/O、内存等许多资源是没有办法完全在终端用户间隔离的,因此对资源的使用存在或多或少的相互影响,这就使得对用户的计费存在偏差。所以,如何实现让用户信赖的收费计量是终端用户关心的一个实际问题。
多租赁环境下的安全。公共云是一个开放的环境,用户类别多样,并且共享云服务商提供的硬件基础设施。云服务提供商对用户提供服务是通过虚拟化技术实现的,这就为用户的隐私安全留下了隐患[24]。近期的一些研究结果表明,攻击者可以通过侧信道攻击等方式,成功推测出云服务提供商的资源分配策略,并且在同样的物理设备上成功模拟了同样的应用实例。攻击者就可以通过分析该过程中的数据传递模式和其他的信道信息,从而获取用户或者云服务器的相关隐私。然而,现阶段针对该问题的研究还比较少。
可信云计算[25]。随着云计算的发展,一部分研究者们认为单纯的使用软件的方式已经无法解决云计算中的安全问题,因此从硬件安全芯片的角度展开研究,从而提出可信云计算。
云计算的服务等级协议。这一内容主要是结合云计算技术从法律、政策等角度进行研究[26-27]。该内容在国外的研究较多,但国内尚属初步。
下面主要对外包计算安全中的可搜索公钥加密以及外包数据安全中的外包数据的完整性验证进行讨论。
2.1 从应用场景角度的研究
云计算环境中,用户将自己的数据保存在云服务器上,从而实现数据在不同用户之间的共享,这样可以将用户从繁杂的存储管理中解脱。而且,云存储给用户提供了许多前所未有的便利性,如存储不受地域限制、无限存储能力的获取、安全风险的转移等[9-10, 28]。然而出于经济利益或政治因素,云服务提供商无法完全被用户信任,他们可能在用户不知情的情况下窥视用户数据。面对这个问题,用户更希望在外包数据到云服务器之前,先对数据加密,再将加密后的密文数据外包给云服务器。对数据加密可以在一定程度上解决数据的隐私问题,但是却给数据操作带来了诸多不便,因为加密后的数据将失去明文数据的可操作性。一个最常见的操作是用户挑选关键字,让服务器帮其检索包含有该关键字的密文文件。这种应用中,可搜索加密扮演了重要角色。
第一个实用的可搜索加密方案是Song等人[29]提出来的,该方案中数据拥有者对数据加密,再将加密后的数据文件存储在服务器上。当数据拥有者想要找出包含有某个指定关键字的文件时,数据拥有者先对该关键字加密,再将关键字密文发送给服务器。这样以来,服务器就无法获知数据拥有者希望搜索的关键字是什么。服务器再将这个加密后的关键字和整个文件中的所有单词进行比较,最终找出包含有该关键字的相应文件,并返回给数据拥有者。Song等人解决了对密文数据的搜索问题,但是他们的方案中只存在一个用户,该用户发布关键字询问,并接收服务器返回的搜索结果。可以认为该用户即是数据拥有者,又是文件接收者。Song的方案是在对称密钥加密环境下完成的。
第一个公钥环境下的可搜索加密方案是由Boneh等人[30]在2004年提出来的。Boneh的方案是以邮件的存储转发进行描述的。多个发送者给同一个接收者发送邮件,这些邮件被一个邮件服务器通过存储转发的方式发送给同一个接收者。所有邮件内容都是使用邮件接收者的公钥加密的,使用的是普通的公钥加密方案。对于每一个发送给接收者的邮件,邮件发送者都要选取若干个关键字来描述邮件内容,并且使用可搜索的公钥加密方案(Public Key Encryption with Keyword Search, PEKS)对这些关键字进行加密。当接收者想要检索一个包含有某个关键字的邮件时,接收者首先针对该关键字生成一个关键字陷门,然后将关键字陷门发送给服务器。关键字陷门的生成过程实际上是一种特殊的加密过程。服务器使用这个关键字陷门,在自己存储的关键字密文中进行搜索,如果找到相应的关键字,则将该关键字对应的文件返回给接收者。通过这种方式,服务器即能将包含有特定关键字的邮件返回给接收者,而且接收者还可以保证服务器无法获知自己想要搜索的关键字内容。这样就从一定程度上保护了接收者的邮件内容的隐私。Boneh的应用场景,可以被看做多个数据拥有者(即多个邮件发送者)和单个数据接收者(即邮件的接收者)的场景。数据拥有者将加密后的密文文件和相应的关键字密文一起保存在服务器上,接收者向服务器提出关键字的搜索请求,并接收服务器的搜索结果。
在Song和Boneh等人的工作基础上,出现了具有不同功能的可搜索加密方案。Colle等人首次提出了支持连接关键字的搜索[31];Boneh等人实现了密文上的连接搜索、子集搜索、以及范围搜索[32];Moataz等人实现了密文上的诸如合取、析取、求返等布尔操作[33];Li等人首次提出了密文上的模糊的关键字搜索,他们的方案支持用户在发出搜索请求时的关键字拼写错误等[34];Wang等人根据被检索关键字和返回文件之间关系的紧密程度,实现了对搜索结果的排序[35];Rhee等人首次从语义安全的角度形式化了关键字陷门的安全[36]等等。所有这些工作都是从扩展可搜索加密的功能方面展开的。然而实际应用中,不同应用场景下的相关研究也是非常重要的[37]。Song等人的应用场景是单数据拥有者、单数据接收者、单服务器,并且数据拥有者和数据接收者是同一个用户;Boneh等人的应用场景是多数据拥有者、单数据接收者、单服务器,通常情况下,数据拥有者和数据接收者属于不同用户。
在云计算环境下的文件共享系统中,一个文件的拥有者想要将自己的文件和n个文件的接收者进行共享,这n个接收者是指定好的。数据拥有者为了文件的隐私安全,首先对文件加密,然后将加密后的文件保存在云服务器上。如果数据拥有者使用传统的可搜索加密方案对关键字进行加密,则对于这n个接收者来说,数据拥有者需要对同一个关键字生成n个不同的关键字密文。这不仅浪费了大量的云存储空间,而且会占用大量的通信资源。在云计算环境中,对存储、带宽等资源的使用是按使用情况计费的,这样的资源消耗,在大量共享用户存在的情况下是不能被接受的[7, 15, 38]。因此,希望能够有支持多个接收者的可搜索加密方案,在这种方案中,即便存在多个共享用户,但对同一个关键字只需要生成一个关键字密文即可。这种应用环境可以被看做是单数据拥有者、多数据接收者、单服务器的场景。
在多用户的应用场景下,Curtmola等人首次给出了多用户的可搜索加密方案的定义[39],他们的研究是在对称密钥加密环境下展开的。在Curtmola的方案中,任意用户可搜索共享文件,并不局限于数据拥有者自身。Bao等人引入了一个可信方,通过这个可信第三方为所有用户生成数据加密密钥、以及关键字加密密钥等[40]。这个可信方扮演的角色实际上是和公钥加密环境中的公钥基础设施类似。如果让该可信方为所有的用户生成数据加密的密钥,其安全性该如何保证是一个关键问题。而且Bao的方案中,用户需要和服务器以及可信方进行多轮交互。Zhao等人针对多用户的可搜索加密,提出具有细粒度访问控制功能的可搜索加密[41]。为了减少服务器的计算量,该方案对服务器的搜索范围进行了限制,只在那些用户可以解密的文件中去搜索。这种提高服务器计算效率的方法在某些场景中是合理的,而且是高效的。然而,如果服务器上保存着某些文件,这些文件是用户需要的,但是用户却无法解密,该怎么办呢?如果使用Zhao的方案,所有这些用户需要但无法解密的文件是不会被搜索出来的,这在某些场景中是不合情理的。尽管用户无法解密这些文件,但用户可以和文件的拥有者协商来获取文件,比如有偿获取或者有条件获取等。用户关注的问题是这样的文件是否存在。所以,在这种应用场景和需求中,关键问题不是用户能否解密文件,而是用户能否确认文件的存在性。
如上所述,在对称加密环境中,已经存在一些支持多用户的可搜索加密方案,但在公钥环境下的支持多用户的可搜索加密方案确寥寥无几。具有代表性的是Hwang等人的工作[42]。但是Hwang等人的方案却存在诸多缺陷,如只满足关键字密文安全,不能保证关键陷门安全;关键字密文的长度和共享用户的数量成线性关系,在大量用户共享的场景中无法实用;不支持对共享用户的访问控制等。现有的支持用户的访问控制的方案中,大多是将对称的可搜索加密方案和基于属性的或者基于身份的加密结合起来实现的,因此方案设计较为复杂,而且计算量较高。如何能够在不使用属性基或身份基的加密的情况下实现可搜索加密的访问控制也是一个值得关注的研究内容。
2.2 从安全角度的研究
可搜索公钥加密是Boneh等人提出来的[30],在这个方案中用户通过一个服务器向接收者发送邮件。邮件内容是使用一个普通的加密方案进行加密的。为了服务器能够在接收者的请求下检索包含某个特定关键字的邮件,而且不能让服务器得知接收者希望检索的是什么关键字,这就需要使用一个被称为带关键字搜索的公钥加密,即PEKS(Public Key Encryption with Keywords Search )对邮件关键字进行加密。邮件接收者针对自己想要搜索的邮件,选择一个恰当的关键字,并且针对该关键字生成一个关键字陷门,再将该关键字陷门发送给服务器,以便服务器使用该关键字陷门帮助接收者搜索出相应的邮件。PEKS对安全的要求是,尽管敌手可以获得任何关键字的陷门,但是敌手仍然不能区分哪一个关键字密文是对哪一个关键字的加密。这种安全被称为IND-CKA (Indistinguishability against the Chosen Keyword Attack)安全。
然而PEKS方案要求在服务器和接收者之间存在一个安全信道。为了取消对安全信道的依赖,Baek等人提出了dPEKS(Designated Verifier PEKS)[43],也被称为指定验证者或者指定测试者的可搜索公钥加密。在dPEKS方案中,只有那些拥有相应私钥的服务器才可以运行测试算法,从而确定哪个关键字密文是和哪个关键字陷门相关的。本文所说的相关是指关键字密文和关键字陷门都是对同一个关键字生成的。这种安全并不能保证敌手无法得知关键字陷门对应的关键字,因为敌手可以通过猜测或者穷举的方法猜出关键字。
最近,Byun等人证明了在dPEKS方案中,一个敌手可以从关键字陷门中获得相应的关键字,方法是一种被称为离线关键字猜测的攻击,即Off-line Keyword Guessing Attacks或KG Attacks[44]。离线关键字猜测攻击利用了这样一个事实,即关键字通常是从一个相对较小的空间中选取出来的,所以关键字的熵比较小。攻击者就可以遍历整个关键字空间,通过一个一个检测的方式,从而推断出哪一个关键字和得到的关键字陷门满足某一个特定的关系,或者说满足某一个特定的方程,最后成功的猜测出关键字。Byun等人已经证明了使用这种方式猜测出关键字的概率是不可忽略的,所以这就激发了众多的研究者解决这样一个安全问题。
在众多解决方案中,一个出色的解决办法是关键字陷门的不可区分性,即Trapdoor Indistinguishability,这是由Rhee等人提出来的[45,36]。Rhee等人还证明了关键字陷门的不可区分性是抵抗离线关键字猜测攻击的一个充分条件。Rhee等人的方案是在随机寓言机模型下完成的,而且敌手没有办法进行dTest询问,这就无形中限制了敌手的能力。
所以Fang等人对Rhee等人的安全模型进行了改进,并且提出了IND-KGA[46](Indistinguishability against Keyword Guessing Attacks)安全。IND-KGA安全可以保证一个外部敌手,即并非服务器也并非接收者,无法通过离线关键字猜测的方式从关键字陷门中推测出关键字。Fang等人的方案满足了更强的安全性。离线关键字猜测攻击的敌手是服务器的这一安全问题仍然未得到解决,但是服务器是直接和发送者、接收者进行交互的。如果针对服务器的安全问题无法解决的话,那么经由服务器存储转发的邮件根本谈不上安全可言。所以针对服务器的安全直接影响着用户邮件的隐私安全。在云计算中,云服务器是无法收到用户的完全信赖的,所以传统方案中对敌手的假设在云计算中不再适用,设计能够抵抗服务器的离线关键字猜测攻击的可搜索加密方案是一个亟待解决的安全问题。
云计算的众多安全问题中,数据完整性验证是比较关键的一个。当用户将自己的数据存储在云服务器上后,就常常不再从物理上保存和控制自己的原始数据。尽管加密可以保护数据隐私[47-48],但是用户并不能确定在想要访问自己数据的时候,这些数据是否还完好的保存着[49]。这原本是一个数据完整性检测的问题[50],然而正是由于用户自己不再从物理上拥有并控制自己的原始数据,这个问题变得更加复杂[17, 51-56]。如果按照传统的方法进行数据的完整性验证,则需要用户将整个被检测数据从云服务器下载到本地客户端进行检测,或者通过验证数据的签名(比如RSA签名[57])或哈希值(比如MD5[58])来完成。这种方法肯定可以完成数据的完整性验证,但是消耗的网络资源和计算量是无法承受的[51],尤其对于一个计算能力比较弱的客户来说。更重要的是,在云计算环境下,用户的计费是根据资源的使用情况产生的,资源占用越多,就意味着需要付出更多的资金,当数据量大的时候,这显然是不能接受的。用户之所以使用云计算,不仅是因为方便,更重要的是为了解决资源不足的问题。因此保存在云端的数据量非常庞大,这就使得传统的完整性验证方式不适合在云计算环境中应用。
在云计算环境下,如何能够在不用下载原始数据的情况下就可以对用户数据作出完整性的判断就成为了一项具有挑战性的工作。
首次提出来在不需要对原始数据进行下载的情况下完成用户数据完整性验证的是Ateniese等人[51],其解决方案为数据的拥有性证明(Provable Data Possession,PDP)。在数据的拥有性证明中,用户将数据存储在一个远程服务器中,这个服务器是不被信任的,任何一个验证者都可以检测用户的数据完整性。Ateniese提出了同态认证标签(Homomorphic Authenticator Tag)技术,该技术是基于RSA数字签名的。在数据的拥有性证明中,验证者可以公开验证用户数据的完整性,而且不需要下载用户的原始数据,这种能力被称为可公开验证性,或者称为可公开审计性。但是Ateniese等人的技术只适用于静态数据的完整性验证,不能支持数据的动态变化。为了对动态数据进行完整性的验证,Ateniese等人又提出了基于对称密钥的高效数据拥有性证明方法[59]。该方法可以支持用户数据的更新和删除操作,但是不能支持用户数据的添加操作。因为这个方案是基于对称密钥加密的,所以不能支持公开验证性,而且只能支持用户的有限次的数据完整性验证请求。Wang等人使用Merkle哈希树和BLS签名的方法实现了对动态变化的数据的公开完整性验证[54]。Erway等人通过使用认证词典实现了动态数据的数据拥有性证明(DPDP)[60],该认证词典是基于相关的排序信息构造的。为了减少公开审计方案中对数字签名的存储,Zhu等人提出了碎片结构[61-62],对于数据的动态操作是使用索引哈希表来实现的。Wang等人通过引入随机混淆的技术实现了用户数据针对公开验证者的安全问题[55],而且通过使用聚集签名[63]成功的实现了对来自不同用户的多个审计任务的批量操作,从而提高了效率。Zhu等人在私有云和公共云同时存在的情况下实现了数据的拥有性证明[64]。Curtmola等人在多个服务器存在的情境下实现了用户数据的拥有性证明[65],随后还将数据的拥有性证明和错误校验码结合起来,实现了更加健壮的远程数据完整性检测[66]。在多服务器、基于纠错码的数据分发场景下,Wang等人利用同态认证标签保证了方案的正确性,而且所提方案可以指出哪个服务器是有问题的[67]。传统的多服务器场景下的数据正确性审计多是建立在纠错码的基础上,Chen等人首次引入了网络编码来替代纠错码[68]。随后Cao等人利用LT码构造安全可信的云存储机制,而且减少了用户解码时候产生的计算量[69]。Bowers等人也实现了多个服务器场景中的数据拥有性证明[70]。Zhu等人利用同态可验标签和哈希索引分层的技术在多个云存在的情况下提出了相互协作的数据拥有性证明[71]。在多用户的数据分享机制中,用户成员组中的用户可能是动态变化的,Liu等人针对成员动态变化的问题建立了多用户的数据分享机制[72]。
和PDP相比较,数据的可恢复性证明PoR(Proof of Retreivability)[73]是另外一个对远程数据进行完整性验证的技术。该技术对每一个数据块附加一个哨兵块(Sentinel),在进行完整性检测的时候,用户提出对相应数据块的哨兵块进行验证请求,通过检验服务器返回的哨兵值来判断用户数据是否具备完整性。Shacham和Waters[17]借助同态性质和BLS签名实现了数据的可恢复性证明,此方案是和纠删码一起使用的,从而使得在数据完整性被破坏的情况下能够及时的恢复出原始数据。
在云计算中,传统的完整性验证方案中都需要有大量的双线性映射操作,而这些操作通常来说对计算资源的消耗是比较大的。用户的计算能力和云服务器相比可能是非常弱的,因为这些用户使用的设备可能是移动手机、传感器、或其它计算能力非常有限的设备。如何能够在不需要下载原始数据的情况下进行完整性验证,同时又能尽可能的减少用户的计算量就显得非常的重要。而且在公开验证方案中的安全问题也是需要关注的。
分析了云计算的特点,从云计算的三层架构和内容层次对云环境中的安全问题做了深入探讨。以云计算中较为重要的两个研究内容可搜索公钥加密和外包数据的完整性验证为例,深入研究了现阶段取得的研究成果以及存在的问题。
[1] Mell P, Grance T. The NIST definition of cloud computing [S/OL]. (2011-10-25)[2015-01-20].http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
[2] Sasikala P. Research challenges and potential green technological applications in cloud computing [J]. International Journal of Cloud Computing, 2013, 2(1): 1-19.
[3] Sidhu J S S. Security in Computing and Communications [M]. Springer Berlin Heidelberg, 2014.
[4] 徐达宇. 云计算环境下资源需求预测与优化配置方法研究 [D]. 合肥:合肥工业大学, 2014.
[5] An M, Lee H. Design of the integrated logistics information system based on cloud computing [J]. Lecture Notes on Software Engineering, 2015, 3(1): 31-34.
[7] Armbrust M, Fox A, Grifftth R, et al. A view of cloud computing [J]. Communications of the ACM, 2010, 53(4): 50-58.
[8] O’driscoll A, Daugelaite J, Sleator R D. ‘Big data’, hadoop and cloud computing in genomics [J]. Journal of Biomedical Informatics, 2013, 46(5): 774-781.
[9] Manvi S S, Shyam G K. Resource management for infrastructure as a service (IaaS) in cloud computing: a survey [J]. Journal of Network and Computer Applications, 2013(41):424-440.
[10]Mauch V, Kunze M, Hillenbrand M. High performance cloud computing [J]. Future Generation Computer Systems, 2013, 29(6): 1408-1416.
[11]Miao S, Li Z, Qu W, et al. Progressive transmission based on wavelet used in mobile visual search [J]. International Journal of Embedded Systems, 2014, 6(2/3): 114-123.
[12]Fernando N, Loke S W, Rahayu W. Mobile cloud computing: a survey [J]. Future Generation Computer Systems 2013, 29(1): 84-106.
[13]Ren K, Wang C, Wang Q. Security challenges for the public cloud [J]. IEEE Internet Computing, 2012, 16(1): 69-73.
[14]Puthal D, Sahoo B P S., Mishra S, et al. Cloud computing features, issues and challenges: a big picture [C]//IEEE Computational Intelligence, Jeju, Korea, 2015: 116-123.
[15]Cao N, Wang C, Li M, et al. Privacy-preserving multi-keyword ranked search over encrypted cloud data [J]. IEEE Transactions on Parallel And Distributed Systems, 2014, 25(1): 222-233.
[16]方黎明. 带关键字搜索公钥加密的研究 [D].南京: 南京航空航天大学, 2012.
[17]Shacham H, Waters B. Compact proofs of retrievability [J]. Journal of Cryptology, 2013, 26(3): 442-483.
[18]王博洋. 关于云端群组数据完整性验证的研究 [D].西安: 西安电子科技大学, 2014.
[19]Wei L, Zhu H, Cao Z, et al. Security and privacy for storage and computation in cloud computing [J]. Information Sciences, 2014, 258: 371-386.
[20]Gentry C. Fully homomorphic encryption using ideal lattices [C]//ACM STOC, Washington, DC, USA, 2009: 169-178.
[21]Chen X, Susilo W, Li J, et al. Efficient algorithms for secure outsourcing of bilinear pairings [J]. Theoretical Computer Science, 2015, 562: 112-121.
[22]Gennaro R, Pastro V. Verifiable computation over encrypted data in the presence of verification queries[J/OL].[2015-02-20].http://eprint.iacr.org/2014/202.
[23]Yuan Q, Ma C, Lin J. Fine-grained access control for big data based on CP-ABE in cloud computing [C]//Spring ICYCSEE, HeiLongJiang, China, 2015: 344-352.
[24]Fernandes D A B, Soares L F B, Gomes J V, et al. Security issues in cloud environments: a survey [J]. International Journal of Information Security, 2014, 13(2): 113-170.
[25]罗东俊. 基于可信计算的云计算安全若干关键问题研究 [D]. 广州:华南理工大学, 2014.
[26]Kandukuri B R, Paturi V R, Rakshit A. Cloud security issues [C]// IEEE SCC, Bangalore, India, 2009: 517-520.
[27]Rane D, Sarma M. Cslat: An SLA template for cloud service management [J]. International Journal of Communication Networks and Distributed Systems, 2015, 14(1): 19-39.
[28]O’driscoll A, Daugelaite J, Sleator R D. Big data, hadoop and cloud computing in genomics [J]. International Journal of Information Mangement, 2013, 46(5): 774-781.
[29]Song D X, Wagner D, Perrig A. Practical techniques for searches on encrypted data [C]//IEEE S&P, Berkeley, CA, USA, 2000: 44-55.
[30]Boneh D, Crescenzo G D, Ostrovsk Y R, et al. Public key encryption with keyword search [C]//IACR Eurocrypt, USA:2004: 506-522.
[31]Golle P, Staddon J, Waters B. Secure conjunctive keyword search over encrypted data [C]// NIST ACNS, Yellow Mountain, China, 2004: 31-45.
[32]Boneh D, Waters B. Conjunctive, subset, and range queries on encrypted data [C]//IACR TCC, Amsterdam, The Netherlands, 2007: 535-554.
[33]Moataz T, Shikfa A. Boolean symmetric searchable encryption [C]//ACM ASIACCS, Hangzhou, China, 2013: 265-276.
[34]Li J, Wang Q, Wang C, et al. Fuzzy keyword search over encrypted data in cloud computing [C]//IEEE INFOCOM, San Diego, CA, USA, 2010: 1-5.
[35]Wang C, Cao N, Li J, et al. Secure ranked keyword search over encrypted data in cloud computing [C]//IEEE ICDCS, Genova, Italy, 2010: 253-262.
[36]Rhee H S, Park J H, Susilo W, et al. Trapdoor security in a searchable public-key encryption scheme with a designated tester [J]. Journal of Softwar and Systems, 2010, 83(5): 763-771.
[37]沈志荣, 薛巍, 舒继武. 可搜索加密机制研究与进展 [J]. 软件学报, 2014, 25(4): 880-895.
[38]Anselmi J, Ardagna D, Lui J, et al. The economics of the cloud: price competition and congestion [J]. ACM SIGMETRICS Performance Evaluation Review, 2014, 41(4): 47-49.
[39]Curtmola R, Garay J, Kamara S, et al. Searchable symmetric encryption: improved definitions and efficient constructions [C]// ACM CCS, Alexandria, VA, USA, 2006: 79-88.
[40]Bao F, Deng R H, Ding X, et al. Private query on encrypted data in multi-user settings [C]// Spring ISPEC, Australia, 2008: 71-85.
[41]Zhao F, Nishide T, Sakurai K. Multi-user keyword search scheme for secure data sharing with fine-grained access control [C]//KIISC ICISC, Seoul, Korea, 2012: 406-418.
[42]Hwang Y H, Lee P J. Public key encryption with conjunctive keyword search and its extension to a multi-user system [C]//Pairing-Based Cryptography, Tokyo, Japan, 2007: 2-22.
[43]Baek J, Safavvi-naini R, Susilo W. Public key encryption with keyword search revisited [C]//WCECS ICCSA, Perugia, Italy,2008: 1249-1259.
[44]Byun J W, Rhee H S, Park H A, et al. Off-line keyword guessing attacks on recent keyword search schemes over encrypted data [C]//SIAM SDM, Seoul, Korea, 2006: 75-83.
[45]Rhee H S, Susilo W, Kim H J. Secure searchable public key encryption scheme against keywrod guessing attacks [J]. IEICE Electronic Express, 2009, 6(5): 237-243.
[46]Fang L, Susilo W, Ge C, et al. Public key encryption with keyword search secure against keyword guessing attacks without random oracle [J]. Information Sciences, 2013, 238: 221-241.
[47]Shi Z J, Yang X, Lee R B. Alternative application-specific processor architectures for fast arbitrary bit permutations [J]. International Journal of Embedded Systems, 2008, 3(4): 219-228.
[48]Abdellatif K M, Chotinavot R, MehrezEHREZ H. Low cost solutions for secure remote reconfiguration of EPGAs [J]. International Journal of Embedded Systems, 2014, 6(2): 257-262.
[49]Katz J, Lindell Y. Introduction to modern cryptography: Principles and Protocols [M]. New York Washington, D.C.:CRC Press, 2007.
[50]Saqib N A, Rodriguze-henriquez F, Diaz-perez A. A reconfigurable processor for high speed point multiplication in elliptic curves [J]. International Journal of Embedded Systems, 2005, 1(3): 237-249.
[51]Ateniese G, Burns R, Curtmola R, et al. Provable data posession at untrusted stores [C]//ACM CCS, Alexandria, VA, USA, 2007: 598-609.
[52]Shah M A, Baker M, Mogul J C, et al. Auditing to keep online storage services honest [C]// USENIX HotOS, San Diego, California, USA, 2007: 1-6.
[53]Shah M A, Swaminathan R, Baker M. Privacy-preserving audit and extraction of digital contents[J/OL].[2015-02-20].http://www.hpl.hp.com/techreports/2008/HPL-2008-32R1.pdf.
[54]Wang Q, Wang C, Ren K, et al. Enabling public auditability and data dynamics for storage security in cloud computing [J]. IEEE Transactions on Parallel and Distributed Systems, 2011, 22(5): 847-859.
[55]Wang C, Chow S M, Wan Q, et al. Privacy-preserving public auditing for secure cloud storage [J]. IEEE Transactions on Computers, 2013, 62(2): 362-375.
[56]Yang K, Jia X. An efficient and secure dynamic auditing protocol for data storage in cloud computing [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(9): 1717-1726.
[57]Rivest R, Shamir A, Adleman L. A method for obtaining digital signatures and public key cryptosystems [J]. Communications of the ACM, 1978, 21(2): 120-126.
[58]Rivest the MD5 message-digest algorithm (RFC1321) [S/OL].(1992-04-01)[2015-01-20]. https://tools.ietf.org/html/rfc1321.
[59]Ateniese G, Pietro R D, Mancini L V, et al. Scalable and efficient provable data possession [C]//ACM SecureComm, Tstanbul, Turkey, 2008: 9.
[60]Erway C, Kupcu A, Papamanthou C, et al. Dynamic provable data possession [C]//ACM CCS, Chicago, IL, USA, 2009: 213-222.
[61]Zhu Y, Wang H, Hu Z, et al. Dynamic audit services for integrity verification of outsourced storage in clouds [C]//ACM SAC, TaiChung, Taiwan, 2011: 1550-1557.
[62]Zhu Y, Ahn G J, Hu H, et al. Dynamic audit services for outsourced storage in clouds [J]. IEEE Transactions on Services Computing, 2013, 6(2): 227-238.
[63]Boneh D, Gentry C, Lynn B, et al. Aggregate and verifiably encrypted signatures from bilinear maps [C]// IACR EUROCRYPT, Warsaw, Poland, 2003: 416-432.
[64]Zhu Y, Wang H, Hu Z, et al. Efficient provable data possession for hybird clouds [C]//ACM CCS, Chicago, Chicago, IL, USA, 2010: 756-758.
[65]Curtmola R, Khan O, Burns R, et al. MR-PDP: Multiple-replica provable data possession [C]//IEEE ICDCS, Beijing, China, 2008: 411-420.
[66]Curtmola R, Khan O, BurnsURNS R. Robust remote data checking [C]//ACM StorageSS, Alexandria, Virginia, USA, 2008: 63-68.
[67]Wang C, Wang Q, Ren K, et al. Ensuring data storage security in cloud computing [C]//ACM/IEEE IWQoS, Charleston, South Carolina, USA, 2009: 1-9.
[68]Chen B, Curtmola R, AtenieseTENIESE G, et al. Remote data checking for network coding-based distributed storage systems [C]// ACM CCSW, Chicago, IL, USA, 2010: 31-42.
[69]Cao N, Yu S, Yang Z, et al. LT codes-based secure and reliable cloud storage service [C]//IEEE INFOCOM, Orlando, FL, USA, 2012: 693-701.
[70]Bowers K, Juels A, Oprea A. Proofs of retrievability: theory and implementation [C]//ACM CCSW, Chicago, IL, USA, 2009: 43-54.
[71]Zhu Y, Hu H, Ahn G J, et al. Cooperative provable data possession for integrity verification in multicloud storage [J]. IEEE Transactions on Parallel and Distributed Systems, 2012, 23(12): 2231-2244.
[72]Wang B, Li B, Li H. Oruta: privacy preserving public auditing for shared data in the cloud [C]//IEEE CloudCom, Taipei, Taiwan,2012: 295-302.
[73]Juels A, Kaliski B S. PoRs: Proofs of retrievability for large files [C]//ACM CCS. Alexandria, VA, USA, 2007: 584-597.
[责任编辑:祝剑]
Security in cloud computing
SHAO Zhiyi1,2,3,4, YANG Bo2,3,4, ZHANG Wenzheng3
(1.The Library, Shaanxi Normal University, Xi’an 710119, China;2.School of Computer Science, Shaanxi Normal University, Xi’an 710119, China;3.Science and Technology on Communication Security Laboratory, Chengdu 610041, China;4.State Key Laboratory of Information Security, Beijing 100093, China)
Cloud computing facilitates people’s working and daily life with unparalleled advantages; however, security is an important issue that cloud computing should face on its way to become even more successful. This paper Features of cloud computing is analyzed in this paper. Security problems from the three layers and the contents are studied respectively with focuses on the current research and exist problems of searchable public key encryption and outsourced data integrity verification.
security in cloud computing, searchable public key encryption, data integrity verification
10.13682/j.issn.2095-6533.2015.04.001
2015-04-10
国家自然科学基金资助项目(61272436);保密通信重点实验室基金资助项目(9140C110206140C11050);中国科学院信息工程研究所信息安全国家重点实验室开放课题资助项目(2015-MS-10)
邵志毅 (1983-),男,博士,研究方向为信息安全云计算上的安全。E-mail:shaozy@snnu.edu.cn 杨波 (1963-),男,教授,博士生导师,陕西省百人计划特聘专家。从事密码学与信息安全研究。E-mail:byang@snnu.edu.cn
TP309.2
A
2095-6533(2015)04-0001-09