孙 军,谈鹏图,林文兴,左晋佺
加密与密文检索云服务系统
孙 军1,谈鹏图1,林文兴2,左晋佺2
(1. 深圳云塔信息技术有限公司,广东 深圳 518057;2. 暨南大学,广东 广州 510632)
云存储将存储资源作为服务通过互联网提供给用户使用,是云计算中基础设施即服务的一种重要形式。云存储可以将众多廉价的存储介质整合为一个存储资源池,用户可以按自己对存储资源的实际需求量向云服务提供商租用池内资源,省去了本地的存储硬件及人员投入。同时,将存储的基础设施交由专业的云服务提供商来维护可以保证更好的系统稳定性。但是由于大部分云存储服务提供商存储在云端的文件是明文状态而且用户丧失了对数据的绝对控制权,因此针对云服务提供商的所有安全隐患都将直接关系到用户数据的安全性。文章全面分析了云服务系统中存在的安全隐患,提出了相应的应对措施,设计实现了一套密文存储与密文检索开放云服务方法和系统,打消了用户选用云方案的顾虑,对于促进云计算的发展、增加信息系统的使用效率都具有十分重要的意义。
信息安全;密文存储;密文检索;云服务
随着互联网和计算技术的发展,人们的生活已经进入了“云时代”,置身于“云”中,人们想要的各类信息触手可及。但是据调查,我国至少95%的政府用户和企业用户将数据安全作为考虑云计算时最为关心的问题,曾经出现的由于亚马逊存储服务中断引起的存储服务网站瘫痪时间,包括前不久阿里云出现故障,更加使很多人对云计算的安全性有了较大的担忧。目前,安全问题已经成为云计算行业一个备受关注的课题,成为了一个研究热点[1]。
保护云端数据数据安全的方法和系统的设计方面已经有了很多成果,例如:涂俊英等人提出了一种云计算中数据信息加密安全存储仿真研究,设计了一种基于改进密钥的云计算中信息加密存储的方法,提高了云环境下信息存储的安全性[2]。宗平等人在分析云计算中数据不安全因素的基础上,通过对云端数据进行合理加密的技术手段,实现了一种有效的安全数据存储和加密的服务模型,达到了对云环境中的数据进行安全的数据存储和备份[3]。与此同时,对于云中加密的信息如何检索也引起了大家的关注。何亨等人提出了一种云环境中密文数据的检索方案,通过检索包含有指定多个关键词的密文,并支持模糊关键词检索,在云服务器上进行密文检索[4]。胡晓燕提出了面向数据存储的安全访问控制机制,利用该机制完成了对云计算数据访问动态控制[5]。针对目前密文检索效率低的问题,陈元等人提出了密文检索方案,该方案在保证安全性的同时,能够提升复杂度、存储空间、运算时间和数据传输量等方面的性能[6]。包国华等人提出了一种基于隐私感知的数据安全保护方法,并对其算法进行了有效性实验[7]。国内很多学者对不同类型数据加密进行了广泛研究[8-12]。
从目前调研来看,云端数据的安全性问题已经引起了学术界和产业界的广泛关注,但投入实用的方案还比较少,特别是将密文检索和密文存储结合起来的系统化研究还比较少。本文提出了一种密文存储与密文检索开放云服务方法和系统,专门为企业和用户提供文件加解密和密文检索服务,而且企业和用户可以很方便地把该方法和系统集成到项目中,免去用户自己开发加解密组件和密钥管理系统的步骤,使用户可专注于研究和开发项目的业务流。该系统对于促进云计算的发展、增加信息系统的使用效率具有十分重要的意义。
云存储的最大特点是存储及服务,用户可以通过公有API将自己的数据上传到云端保存,由于云模式的特点,数据所有者不再维护存储数据的载体,用户不管选择哪家云服务提供商都必须对其完全信任,但在现实中,用户的数据,尤其是使用智能终端采集的数据(例如:个人照片、通信记录等)往往与隐私相关,用户并不希望将其完全的托付给存储服务商,虽然云服务提供商在数据保护、容灾、备份、数据中心的维护等方面有着用户们无法比拟的经验和水平,但很多用户仍然认为受自己控制的才是安全的。据调查,我国至少95%的政府用户和企业用户将数据安全作为考虑云计算时最为关心的问题;由于大部分云存储服务提供商存储在云端的文件是明文状态而且用户丧失了对数据的绝对控制权,因此针对云服务提供商的所有安全隐患都将直接关系到用户数据的安全性,具体的安全隐患包括:
(1)数据在网络传输过程中容易泄露:目前很多云服务提供商在同步用户数据的时候采用不安全的传输方式,数据在同步到云端的时候很容易遭到网络窃听或者劫持,造成隐私数据泄露。
(2)云服务提供商滥用权限的风险:由于数据是以明文状态存在于第三方云服务提供商的,而某些云服务提供商的管理员拥有较高权限,管理员可能会因为一些商业利益对用户数据造成泄漏;又或者云服务提供商基于商业目的对用户数据进行窥探和分析。例如:Google和百度等公司普遍采用的分析引擎,可能涉及用户的使用习惯等隐私信息。
(3)云服务商被攻击:把数据存储在云端给数据访问和存储带来方便的同时,也面临着互联网上很多黑客攻击的威胁,如果用户数据以明文的方式存储在云端的话,一旦云服务商被攻击,极有可能造成用户数据的大量泄漏。
因此,一些企业或者个人并不愿意将自己的私有数据直接交给云服务提供商保管,他们更希望将数据进行加密处理后再保存到云端,这就需要用户自己编写一套加密组件和密钥管理系统集成到项目中,虽然可能解决了一些安全问题,但是又同时带来了新的问题,用户自己编写的加密组件和密钥管理系统具有如下缺陷:
(1)没有统一的规范和标准:用户在编写加密组件时,数据如何加密、加密流程、密钥管理方式以及项目集成方法等全部纳入用户考虑范围,目前市场上缺乏统一的规范技术和标准,使得自定义的加解密组件只能适用于一个项目,不利于推广使用。
(2)用户需要维护一套复杂的密钥管理系统:用户在自定义加解密组件的同时,势必要新建一套密钥管理系统为加解密组件提供服务,用户需要自己开发和维护这一套密钥管理系统,增加了用户的开发和维护费用。
(3)无法满足密文检索要求:使用自定义的加解密组件,数据被加密保存到第三方云服务提供商后,密文文件的内容对用户不可见,用户无法对密文文件的内容进行密文检索。
针对上述问题,本文提出了一中密文存储与密文检索开放云服务方法,所述方法包括:
(1)密文存储和密文检索以服务的方式提供给用户,用户可以很容易地使用密文存储和密文检索服务。开放服务包括对接客户端的安全组件和为安全组件提供对接服务的服务器端;所述客户端可能是各种智能计算设备,包括移动智能终端(例如:智能手机、PAD、PDA或其他移动智能设备)和传统互联网接入设备(例如:笔记本电脑、PC或服务器等);所述安全组件可能是一些拥有开放接口可供调用的库文件(例如jar包、程序动态库、静态库等);所述服务器端是对外提供对接服务的服务器等。
(2)用户通过和服务器协商一致的身份信息进行登录验证,采用与个人身份绑定的主密钥和与文件绑定的加解密密钥两级密钥管理方法,提供:身份认证,密钥产生,密钥更新,密钥存储,密钥备份功能。
(3)安全组件为用户提供文件透明加解密和文件存储功能,用户通过调用安全组件提供的接口对文件进行加解密和存储,调用方式简单,加密算法多样,算法可以根据用户需求进行选择。加密文件可以方便地存储于第三方云平台。
(4)安全组件为用户提供文件内容密文检索功能,文件的密文索引信息会在文件加密的时候上传到服务器端,用户通过调用安全组件的密文检索接口,可以对密文文件的内容进行检索。
(5)安全组件支持主流的云平台对接(例如阿里云、亚马逊S3等),通过安全组件加密的密文文件全部同步到第三方云平台,密文存储和密文检索开放云服务的服务器端只保留加密文件的密钥和密文索引,不保留密文文件,而第三方云平台只保留加密文件,而不保留加解密密钥,达到了密文和密钥分离的目的,有效地确保了文件的安全性。
通过以上所述方法,解决了当前云平台存储面临的安全问题,也增加了信息系统的使用效率。
密文存储与密文检索开放云服务系统主要为上传到云端的文件提供加密存储、用户管理、密文检索等功能,同时提供第三方接口。其整体结构如图1所示。
系统包括安全组件、与安全组件对接的服务器、安全组件通过网络与服务器建立连接、安全组件通过网络与第三方云存储服务器建立连接。
安全组件包括文件加解密模块、密钥管理模块、密文检索模块、身份认证模块、元信息对接模块和对接外部云存储模块。
文件加解密模块和密文索引模块分别用来进行加解密操作和密文索引生成;身份认证模块和密钥管理模块用来完成用户身份认证和与个人身份绑定的主密钥和与文件绑定的加解密密钥两级密钥管理;密文检索模块用以实现对密文文件内容的检索,对于密文检索生成相应查询语句的分词和单向散列,并与云服务器端交互;元信息对接模块主要完成文件元信息与服务器端对接的功能,完成密文索引同步的功能;对接外部云模块用于对接多种第三方云服务平台;身份认证模块与文件加解密模块、密钥管理模块为用户提供操作接口,以设定密文安全策略,包括获取所述认证参数和加解密算法。
服务器端包括用户管理模块、密钥管理模块、密文检索模块、信息同步模块、断点续传模块、并发处理模块、元信息和索引存储模块。
用户管理模块与安全组件的用户管理模块进行对接,主要完成对用户帐号的管理和访问控制,包括注册用户、维护超级管理员用户和普通用户等;密钥管理模块与安全组件的密钥管理模块对接,完成对用户主密钥和文件的次级密钥的管理,存储备份用户的主密钥单项散列值、使用主密钥加密的加解密密钥。提供接口接受用户请求,进行密钥恢复;密文检索模块完成与安全组件的密文检索模块的对接,完成对明文文件的密文索引的生成以及密文索引文件的同步与检索;信息同步模块与安全组件的元信息对接模块和密文检索模块对接,完成文件元信息的同步功能以及密文索引的上传下载和查询;断点续传模块和安全组件的元信息对接模块和密文检索模块对接,完成文件信息在上传下载过程中因为网络问题或者其他问题而导致的传输中断而导致的重传问题;并发处理模块针对多用户安全组件对服务器产生的并发量而造成服务中断的问题,处理巨量用户请求的并发问题;元信息和索引存储模块为用户提供了巨量数据存储的数据仓库的存储方法,存储和计算支持可扩展伸缩,为服务器端数据存储提供底层大数据支撑。
在本系统中文件加密模块、密钥管理模块、密文检索模块是其重要实现核心。
本系统的文件加密的具体流程如下图2所示。
安全组件通过用户应用程序得到需要加密的明文及相关信息,再通过抽象加解密模块向加解密配置模块请求查询用户保存的加解密算法。加解密配置模块访问缓存的配置文件查询加解密信息,将查询到的加解密算法返回给抽象加解密模块。通过抽象加解密模块向密钥管理模块请求获取加解密密钥。密钥管理模块访问缓存中存放的加解密密钥,使用主密钥解密返回给抽象加解密模块。最后将加密后的文件上传到第三方云平台,把文件元信息上传到密文存储与密文检索开放云服务的服务器。
图1 系统整体结构
图2 文件加密流程
本系统的密钥管理实现了与个人身份绑定的主密钥与文件绑定的加解密密钥两级密钥管理方法,如下图3所示。
图3 密钥管理模块关系
密钥生成包括主密钥生成、加密密钥生成、密钥获取。
主密钥在用户第一次用户注册时生成,依据相应的认证参数(口令+用户名,指纹等生物特征)生成主密钥。(产生之后即调用密钥备份模块保存)。当文件加解密模块请求加密密钥时,依据文件加密属性和用户加密方案查找相应加密密钥,并用主密钥解密提供给加解密模块,如未找到则生成相应加密密钥,提供给加解密模块并用主密钥加密(即调用密钥备份模块进行备份)。另外作为这个模块的主线程,要随机启动,运行期间主密钥从内存读取,加密密钥可以从内存缓存中读取,或者读取数据库。文件加解密模块从服务器获取加密后的文件加密密钥后,利用主密钥进行解密得到文件加解密密钥。
密钥更新模块主要完成的是根据用户安全组件的命令来完成密钥的更新操作。当用户发出更新命令时,需要输入旧的认证参数,如口令或生物特征,以及新的认证参数,调用认证模块,当旧的认证参数认证通过时,就用旧的主密钥解密所有加解密密钥,并使用新的认证参数生成新的主密钥,并对加解密密钥加密存储。(调用密钥备份模块进行客户端和云端的双备份)。
密钥认证模块主要完成对用户身份的认证。根据用户的认证参数生成的主密钥单向散列值存储到数据库中,并在需要验证时计算用户输入的认证参数生成主密钥单向散列值和数据库中的单向散列值比对。
密钥备份模块主要完成将主密钥单向散列值,加密密钥备份到数据库;并且把和加密密钥有关的其他数据库文件(比如加密密钥和文件的对应关系表,用户表等)也备份到云端。
密钥管理模块的获取密钥过程的如下图4所示。
图4 获取密钥过程
首先需要判断加解密密钥存储数据库是否存在,若存在,使用解密数据库中存储的加解密密钥,并返回,若不存在,则调用密钥生成模块,生成文件加解密密钥,存储在内存缓冲中。使用主密钥加密加解密密钥,存储在数据库中。并调用密钥备份模块,将加密后的文件加解密密钥返回给安全组件。
由于存储在第三方云端的数据是以密文的方式存储,如果想对密文文件的内容进行内容检索,而且还不能泄露检索的内容,需要在安全组件端建立密文索引内容,可以建立索引的文本文件的类型包括txt、pdf、word等非结构化数据,将加密的索引上传到服务器端,存储到指定的目录下。安全组件的逻辑是核心模块,安全组件调用加解密模块和密钥管理模块的外部接口进行密文索引的生成,安全组件也会调用网络对接模块实现密文索引文件的上传。密文索引检索的具体过程如下图5所示。
图5 密文检索过程
安全组件接受用户密文检索所的关键字,然后选择密文查询。根据用户选择,对查询关键字进行解析划分,生成密文索引查询指令。服务器接受安全组件发送的密文检索的查询指令,在服务器端进行密文索引。根据密文检索结果,查询文件元数据信息。对查询结果进行合并处理,得到格式化文件元信息列表。密文存储与密文检索开放云服务器将查询到的文件列表返回给安全组件。
本文提出的方法,完善的解决了云存储现有技术方案的缺陷和风险,密文存储与密文检索开放云服务为用户规定了统一调用方式,通过使用密文存储与密文检索开放云服务保存到第三方云端的数据全部是密文形式,第三方云存储只保存加密文件,而不保存加解密密钥,达到了密文和密钥分离的目的,有效地提升用户的数据安全防护和隐私保护能力,另外密文存储与密文检索开放云服务提供的密文检索服务可很好的满足了用户对密文文件内容的内容检索的需求。该系统保证了云存储中的数据安全,并极大的提高了信息系统的使用效率,具有很大的应用参考价值。
[1] 冯登国, 张敏, 张妍,等. 云计算安全研究[J]. 软件学报, 2011, 22(1): 71-83.
[2] 涂俊英, 张学敏. 云计算中数据信息加密安全存储仿真研究[J]. 计算机仿真, 2017(12): 431-434.
[3] 宗平, 周明. 云计算中的数据安全存储和加密模型的设计[J]. 计算机技术与发展, 2013(11): 137-140.
[4] 何亨, 夏薇, 张继,等. 一种云环境中密文数据的模糊多关键词检索方案[J]. 计算机科学, 2017, 44(5): 146-152.
[5] 胡晓燕. 云计算存储数据动态访问控制方法研究与仿真[J]. 计算机仿真, 2017, 34(3): 365-368.
[6] 陈元, 张昌宏, 付伟,等. 基于云存储的安全密文区间检索方案[J]. 计算机工程, 2018, 44(3): 13-18.
[7] 包国华, 王生玉, 李运发. 云计算中基于隐私感知的数据安全保护方法研究[J]. 信息网络安全, 2017(1): 84-89.
[8] 刘艳华. 数字图像置乱加密解密技术的研究与实现[J]. 软件, 2018, 39(3): 141-144
[9] 罗伟雄, 时东晓, 曾纪霞, 等. 基于.NET Framework 的增强型加密服务架构[J]. 软件, 2015, 36(8): 55-62
[10] 邹学通, 吴伟明. 通过统计模型和加密防范SQL 注入攻击的研究[J]. 软件, 2015, 36(12): 189-193
[11] 曾程胜. 实现Javascript-Delphi高强度加密传输安全[J]. 软件, 2018, 39(1): 173-179
[12] 龙毅宏, 黄强, 王维. 电子邮件IBE加密研究[J]. 软件, 2018, 39(2): 01-06
Design of Open Cloud Service Method and System for Cipher-text Storage and Cipher-text Retrieval
SUN Jun1, TAN Peng-tu1, LIN Wen-xing2, ZUO Jin-quan2
(1. Shenzhen Cloudta Information Technology Co., Ltd., Shenzhen 518057, China; 2. Jinan University, Guangzhou 510632, China)
Cloud storage provides storage resources as services to users through the Internet. It is an important form of infrastructure as a service in cloud computing. Cloud storage can consolidate many inexpensive storage media into one storage resource pool. Users can rent pool resources to cloud service providers according to their actual demand for storage resources, eliminating local storage hardware and personnel investment. At the same time, maintaining the storage infrastructure with a professional cloud service provider can ensure better system stability. However, since most cloud storage service providers store files in the cloud in plain text and users lose absolute control over the data, all security risks for cloud service providers will directly affect the security of user data. The article comprehensively analyzes the hidden dangers in the cloud service system, proposes corresponding countermeasures, designs and implements a set of cipher text storage and cipher text retrieval open cloud service methods and systems, and dispels the concerns of users using cloud solutions. The development of cloud computing and the increasing efficiency of the use of information systems are of great significance.
Information security; Cipher-text storage; Cipher-text search; Cloud service
TP391. 41
A
10.3969/j.issn.1003-6970.2018.10.019
孙军(1976-),男,高级工程师,主要研究方向:云计算与物联网;谈鹏图(1983-),男,高级工程师,主要研究方向:云计算安全;林文兴(1967-),男,研究生,主要研究方向:信息系统,档案信息化;左晋佺(1983-),女,研究生,主要研究方向:档案信息化。
孙军,谈鹏图,林文兴,等. 加密与密文检索云服务系统[J]. 软件,2018,39(10):92-96