APP下载

基于PKI技术的可搜索云加密存储系统

2018-03-10刘书勇付义伦

软件导刊 2018年2期
关键词:数字证书服务端存储系统

刘书勇+付义伦

摘 要:为了保证云服务端存储数据的保密性和用户访问数据的便捷性,应由用户对自己的数据文件进行加密保护,并支持云服务提供商对密文数据文件的检索。设计了基于PKI技术的可搜索云加密存储系统,采用Curtmola可搜索对称加密方案实现对密文数据的检索,使用数字证书和公钥密码技术实现云服务端与用户之间的身份鉴别、密钥协商和通信安全等机制,云服务提供商对用户的数据和索引文件进行加密存储,防止黑客从服务器上非法获取文件内容。经过安全性分析,此系统能够实现身份鉴别、通信加密、存储安全和密文检索安全,防止窃听攻击、伪造攻击、重放攻击等攻击手段,适用于政府、企业等单位建立安全可靠的云存储系统。

關键词:信息安全;云存储;密码技术;可搜索加密;PKI技术

DOIDOI:10.11907/rjdk.173025

中图分类号:TP309.7

文献标识码:A 文章编号:1672-7800(2018)002-0182-04

0 引言

随着云计算技术的飞速发展,越来越多的政府、企业以及个人用户都开始采用云计算或云存储系统,实现信息系统、Web网站、数据存储、大数据分析等应用向云端的迁移。 特别是随着大数据时代的来临,数据形式已经从原来的结构化数据为主(例如关系型数据库等),逐渐转变为以半结构化、非结构化数据作为重要的数据格式,例如视频、音频、文档等文件形式。一些著名的存储服务系统,包括Amazon S3、iCloud、DropBox、百度云等,其中某些系统提供了服务端加密或客户端加密等方式,但是都不支持对密文的搜索功能。

为了保障云端存储数据的保密性,用户应先把要存储的数据文件进行加密(加密密钥由用户产生并安全保存),然后将密文格式文件传递到远程云端服务器进行保存,这样可以保证黑客或云服务提供商即使读取了服务器上的文件,也无法解密获取文件的真实内容。一个实际的问题是,如果用户在云端存储了大量文件,当某一天用户想获取云端的某些文件时(例如包含某个关键词“信息安全”),如果云端不能对密文文件进行关键词搜索,就不能查找并返回用户这些特定的文件。一个直接的方法是,云端把所有的文件发送给用户,用户收到后再进行全部解密、检索,这样的效率非常低。

D. Song等[1]最早提出了可搜索加密的概念,可以实现对密文数据的关键词搜索,其缺点是需要对整个密文文件进行遍历搜索,效率比较低。E.-J. Goh等[2]提出了安全索引文件的方案,实现对密文索引文件的检索,提高了搜索效率。R. Curtmola等[3]给出了可搜索加密的安全定义,并分别提出了非适应性安全和适应性安全的可搜索加密方案。后来的一些可搜索加密方案,实现了多关键词、词组的密文搜索方案[4-7]。这些可搜索加密方案是基本的密码协议,在实际的云存储系统中,必须要考虑云服务端和用户之间的身份鉴别、通信安全以及密文索引文件安全等问题。

本文采用PKI技术解决云存储系统的身份鉴别、密钥协商、通信安全等问题,设计了一种实际的可搜索云加密存储系统,采用R. Curtmola的可搜索加密方案实现密文检索,通过CA数字证书和数字签名实现用户与云服务端之间的双向身份鉴别、密钥协商和加密通信,可以抵抗窃听攻击、身份假冒、中间人攻击、消息伪造等攻击方式,保证了云存储系统的安全性。

1 可搜索加密方案

R. Curtmola等[3]提出的可搜索加密的安全定义,包括非适应性不可区分安全性和适应性不可区分安全性,已经被多数研究者作为可搜索加密安全定义的标准。R. Curtmola等提出了两种可搜索加密方案,笔者采用适应性安全的可搜索加密方案作为云加密存储系统的密文搜索协议。

1.1 符号与定义

令D表示文档集合,w表示关键词,D(w)表示包含关键词w的文档集合,δ(D)表示所有文档D中关键词的集合。令s=n*max,其中n是集合D中的文档数量,max表示单个文档中包含的最多不同关键词的数量。

令Enc_k()表示用密钥k进行对称加密运算,Dec_k()表示用密钥k进行对称解密运算。Per_k()表示用密钥k进行伪随机置换,可以使用语义安全的对称密码算法实现此功能。

1.2 可搜索加密方案

R. Curtmola等提出的适应性安全可搜索加密方案,基本过程描述如下:

2 基于PKI技术的可搜索云加密存储系统

在云存储系统中,必须要解决云服务端与用户之间的身份鉴别、密钥协商、通信安全等问题,防止身份假冒、窃听攻击、消息重放、数据伪造等安全风险。这些安全问题应使用PKI和数字认证等公钥密码技术实现,公钥密码技术适合于实现身份鉴别、密钥协商、数字签名等功能,对称密码技术更适合于高速数据加解密运算,二者结合才能实现较好的安全性。

本文设计的可搜索云加密存储系统,采用我国密码算法标准——高安全强度的SM2椭圆曲线公钥密码算法[8-9]、SM3密码杂凑算法[10-11]和SM4分组对称密码算法[12-13]以及双数字证书机制,分别实现公钥加解密、数字签名、消息完整性、对称加解密等功能。采用CA数字认证和PKI技术解决云存储系统的身份鉴别、密钥协商、通信安全等问题,采用R. Curtmola的可搜索加密方案实现对密文数据的检索。因此,笔者提出的可搜索云加密存储系统充分利用了公钥密码技术和对称密码技术的各自优点,达到良好的安全性与效率的统一。

2.1 符号与角色定义

为了便于描述,令A表示云服务端,B表示用户,Cert_A和Cert_B分别表示云服务端和用户数字证书。采用双数字证书机制,即签名证书用于数字签名和身份鉴别,加密证书用于密钥协商和对称密钥的加密封装。

Pub_Enc_A()表示用A的加密证书的公钥进行加密运算,Pub_Dec_A()表示用A的加密证书的私钥进行解密运算。Sig_A()表示用A的签名证书的私钥进行数字签名,Verify_A()表示用A的签名证书的公钥进行验证签名。Enc_k()表示用密钥k进行对称加密运算,Dec_k()表示用密钥k进行对称解密运算。endprint

基于PKI技术的可搜索云加密存储系统,由CA认证中心、云存储服务提供商、云存储用户等角色组成。每一种角色的功能包括:

(1)CA认证中心。实现数字证书的生成、颁发、维护、更新、撤销等全生命周期管理,为云存储服务提供商、云存储用户颁发代表身份的数字证书。本系统采用标准的数字证书格式,可以连接国内外CA认证中心,或使用企业内部建立的CA认证中心。

(2)云存储服务提供商A。为用户提供可靠稳定的云存储服务,并根据用户的检索需求,提供密文文件的检索、查找服务,将查找后的密文文件返还给用户。

(3)用户B。具有密钥生成、文件加密、索引文件生成、查找陷門生成等功能,将密文数据和密文索引发给云服务端进行存储;并能够产生密文检索的陷门和需求,发给云服务端进行密文检索。

2.2 系统设计与流程

基于PKI技术的可搜索云加密存储系统流程,主要包括系统建立、文件加密存储和密文检索三个阶段,分别详细描述如下:

2.2.1 系统建立阶段

由CA认证中心进行数字证书的颁发以及云服务端和用户的准备工作。

(1)云服务端A向CA认证中心申请数字证书,CA认证中心审核信息通过后,向云服务端A颁发数字证书Cert_A,包括签名证书和加密证书。

(2)用户B向CA认证中心申请数字证书,CA认证中心审核信息通过后,向用户B颁发数字证书Cert_B,包括签名证书和加密证书。

(3)云服务端A进行系统设置、用户存储空间的划分等准备工作;用户B进行密码系统的安装等准备工作。

2.2.2 文件加密存储阶段

用户B进行所有文档和索引文件的加密,并发送给云服务端A进行存储。

(1)用户B随机生成一个随机数x,计算椭圆曲线的点乘PointX=x·G,其中G是SM2椭圆曲线密码算法参数中的基点,将PointX作为密钥协商的参数。

(2)用户B计算Pub_Enc_A(Cert_B, PointX, T_B, Sig_B),并发送给云服务端A,其中T_B表示对此消息产生的时间戳,Sig_B是对此消息的签名。该步骤是将用户B的数字证书Cert_B、密钥协商参数PointX以及时间戳、签名信息经过加密后,发给云服务端A。

(3)云服务端A解密消息Pub_Enc_A(Cert_B, PointX, T_B, Sig_B)后,验证签名和时间戳的正确性。如果签名和时间戳都正确,则随机生成一个随机数y,计算椭圆曲线的点乘PointY=y·G。然后计算Pub_Enc_B(Cert_A, Cert_B, PointX, PointY, T_A, Sig_A),并发送给用户B,其中T_A表示对此消息产生的时间戳,Sig_A是对此消息的签名。

(4)用户B解密后,验证签名和时间戳的正确性。如果签名和时间戳都正确,则计算出协商的对称密钥k=SM3(x·PointY)= SM3(xy·G),即用SM3算法对椭圆曲线点xy·G的比特串进行杂凑运算,取前128比特作为对称密钥。用户B发送Pub_Enc_A(k, Sig_B)给云服务端A,云服务端A计算k=SM3(y·X)= SM3(xy·G)。双方拥有相同的对称密钥k,完成密钥协商过程。

(5)用户B按照可搜索加密方案,建立密文索引和密文文档(I,c)后,计算Enc_k(I,c)并发送给云服务端A。

(6)云服务端A计算解密,(I,c)=Dec_k(Enc_k(I,c)),并将(I,c)进行存储。

2.2.3 密文检索阶段

用户B生成查找陷门t,并发送给云服务端A进行密文检索。

3 安全性分析

从身份鉴别、密钥安全、通信安全、存储安全、密文检索安全,以及抵抗身份假冒、窃听攻击、消息重放、数据伪造等方面,分析云加密存储系统的安全性。

3.1 身份鉴别机制与安全性

云加密存储系统采用数字证书和数字签名机制,实现云服务端与用户之间的双向身份鉴别。

在文件加密存储阶段,用户B计算Pub_Enc_A(Cert_B, PointX, T_B, Sig_B),其中Cert_B作为用户B的数字证书,代表了用户身份。云服务端A通过验证Sig_B,可以验证用户B的身份,因为只有用户能够进行此签名操作。时间戳T_B保证了此消息的鲜活性,防止消息重放攻击。

云服务端A发送Pub_Enc_B(Cert_A, Cert_B, PointX, PointY, T_A, Sig_A),用户A解密后,通过验证签名Sig_A的正确性,验证云服务端A的身份。时间戳T_A保证了此消息的鲜活性,防止消息重放攻击。

类似地,密文检索阶段的开始步骤也是先进行身份鉴别和密钥协商,因此能够实现云服务端A与用户B之间的双向身份鉴别,并抵抗身份假冒、消息重放攻击。

3.2 密钥协商的安全性

云加密存储系统采用了椭圆曲线点群上的Diffie-Hellman密钥交换协议(ECDH),并使用数字签名和时间戳防止中间人攻击、消息伪造和消息重放攻击。

由于xy·G= x·(y·G)= x·PointY=y·(x·G)=y·PointX,因此云服务端A和用户B能够协商得到相同的对称密钥k= SM3(xy·G)。在密钥协商过程中,Pub_Enc_A(Cert_B, PointX, T_B, Sig_B)和Pub_Enc_B(Cert_A, Cert_B, PointX, PointY, T_A, Sig_A)中的签名Sig_B、Sig_A,保证了密钥参数PointX、PointY不能被篡改、伪造,公钥加密保证了两个消息的保密性。因此,这些安全机制保证了密钥k是由云服务端A与用户B之间协商的密钥,防止了窃听攻击和中间人攻击。endprint

3.3 通信安全

云服务端A与用户B之间的通信包括两个过程,一个是身份鉴别和密钥协商过程,另一个是密文文档传输和检索过程。

在身份鉴别和密钥协商过程中,双方之间的通信都是用对方的公钥进行加密,只有私钥拥有者才能够解密,因此保证了身份鉴别和密钥协商过程的通信安全性。

在完成密钥协商后,双方之间的通信用协商的对称密钥k进行加密,因为密钥k的协商过程是安全的,因此用密钥k加密保护的通信过程是安全的,能够抵抗窃听攻击、消息伪造攻击。

3.4 存储安全和密文检索安全

所有的文档D和索引文件,都是由用户B自己生成的密钥进行加密保护,因此除了用户B之外,其他人(包括云服务端A)都不能解密文档和索引文件。因此,密文文档和索引文件保存在云端是安全的。

云加密存储系统采用了R Curtmola的可搜索加密方案,在对密文索引文件进行检索时,不泄露文档和索引文件的信息,能够达到适应性不可区分安全性。

4 结语

云计算和云存储已经在各个领域逐渐成为信息系统的主流计算和存储模式,而且大数据的发展使得非结构化文件的安全存储变得日益重要。本文提出的基于PKI技术的可搜索云加密存储系统,在可搜索对称加密方案的基础上,通过CA数字证书等公钥密码技术,实现了云服务端与用户之间的双向身份鉴别、密钥协商、通信安全等机制,适用于建立云存储时代的数据外包存储服务系统。

参考文献:

[1] SONG D, WAGNER D, PERRIG A. Practical techniques for searches on encrypted data [C].In Proceedings of 2000 IEEE Symposium on Security and Privacy, IEEE Computer Society, 2000: 44-55.

[2] GOH E-J. Secure indexes [R]. Technical Report 2003/216, IACR ePrint Cryptography Archive, 2003.

[3] CURTMOLA R, GARAY J, KAMARA S, et al. Searchable symmetric encryption: improved definitions and efficient constructions [J]. Journal of Computer Security, 2011, 19 (5): 895-934.

[4] 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.

[5] TANG Y, GU D, DING N, et al. Phrase search over encrypted data with symmetric encryption scheme [C]. In 32nd International Conference on Distributed Computing Systems Workshops, IEEE Computer Society, 2012: 471-480.

[6] 徐鵬,金海.可搜索加密的研究进展[J].网络与信息安全学报,2016,2 (10): 8-16.

[7] 冯朝胜,秦志光,袁丁.云数据安全存储技术[J].计算机学报,2015,38(1): 150-163.

[8] 全国信息安全标准化技术委员会.信息安全技术 SM2椭圆曲线公钥密码算法[P].中国,GB/T 32918-2016,2016-08-29.

[9] 汪朝晖,张振峰. SM2椭圆曲线公钥密码算法综述[J].信息安全研究,2016,2(11): 972-982.

[10] 全国信息安全标准化技术委员会.信息安全技术 SM3密码杂凑算法[P].中国,GB/T 32905-2016,2016-08-29.

[11] 王小云,于红波. SM3密码杂凑算法[J].信息安全研究, 2016, 2(11): 983-994.

[12] 全国信息安全标准化技术委员会.信息安全技术 SM4分组密码算法[P].中国,GB/T 32907-2016,2016-08-29.

[13] 吕述望,苏波展,王鹏,等.SM4分组密码算法综述[J].信息安全研究,2016,2(11):995-1007.endprint

猜你喜欢

数字证书服务端存储系统
分布式存储系统在企业档案管理中的应用
天河超算存储系统在美创佳绩
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
当心黑客利用数字证书的漏洞
基于数字证书的军事信息系统安全防护方案
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
管理好系统中的数字证书
一种基于STM32的具有断电保护机制的采集存储系统设计