基于动态加密算法的云端安全存储系统

2018-10-20 10:51张红岩靳明任贺贺刘建辉
科技创新与应用 2018年24期
关键词:云存储数据传输安全

张红岩 靳明 任贺贺 刘建辉

摘 要:针对目前云存储的数据安全问题,通过对传统加密算法的研究与分析,设计一套具有动态加密机制的数据安全存储方案。通过架设密钥认证中心生成动态密钥,实现了存储与加密的分离,密钥认证中心与用户数据存储服务器互相不可见,即使其中一方被攻击,用户的数据依然能够得到保障。满足了数据共享场景下的用户数据存储与传输安全。

关键词:云存储;动态加密;数据传输;安全

中图分类号:TP309.7 文献标志码:A 文章编号:2095-2945(2018)24-0007-05

Abstract: Aiming at the data security problem of cloud storage at present, through the research and analysis of the traditional encryption algorithm, a data security storage scheme with dynamic encryption mechanism is designed. By setting up a key authentication center to generate dynamic key, the separation of storage and encryption is realized. The key authentication center and the user data storage server are not visible to each other. Even if one of them is attacked, the data of the user can still be guaranteed. The security of user data storage and transmission in the data sharing scenario is satisfied.

Keywords: cloud storage; dynamic encryption; data transmission; security

引言

隨着计算机技术和互联网应用的迅速发展,数据正以几何级数的方式增长,人们对存储空间的需求也越来越大。在这一趋势下,近年来云存储的提出与发展以及存储即服务的理念为人们提供了大量廉价的存储空间[1]。尽管云存储有着价格低廉、部署方便等优点,其推广过程却十分缓慢。数据的安全问题是云存储推广的重大障碍之一。

安全性是云计算和云存储现在面临的最大挑战。云存储用户将他们的数据存放到云端,这些数据中可能就包括企业的商业机密、个人的隐私秘密等重要机密数据。如果这些数据丢失、泄露或者被篡改,那么将给使用云存储的企业和个人带来不可估量的损失,由此带来一系列的安全问题。如何保证数据存储、共享和传输过程的安全是云存储推广和使用的首要保证和重要前提[2]。

1 基础加密算法

1.1 对称加密算法

对称密码体制又称单钥或私钥或传统密码体制,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥。对称加密以数据加密标准(Data Encryption Standard,DES)算法为典型代表,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高[3]。对称加密算法使用起来简单快捷,密钥较短,且破译困难。但同时也有密钥传递和管理比较困难,相同密钥,安全性得不到保证,缺乏签名功能等缺点。对称密码体制的模型如图1所示。

1.2 非对称加密算法

非对称密码体制也称公钥密码体制,与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥 (privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以叫作非对称加密算法,以RSA(Rivest Shamir Adleman)算法为代表[4]。非对称加密算法具有密钥传递和管理比较简单,安全性高的优点,同时也有加解密速度慢,复杂性高等缺点。非对称密码体制包括两种基本模型,一种是加密模型,如图2所示,一种是认证模型,如图3所示。

2 动态加密存储方案设计

2.1 数据安全存储架构

信息安全技术经过多年的发展,已经从密码技术发展到了隐藏技术和加密技术,以上面所提到的对称加密技术和非常对称加密技术为代表。但在信息隐藏技术的应用过程中,人们发现单纯的用各种信息隐藏算法或者加密算法对数据加密时,攻击者很有可能较容易的提取出秘密信息,一旦服务器遭到破坏,用户数据将无法得到保护[5]。为了克服上述现有技术的缺点,本文提出了一套具有被动式动态密钥分发机制的数据云存储方案,实现了数据存储与加密的分离,即使存储与加密有一方被不法分子获得,其得到的也只是一堆不能直接使用的加密的数据,只有密钥认证中心和存储服务器联动通过客户端用户才可获得有效数据。方案整体架构如图4所示。

2.2 密钥认证中心和存储服务器

通过架设密钥认证中心生成动态密钥,客户端获得密钥后加密本地文件并上传至文件存储服务器,存储服务器中的加密文件只能通过客户端向密钥认证中心请求密钥,客户端得到解密密钥后进行文件解密[6]。其中,密钥认证中心维护用户表和密钥表,存储服务器维护用户表和文件表。存储位置如图5所示。

用户表存在密钥认证中心和存储服务器中,用来验证用户的合法性,以及在密钥认证中心中和密钥表联合使用共同管理密钥,在存储服务器中和文件表联合使用共同管理文件;用户表中包含id、username、password字段。

密钥表存在密钥认证中心中,用来管理每个用户的加密文件密钥;密钥表包含id、dateTime、privateKey。

文件表存在存储服务器中,用来管理每个用户的文件,文件表包含id、dateTime、fileData。

2.3 被动式动态密钥分发

生成动态密钥是被动的[7],需要时生成,而非密钥认证中心主动生成;密钥认证中心生成动态密钥并维护用户密钥用来加密文件,生成密鑰的算法为动态的且密钥更新的频率可自行设置。

动态密钥获取机制工作如下:

(1)密钥认证中心收到客户端getKey命令。

(2)密钥认证中心查找用户表验证客户端用户是否合法。

(3)若合法,则进行步骤(4),否则将错误信息返回到客户端。

(4)密钥认证中心得到系统当前时间datenow。

(5)密钥认证中心查找密钥表中字段dateTime最大的时间datemax。

(6)密钥认证中心计算出datenow-datemax的差值△h。

(7)密钥认证中心比较△h和固定变化密钥周期T。

(8)若△h

(9)若△h>T,密钥认证中心则生成一个随机的密钥privateKey以及datenow返回给客户端,同时将生成的密钥privateKey和时间datenow存入密钥表中以备用户解密文件。

2.4 通信命令

客户端和服务端通信的包格式命令主要有如下7种形式:

getKey命令用于客户端向密钥认证中心请求密钥来加密文件上传到存储服务器,getKey命令包含的参数有命令类型command、用户名username、登录密码password。

returnKey命令用于密钥验证中心发送密钥时的命令,returnKey包含的参数有命令类型command、生成的密钥privatekey、生成密钥时的系统时间dateTime。

execute命令用于客户端在加密文件之后,上传至存储服务器时使用的命令,upload命令包含的参数有命令类型command、用户名username、登录密码password、加密的文件数据fileData、密钥验证中心返回的dateTime。

download命令用于客户端向存储服务器请求文件时使用的命令,download命令包含的参数有命令类型command、用户名username、登录密码password、请求文件的名称fileName。

returnData命令用于存储服务器将加密文件返回到客户端时使用的命令,returnData包含的参数有命令类型command、加密的文件fileData、加密文件对应的dateTime。

getUnlock命令用于客户端向密钥认证中心请求密钥解密文件时使用的命令,getUnlock命令包含的参数有命令类型command、用户名username、登录密码password,加密文件对应的dateTime。

returnUnlock命令用于密钥认证中心将密钥返回到客户端时使用的命令,returnUnlock命令包含的参数有命令类型command、解密的密钥privatekey。

7种通信包结构如图6所示。

2.5 文件安全上传与下载

具有动态密钥分发机制的文件安全存储主要分为文件的上传和下载两类情况,方案整体流程示意图如图7所示。

当用户上传文件至文件存储服务器时,首先发送getKey命令至密钥认证中心,密钥认证中心首先验证用户是否合法,当用户通过验证后,密钥认证中心调用生成密钥算法获得密钥并返回returnKey命令到客户端,客户端收到密钥后加密文件并上传至存储服务器,存储服务器收到upload命令后,同样先验证用户,通过验证后将文件存入数据库中,若验证用户不合法则将返回错误信息。

上传加密文件工作步骤如下:

(1)密钥认证中心收到客户端execute命令。

(2)密钥认证中心查找用户表验证客户端用户是否合法。

(3)若合法,则进行步骤(4),否则返回错误信息给客户端。

(4)密钥认证中心得到系统当前时间datenow。

(5)密钥认证中心查找密钥表中字段dateTime最大的时间datemax。

(6)密钥认证中心计算出datenow-datemax的差值△h。

(7)密钥认证中心比较△h和固定变化密钥周期T。

(8)若△h

(9)若△h>T,密钥认证中心则生成一个随机的密钥privateKey以及datenow返回给客户端,同时将生成的密钥privateKey和时间datenow存入密钥表中以备用户解密文件。

(10)客户端得到密钥privateKey后加密需要上传的文件,加密后的文件将被同步到文件存储服务器。

(11)文件存储服务器收到文件后查找用户表验证客户端用户是否合法。

(12)若合法,则进行步骤(13),否则返回错误信息给客户端。

(13)文件存储服务器将文件以及加密密钥的时间记录到文件表中。

当用户加载文件时,首先发送download命令至文件存储服务器,存储服务器收到命令后,先验证用户,通过验证后,将根据请求的文件路径取出文件并返回到客户端,客户端收到加密的文件后,会向密钥认证中心发送getUnlock命令请求密钥解密文件,密钥验证中心收到命令后,查询密钥表获得密钥并返回returnUnlock命令到客户端,客户端收到密钥后解密文件供用户使用。

加载加密文件工作步骤如下:

(1)存储服务器收到客户端download命令。

(2)存储服务器查找用户表验证客户端用户是否合法。

(3)若合法,则进行步骤(4),否则返回错误信息给客户端。

(4)存储服务器将加密的时间dateTime及加密文件返回给客户端。

(5)客户端发送unlock命令到密钥认证中心获取文件所对应的密钥解密。

(6)密钥认证中心查找用户表验证客户端用户是否合法。

(7)若合法,则进行步骤(8),否则返回错误信息给客户端。

(8)密钥认证中心查找密钥表,得到dateTime所对应的密钥privateKey,并将其返回给客户端。

(9)客户端得到密钥privateKey后解密文件供用户使用。

3 结束语

被动式动态密钥分发机制的云存储方案通过隔离密钥认证中心和文件存储服务器,且两者互相不知道对方的具体位置,使得即便任一方存在安全泄露問题,也不影响文件的安全性,实现了加密与存储的分离。并且密钥是动态变化的,即使攻击者截取了一段密钥,攻击者也无法确定是哪个用户的哪个文件加密,因而也无法解密。该方法通过加密与存储分离、动态分配密钥实现了用户文件的安全存储、共享和传输双重保证,推动了云存储技术的发展。

参考文献:

[1]傅颖勋,罗圣美,舒继武.安全云存储系统与关键技术综述[J].计算机研究与发展,2013(1):136-145.

[2]卢昱,王双,陈立云.基于云存储的混合加密算法研究[J].计算机测量与控制,2016(3):129-132.

[3]吕琴.云计算环境下数据存储安全的关键技术研究[D].贵州大学,2015.

[4]郑周,张大军,李运发.云计算中面向数据存储的安全访问控制机制[J].信息网络安全,2015(9):221-226.

[5]赵凤怡.数字图像加密技术的研究[J].信息安全与技术,2014(9):7-8,13.

[6]林雄飞.浅谈电子文件动态加密技术[J].CAD/CAM与制造业信息化,2011(2):20-21.

[7]陈勤,张大兴,蔡红暹.一种动态密钥认证方案及其用途[J].计算机工程与设计,2002(4):5-6,49.

猜你喜欢
云存储数据传输安全
基于Ad Hoc的微震监测数据传输系统设计
基于云存储的气象数字化图像档案存储研究
云存储技术的起源与发展
基于云存储的数据库密文检索研究
浅析龙岩烟草业务数据与监控数据中的云存储与大数据
GPRS DTU的应用经验浅析