云环境下的数据防泄密存储技术
2016-11-08陈永府王启富陈立平
陈永府 宋 鹏 王启富 陈立平
(华中科技大学机械科学与工程学院 湖北 武汉 430074)
云环境下的数据防泄密存储技术
陈永府宋鹏王启富陈立平
(华中科技大学机械科学与工程学院湖北 武汉 430074)
防止数据泄密是云存储安全研究的重要方向之一。云环境下数据泄密的途径主要有两条:一是云端数据被云服务商恶意窃取;二是明文数据传输过程中被黑客截获。鉴于此,提出一种云环境下数据防泄密存储技术。采用全同态加密算法对数据事先加密,既增强了数据在云端存储和信道传输过程中的安全性,又实现了云端对密文数据的直接操作。同时,提出密钥生成算法和密文检索算法,解决了加密带来的密钥管理困难和密文检索效率低的难题。该技术增强了数据保密性且提高了密文检索效率。
数据防泄密云存储安全全同态加密密钥管理密文检索
0 引 言
云存储是将网络中大量不同类型的存储设备通过应用软件协同起来,对外提供数据存储和业务访问功能的一个系统[1]。用户可以将资源存储到云端以节省空间或方便他人共享,通过可联网的装置用户可以在任何时间、任何地点进行数据的访问和存取。国内外诸多IT企业均开设了云存储服务,比如:微软公司的Windows Azure Blob、惠普公司的HP CloudObject、苹果公司的iCloud、百度公司的百度云盘、腾讯公司的微云等。但是,据Gartner发布的调查报告《云计算安全风险评估》[2]表明,超过80%的受访企业和机构并未将重要数据存储到云端。在这些企业和机构中,70%以上担心云存储造成数据泄密。因为数据一旦上传到云端,企业就失去对数据的控制权,在竞争激烈的信息时代,核心数据一旦泄密将给企业带来不可估量的损失。
这些担忧是有现实依据的,Google Docs、Dropbox、Salesforce、苹果iCloud等多家著名云服务商都曾数次出现过泄密事件:2007年salesforce的一名工作人员泄露了账户密码,造成数百万客户信息泄密;2012年8月,黑客找到苹果iCloud账户的安全漏洞,对部分iCloud账户进行攻击,致使用户多项重要信息丢失等[3]。这些泄密事件不仅使云存储服务商的信誉蒙受损失,也使用户对云存储的安全性产生质疑。因此,如何保证云环境下的数据不被泄密,是保证云存储安全的关键一环。
传统云存储平台架构自下而上分为4层:数据存储层、数据管理层、数据服务层以及用户访问层[4]。在数据存储层,云服务提供商将服务器组成存储设备集群,再通过虚拟化技术,为用户上传到云端的明文数据提供隔离存储服务;在数据管理层,通过设计统一的用户管理、安全管理、副本管理及策略管理等公共数据管理功能,将底层存储及上层应用无缝衔接,实现多存储设备之间的协同工作,以更好的性能对外提供多种服务;数据服务层作为用户和云端交互的接口,主要响应客户的需求,包括:存储需求、获取资源请求、备份数据请求及共享请求等;通过用户访问层,任何一个授权用户都可以在任何地方使用联网的终端设备,按照标准的公用应用接口来登录云存储平台,享受云存储服务[5]。
从传统云存储平台架构可以看出,云服务提供商管理员能接触到用户通过用户访问层上传到云端的明文数据且对其有绝对控制权。此外,数据在用户和云端之间的不安全信道中也是以明文形式传输的。因此,云环境下用户数据泄密的主要途径有两条:一是明文数据被云服务提供商恶意泄密;二是明文数据在不安全信道传输过程中被黑客截获。
众所周知,通过加密算法使用户数据在进入用户访问层之前加密,便能有效封堵上述两条泄密途径。但是,相对于明文数据而言,云端对密文的处理操作是非常困难的,云端将无法通过数据服务层准确高效地响应用户的数据处理请求。因此,用一种特殊的加密算法,使云端能按照用户的需求直接对密文进行数据处理操作,是非常必要的。
本文提出的云环境下的数据防泄密存储技术,采用允许直接对密文进行操作的全同态加密算法[6],使用户数据在通过用户访问层上传到云端之前便已加密,不仅保证云服务提供商无法接触到明文,而且数据在传输过程中即便被黑客截获也不能被轻易破解,安全性得到极大提升。此外,用户对将要上传的明文数据提前进行全同态加密会带来密钥管理困难的问题,该技术也提出了密钥生成算法予以解决。云端通过数据服务层接收到用户的需求并对数据进行处理操作之前,必须首先检索到用户指定的密文。因此,密文检索将是云端最频繁的一个操作。针对传统的密文检索算法在检索效率、精度和安全性方面存在的不足,该技术也提出了一种基于多属性排序的密文检索方法来予以改善。
1 云环境下数据防泄密存储模型
本文提出的防泄密存储技术基于如图1所示的系统模型。其中,用户端主要由数据的加解密、密文数据的上传与下载、用户身份认证三部分组成;云端则由数据存储、索引文件、数据检索三部分组成。
图1 防泄密存储系统总体设计图
1.1用户端模型
1) 身份认证
云端为所有可信的客户端创建了个人身份信息(包括用户名、密码等),在向云端服务器上传数据前,需要先经过云端服务器的身份认证。身份认证模块主要用于访问控制,对于合法或对数据有共享权限的用户,才能允许其成功登录并进行上传和下载密文数据等功能。
2) 数据加解密
为了方便客户随时随地的享用云服务,该技术采用了一种新的密钥生成算法。该算法将用户的记忆密码N和文档的唯一标示符FT相结合组成密钥生成种子S,再将密钥生成种子输入密钥生成函数并进行奇数化处理,输出固定长度的密钥P作为全同态加密算法的密钥。该密钥生成算法不仅保证了不同的文档有不同的密钥,也降低了用户记忆密码的难度,而全同态加密则可使云端对密文处理无障碍。
3) 密文上传与下载
该模块主要用于用户和云端之间的数据传输。此外,为了防止黑客攻击,云服务器会对存储到云端的数据进行加密。因此,该模块也包含了用户上传数据时云端对数据的再次加密,以及用户下载数据时云端对数据的解密。
1.2云端模型
1) 数据存储
用于存储用户上传到云端的密文,是云端的文档资源池。资源池是云计算最关键的技术之一,对于高效地调度资源池中的资源有重要的现实意义[7]。此外,数据存储区也存储数据的共享权限等相关信息。
2) 索引文件
当用户有检索需求时,系统通过索引文件查找并匹配用户的检索词。建立索引文件要解决好两个问题:一是如何对文本进行分词;二是如何建立索引的数据结构。分词的好坏关系到检索的准确度和生成的索引大小,该系统采用中文分词法,客户端先对明文进行中文分词并将分词结果进行加密,考虑到加密的效率,此处采用对称加密算法。然后将对称加密后的词条和全同态加密后的文档一起传送至云端服务器保存,并基于这些词条在云端构建倒排索引。所谓倒排索引是将每一个单词作为索引项,根据该索引项查找包含该单词的所有文档。
此外,为了节省存储空间,云服务器在对密文词条构建倒排索引之前,首先在已存索引中查找该密文词条是否已存在,如果存在则不重复存储该词条,仅添加一条映射关系。
3) 密文检索
用户将检索词对称加密后提交给云端,云服务器通过索引文件检索出匹配文档,并计算出检索词和这些文档之间的相关度,然后根据相关度大小将文档排序,最后将这些文档有序返回给用户[8]。
2 全同态加密算法
加密能保护用户隐私,是增强数据安全性的一项重要举措,但是数据加密后会丧失许多特性,使云服务器对密文的处理存在一定困难。全同态加密算法实现了加法同态和乘法同态,服务器不需要接触明文数据也能方便地对数据进行处理。
2.1算法原理
1978年,Rivest等人首次提出了同态加密的概念[9]。所谓同态,即一个加密方案E如果满足:E(m1⊕m2)=E(m1)⊗E(m2),其中m1、m2是明文消息,E是加密函数,⊗是对密文的某种运算,⊕是对明文的某种运算,则称该加密方案是同态加密方案[10]。也可描述为,若DecryptE是方案E的解密算法,sk、pk分别是私钥和公钥,f(x1,x2,…,xt)是一个t元的函数,则DecryptE(f(c1,c2,…,ct),sk)=f(m1,…m2,mt)。如果该加密方案E对加法和乘法都具有同态性,就叫全同态加密算法,否则称为偏同态加密算法。在本文提出的防泄密存储系统中,用户先用全同态加密算法对明文加密,再将密文数据上传到云端,当用户发送数据处理请求时,云端服务器无需对密文解密即可完成相应操作,再将结果以密文形式返回给用户,用户对返回的密文解密便可得到已处理的明文。
一般而言,公钥体制的全同态加密方案由如下四个算法组成:
(1)KeyGen(λ):根据安全参数λ产生公钥pk和私钥sk。
(2)Encrypt(pk,m):用公钥pk将明文m加密为密文c。
(3)Decrypt(sk,c):用私钥sk解密密文c,得到明文m。
(4)Evaluate(pk,f,c1,c2,…,ct):输入公钥pk,具有t个输入的函数f,以及t个密文c1,c2…,ct,其中ci=Encrypt(pk,mi),(i=1,2,…,t)。输出c*=Evaluate(pk,mi),且满足Decrypt(sk,c*)=f(m1,m2,…,mt)。Evaluate算法的含义是:对密文进行任意操作再解密,结果与对明文进行相应的操作结果相同。此处的函数f也可以换成函数对应的电路C作为输入。
2.2算法过程
1) 加密过程
全同态加密过程可分为三步:首先对明文数据进行二进制分组,分组长度根据安全需求来定;然后对每个明文分块进行加密操作得到对应的密文分块;最后将所有密文分块组合成完整的密文数据C。
为了描述方便,本文使用Gentry提出的全同态加密算法[11]。加密流程见图2所示,其加密步骤如下:
(1) 选取加密参数P、Q和R。其中P是一个正奇数,Q是一个很大的正整数。P和Q在密钥生成阶段确定,P是加密密钥而R是加密时选取的一个随机数;
(2) 将消息M分组为若干长度为L(L的长度应该小于P)的消息分块M=m1,m2,…,mt;
(3) 依次读取明文分块中的字符,并将其转换为二进制数字。
(4) 使用加密算法ci=mi+ 2R+PQ对二进制数字加密,同时将若干密文分块组合成完整的密文数据C=c1,c2,…,ct。
2) 解密过程
全同态解密过程的流程如图3所示,解密步骤如下:
(1) 将密文数据C分组C=c1,c2,…,ct;
(2) 对每个密文分块ci使用解密密钥P进行解密mi=(cimodp)mod2,得到二进制文件。
(3) 先由解密后的二进制文件生成临时文件,再将临时文件转换为对应的明文分块,最后把明文分块组合成完整的明文数据M=m1,m2,…,mt。
图2 全同态加密流程图 图3 全同态解密密流程图
2.3同态验证
根据全同态加密算法的定义,分别对该加密算法的加法同态性和乘法同态性进行验证。假设有两组明文m1和m2,加密后的密文分别对应为c1和c2,即:
c1=m1+ 2R1+PQ1
(1)
c2=m2+ 2R2+PQ2
(2)
对密文c1和c2执行加法操作:
c1+c2= (m1+m2)+2(R1+R2)+P(Q1+Q2)
(3)
把cmodp的值称为噪声,当噪声m+ 2R
(c1+c2)modP=(m1+m2)+2(R1+R2)
(4)
再将 (m1+m2)+ 2(R1+R2)对2取模可得:
m1+m2= [(m1+m2) +2(R1+R2)] mod 2
(5)
显然,该算法满足加法同态性。
同理,对密文c1和c2执行乘法操作:
c1×c2=m1m2+2(2R1R2+m2R1+m1R2)+
P[PQ1Q2+Q2(m1+2R1)+Q1(m2+2R2)]
(6)
由于m1m2+2(2R1R2+m2R1+m1R2)小于P,则对P和2分别取模有:
m1m2= [(c1×c2) modP] mod 2
(7)
显然,该算法满足乘法同态性。
2.4算法选取
Gentry在文献[11]所提出的全同态加密算法是基于理想格的,加解密效率不高,而且该算法存在一定的噪声。如果对密文进行一系列操作,噪声就会相应的增长,只有当噪声低于某个阈值才能正确解密,否则会出现解密错误。假设密文e1、e2的原始噪声上界为L,则L=m+ 2R,那么对密文e1进行n次加法同态操作后,其噪声上界就会变为L′=(nL) ;如果对密文e2进行n次乘法同态操作,其噪声就会变为L′=(L2n)。因此,这个方案只能进行不高于一定层级K的加密电路,实用性不高。
针对这一问题,Gentry也提出了一种降低噪声的处理方法,就是自举转换理论。该方法的思想是对解密电路进行压缩直到其层级低于限定值K,这样噪声就不会对解密造成影响。举例如下:假设我们有密文e,是通过用密钥p加密明文m而得到的,即e=Encrypt(p,m);然后用另一密钥p′对密钥p和密文e进行加密得到p*和e*,加密算法分别为p*=Encrypt(p′,p)和e*=Encrypt(p′,e)。如果y=f(x)是一个低于层级K的电路操作,则通过全同态加密的定义有:
e′=Evaluate(e,f(e))=Encrypt(p,f(m))
(8)
将式(8)中的e换成e*和p*,密钥p换成p′,f(x)换成Decrypt(p,e),则有:
e′=Evaluate(e*,p*,Decrypt())
=Encrypt(p′,f(Decrypt(p,e)))
=Encrypt(p′,m′)
(9)
从式(9)可以看出,先把密文e进行二次加密得到e*,再通过解密操作处理会得到新的密文e′,而新的密文e′正是用新的密钥p′对新的明文m′进行加密后的结果。通过这种方法,把原来需要进行多次加法或乘法操作中可能带来的噪声给清除了,达到了正确解密的结果。但这种自举转换的方式也有局限性:首先,并不是所有解密算法都可以进行自举转换;其次,由于要在电路内的所有节点都进行密文更新以降低噪声,可想而知执行效率很低。
林如磊等人在Dijk等人的全同态加密方案基础上进行了改进[13]。将模2运算改为模4运算,并限制了部分参数的选取,提出了一种更快速的全同态加密方案,改进之后的方案一次可以加密2 bit的数据,且公钥尺寸降低到ò(λ7),比Dijk等人的方案具有更高的效率和更小的公钥尺寸。
对比文献[11]自举转换全同态加密算法、文献[12]的DGHV算法和文献[13]的改进算法,相关性能如表1所示。
表1 文献[11-13]性能比较
因此,本技术决定采用文献[13]这种全同态加密方案来提升用户端的加解密执行效率,并降低公钥的长度。
3 密钥生成算法
3.1算法原理
用户在全同态加解密过程中都要使用密钥,且只有用户本人拥有密钥。除非密钥随用户迁移,否则用户无法随时随地使用云存储服务。鉴于此,该防泄密存储技术提出了一种新的密钥生成算法。该算法的原始输入由两部分构成:一是用户自行设定的记忆密码N;二是待加密文档的唯一身份认证标示符FT。这样,用户可以用相同的记忆密码为不同的文件产生不同的密钥生成种子,继而产生不同的密钥,避免为了给不同的加密文件使用不同的密钥而记忆大量不同的密码,方便了密钥的管理。
3.2算法过程
该算法原理如下:
(4)将密钥生成种子S输入密钥生成函数,扩展成定长度的密钥输出P′。考虑到全同态加密定义中要求密钥P是一个正的奇数,故须再对P′进行奇数化处理得到最终的密钥P。
密钥生成算法如图4所示。
图4 密钥生成过程
密钥生成函数应该满足以下两个条件:一是当且仅当输入的密钥生成种子S相同时,密钥生成函数的输出P′才会相同;二是密钥生成函数应该具备将长度不定的密钥生成种子S发散成长度固定的密钥P′的功能。显然,哈希函数MD5或SHA1都具备这两种特性,可以充当我们的密钥产生函数,本系统选用哈希函数MD5。
3.3密钥强度
与传统全同态加密算法不同,该技术所采用的全同态加密算法中密钥P是由密钥生成算法生成。因此,数据的安全性不再完全取决于全同态加密算法的安全性,而是与密钥生成算法有关,但这种密钥生成算法产生的密钥P仍然具备较好的抵御黑客攻击的能力。
由于不同的加密文件密钥P均不相同且无规律可循,黑客即使获取了密钥P也很难破解密文,原因有三:首先,哈希算法具有不可逆性且密钥生成种子是由“用户记忆密码N”和“文档唯一身份认证标示符F”两部分组成,黑客无法由密钥P逆推用户记忆密码。其次,在没有获取用户云端数据访问控制权限的情况下,黑客无法获取云端密文。第三,密钥P和云端密文是一一对应的关系,即便黑客获取云端数据访问权限,在不知密钥P与密文对应关系的情况下,也无法定位并获取正确的密文。
综合以上三点可知,除非黑客能同时获取密钥P、云端数据的访问权限、密钥P与密文的对应关系,才能破解对应的密文。但是,在不考虑特殊途径如电脑中毒直接导致密码泄露的情况下,黑客要同时获取以上信息并非易事。因此,这种密钥生成算法产生的密钥强度值得信赖。
4 密文检索方法
用户以往是将数据以明文的形式上传到云端存储,云服务商为了防止黑客入侵也会对存储在云服务器上的数据进行加密。由于加密后的数据很难进行检索等操作,用户一旦有检索需求,云端只能先解密数据再检索,这样数据便完全暴露给云端管理员。按照本技术的思想,用户先对明文数据m进行全同态加密e=E(m)再将密文e上传,云服务商再对全同态加密后的密文e进行二次加密e′=E′(e),再将e′存储到云端服务器。当用户有检索需求R时,云端管理员先进行外层解密e=D′(e′)得到全同态加密的密文e,再对密文e进行检索。由于是对密文进行检索操作,数据便不会暴露给云端管理员,保证了数据隐私安全。
4.1检索现状
随着云存储技术的发展,云端数据的存储量必将呈现爆炸性的增长,而云端在响应用户的任何数据处理请求之前必须进行检索操作。因此,如何高效且准确地在海量密文数据中搜索出用户想要的数据,是密文检索算法亟待解决的难题。目前,关于密文检索的研究主要存在以下几个问题:
1) 检索效率与精度无法兼顾
目前,有关学者提出的线性搜索算法虽然在检索效率高、计算量小,但检索结果的准确度却不够[14]。此外,有学者提出基于关键词的公钥加密检索算法,虽然具有一定的检索精度,但检索过程中却需要大量的对数运算,计算过程复杂、检索效率较低[15];也有学者意识到上述两种检索算法存在的不足,提出了基于属性排序的密文检索方法,但这种检索方法只是基于单属性进行了排序,单属性考虑的情况比较单一,查询条件不具备权威性,查准率很低[16]。对文献[14-16]三种密文检索算法进行性能比较,如表2所示。
表2 三种密文搜索方法的比较
2) 不能安全进行检索
在全同态加密的情况下,大部分学者公认的进行云端密文检索的方法如下:首先,用户对明文检索词ms也用全同态加密算法加密,加密算法为cs=(ms+2rs+p×qs);其次,云端服务器接收到密文检索词之后,读取存储在云端的密文集{C1,C2,…,Cs},其中任一密文Cs均以密文分块的形式存在Cs=c1,c2,…,cn,并使用检索算法Retrieval=((ci-cs)modpmod2来检索密文集中包含密文词的文档,若Retrieval结果为0,则检索到含有检索词的密文。
通过上述检索过程可以发现,在检索算法Retrieval中,当用户需要检索某个分词时,必须将密钥p发送给云端服务器。而一旦云服务商管理员获得密钥p,就可以解密存储在云端的密文,密文信息被解密之后完全暴露给了云服务商管理员,大大增加了密文信息泄密的风险。也有学者对这种检索方法提出了改进,提出用qs取代P上传到云端,使用检索算法Retrieval= ( (ci-cs)modqs) mod 2,若Retrieval为0,则检索到含有检索词的密文。但是这种检索方法并没有从根本上解决问题,因为云服务商管理员接受到qs之后,便可以用另一种解密算法 = (cimodqs) mod 2解密云端的密文得到明文,同样有泄密的风险。
3) 不能有效对检索结果排序
如今,密文检索不仅需要保证检索到含有检索词的全部文档,而且对检索效率和检索安全性越来越有较高的要求。特别是随着用户信息量的膨胀,现有的电脑硬件更新换代的速度远远比不上信息量增长的速度,随着云存储的出现,用户有迫切的需求来把信息存储在云端以节省存储空间。随着存储在云端的数据量的增多,如何解决用户在海量密文信息中检索的耗时问题,如何将最符合用户检索预期的文档返回给用户,都是迫切需要解决的问题。
4.2检索原理
显然,在检索过程中使用逐次匹配密文信息的线性搜索算法和需要大量对数运算的公钥加密算法是不合适的,而已有的密文排序搜索算法尽管计算量小速度快但查准率不高。因此,该技术采用基于多属性排序的密文检索算法[17]。
该密文检索方法主要包括文档预处理和密文检索及相关性排序两部分内容。其中,文档预处理包括三步:一是中文分词;二是关键词多属性特征向量的提取;三是倒排索引的建立。密文检索及相关性排序包括两步:一是密文检索;二是检索结果的排序。
此外,由于使用不同的密钥P对相同的分词进行全同态加密后的密文结果不同,将导致云端无法进行检索和匹配。因此,分词的加密需要统一采用具有相同密钥ps的加密算法,考虑到加密的效率,该防泄密存储技术采用对称加密算法对分词进行单独加密。
4.3文档预处理
1) 文档中文分词
与英语有空格可以作为天然分词符不同,中文分词会复杂很多。基于知识理解的中文分词算法能在尽可能保证语义的情况下进行分词,是一种得到广泛应用的成熟算法。该防泄密存储技术采用基于知识理解的中文分词算法Fa来对明文进行处理,分词过程如下:
(1) 用分词算法Fa处理待加密的明文Ti,得到分词结果集合:Fa(Ti)Wi
(5) 由于可能存在重复的情况,为了节省存储空间,提升检索效率,每次将关键词和非关键词提取至云端的时候,要对云端关键词集合和非关键词集合进行更新。假如某分词已存在则不再重复存储,只须添加一条新的映射关系即可。
2) 分词多属性特征向量的提取
分词的属性可以分为局部属性和全局属性,局部属性主要包括分词出现的频率和位置,全局属性主要包括整篇文档被引频次和下载次数。例如,用户输入某关键词,如果在云端某文档中出现的频率多,位置较重要,则说明该关键词与该文档局部相关性好;如果某几篇文档局部相关性差别较小,则考虑全局相关性,被引频次和下载次数多的文档与该关键词相关性更好。分词的多属性如表3所示。
表3 分词的多属性
(1) 在关键词集合Wi
(2) 局部属性主要考虑分词出现的频率ti和位置posi。全局属性则主要考虑云端文档被引频次ri和被下载次数dowi。
(3) 当用户输入某个分词时,会优先在关键词索引中进行匹配,如果没有匹配成功再到非关键词索引中进行匹配。这样,既可以提高检索效率,又使检索结果更具完备性。
3) 云端服务器建立倒排索引
倒排文件和索引文件一起构成倒排索引结构。其中,索引列表又分为关键词索引列表和非关键词索引列表两部分。索引列表由一条条包含文档所有分词和分词对应指针的记录组成。指针指向倒排文件中相应的逻辑地址,倒排文件指出哪些文档含有这个关键字以及关键字的词频、位置、被引频次、下载次数等属性信息,以及这些文档的地址集合。通过检索词查找索引文件,再由索引文件指向倒排文件,倒排文件指向密文文件,这样就可以很快地检索出关键词在哪些文档中出现了。多属性倒排索引如图5所示。
图5 多属性倒排索引示意图
4.4检索及排序
该防泄密存储技术采用的密文检索方法如下:用户将检索词明文对称加密后上传到云端,云端通过该检索词去索引文件中匹配;然后通过映射关系得到包含该检索词的文档结果集,得到文档检索结果后再计算该检索词和检索结果中各文档的相关度;最后按照相关度评分高低对结果文档进行排序。在检索之前须要先对检索语句进行分词、词干化等预处理操作,用户检索过程如图6所示。
图6 密文检索过程
(10)
在实际应用中,属性所对应的权重大小可根据用户选择不同的排序方式而动态调节。此外,检索词是否为关键词也会影响到属性权重的高低,比如:检索词为关键词时,局部属性中该词“出现的位置”属性权重较高;检索词为非关键词时,局部属性中该词“出现的次数”属性权重较高。该检索算法不仅保证了检索效率和检索结果的完备性,也通过多属性评分函数提高了检索结果的准确性。
5 安全性分析
本文提出的云环境下数据防泄密存储技术,是以Gentry提出的全同态加密算法为基础的,并采用密钥生成算法对传统密钥生成过程进行了改进,不仅增强了数据在信道传输中的安全性也降低了密钥管理的难度。此外,本文提出的密文检索方法则降低了云服务器在传统全同态加密检索过程中因获得密钥P而解密云端密文造成泄密的概率。接下来就从上述两方面详细分析其性能。
1) 传输过程防黑客攻击
现有的大多数云服务提供商仅仅对传入云端的数据进行加密存储,但数据在信道中却是以明文形式传输,黑客一旦成功截获,信息便被泄露无疑。该数据防泄密存储技术以全同态加密算法为基础,使用户数据在进入信道之前便加密,即便黑客截获也很难破解,大大降低了信道数据泄密的概率,增强了数据传输过程的安全性。
2) 检索过程防云服务商泄密
本文提出的检索方法是提前将明文数据进行了分词处理,把分词用对称加密算法加密并上传到云端索引文件进行存储。当用户有检索需求时,首先将检索词用相同的对称加密算法加密之后,上传到云端与索引文件进行匹配;再通过匹配成功的索引文件找到对应的倒排文件;最后通过倒排文件找到对应的密文。整个检索过程,云端都不会获取任何密钥。因此,这种检索方法保障了检索过程的安全性。
3) 云服务商不能接触到明文
数据上传到云端之后,云服务提供商出于安全考虑会对存储到服务器上的用户数据进行加密。如果用户以明文形式将数据上传到云端存储,拥有密钥的云端管理员就能轻易破解服务器上的数据,从而存在云端管理员泄密数据的威胁。本文提出的数据防泄密存储技术是用户先将明文数据加密成原始密文,然后将原始密文数据上传到云端存储,云服务提供商对存储在云服务器上的原始密文再进行二次加密。因为云端管理员只拥有二次加密的密钥而没有原始密文的解密密钥,所以无法破解原始密文得到明文,防止了云端管理员对存储在云服务器上的数据泄密。
6 结 语
传统云存储平台虽然也在云端对数据进行了加密,但是拥有密钥的云服务商却能通过解密接触到明文数据。此外,在云端和客户之间的信道中数据以明文状态传递容易被黑客截获。在明文数据进入不安全信道之前加密,则可以降低云服务商和黑客造成数据泄密的风险。如果用一般的加密算法对数据加密后再上传到云端存储,势必会影响云服务器对数据的处理性能,而对加法和乘法都具有同态性的全同态加密算法则无此问题。针对全同态加密带来的密钥管理复杂和密文检索困难的问题,本文也提出了“密钥管理算法”和“密文检索算法”予以解决。在性能上,该技术增强了数据传输与存储的保密性,其密文检索效率高、结果准确且文档排序合理,值得推广与应用。
[1] 晏强,张晓锋,丁蕊.云存储技术研究[J].计算机与信息技术,2011(12):35-37.
[2] Jay Heiser,Mark Nicolett.Assessing the Security Risks of Cloud Computing[EB/OL].(2008-6-3)[2012-12-28].www.gartner.com/id=685308.
[3] Bit network.HTC泄密等30起泄密案的启示[EB/OL].2013-09-05.http://www.people.com.cn/.
[4] 郭璐璐,许春根.云存储密文检索方法的研究[J].技术研究,2013(9):6-8.
[5] 李美云,李剑,黄超.基于同态加密的可信云存储平台[J].信息网络安全,2012(9):35-40.
[6] 周可,王桦,李春花.云存储技术及其应用[J].中兴通讯技术,2010,16(4):24-27.
[7] 刘赛,李绪蓉,万麟瑞,等.云环境下资源调度模型研究[J].计算机工程与科学,2013,35(3):48-51.
[8] 黄永峰,张久龄,李星.云存储应用中的加密存储及其检索技术[J].中兴通讯技术,2010,16(4):33-36.
[9] Riverst R,Adleman L,Dertouzos M.On data banks and privacy homomorphisms[M].New York:Academic Press,1978:169-180.
[10] 何劲.基于同态加密与认证的WSN安全数据融合[J].计算机应用与软件,2014,31(9):314-316,321.
[11] Gentry C.Fully homomorphic encryption using ideal lattices[M].New York:Association for Computing Machinery,2009:169-178.
[12] Marten Van Dijk,Gentry C,Halev s,et al.Fully homomorphic encryption over the integers[C]//Pro of the 29th Annual International Conference on Theory and Application of Cryptograhic Technational.Berlin:Springer-Verlag,2010:24-43.
[13] 林如磊,王箭,杜贺.整数上的全同态加密方案[J].计算机应用研究,2013,5(5):1515-1519.
[14] Song D,Wagner,Perrig A.Practical techniques for searcheson encrypted data[C]//Proc.of IEEE Symposium on Seccurity and Privacy’00.2000.
[15] Boneh D,Crescenzo G D,Ostrovsky R,et al.Public keyenccryption with keyword search[C]//Proc.of Eurocryp’04,Volume3027 of LNCS.Springer,2004.
[16] Wang C,Cao N,Li J,et al.Secure ranked keyword search over encrypted cloud data[C]//Proc.of ICDCS’10.2010.
[17] 冯贵兰,谭良.云环境中基于多属性排序的密文检索方案[J].计算机科学,2013,40(11):131-136.
DATA LEAK PREVENTION STORAGE TECHNOLOGY UNDER CLOUD ENVIRONMENT
Chen YongfuSong PengWang QifuChen Liping
(SchoolofMechanicalScienceandEngineering,HuazhongUniversityofScienceandTechnology,Wuhan430074,Hubei,China)
Preventing data leakage is one of the important directions of cloud storage security research.There are two main ways of data leaking under the cloud environment:one is the malicious theft of cloud data by cloud services providers,the other is the interception by hackers during the process of plaintext data transmission.In view of this,this paper puts forward a data leak prevention storage technology under the cloud environment.The technology uses fully homomorphism encryption algorithm to encrypt data in advance,which not only enhances the security of data in cloud storage or channel transmission process,but also achieves the direct operation on encrypted data in cloud.In addition,this paper also puts forward key generation algorithm and cipher text retrieval algorithm,they solve the key management difficulty and cipher text retrieval problem caused by this technology.The technology enhances the data confidentiality and improves the cipher text retrieval efficiency.
Data leak preventionCloud storage securityFully homomorphism encryptionKey managementCipher text retrieval
2015-03-06。国家自然科学基金项目(51475186)。陈永府,讲师,主研领域:信息安全,云计算。宋鹏,硕士生。王启富,教授。陈立平,教授。
TP393.2
A
10.3969/j.issn.1000-386x.2016.10.064