2. 北京航空航天大学 软件学院, 北京 100191
2. School of Software, Beihang University, Beijing 100191, China
Internet小型计算机系统接口(Internet Small Computer System Interface,iSCSI)标准协议对于在TCP/IP基础架构上构建经济有效的存储区域网络(Storage Area Network,SAN)起到了重大作用,推进了网络存储结构网络附加存储(Network Attached Storage,NAS)和SAN的巨大变革[1]。如果企业将重要数据存储到服务器的iSCSI磁盘中,则必须采取一定的数据保护措施来保证iSCSI磁盘中数据的机密性,防止数据的泄露。现有的对于iSCSI磁盘数据的保护措施的研究主要有两个方面:一方面是对于iSCSI磁盘数据的保护[1],包括对于数据访问权限的控制、数据加密的研究等;另一方面则是对iSCSI数据传输协议进行改进,增强基于iSCSI协议的数据存储软件的安全性和鲁棒性[2-3]等。但是这些措施只是能够保证窃取者在不知道用户登录密码、不知道加密密钥的情况下窃取不到真实有效的数据,当窃取者知道登录密码,甚至直接使用用户的电脑进行数据窃取时,现有的iSCSI磁盘数据保护措施并不能保证数据不被非法窃取,甚至被拷贝带走。
本文通过在操作系统内核层加载磁盘过滤驱动程序的方式,从系统内核层来保证iSCSI磁盘上的数据在本地的无数据(local-no-data),即保证iSCSI磁盘的重要数据不会存在本地计算机的物理存储设备上;另外,为了防止iSCSI磁盘的登录信息在开机阶段写入本地磁盘中,iSCSI_SEC对开机数据也会进行转储,保证iSCSI磁盘数据的机密性。
1 相关研究FIPS 200标准[4]对于机密性的定义为保护信息不受未经授权的访问和泄露。对于iSCSI磁盘数据的保护措施主要集中于对iSCSI磁盘数据的保护或者对于iSCSI数据传输协议安全性的研究。Huang等[5]在对象存储设备(Object Storage Device,OSD)命令集的基础上设计了一种基于iSCSI协议的专用对象存储安全系统,借助iSCSI的块通道和OSD内置的安全策略,使得对象存储安全系统具备对象I/O的访问控制能力,从而保证iSCSI磁盘数据访问的机密性。其他通过增强iSCSI协议的安全性[6]或者使用安全性更高的IPSec协议[2]则是从传输协议安全性的角度来保证数据转储过程的机密性。同时对iSCSI磁盘数据进行透明加解密[2, 7]以及密钥管理[6]则是从数据本身的机密性来进行相关的保护措施。其中典型代表为TrueCrypt[9],它是大家广泛认可的一款开源的磁盘加密系统,许多的研究工作基于TrueCrypt展开[10]。
以上这些措施能够在用户认证之前保证数据的安全性,是基于口令的安全性。当用户合法登录之后就通过了这些措施的认证,用户就具有了数据的使用权。而这时用户恶意的或者非故意的操作可能会导致重要数据的泄露,造成严重的损失,比如私自拷贝数据、存储介质丢失等[11]。一方面原因是用户的访问凭证被窃取,窃取者就可以随意地访问、使用数据。Auth-SL系统[11]采用的是灵活的认证方式,相对于传统认证系统的一次认证多次使用数据的缺点,Auth-SL系统能够将用户身份认证与用户数据使用交叉结合,通过多种认证策略的使用,较大程度地保证了数据访问的安全性。另一方面则是用户自身行为造成数据的泄露。Chandola等[12]提出基于对用户行为的异常检测来进行控制,当发现用户行为异常时,比如用户进行非法的数据拷贝等,对数据进行擦除[13]。但以上方法的实现机制复杂,往往会造成系统大量的额外开销。
因此,本文提出结合系统内核层过滤驱动程序从系统内核层面控制磁盘的读写,减少数据保护机制造成的额外计算量,防止iSCSI磁盘数据的窃取,进而设计和实现一种保护iSCSI磁盘数据机密性的数据保护机制,并通过功能和性能测实验证该数据保护机制的有效性和高效性。
2 iSCSI磁盘数据保护机制设计 2.1 总体设计数据保护机制iSCSI_SEC是基于Windows的软件分层的体系结构,在操作系统内核层的磁盘层来实现iSCSI磁盘数据的保护功能。通过在系统的内核层实现iSCSI_SEC,一方面能够全面过滤磁盘读写请求;另一方面能够有效保证磁盘过滤设备不被绕过,保证保护机制的有效性。iSCSI_SEC数据保护机制可以由用户选择本地模式或安全模式:本地模式即为不进行数据的保护,磁盘正常进行读写;安全模式则进行磁盘读写的监控过滤,保证数据的机密性。
iSCSI_SEC通过在设备上附加过滤驱动设备实现对iSCSI磁盘数据的保护,保证通过iSCSI磁盘的读写请求都会经过保护机制的磁盘过滤驱动设备;同时数据保护机制也会在本地的磁盘上附加磁盘过滤设备,目的是为了保证对于本地磁盘的读写也能够进行控制,从而保证iSCSI磁盘数据不会写到本地的磁盘中去;同时对iSCSI磁盘的读写必须经过透明加解密模块的透明加解密操作,保证iSCSI网络传输过程和最终存储到物理磁盘中的数据为密文形式的数据。
iSCSI_SEC为了保证开机过程iSCSI建立连接的数据不写到本地磁盘中,需要对开机数据进行转储,转储到安全机制下连接的iSCSI磁盘中去。但是由于数据保护机制需要等到iSCSI磁盘加载之后,将数据转储到iSCSI磁盘中建立的稀疏文件当中,如果采用传统的将读写IO请求包(I/O Request Packet,IRP)阻塞,然后等稀疏文件建立再进行数据的转储,必然会影响操作系统的启动。所以我们采用适合本系统的内存转储方式,保证操作系统的正常运行。
iSCSI_SEC的整体架构如图 1所示。
iSCSI_SEC数据保护机制通过在操作系统内核的磁盘层上附加过滤驱动设备来实现,过滤驱动设备由三大模块组成,即内存转储模块、本地磁盘读写重定向模块和透明加解密模块。
2.2 磁盘读写磁盘的读写控制包括对本地磁盘读写重定向和磁盘读写透明加解密两部分,本文提出了磁盘读写重定向(ReDirect I/O,RDIO)算法对这两部分数据进行监控,通过RDIO逻辑算法来保证监控安全模式下的所有磁盘读写操作。同时,对本地磁盘的读写会根据请求进行相应的重定向,所以iSCSI磁盘中的重要信息不会被拷贝到本次磁盘当中,因为拷贝粘贴操作是iSCSI磁盘的读操作与本地磁盘的写操作,本地磁盘的写操作会被重定向到iSCSI磁盘的稀疏文件中。所以通过RDIO算法能够实现对iSCSI磁盘在本地的无数据。
以下是RDIO逻辑算法的伪代码:
输入 I/O请求链表(L);
输出 完成I/O请求包(IRP)操作状态。
Begin
1) while IRP in L
2) if IRP : BusType=iSCSI_BusType
3) 加密/解密IRP : Buffer
4) iSCSI设备处理 IRP
5) else if IRP : BusType !=iSCSI_BusType & IRP : 读请求
6) 获得IRP读扇区位置
7) 判断Bitmap映射关系
8) switch 映射关系
9) case 本地磁盘
10) 本地磁盘数据读到 Buffer
11) case 稀疏文件
12) 稀疏文件数据读到 Buffer
13) case 本地磁盘 && 稀疏文件
14) 本地磁盘数据读到 Buffer1
15) 稀疏文件数据读到 Buffer2
16) Buffer=Buffer1 & Buffer2
17) case 其他
18) END
19) 读取Buffer数据 //IRP为写操作
20) else if IRP : BusType !=iSCSI_BusType & IRP : 写请求
21) 获得稀疏文件映射位置
22) 进行稀疏文件的写操作
23) 更新Bitmap映射
End
其中RDIO算法中依次处理I/O请求列表中的I/O请求,根据设定的I/O请求中的请求磁盘总线类型以及请求操作进行判断。可能出现三种情况:总线类型为iSCSI总线类型的读写操作、总线类型为其他的读操作和总线类型为其他的写操作。其中总线类型为其他的读操作会依据Bitmap的映射关系判断需要读取的内容来自本地磁盘还是映射后iSCSI磁盘中的稀疏文件,依据不同的映射关系从相应位置获得所需数据。通过Bitmap与磁盘扇区的映射关系可以快速定位数据位置进行数据的读取。其中总线类型为其他的读操作所用到的映射关系是依据总线类型为其他的写操作建立的,为了保证其他磁盘的写操作能够重定向到iSCSI磁盘中,需要对其他磁盘建立映射,每次对其他磁盘进行写操作时依据建立的映射Bitmap关系将数据写入到iSCSI磁盘的稀疏文件中,同时更新Bitmap中的映射值,保证写完数据之后进行数据读取时能够读取更新后的数据。
安全模式下磁盘进行写数据的流程如图 2所示。从图 2中可知,安全模式下从开机到设定模式之间的所有数据都会存储到iSCSI磁盘上。在iSCSI磁盘上存储是通过建立的映射关系进行的,其中开机数据与内存的映射关系用来保存开机数据实际应该写入磁盘位置与写入内存位置之间的映射关系。稀疏文件映射关系用来保存数据实际应该写入磁盘位置与写入稀疏文件位置之间的映射关系。通过映射关系保存数据的写入位置信息,确保数据写入后能够准确读取。
数据透明加解密采用AES对称加密算法,保证存储到物理磁盘或在网络传输通道中数据是以密文的形式存在。
2.3 内存转储iSCSI_SEC数据保护机制的开机数据转储目标为iSCSI磁盘中的稀疏文件,由于iSCSI协议需要先建立TCP/IP的连接,然后完成验证才能进行挂载,所以需要较长的等待时间。如果等到iSCSI磁盘挂载成功并且完成稀疏文件的创建再进行IRP的处理,必然会影响操作系统的正常开机过程。所以为了适应iSCSI磁盘数据保护机制的需求,数据保护机制采用内存来进行开机数据的转储,然后等到iSCSI磁盘挂载之后,在iSCSI磁盘上建立稀疏文件,根据用户选择的模式来决定内存数据最后转储到什么位置。如果用户选择本地模式,内存中转储的数据会存储到本地磁盘的相应位置;如果用户选择安全模式,内存转储的数据会通过Bitmap映射存储到iSCSI磁盘的稀疏文件中。
内存转储开机数据是通过在内存中开辟内存区域,将应该实际写入磁盘扇区的数据通过重定向写入到内存中,同时为了保证在开机数据重定向后能够对数据进行正常的读写操作,需要建立内存模块与实际磁盘扇区的映射关系。本文提出的数据保护机制通过分别建立内存区域Bitmap映射、实际磁盘扇区Bitmap映射,以及内存映射和实际磁盘扇区映射的对应关系来实现开机数据的内存转储。
安全模式下的内存转储流程如图 3所示。其中内存区域的映射位图与实际磁盘读写的映射位图的对应关系通过(OriginIndex,MapIndex)关系对来保持映射关系,其中:OriginIndex为开机数据实际应该读写的磁盘扇区位置,MapIndex为通过映射之后应该转储到内存的位置。
iSCSI_SEC数据保护机制通过在系统的内核层增加系统功能来实现数据保护机制。通过设备信息文件(device INFormation file,INF)磁盘驱动加载方式,将实现功能的.sys驱动文件在操作系统中进行安装;同时实现设定模式的内核驱动程序,通过InstMiniDrv进行驱动程序的加载,从而实现在内核层通知数据保护机制的需要启动的模式。
系统实现平台:Windows 7 ultimate SP1 x86;
CPU:AMD Athlon II X2 220 Processor 2.81 GHz;
本地磁盘:HGST P7K500 500 GB 7200转 16 MB SATA2(HDS721050CLA362) ;
iSCSI磁盘(E:):50 GB;
服务器平台:Windows Server 2008 R2 x64;
网络传输速度:1 000.0 Mb/s。
3.2 功能测试为了保证iSCSI磁盘中重要数据的机密性,通过在磁盘设备上附加磁盘过滤设备来控制磁盘设备的读写,最终达到iSCSI磁盘的本地无数据;同时在磁盘过滤驱动程序中对磁盘数据的读写进行监控,输出相关信息。主要包括四种数据读写信息:
1) 开机数据进行内存转储。
2) 安全模式下,内存转储数据写入到iSCSI磁盘的稀疏文件中;本地模式下,内存转储数据写入实际应写入的本地磁盘位置上。
3) 安全模式下,iSCSI磁盘数据的读写;本次磁盘的读写重定向到iSCSI磁盘的稀疏文件中。
3) 本地模式下,只有本地磁盘进行读写。
采用WinDbg调试工具连接测试操作系统,通过WinDbg来进行读写监控信息的输出。图 4所示为SEC模式下WinDbg的输出信息。
从图 4中可以看出WinDbg输出的读写监控信息:位置①处表明操作系统加载磁盘过滤驱动程序,并到达驱动程序设置的断点处;位置②表明操作系统开机时需要写入系统磁盘的数据被重定向到内存中;位置③显示设置的模式为安全模式(SEC模式);位置④表明从开机到设定模式这段时间进行内存转储的数据量约为10 563 KB;位置⑤及后面表明安全模式下,内存转储的数据会写入到iSCSI磁盘的稀疏文件中;位置⑥处说明内存转储数据已经结束,开始磁盘读写;位置⑦处则只会存在iSCSI磁盘的数据写入iSCSI磁盘中,本地磁盘的数据写入iSCSI磁盘的稀疏文件中。通过这样读写信息的监控可以表明本地无数据的数据保护机制能够实现内存转储,iSCSI磁盘数据在本地无数据。
3.3 性能测试本地无数据的iSCSI磁盘数据保护机制为了保证数据的安全,在磁盘层面对数据进行过滤,以及增加对数据的加密、映射转储等措施。但是由于采用加密算法以及映射转储,必然会影响磁盘的性能。通过与TrueCrypt磁盘加密工具进行性能对比来查看本地无数据的数据保护机制对磁盘读写性能的影响。为了保证实验数据的可对比性,TrueCrypt同样采用AES对称加密算法,保证对比的是数据保护机制对磁盘读写性能的影响。如图 5、6所示为iSCSI磁盘读写、加密的iSCSI磁盘读写(iSCSI_SEC)以及TrueCrypt磁盘读写三种情况下的读写速度对比。
测试数据分为7组,分别以50 MB、100 MB、500 MB、1 GB、2 GB、4 GB、8 GB为数据块大小,测试磁盘的连续数据读写性能。每组数据对磁盘测试5次读写,取5次测试的平均数据读写速度为最终读写速度。其中iSCSI磁盘的平均读写速率分别为80.827 86 MB/s和12.321 43 MB/s,而数据保护机制下的iSCSI磁盘的平均读写速率分别为70.184 63 MB/s和11.865 71 MB/s,通过数据可以看出通过附加本地无数据的iSCSI磁盘数据保护机制使iSCSI磁盘的读写性能下降了13.27%和3.70%。TrueCrypt磁盘加密工具下的iSCSI磁盘读写速率分别为59.950 00 MB/s和11.645 71 MB/s,使iSCSI磁盘的读写性能下降25.83%和5.49%。这表明本文的数据保护机制相对于TrueCrypt加密工具对于磁盘读的性能影响要小、性能表现强于TrueCrypt;同时TrueCrypt和本地无数据的iSCSI磁盘数据保护机制对于磁盘写数据的影响都比较小。以上实验结果表明本地无数据的数据保护机制对磁盘的读写性能影响更小。
同时,为了模拟磁盘正常情况下的读写操作,采用磁盘测试工具IOMeter模拟50%读、50%写的情况,分别以512 B、4 KB、16 KB、32 KB、64 KB为每次I/O块的大小,这样能较真实地还原磁盘真实情况下的读写。 iSCSI磁盘和iSCSI_SEC磁盘的读写性能对比结果如图 7所示。其中iSCSI磁盘的读写速率依次为0.047 55、0.693 71、2.934 42、5.587 21、9.547 52 MB/s,而相对真实的iSCSI_SEC磁盘读写性能表现为0.432 19、0.697 86、2.614 01、5.141 23、9.542 25 MB/s。从结果中可以看出,在模拟的磁盘正常读写的情况下,iSCSI_SEC对于磁盘读写性能的影响非常小。这是由于采用透明加解密以及IRP读写控制导致的ISCSI_SEC磁盘的读写性能比iSCSI磁盘的略低。
本文通过提出和实现一个基于Windows磁盘过滤技术的数据保护机制,来保证iSCSI磁盘中重要数据的机密性。结合磁盘读写重定向算法RDIO、内存转储开机数据和磁盘透明加解密机制,实现了一个本地无数据的数据保护机制iSCSI_SEC。本地无数据的数据保护机制能够保证iSCSI磁盘中的重要数据不会拷贝到本地的存储介质中,同时iSCSI_SEC数据保护机制的登录数据等会通过内存转储的方式重定向到iSCSI磁盘中,有效地保证了iSCSI磁盘在本地的无数据,保证了对于iSCSI磁盘中重要数据机密性。
同时测试本文iSCSI磁盘数据保护机制对磁盘性能的影响,对比TrueCrypt磁盘加密工具以及通过IOMeter模拟实际情况的磁盘读写,本地无数据的iSCSI磁盘数据保护机制在性能上有较好表现。
[1] | WANG J, YAO X, MITCHELL C, et al. A new hierarchical data cache architecture for iSCSI storage server[J]. IEEE Transactions on Computers, 2009, 58 (4) : 433-447. doi: 10.1109/TC.2008.166 |
[2] | XU X, SU J. Research and implementation of iSCSI-based SAN static data encryption system[C]//ICCSNT 2012:Proceedings of the 20122nd International Conference on Computer Science and Network Technology. Piscataway, NJ:IEEE, 2012:257-260. |
[3] | SUNG B, PARK S, LEE W, et al. Enhancing robustness of an iSCSI-based file system in wireless networks[C]//ACSAC 2008:Proceedings of the 13th Asia-Pacific Computer Systems Architecture Conference. Piscataway, NJ:IEEE, 2008:1-7. |
[4] | GUITIERREZ C M, JEFFREY W, FURLANI C M. FIPS PUB 200:minimum security requirements for federal information and information systems[S/OL]. Gaithersburg, MD, USA:National Institute of Standards and Technology, 2006[2016-03-06]. https://www.mendeley.com/catalog/fips-pub-200-minimum-security-requirements-federal-information-information-systems/. |
[5] | HUANG J, XIE C, LI X. iOBS3:an iSCSI-based object storage security system[C]//CIS 2006:Proceedings of the 2006 International Conference on Computational Intelligence and Security, LNCS 4456. Berlin:Springer-Verlag, 2006:620-626. |
[6] | HE J, WANG L, LI Y-S, et al. Research and implement of security iSCSI based on SSL[C]//ICIC 2011:Proceedings of the 2011 Fourth International Conference on Information and Computing. Washington, DC:IEEE Computer Society, 2011:18-21. |
[7] | LI S, JIA X. Research and application of transparent encrypting file system based on Windows kernel[C]//CiSE 2010:Proceedings of the 2010 International Conference on Computational Intelligence and Software Engineering. Piscataway, NJ:IEEE, 2010:1-4. |
[8] | YANG L, LI Y, ZHENG L. Transparent encryption based on network file system filtering driver[C]//ICEICE 2011:Proceedings of the 2011 International Conference on Electric Information and Control Engineering. Piscataway, NJ:IEEE, 2011:6339-6342. |
[9] | MIAO Q-X. Research and analysis on encryption principle of TrueCrypt software system[C]//ICISE 2010:Proceedings of the 2nd International Conference on Information Science and Engineering. Piscataway, NJ:IEEE, 2010:1409-1412. |
[10] | 陶天一. 基于TrueCrypt的自安全磁盘加密系统的研究与实现[D].北京:北京邮电大学, 2013:22-69. ( TAO T Y. Research and implementation of self-securing disk encrypted system based on TrueCrypt[D]. Beijing:Beijing University of Posts and Telecommunications, 2013:22-69. ) |
[11] | BERTINO E. Data Protection from Insider Threats (Synthesis Lectures on Data Management)[M].[S.l.]:Morgan & Claypool Publishers, 2012:1-91. |
[12] | CHANDOLA V, BANERJEE A, KUMAR V. Anomaly detection:a survey[J]. ACM Computing Surveys (CSUR), 2009, 41 (3) : Article No.15. |
[13] | SUN Y, HOU Z, WEI W. A new approach for data protection in case of the physical device being stolen-Using hybrid storage[C]//JICSIT 2011:Proceedings of the 201113th IEEE Joint International Computer Science and Information Technology Conference. Piscataway, NJ:IEEE, 2013:1-4. |