云存储系统中数据安全的研究
2014-09-05魏东平
魏东平
(九江学院信息科学与技术学院 江西九江 332005)
云存储系统中数据安全的研究
魏东平
(九江学院信息科学与技术学院 江西九江 332005)
文章利用文献资料法、逻辑推理法描述云存储系统、数据特性及层次架构,探索云存储系统中文件数据加密解密技术、密钥生成、密钥分发、密钥管理的研究现状,提出未来安全云存储系统的主要研究方向是基于密文的搜索、重复数据删除、数据持有性证明等方面。
云存储,密码技术,密钥管理
云存储系统整合存储资源,降低运营成本,具备负载均衡、故障冗余功能,能够实现规模效应和弹性扩展,但企业用户不采用云存储系统的主要顾虑在于安全问题。云存储系统的数据分散存储于云端等特性使得用户失去了对数据的监控能力,用户很难信任云存储服务是安全的。从用户对数据保护的需求上去研究云存储系统是否安全是很有必要的。
1 云存储系统概述
云存储将大量的存储设备整合为一个整体性的存储资源池,基于分布式文件系统,为用户或企业提供存储服务。
分布式文件系统有三部分组成:块数据服务器(Chunk Data Server,CDS)、元数据服务器(Meta Data Server,MDS)、客户端(Client)。块数据服务器负责存储文件块。元数据服务器负责分配并记录每个文件的各个文件块存储位置。客户端存储文件时,将文件分块,然后传输到元数据服务器指定的块服务器上,由块服务器写到存储位置上;客户端读取文件时,从元数据服务器上查询文件块的位置信息,然后到所查到的块数据服务器上读取数据块。
1.1 云存储系统中的数据特性
客户端和元数据服务器之间传输的是元数据,客户端和块数据服务器之间传输的是文件块数据[2]。元数据一般是文件块存储位置等信息,数据量小、离散性强、突发性强,而文件块数据是用户文件所分割的数据块,数据量大、离散性不强、突发性不强。
1.2 安全云存储系统
用户对使用云存储系统来存储数据的主要顾虑在于:用户数据上传到云端后的数据隐私安全问题。对云端用户数据私密安全的威胁来自两个方面:一是用户担心隐私数据被云端的管理员窃取,二是用户担心私密数据被其他租户恶意窃取。
安全云存储系统自底向上可分为数据存储层、基础管理层、应用接口层和用户访问层,其结构如图1所示。
图1 安全云存储系统层次框架图
在安全云存储系统的层次框架图中,数据在用户访问层进行加密,数据密文通过公有应用接口层上传,云存储服务器在基础管理层对密文数据进行分块、索引,以便支持数据密文搜索等功能[1]。最后,基础管理层将密文数据、元数据等保存到数据存储层。数据存储层对数据进行压缩、删冗处理,以提高存储效率。
目前,客户端Client、服务器Server和云存储服务提供商CSP是安全云存储系统主要组件部分。Client对应用户访问层,Sever对应基础管理层和应用接口层,CSP对应数据存储层。Client通过API与Server完成数据的上传与下载,Server通过高速的可信网络与Cloud传输数据。Server是半信任的,可诚实地执行数据存储,同时又对数据的内容是好奇的,企图获取数据的明文。服务器记录数据的相关信息,为用户提供密文搜索等功能。
安全网络存储系统有Plutus、SANDS、Corslet、Cryptographic Cloud Storage等。在Plutus系统中,数据以密文形式存储。数据拥有者Owner负责密钥分发与管理,为防止密钥生成与分发负载过重,采用文件分组,相同共享用户群使用相同的密钥。在共享过程中为用户数据与元数据提供网络完整性,server负责验证用户是否具有写权限。SANDS系统的核心技术是IBM的SAN,是主要针对异构客户端访问共享数据的文件系统。将文件元数据从文件原始数据隔离出来,元数据由元数据服务器提供给客户,客户使用元数据信息获知数据的存储物理位置,直接访问SAN。SANDS中,文件名空间是一个全局命名空间,使用分布式锁机制和租赁机制来维护数据的一致性和完整性。Corslet系统可以在不修改现有文件系统的情况下,保证数据的机密性和完整性。Corslet引入可信第三方服务器,去除了用户对底层存储系统的依赖性,Corslet系统对读写的访问权限控制进行了区分。Microsoft的Cryptographic Cloud Storage系统由3个部分组成:数据处理(Data Processor,DP)、数据验证(Data Verifier,DV)和令牌环生成(Token Generator,TG)。DP负责数据发送到云端之前的数据处理,一般用加密方法保护数据的机密性。DV负责检查云端存储得数据是否被篡改,用审计方法保护数据的持有性。TG负责生成令牌环,以便检索用户的数据,提供细粒度的访问控制功能。
关于云存储的加密与解密,仍有一些问题需要解决:文件的某一部分数据的修改之后,为保证副本一致性,远程设备是重新在本地解密、加密(消耗了计算资源),还是通过通信网络传输已修改的加密文件(消耗了通信资源)?云端某节点失效或者被俘虏时,其他节点会因此做哪些工作?会不会导致其他节点进行数据重加密?
上述3个问题是相关的,关键在于云端的容错管理是如何实现的。如果是采用副本方式进行容错,那么检测到某部分数据被损坏时,可以直接由其他节点上的数据去替代被篡改的数据,不需要加解密操作,只是单纯地复制数据。至于失效节点的处理,还是看云端的处理方式,在传统的容错处理领域,方式应该很多。比如拜占庭错误的处理,存活节点通过投票踢出失效节点,选择一个新的节点,将数据复制过去等。
2 云存储系统中的密钥技术
密钥技术包括密钥如何生成、密钥如何分发以及密钥怎样管理。
2.1 密钥生成
密钥生成的主要问题是维护尽可能少量的密钥、自适应密钥的动态更新。云存储系统中,数据有多个副本,且加密存储,同一文件的多个副本加密算法一般相同,所用密钥可以相同,可以不同,不同密钥可以采用“副本号||明文的hash值”。
目前,安全云存储系统的密钥生成机制主要有3种:
(1)随机生成密钥(Randomly Key Generation)。这种方法私密性好,可扩展性好,速度也快是生成密钥最直接的方法。但因,密钥用途单一,不能用作签名等其他用途。这种方法生成的数据密文随机性较强,在后期作重复数据删除操作时也不高效。Plutus系统中,对称密钥的产生方法就用了随机生成密钥的方法。
(2)数据收敛加密(Convergent Encryption)。使用明文数据的属性生成密钥,对数据进行加密,使得相同明文数据经过加密后,生成的密文也相同。Corslet系统根据收敛加密,提出了数据白加密(密钥用文件块的散列值和偏移量,加密文件块数据内容)。数据白加密的过程如图2所示。
图2 数据白加密过程图
数据收敛加密的好处在于:①因为密钥的生成方式与数据的散列值是相关的,所以密钥将来可以做数据完整性验证;②因为修改数据的时候,密钥也需要修改,所以适合懒惰权限撤销(Lazy Revocation)。懒惰权限撤销与立即撤销(Immediately Revocation)相对应,都是安全云存储系统中的撤销方法。懒惰撤销指的是,用户的访问权限如果要被撤销,系统不立即修改密钥对数据重加密,而是推后一段时间,等到某个特定的事件发生或者某个时刻到来时,才对数据重加密。这里使用白加密技术后,系统在某个用户的访问权限被撤销时,只需删除此用户在访问控制信息中的相关信息,等下次写操作时,再对数据重加密;③因为相同内容的文件在数据收敛加密后,密文的内容也相同,所以适合密文数据操作,比如重复数据删除、密文检索等[1]。
(3)通过特殊计算生成。Vanish系统提出了(n,m)门限机制的密钥生成方法。具体地,密钥分成m份,用户只需要取得其中n份就能够解密文件。这种方法提供了可信删除机制。但是这种通过特殊计算生成的密钥,往往只是突出了某个特定的功能,通用性不会很强。
上述密钥均针对数据加密而生成,文献[22]针对密钥加密提出了盲加密协议的实施方案(IND-CCA2-secure),该方案中,用户与密钥持有者之间通过密文交互,如此,用户获得密文解密,而密钥持有者学习不到密钥所加密的密文。
2.2 密钥分发
安全云存储系统的密钥分发有3种方式:
(1)由客户端分发。Owner是数据的拥有者,Owner为其他用户分发密钥。这种分发方式下,服务器无论如何都接触不到任何形式的密钥,所以安全程度很高[1]。但这种方法有两个弊端:①Owner得一直在线,否则,其他用户会因为申请不到密钥,而无法进行数据访问。②Owner来分发密钥,会给Owner带来很大负载和瓶颈。
(2)由云存储分发。密钥在Owner上加密后,上传存放在云存储。用户访问数据时,从云存储下载数据密文、加密后的密钥,然后解密出密钥明文,接着再解密出数据明文。这种密钥分发的方法缺陷:这里只是将密钥的访问移交给云存储了,密钥的生成仍然由Owner负责,不适合大量复杂数据的情形。这种方式的优点是Owner可以离线,用户申请密钥是访问云存储而得的,不会在Owner处造成通信瓶颈。目前,SpiderOak等系统都是采用这种方式进行密钥分发。
(3)通过第三方机构进行分发。密钥分发除了通过客户端和云存储进行之外,还可以通过第三方(独立于客户端和服务器)进行。FADE系统和Corslet系统使用一个可信的第三方服务器,用来集中管理分发密钥;Vanish系统通过DHT网络进行密钥分发。通过第三方机构的密钥分发方式结合以上两种方式的优点,但对应用场景的依赖较强,因此大都出现在某些特定的应用中[1]。
2.3 密钥管理
目前的安全云存储系统大都采用分层密钥管理方式,其基本思想是用金字塔的形式排列好所有的密钥,出于金字塔上层的密钥用来加密或解密下层的密钥[1]。这种层次密钥管理方式下,用户只需要保证金字塔最上层密钥的安全,金字塔其他层的密钥都可以在不可信的环境中存储,在不可信的信道中分发。因此,分层密钥管理方式很大地提高了用户管理密钥的方便性,同时安全性又没有损失。
安全云存储系统大都将分层密钥管理的层数定为2层或3层,一般可将管理层次看作两层(最上层和其他层)。为安全性和高效性,一般地,最上层的密钥体系都使用PKI体系中的公私钥算法,或采用可信第三方进行密钥生成和分发,其他层的密钥可以直接存放在不可信的云存储系统中,合法用户在需要时,从云存储中下载后,用最上层密钥层层解密即可得到所有分层的密钥。
分层密钥管理使云存储系统可以高效地安全地组织所有的密钥。在保证数据私密性和完整性的同时,大量减少了用户在密钥管理方面的存储开销[1],但需要花费一些计算代价,用来计算其他各层的密钥,即用时间换取了空间和便宜性。
3 小结
云存储系统数据安全是云存储领域中的一个重要研究方向,Hsiao-YingLin等人在2012年6月的TPDS上发表题为《Asecureerasurecode-basedcloudstoragesystemwithsecuredataforwarding》的论文中将分散消除编码(decentralizederasurecode)集成到门限代理重加密方案中,实现了对加密消息的直接转发,使用文中所提方案,消息拥有者转发消息给其他用户时,不需要经历从云存储服务器取回数据、解码、解密等阶段。YanZhu等人在TPDS上尚未发表但已录用的题为《Cooperative provable data possession for integrity verification in multi-cloud storage》的论文中,基于同态可验证响应(homomorphic verifiable response)和hash索引层次结构提出了协作可证明的数据持有(Cooperative Provable data Possession,CPDP),以对抗对数据泄漏攻击和标记伪造攻击,论文在多证人零知识证明系统(multi-prover zero-knowledge proof system)上证明了CPDP的安全性。不难预见,未来云存储系统的安全研究方向集中在基于密文的搜索、重复数据删除、数据持有性证明等方面。
[1]傅颖勋,罗圣美,舒继武.安全云存储系统与关键技术综述[J].计算机研究与发展,2013,50(1):136.
[2]曾令仿.基于对象的网络存储智能处理方法研究[M].武汉:华中科技大学,2006.77.
(责任编辑胡安娜)
2014-9-12
魏东平,870928273@qq.com。
TP 393
A
1674-9545(2014)04-0044-(04)