云存储是一种新型的网络存储形式。随着云存储的广泛使用,云存储中的数据安全问题,如数据泄漏、数据篡改,也成了用户广泛关注的问题。云存储可以分为访问层、应用接口层、基础管理层和存储层,云存储安全可以分为访问层安全、应用接口层安全、基础层安全和存储层安全。为保证云存储中服务端数据存储的机密性,文章设计了数据存储加密机制,在基于云桌面的办公系统个人存储的应用环境中,实现了基础管理层和存储层加密机制。
一、云存储
云存储是云计算的延伸和发展,是指通过集群应用、网格技术或分布式系统等将网络中大量各种不同类型的存储设备通过应用软件结合起来阱同工作,共同对外提供数据存储和业务访问功能的系统。
如图l所示,云存储从上往下可以分为四层,分别为访问层、应用接口层、基础管理层和存储层访问层是云存储的最顶层,其主要服务对象为一般用户,主要包括三方面内容:1)个人空间服务和运营商空间租赁等;2)企事业单位或者服务器实现数据备份、数据归档、集中存储和远程共享等;3)视频监控、IPTV(Interactive Personality TV:个性化互动电视)等系统的集中存储、网站大容量在线存储等。应用接口层是云存储的第二层,其主要服务对象为二次应用开发的用户口应用接口层可以分为两层,上层主要包含网络接人、用户认证和授权管理等,下层主要包含公用应用程序编程接口API(Application Programming Interface)、应用软件和网络服务等。第三层为基础管理层,主要包含三方面内容:l)集群系统、分布式文件系统;2)内容分发、重复数据删除和数据压缩;3)数据加密、数据备份和数据容灾。最底层为存储层,其主要而向底层硬件存储服务器,可以分为两层。上层主要包含存储虚拟化、存储集中管理、状态监控和维护升级等,称之为网络管理层;下层主要包含NAS( Network AttachedStorage:网络附加存储)、SAN(Storae AreA Network:存储区域网络)等存储设备,称之为硬件存储层。
网络附加存储是一种专门的数据存储技术的名称,它可以直接连接在电脑网络上,对异质网络用户提供了集中式数据访问服务。
网络附加存储是文件级存储,用的是以文件为单位的通信协议,如NFS(Network File System)、SMB/CIFS (ServerMessage Block/Common Internet File System)或者AFP(Apple Talk File ProLocol)等。网络附加存储设备上有简单的操作系统(包括文本服务和相关的通信协议)。操作系统只提供数据存储、数据访问和相关的管理功能。
在数据量大的环境中,网络附加存储为用户提供存储空间。网络附加存储可以给系统(如负载均衡系统、容错电子邮件系统和网络服务系统等)提供存储服务,从而使系统简单,并且花费更低。网络附加存储可以为网络中的其他服务器提供文件服务,提高了文件的使用率。当服务器被关闭后,用户仍然可以和网络附加存储设备通信,从而避免了因为服务器关闭而无法使用数据的情况。
存储区域网络是一种连接外接存储设备和服务器的架构。人们采用包括光纤通道技术、磁盘阵列、磁带柜、光盘等各种技术进行实现。该架构的特点是,连接到服务器的存储设备,将被操作系统视为直接连接的存储设备。
存储区域网络是块级数据存储,用的是以区块为单位的通信协议,一般是通过SCSI再转为光纤通道或者iSCSIo存储区域网络不提供文件虚拟,只提供块级数据存储操作。
存储区域网络可以提高计算机存储资源的可扩展性和可靠性,降低实施成本,减少管理成本。存储区域网络用于要求可用性、可伸缩性和性能的计算环境中。例如,视频编辑工作组对于数据的传输速率要求非常高,存储区域网络可以很好地满足这方面的性能要求。
存储区域网络可以卸掉主网上大量的数据流量,减免数据拥塞。
网络附加存储与存储区域网络比较如下:
1)相同点
网络附加存储和存储区域网络都依靠于网络。在网络中为用户提供存储服务。与传统的存储不同,二者在可用性和扩展性方面有很大的提高。
2)不同点
首先,使用的通信协议是不同的。网络附加存储是文件级数据存储,使用以文件为单位的通信协议;存储区域网络是块级数据存储,用的是以块为单位的通信协议。
其次,技术上实施不同。网络附加存储通常是一个服务器群:邮件服务器、应用服务器等,存储设备附加于系统之上;存储区域网络大多部署于电子商务应用中,大量的数据备份和其他应用数据在网络中传输。
硬件存储设备可以通过Internet小型计算机系统接口iSCSI( Internet Small Computer System Interface) 实现。iSCSI协议嘲利用TC P/IPfs.q网络传送本机的SCSI协议,把SCSI数据块映射成以太网数据包。由于iSCSI协议是服务器架构,因此可以实现在线扩容以及动态部署。
iSCSI又称为IP-SAN是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。
iSCSI协议本身提供了一些基本安全措施。IPSec(Internei Protocol Security:Internet协议安全)在IP层为iSCSI通信两端iscsi PDU(Protocol Data Unit:协议数据单元)的传输提供数据完整性、认证和机密保护。带内认证对始发端( Initiator)和目标端(Target)在登录阶段对对方进行身份认证。IPSec和带内认证提供了基础管理层的安全保护。甚于已有商、存储Arnazon S3的增强系
统和网关,可以保护应用接口层的安全。但基于iSCSI的云存储,没有提供对存储服务端用户数据机晰性的保护机制。
本文研究的云存储服务端数据存储加峦机制主要保护用户数据的机懈性。本文的主要工作包括:l)设计了一种对用户透明的云存储数据加密机制,给出了由展础管理层和存储层组成的二层架构;2)基于JAVA、JSP等技术,实现了基础管理层;3)甚于Bash脚本等技术,实现了基础管理层与存储层的接口;4)基于开源项目TGT实现了存储层数据加解密机制,保证数据的机密性。测试表明,本文实现的加密机制适用于基于云桌面的办公系统个人存储的应用环境,而且用户无需参与加密过程。
二、加密机制基本架构
本文的设计主要针对云存储的基础管理层和存储层,如图2所示。基础管理层主要包含存储虚拟化、存储集中管理、状态监控和维护升级等,实现对存储层硬件服务器的管理;存储层主要包含硬件服务器、操作系统及软件。可信第三方负责发放和存储密钥。
1、基础管理层
基础管理层面对的对象足存储系统的管理角色,其主要功能模块如图3所示,管理角色对整个存储进行管理。
存储虚拟化将硬件存储资源进行抽象化表现,将多台物理存储服务器J超拟成一个存储池,在管理和建立存储时不用考虑存储实际所建的物明机器。存储集中管理对存储进行集中管理,包括存储的添加、删除和修改。状态监控对物理存储进行状态监控,包括CPU使用宰,设置CPU使用率的正常值范范围,超出该范闹给出警告;内存空闲率,设置内存空闲了的正常值的范围,超出该范围,给出警告;其他相关参数的监控。维护升级对物理存储的软件进行升级,保证物理存储的可用性和安全性,并网收系统的垃圾存储。
存储管理接口将底层的添加存储、修改存储和删除存储等功能通过接口提供给存储管理层。
2、存储层
存储层主要是硬件服务器、操作系统和软件,它们组成了云存储的服务端。如图3所示,它包括存储管理接口、添加存储、修改存储和删除存储,存储管理接口为基础管理层提供添加、修改和删除存储的接口;它还包括存储服务接口、登录存储模块、读写模块和加解密模块,存储服务接口直接为客户端提供登录存储和渎写存储的接口;读写存储调用加解密模块,保证客户端存储数据的机密性。用户与服务端、服务端与可信第三方交互流程如图4所示。
1)用户获得存储
(1)首先,用户发起存储清求,可以指定存储大小系统默认大小;
(2)服务端接收到请求后,建立存储并选择算法;
(3)服务端向可信第三方请求密钥;
(4)可信第三方接收到密钥请求后,返回密钥;
(5)服务端使用密钥初始化存储;
(6)服务端将存储分配给用户;
(7) 用户登录存储;
(8)服务端对用户名和密码进行验证,当用户名和密码验证通过后,建立会话。
2)用户读写数据
(1)用户写数据,服务端将数据加密,然后写入存储;
(2)用户读数据,服务端解密数据,然后将数据返回给用户。
三、原型实现
本文基于JAVA、JSP、Bash脚本等,实现了綦础管理层基本功能;基于开源项目TGT实现了物理存储服务器解密功能和可信度艘。本文存储的应用环境为云桌面用户存储,用户在存储中存放自己的文件。
1、基础管理层实现
基于web图形界面,实现毡础管理层的可视化操作,包括存储虚拟化管理界面,集中存储管理界面,状态监控界面和升级维护界面口管理员可以方便快捷管理存储,不用了解和熟悉底层的管理命令。
管理员通过存储创建界面选择创建存储的大小,可以指定物理服务器,也可以不指定物理服务器,如图5所示。
管理员可以通过图6所示界面查看物力存储存储的信息。
管理员可以通过物理存储状态监控界面奁看物理存储当前的状态,包括内存、CPU使用率等,如图7所示。
2、存储层加密机制实现
服务端操作系统为thel-server-6.4-x86—64,iSCSI软件为iscsitargel-1.4.20.20如图8所示,主要修改的文件为file-io.c和bloc-io.c,并新建立了AES.h、AES.c、DFS.h、DES.c. 3DES.h. 3DES.c\ rc4.h. rc4.c等文件。我们修改了file-io.t;和bloc-io.c的部分。file-io.e中~J static irit f'ileio_niake_request(struct iet. volume *lu, structIio *tio.int r函数,其中rw为凌取或行写入符号。在rw为READ时,读出数据后,使用解密函数对数据进行解密;否则,在写入数据前,函数对数据进行加密。bloc-io.c中 static int blockio_make_request(struci et_volume*volume, struct tio*tio, intr州,rw为波取或暂写入符。在rw为READ时,读出数据后,使用解密函数对数据进行解密;否则,在写人数据前,使用加密函数对数据进行加密。
AES.h, AES.c、 I)F:S.h, DFS.c. 3DES.Il, 3DES.c, rr4.h,rc4.c等文件分别实现了AES算法、DES算法、3DES算法和rc4算法。
3、数据测试
硬件
处理器:InteI(R) Core(TM) i7-3770 CPU@3.40(;Hz3.40GHz
系统内存( RAM):4.OO(;B
软件
操作系统:Windo.vs 7专业版
系统类型:32位操作系统
虚拟化软件:Oracle VirtuaIBox 4.3.2 r90405
客户端操作系统:CentoS-5.5-x86_64内核版本( 2.6.18-371.6.l.e15):内存:lG;CPU个数:2
服务端操作系统:thel-server-6.4-x86_64内核版本( 2.6.32-358.e16.i686);内存:IC;CPU个数:2
客户端软件:iscsi--in…ator-utils-6.2.0.837-lO.e16.
x86_64.rpm
服务端软件:iscsitarget-1.4.20.2 .tar*gz'WindOW8 7作为宿主机系统,使用VirtuaIBox虚拟化软件,建立两个Linux虚拟机,一个为CentOS系统,安装iscsi-initiator软件,作为客户端;另一个为RedHat系统,安装修改后ISC8itarget软件,作为服务端。
由于本文的应用环境为云桌面的用户存储,所以数据测试采用模拟用户写数据的过程,其目的在于测试数据加密后是否会对用户读写文件造成太大延迟,降低系统使用性。测试文件大小分为IK、IOK、IOOK、256K、512K、1M(如图9)、IOM、IOOM、256M(如图1O),使用Ba8h脚本,每个文件读写1000次计时,然后计算平均时间,作为该大小文件的读写时间。
在文件较小时,加密对于文件写入没有较大影响,而用户的等待时间也不会超过50ms。
在文件相对较大时,如图10所示,文件为256M时,无加密写入时间不超过Is,而加密所需最大时间为9s多。
采用AES算法128位加密或者RC4加密,时问不超过380在用户可接受范围之内。
本文的应用环境是基于云桌面的办公系统的个人存储,办公系统中,文件的读写主要是小数据的频繁读写。图9为1K、IOK、IOOK、256K、512K、IM、IOM、IOOM、256M等小文件的测试数据,采用1000次的读写取平均数据。当文件小于IOM时,时间差不超过0.5s;当文件为256M时,最大时间差不超过9s,最小时间差为2.2s;由于办公系统单个文件为IOM级已经比较少;所以本文的加密机制适合基于云桌面的办公系统的个人存储使用。
小知识之云存储
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。