王飛平,高發(fā)桂
(1.杭州電子科技大學 計算機學院,浙江 杭州 310018;2.湖北民族學院 信息工程學院,湖北 恩施 445000)
?
Windows下可移動存儲設備加密系統(tǒng)的研究與實現(xiàn)
王飛平1,高發(fā)桂2*
(1.杭州電子科技大學 計算機學院,浙江 杭州 310018;2.湖北民族學院 信息工程學院,湖北 恩施 445000)
提出一種基于文件過濾驅(qū)動實現(xiàn)的軟件加密方案,主要討論普通U盤密盤化,即加密U盤.在這種方案下,系統(tǒng)提供兩種透明加密方式:第一種,為每個U盤設置一個密碼,數(shù)據(jù)的加解密在內(nèi)存中進行;第二種,每個加密盤的密鑰綁定為智能密碼鑰匙,數(shù)據(jù)的加解密在智能密碼鑰匙中進行.分析及實驗證明,第一種方式能夠在保證一定安全性的前提下,降低成本,第二種方式安全性進一步得到增強,密鑰永不出設備.
文件系統(tǒng)過濾驅(qū)動;對稱加密算法;加密U盤;信息安全;智能密碼鑰匙
隨著信息技術的發(fā)展,移動存儲設備的使用越來越廣泛,由此引發(fā)的數(shù)據(jù)泄露問題日漸嚴重[1].為了阻止可移動存儲設備泄露機密數(shù)據(jù),目前采用的方式主要有存儲數(shù)據(jù)的加密和訪問控制[2],市場上有很多這樣的產(chǎn)品,但它們大多基于應用層(ring3)開發(fā),沒有做在文件系統(tǒng)層面,導致用戶體驗很差.針對存儲數(shù)據(jù)的加密,微軟的EFS加密文件系統(tǒng)可以很好的保證文件在NTFS文件系統(tǒng)上的安全性,但是它也具有很明顯的缺點,包括FAT文件系統(tǒng)無法使用、在證書丟失或者發(fā)生系統(tǒng)錯誤時[3],加密文件將無法正常訪問.針對文件的訪問控制,比如嚴格控制可移動存儲設備的讀寫操作,將設備變成只讀設備或者對設備的寫操作進行關鍵詞檢查,這種方式存在檢索速度慢和關鍵詞存在歧義導致檢索結(jié)果不正確的情況[4].以上基于文件內(nèi)容的訪問控制機制沒有考慮到存儲介質(zhì)的安全性,因為存儲介質(zhì)上存儲的依然是明文.基于以上因素的考慮,加密U盤[5]應運而生.加密方式分為硬件級加密[5]以及軟件級加密[6]兩種.硬件加密一般是通過可移動存儲設備內(nèi)部的控制芯片加密,能夠?qū)崿F(xiàn)實時加密,并且加解密在設備內(nèi)部完成,這種方式安全性較好,但是設計復雜,成本較高,同時沒有軟件加密的普適性(一套軟件加密任意可移動設備)[7],本文討論的可移動存儲設備指普通U盤,主要實現(xiàn)普通U盤的密盤化.
本文提出的基于Windows過濾驅(qū)動的可移動存儲設備加密的實現(xiàn)方案,通過文件系統(tǒng)過濾驅(qū)動程序把文件加密與Windows文件系統(tǒng)無縫集成,加解密操作對用戶透明,便于操作和應用.針對密鑰的管理,本文主要介紹密鑰為口令以及密鑰在智能密碼鑰匙中的方式[8],其中以智能密碼鑰匙加密的方式為最安全,以密鑰口令的方式為最經(jīng)濟.以上兩種方式,只有經(jīng)過用戶配置的U盤,其文件數(shù)據(jù)才會被加密,數(shù)據(jù)的加解密對用戶透明,不同的是智能密碼鑰匙加解密數(shù)據(jù)在設備中進行,密鑰在智能密碼鑰匙中無法導出.密鑰為口令的方式采取一個U盤一個密鑰的方式,初始化加密U盤時指定密碼,對密碼使用HASH算法生成256位字符串作為該U盤的對稱加解密密鑰.密鑰在智能密碼鑰匙中的方式,加密U盤的對稱密鑰保存在智能密碼鑰匙內(nèi)部,此種方式對系統(tǒng)性能影響較小,數(shù)據(jù)加解密運算在智能密碼鑰匙中進行,加快了加密文件的訪問速度.本文首先介紹了加密U盤的目標,其次介紹了數(shù)據(jù)透明加解密的實現(xiàn)原理[9];基于密鑰存儲位置不同的兩種加解密方式而實現(xiàn)的加密U盤;最后對加密U盤做了功能性測試.
為了克服現(xiàn)有U盤數(shù)據(jù)防泄漏系統(tǒng)的不足,使本文介紹的方案具有高安全性和實用性,提出以下目標:
1)安全性高,如果待加密的U盤安全性要求非常高,可以采用智能密碼鑰匙的方式進行透明加密,對于操作不屬于自己的加密U盤,系統(tǒng)將返回拒絕訪問;
2)用戶體驗好,打開屬于自己的加密U盤中的文件時與操作普通文件一樣,加密文件的數(shù)據(jù)加解密以透明的方式進行,用戶無法感知加解密行為;
3)效率高,用戶及應用程序操作加密U盤在效率上無明顯影響;
4)密鑰丟恢復機制,針對密鑰為口令的方式,第一次設置時,系統(tǒng)提示用戶以明文文件的方式保存加密U盤的密碼,此文件只在第一次設置時生成,用戶自行拷貝好刪除源文件,一旦用戶忘記密碼,以此文件來導入該加密U盤的密鑰;針對智能密碼鑰匙的加密,加密U盤第一次綁定智能密碼鑰匙時,隨機生成對稱密鑰的種子密鑰,同時導出對稱密鑰的密文,以文件的方式保存,此文件只在第一次設置時生成,用戶自行拷貝好刪除源文件,一旦用戶智能密碼鑰匙丟失或者損壞,以此文件來恢復智能密碼鑰匙;
5)安全保護成本低,為保證加密U盤系統(tǒng)的實用性,安全成本不能太高;
2.1 文件系統(tǒng)過濾驅(qū)動的工作原理
在基于NT內(nèi)核的Windows操作系統(tǒng)中,文件過濾驅(qū)動是I/O子系統(tǒng)的一個組件,為用戶提供在磁盤等非易失性介質(zhì)上存儲數(shù)據(jù)的服務.NT內(nèi)核的I/0管理器是可擴展的,支持分層驅(qū)動模型,每個IRP的處理分別經(jīng)過各層驅(qū)動程序,直到某層驅(qū)動程序完成這個IRP請求.文件系統(tǒng)過濾驅(qū)動是針對文件系統(tǒng)而言的,它既可以位于文件系統(tǒng)之上,也可以被放置在文件系統(tǒng)驅(qū)動與存儲設備驅(qū)動之間.I/O管理器根據(jù)用戶的文件操作請求構造IRP發(fā)送到文件系統(tǒng)驅(qū)動程序,文件系統(tǒng)驅(qū)動程序?qū)⑽募到y(tǒng)的操作轉(zhuǎn)化成對應于存儲設備驅(qū)動程序的操作,并且通過I/O管理器來調(diào)用存儲設備驅(qū)動程序.通過文件系統(tǒng)過濾驅(qū)動程序生成附加設備掛載在存儲設備之上,上層應用的文件操作對應的IRP請求將會先轉(zhuǎn)至文件過濾驅(qū)動程序,經(jīng)過文件過濾驅(qū)動的處理后,發(fā)送給存儲設備程序完成該請求,從而完成實現(xiàn)控制文件系統(tǒng)的目的,起到接管文件系統(tǒng)函數(shù)調(diào)用的作用[10].
2.2 加密U盤的總體設計模型
基于文件過濾驅(qū)動的加密U盤的總體設計模型如圖1所示.
用戶設置某個U盤為加密U盤時,需要選擇該加密U盤對應的加密方式,分為密鑰為口令的加密方式以及智能密碼鑰匙加密方式.綁定之后生成的密鑰恢復文件,需要用戶保存,以便于口令或者智能密碼鑰匙設備遺失或者故障時進行密鑰恢復工作.用戶啟動加密軟件后,如果沒有某個加密U盤正確的口令或者是沒有智能密碼鑰匙,其無法正常訪問加密U盤的文件內(nèi)容.
2.3 加密密鑰的管理
考慮到用戶群體不同,其追求安全性、效率、性價比的側(cè)重點不同,本方案采用兩種加密方式:口令加密以及智能密碼鑰匙加密.口令加密方式采用256位密鑰的AES對稱加密算法[11],而智能密碼鑰匙加密采用符合國密標準的SM1算法[12],在智能密碼鑰匙內(nèi)部完成數(shù)據(jù)的加解密,密鑰永不出設備,只能導出密鑰密文[13].如果是口令加密,第一次輸入密鑰后,本地以密文的方式保存密鑰.
針對加解密密鑰生成方式的不同,加解密處理流程不同.具體流程如下:
1)對于口令加密的方式,合法的用戶(有正確口令)打開加密文件時,分析文件頭部4 KB的數(shù)據(jù),監(jiān)測該文件是否屬于此U盤的文件,文件頭上包含密文的usb序列號信息(具有唯一性),如果該密文不是屬于此加密U盤,則IRP返回拒絕訪問;如果是屬于自己的加密文件,請求應用層用戶密鑰,將U盤盤符與用戶密鑰綁定,在用戶讀取該加密文件時,經(jīng)過盤符名查詢文件加解密密鑰,從而解密數(shù)據(jù);合法的用戶以寫入的方式打開原有的加密文件或者新建文件時,請求應用層用戶密鑰,將盤符名與用戶密鑰綁定,在用戶寫入文件時,使用該密鑰加密明文數(shù)據(jù);
2)對于智能密碼鑰匙加密的方式,合法的用戶(有正確智能密碼鑰匙)打開加密文件時,分析文件頭部4 KB的數(shù)據(jù),監(jiān)測該文件是否屬于此U盤的文件,文件頭上包含密文的usb序列號信息(具有唯一性),如果該密文不是屬于此加密U盤,則IRP返回拒絕訪問;如果是屬于自己的加密文件,解析文件加密標識,獲取密鑰密文,將盤符名與用戶密鑰密文綁定,在用戶讀取該加密文件時,經(jīng)過盤符名查詢文件加解密密鑰密文,將解密請求通過I/O輸出到應用層,在智能密碼鑰匙中解密密文數(shù)據(jù);合法的用戶新建文件或者修改加密文件時,請求應用層用戶密鑰密文,將盤符名與用戶密鑰密文綁定,在用戶寫入文件時,將加密請求通過I/O輸出到應用層,在智能密碼鑰匙中加密明文數(shù)據(jù);
2.4 文件加密標識的創(chuàng)建
文件加密標識是存儲在加密文件頭上4096字節(jié)的數(shù)據(jù),其數(shù)據(jù)結(jié)構如下:
typedef struct _tag_FilterEntryFile_Header_Flags
{
WCHARheader_flags[4]; //加密文件標記
INT32ver; //版本
UCHAR usbid[64]; //U盤唯一序列號
INT32flag; //標記加密方式 口令或者智能密碼鑰匙
UCHARsecret[128]; //密鑰密文
INT32secretlength; //密鑰密文長度
UCHARchecked[16]; //結(jié)構效驗 防止用戶惡意修改加密標識
INT32timetoken; //寫入時間戳
}FilterEntryFile_Header_Flags, *LPFilterEntryFile_Header_Flags;
在這個結(jié)構成員中,header_flags代表加密標記,用來表示一個文件是否為加密文件,ver為版本號,usbid為加密U盤硬件序列號,flag標識該文件的加密方式,secret以及secretlength只在加密方式為智能密碼鑰匙時有效,checked為整個數(shù)據(jù)結(jié)構的數(shù)字簽名,用以防止客戶惡意修改加密標識,timetoken為加密標識的寫入時間.
加密標識的寫入時機為IRP_MJ_CLOSE,當FCB的引用計數(shù)到0就能判斷當前沒有程序在操作文件,可以修改文件內(nèi)容.
2.5 加解密文件處理
1)基于口令加解密文件具體過程如下圖2所示.
在文件過濾驅(qū)動的IRP_MJ_READ請求中處理數(shù)據(jù)解密.對于讀取文件的操作,如果該文件為非加密文件或者所在位置為非用戶所設置加密U盤,則IRP直接下發(fā)至設備存儲驅(qū)動程序,反之為讀取合法密文,等待存儲設備驅(qū)動程序成功讀取數(shù)據(jù)后在完成函數(shù)中解密數(shù)據(jù).
在IRP_MJ_WRITE中處理數(shù)據(jù)的加密,如果該文件所在位置為非用戶所設置加密U盤則IRP直接下發(fā)至設備存儲驅(qū)動程序,反之需要讀取待寫入的數(shù)據(jù),使用對稱算法加密明文數(shù)據(jù),然后下發(fā)至設備驅(qū)動程序.
2)基于智能密碼鑰匙加解密文件具體過程如下圖3所示.
圖3 基于智能密碼鑰匙加解密文件具體流程Fig.3 Based on the smart key encryption and decryption of specific documents
在文件過濾驅(qū)動的IRP_MJ_READ請求中攔截文件讀取操作.對于讀取文件的操作,如果該文件為非加密文件或者所在位置為非用戶所設置加密U盤,則IRP直接下發(fā)至設備存儲驅(qū)動程序,反之為讀取合法密文,等待存儲設備驅(qū)動程序成功讀取數(shù)據(jù)后在完成函數(shù)中通過I/O方式等待智能密碼鑰匙解密數(shù)據(jù)并返回.
在IRP_MJ_WRITE請求中攔截文件寫入操作,如果該文件所在位置為非用戶所設置加密U盤則IRP直接下發(fā)至設備存儲驅(qū)動程序,反之需要讀取待寫入的數(shù)據(jù),將讀取的明文數(shù)據(jù)等待智能密碼鑰匙加密完成,IRP請求下發(fā)至設備驅(qū)動程序.
2.6 加密U盤設計方案分析
1)安全性,基于智能密碼鑰匙加解密方式,密鑰永不出設備,數(shù)據(jù)的加解密操作在設備中進行,無需擔心密鑰的管理;
2)用戶體驗及效率問題,基于Windows過濾驅(qū)動實現(xiàn)的加密U盤系統(tǒng)與Windows文件系統(tǒng)無縫集成,不影響應用程序訪問方式以及用戶操作習慣,復雜的密鑰管理由過濾驅(qū)動程序自行完成,用戶只需記住加密U盤的口令或者保存好自己的智能密碼鑰匙.文件內(nèi)容加解密采用對稱算法加密,效率上可以接受;
3)密鑰丟失恢復機制,第一次為加密U盤選擇加密方式時,系統(tǒng)會生成密鑰恢復文件,用戶需要妥善保管該文件,是密鑰恢復的唯一憑證;
4)安全保護成本低,無論是基于口令或者智能密碼鑰匙的加密方式,其成本都比純硬件的加密U盤低,其實用性較強.
3.1 測試環(huán)境
主機:Inter(R) Core(TM) i3-2330M,3 GB內(nèi)存;操作系統(tǒng):Win7系統(tǒng);
測試U盤規(guī)格:Kingston(DT101 G2) 8 G;測試智能密碼鑰匙規(guī)格:華大優(yōu)盤智能密碼鑰匙.
3.2 功能測試
表1 txt格式文件加密標識Tab.1 Txt format file encryption identification
結(jié)果顯示,在序列號為2C0B481970CF2F387CCF2244的加密U盤中,txt格式的文件被成功添加加密標識.
本文針對目前市場上加密U盤的不足,提出了針對U盤的基于口令和智能密碼鑰匙的加密方案.本方案考慮成本提供兩種加密方式,較高安全要求的場景使用智能密碼鑰匙加密方案,如軍用U盤防泄漏的場景;而一般企業(yè)U盤數(shù)據(jù)保護使用基于口令加密方案.實驗結(jié)果表明,加密U盤操作方便,穩(wěn)定性高,適應從win xp到win10的各個版本,具有較高的可靠性及安全性.
[1] 胡宏銀,姚峰,何成萬.一種基于文件過濾驅(qū)動的Windows文件安全保護方案[J].計算機應用,2009,29(1) :168-171.
[2] 趙遠.基于安全終端的U盤用戶訪問控制技術研究[D].南京:南京理工大學,2009.
[3] 龍丹,周學軍,田燕妮.加密文件系統(tǒng)(EFS)技術研究[J].微計算機信息,2006,22(5):238-239.
[4] 熊聰聰,汪鵬.一種新型的USB存儲設備訪問控制[J].自動化儀表,2011,32(12):16-19.
[5] 張維君,王威,任立鵬.基于MC9S12UF32加密U盤的研究與設計[J].中國科技信息,2009(19):128-129.
[6] 李小波.基于文件過濾驅(qū)動的Windows文件保護系統(tǒng)的研究與實現(xiàn)[D].上海:上海交通大學,2010.
[7] 于曉艷.基于AC4384芯片帶加密U盤的USBKey設計與實現(xiàn)[D].濟南:山東大學,2015.
[8] 張亞飛.基于可信環(huán)境執(zhí)行環(huán)境的智能密碼鑰匙設計與實現(xiàn)[D].西安:西安電子科技大學,2014.
[9] 李凡.劉學照,盧安,等.Windows NT內(nèi)核下文件系統(tǒng)過濾驅(qū)動開發(fā)[J].華中科技大學學報(自然科學版),2003,31(1):19-21.
[10] NAGAR R.Windows NT file system internals[M].New York:0’Reillv & Associates,1997.
[11] 卿德定.AES和DES算法改進及其在文件管理中的應用研究[D].長春:東北大學,2013.
[12] 刑凱.基于國密算法的電子認證系統(tǒng)設計與實現(xiàn)[D].濟南:齊魯工業(yè)大學,2015.
[13] 邵旭東.USB智能密碼鑰匙訪問控制技術研究[D].上海:上海交通大學,2008.
責任編輯:時 凌
Research and Implementation of Encrypting System for Removable Storage Device in Windows
WANG Feiping,GAO Fagui2*
(1.School of Computer Science and Technology,Hangzhou Dianzi University,Hangzhou 310018,China;2.College of Information Engineering,Hubei University for Nationalities,Enshi 445000,China)
In this scheme,the system provides two kinds of transparent encryption methods:For the first one,we set a password for each USB flash disk,and the encryption and decryption of the data are done in the memory;each encryption key binding for the smart key for the second one,eech USB key is bound as a smart one,and the data encryption and decryption are done in the smart key.The analysis and experiments show that the first method can reduce the cost under the premise of guaranteeing certain security,and the second method can further enhanc security and the key can never be out of the device.
file system filter driver;symmetric encryption algorithm;enerypted USB disk;information security;smart password key
2016-10-20.
湖北省自然科學基金項目(2009CDB069).
王飛平(1989- ),男,碩士,主要從事信息安全的研究;*
高發(fā)桂(1964- ),女,碩士,副教授,主要從事計算機網(wǎng)絡安全的研究.
1008-8423(2016)04-0442-04
10.13501/j.cnki.42-1569/n.2016.12.018
TP309.7
A
文件被透明加密后的文件標識部分顯示見表1.