1 简介
云计算提供了各式各样的服务和接口,云服务供应商通过这些部署于自己物理机器上的服务和接口,为用户提供各种服务,用户可以用低廉的费用使用服务和接口,而不需要投人大量的资金创建并维护IT基础设施,因此云计算被认为是一种合作共赢的模式。
云存储用户通过支付一定的费用,可以将数据信息与数据文档存储到云平台上,由专业的大容量的云存储系统负责管理与提供信息读取服务,从而节省建立和维护私有存储设施的成本,由于云存储服务由专业的公司提供,且在服务水平协议SLA(service level agreement)中明确规定了不低于99,9%的可用时间,数据同时在多个数据中心进行备份,因而,云存储服务为企业提供了一个开销费用低,数据的可用性和可靠性高的服务机制。
虽然使用云存储服务可以为企业节约开销,提高可用性及可靠性,但是,企业对其存储于云端数据的机密性与完整性却心存疑虑,如果要将许多机密信息,比如医院病人医疗数据、银行与金融机构中账户信息存储于云存储平台上,必须保证第三方平台可信、数据传输安全以及访问权限控制,事实上,企业使用云存储最大的障碍是对数据机密性和完整性的考虑,如果不能解决机密性和完整性的问题,即使云存储有巨大的潜力,很多潜在的用户还是不愿意把数据向云平台进行转移。
为了解决这些问题,使得企业用户能够安全地使用云存储平台,需要提供一个适用于云存储的安全架构,该安全架构应能实现以下目标:
1)机密性:除了企业用户本身以及用户所授权的信任的合作伙伴,其他任何人是无法得知其数据的;
2)完整性:任何未经授权的数据改动都必须记录下来,告知用户;
3)有效加密检索:企业用户的数据量往往是相当大的,所以如何在加密的情况下快速地搜索到相关数据是极其重要的;
4)数据共享:用户之间可以共享数据。
本文在分析了企业用户在云上的机密性、有效的检索以及数据共享等需求的基础上,采用密文规则的基于属性加密技术(ciphertext policy attribute based encryption ,CP-ABE)对企业机密数据加密并存储于云端;针对数据共享与机密数据检索问题,提出了索引关键词加密的密文检索技术,在此基础上设计了一套设置在企业端的私有安全架构,基于Linux平台与Eucalyptus云,开发设计了该安全架构的大部分服务模块,该安全架构较好地解决了企业数据云存储的机密性、提供了基于属性策略的数据访问控制和基于加密关键词的检索方法。
2 相关工作
云存储的安全性涉及密文访问控制、密文检索,围绕这两个问题很多公司和研究机构都进行了广泛的研究,并取得了一定的进展。
2.1 密文访问控制
最初的密文访问控制,数据属主以不同的密钥逐个加密数据文件,并通过特定的管道将密钥分发给用户,为了减小分发的代价,Goh等人提出以各用户公钥加密数据密钥,并将加密后的密钥存储于服务器端,用户访问服务器并用自己的私钥解密后,获取数据密钥,该方法存在问题是,服务器需要维护大量的数据密钥信息。
Damiani等人提出的层次访问的控制方法(HAC),减少了服务器维护的数据密钥数量,用户可以通过私人密钥以及公开的信息表(token)推导出需要的数据密钥,但是,token表的数据结构复杂,且需要由数据属主维护,因此并不适用于云存储。
Vimercati SDC等人提出的代理重加密技术认为云存储服务器是部分可信(honest but curious)的,只要不将明文数据暴露给服务器端,则认为服务器行为都是可信的,数据属主需根据用户信息生成一个代理重加密密钥,随后将密钥上传给服务器,最终服务器使用该密钥对密文数据进行二次加密,生成只有指定用户才能解密的密文数据,但是云存储服务器部分可信这一前提仍然值得怀疑,如果服务商和第三方串通,数据机密性还是难以保证。
2. 2密文检索
密文检索包括基于安全索引与基于密文扫描两种典型的方法,基于安全索引的方法首先为密文关键词建立安全索引,接着在安全索引中检索索引关键词是否存在;基于密文扫描的方法是通过对密文中每个单词进行比对,确认关键词是否存在。
IBM研究员Gentry提出全同态加密(fully homomorphicencryption)算法,基于全同态加密的检索方法,首先采用全同态方法对文档进行加密并建立索引,然后评估检索出的信息与待查信息之间的相关度,并对检索词词频和倒排文档频率进行统计,最后将加密文档与索引项密文一起上传到服务器端,找到相关结果,通过全同态加密算法加密的明文数据可以在不恢复明文信息的情况下检索出来,这样既隐藏了用户的数据,又提高了检索性能,虽然该方法在理论上取得了一定突破,但因为算法复杂度较高而导致效率低下,目前离实用化仍有很长的距离。
3 存储架构
3.1 存储架构组成
图1是典型的公司数据存储与密文全文检索应用模型,在该应用模型中,包含两个参与者与一个专用服务器。
1)第一个参与者是公司,公司将数据资源存放在云上,公司内部包含若干员工以及一组专用的服务器。
2)第二个参与者是云存储服务商,它负责存储公司的数据资源以及索引文件。
3)专用服务器,专用服务器主要有如下几个作用:a)颁发用于访问控制的证书;b)为上传全文明文文本数据建立全文索引,并对索引中的关键词加密;c)将提交数据文档资源的按照属性控制策略进行加密;d)将提交的查找关键词进行加密处理;e)在增加、删除和更新数据时,修改访问控制权限以及存储在云上的索引表,下文为叙述方便,简称专用服务器为服务器。
图1 数据加密与密文全文检索存储模型
3.2数据加密与检索的过程
3.2.1数据加密与索引文件建立
公司的每个员工都拥有专用服务器颁发的证书,这些证书反映了员工的相关属性信息,每当员工需要将数据上传至云存储平台,需将数据连同指定了哪类证书可以解密数据的解密策略提交给专用服务器进行处理,为了保证数据的机密性,用户存储的数据是已加密的,同时,公司的员工需要对大量的数据进行检索,那么就需要专用服务器先对数据文档明文建立索引,再将索引表中的关键词进行加密,然后把加密后的密文以及索引文件上传至云存储平台,这样云存储服务商便无法得知查询关键词与存储文件的具体内容。
3.2.2基于密文属性的文件检索
如果某一员工需要检索云存储平台上的数据,他必须将自己查找的关键词发给专用服务器,之后,该员工得到经过加密处理的关键词,这样,再把这个经过处理的关键词提交给云存储提供商进行检索,就可以找到并或得适当的加密文件,最终,员工利用自己的证书进行解密。
4 数据加密与密文检索
在图1的存储架构中,主体公司需要把数据资源加密并建立索引、查找并解密,在这个过程中,用到了两个关键技术。
4.1密文访问控制
在传统的非对称加密算法中,只能由一把私钥解密公钥加密后的密文数据,这样,没有办法做到密文数据在企业内部的共享,本文参考了由Bethencourt等人提出的密文规则的基于属性加密方案(CP-ABE),这一方案的基本思想是:密文与私钥分别关联着属性集S和S',当属性集S与S‘相交的属性个数至少为k时,包含属性集S‘的私钥才能解密包含属性集s的密文,由于CP-ABE的访问控制策略是由数据属主指定的,且隐含于密文之中,这样,采用该方案对数据加密后,就确定了哪些策略能解密并访问密文数据,这一特性恰好满足了本文数据加密与密文全文检索存储模型中证书的要求,当一个企业用户提交数据后,其他企业内相关用户也能依据权限访问数据。
Bethencourt等人提出的CP-ABE采用非对称密钥对数据进行加密,效率过低,难以应用于大量数据的加密,因此,本文采用一种混合加密机制,对其加以改造,服务器首先随机产生一个密钥K,然后用K对数据进行对称加密,最后将密钥K用CP-ABE非对称加密,从而提高了该算法的效率。
4. 2密文检索
图2 密文检索流程图
本文提出基于加密关键词的全文检索方法:首先,将要上传的明文数据随同加密属性集提交至专用服务器;专用服务器将明文数据逐个分词,然后将分词后得到的关键词以加密的方式写人索引文件,索引文件中记录了加密关键词、该关键词在明文中的位置以及一些其它元数据;专用服务器将这一组数据按照加密属性集进行加密,并上传至云存储平台;最后,由于检索是在索引文件而不是在加密过的密文中查找关键词,故以同样的加密的方式将检索词加密,将加密过的检索词同索引文件中的关键词进行匹配,如果匹配成功,就可以找到加密过的密文,将其下载至本地之后,如果有相应的权限解密的话,即用户属性满足数据文档属性策略,便可以得到明文,具体查询过程如图2所示。
5 服务实现与应用结果分析
5.1数据上传服务
5.1.1明文及访问策略提交
BooLEAN Submit-Up (File,ATTR)Submit-Up方法置于各个员工客户端,该方法应用于各员工提交明文数据及访问策略至服务器,如果提交成功则返回True,否则返回False,在该方法中,File表示员工提交的明文数据,ATTR表示能够查看该数据的访问策略的逻辑表达式列表。
5.1.2建立全文索引并对关键词加密
Index CreateIndex(File,Path)
CreateIndex方法以及后续上传服务中的方法皆位于服务器端,该方法先将员工上传的明文数据建立全文索引文件,然后对全文搜索关键词加密,最后将索引文件临时存放到相应的路径,在该方法中,File表示由员工提交上来的明文数据,Path表示临时存放索引文件的位置,返回的Index表示生成的索引文件。
为了将加密的全文搜索关键词写到索引文件中,本文基于Lucene全文检索的搜索引擎,对其源码加以改写,在Lu-cene的分词器Analyzer执行完分词过程之后,将分词得到的明文加密,再传给写索引器IndexWriter,最终存人索引文件中。
5.1.3初始化数据加密
Keypair Setup()
如果服务器第一次对某个明文数据进行加密,需要调用Setup方法做初始化设置,以产生公共参数PK以及主密钥MK,设置完成后,返回包含PK}MK值的Keypair对象。
5.1.4使用主密钥产生各员工证书
SK KeyGen(MK,ATTR)
KeyGen方法在服务器管理员输人主密钥以及各员工的属性集,为各员工创建各自的证书时使用,其中,MK表示加密的主密钥,ATTR表示各员工的属性集,SK表示包含解密策略ATTR的员工证书。
5.1.5按照提交的访问策略加密明文
CFile Encrypt(PK,File,ATTR)Encrypt方法在每次加密时都需要使用的,在输人公共参数PK,待加密明文File,以及访问策略ATTR后,返回密文,密文只能由那些满足策略ATTR的用户解密,其中,PK表示加密的公共参数,File表示带加密明文数据,ATTR表示访问策略,返回的CFile表示密文数据。
5.1.6上传密文及索引
UplOAd(CFile,Index)
Upload方法的作用是将索引文件及密文数据通过云存储服务商提供的专用接口上传至云平台,其中,CFile表示经由Encrypt方法加密的密文数据,Index表示由CreateIndex方法建立的关键词加密的全文索引文件。
5. 2数据下载服务
5.2.1提交查找关键词
BooLEAN Submit-Down(Keyword)
Submit-Down方法应用于企业员工需要检索云存储平台的数据时,员工首先提交检索关键词至服务器,如果提交成功返回,True,否则返回False.Keyword表示员工查询数据时提交的查找关键词。
5.2.2加密检索关键词
CKeyword EncryptKeyword(Keyword)
EncryptKeyword方法位于服务器端,使用同当初加密关键词一致的单向加密算法对检索关键词进行加密,其中,CK-Byword表示服务器将员工提交的查找关键词加密后返回的密文查找关键词。
5.2.3返回包含查找关键词的所有文件
Result Download(CKeyword)
Download方法调用Lucene中的读索引器IndexReader和检索器IndexSearcher去匹配索引文件中的关键词,如果匹配成功,则返回包含该关键词的数据名以及所在位置链接,Result表示该次查找返回的文件列表。
5.2.4选择需要的文件下载并解密
File Decrypt(PK,CFile,SK)
Decrypt方法应用于员工根据检索的内容,选择自己需要的数据,就可以将数据下载至本机,其中,PK表示加密的公共参数,SK表示包含解密策略ATTR的员工证书,CFile表示需要解密的密文数据,File表示解密成功后得到的明文数据。
解密数据时,需要先将附加在密文数据之前的密文对称密钥抽离出来,如果员工本地证书SK包含的解密策略ATTR能够满足密文对称密钥CFile包含的访问策略ATTR时,则可以解密该对称密钥密文CFile,得到对称密钥之后,便可以对密文进行解密,最终返回明文数据。
5. 3示例验证及结果分析
为了检验本文设计的模型与服务的可行性,基于LinuxUbuntu-10. 04搭建了Eucalyptus环境,并在该环境上模拟了具体的应用实例。
表1文件内容描述
案例首先调用Submit-Up上传3个文件,文件内容如表1所示。
随后,调用CreateIndex方法为这3个文本文件建立全文索引,并对全文搜索关键词加密,索引文件临时存放在服务器Temp文件夹下,假设已经在服务器端产生了公共参数pub_key以及主密钥masteres key,并也已经给各个员工分配了各自的证书,接着,调用Encrypt方法将上述3个文件按照各自的访问策略加密,最后,调用Upload方法,将这3个密文文件及索引文件上传至云存储平台。
表2 关键词查询结果
表3 解密结果描述
调用Submit-Down和EncryptKeyword方法,查询各关键词,得到结果如表2所示。
表2的结果验证了全文检索的准确性,对于云存储平台,索引文件的关键词是加密的,故索引文件的安全级别也是较高的。
以不同的属性调用Download方法,返回结果如表3所示。
表3的结果表明:即使员工在公司内部网络中,可以搜索和获取全部密文文件,但如果不能满足密文文件的解密策略 ,是无法得到明文文件的,因此,验证了数据机密性及访问控制的安全。
6 结语
本文提出了一种安全机制,该机制解决了企业用户将数据存放至云存储平台面临的数据机密性和检索便捷性问题,以现有的CP-ABE方案和Lucene工具包为基础,在Linux以及Eucalyptus环境下完成了密文访问控制和和密文检索的基本开发,数据加密/解密算法的优化正在开发过程中。
本文主要解决了云存储平台企业数据的机密性、数据共享以及有效检索的问题,对于企业数据安全中的完整性问题,本安全架构中没有给出相应的解决方案,这一问题有待进一步研究。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:企业云存储数据的加密与密文全文检索研究
本文网址:http://www.toberp.com/html/consultation/1083959586.html