?

具有hook機制的過濾驅動加解密模型

2017-01-10 06:28薛子育毛典輝李海生
高技術通訊 2016年7期
關鍵詞:加解密明文應用層

蔡 強 薛子育 毛典輝 李海生 曹 健

(北京工商大學,計算機與信息工程學院,食品安全大數據技術北京市重點實驗室 北京 100048)

?

具有hook機制的過濾驅動加解密模型

蔡 強②薛子育 毛典輝 李海生 曹 健

(北京工商大學,計算機與信息工程學院,食品安全大數據技術北京市重點實驗室 北京 100048)

研究了文件保護的加解密技術。針對文件采用過濾驅動模型進行加解密導致

文件系統,信息安全,透明加密,過濾驅動,hook,加解密

本文可利用hook獲取文件操作,在文件加解密前后檢查文件標識,保證文件具有相同文件標識,即使利用時間差從內存將文件導出,也可以保證導出的文件與加密文件是同一文件。hook機制可以在應用層獲取復制、另存為等文件操作,增強模型的安全性。

具有hook機制的過濾驅動透明文件加解密模型有兩個處理過程:

(1)寫入前加密過程:調用hook機制對現有文件標識進行記錄,然后在派遣例程中對請求包攜帶數據進行加密并寫入磁盤,hook機制對文件標識進行統一更改。

(2)讀出前解密過程:調用hook機制對現有文件標識進行記錄,在派遣例程中對請求包攜帶數據解密,hook機制對文件標識進行統一更改。

本文所提出的方法主要由驗證模塊、進程控制模塊、安全保證模塊、應用層hook機制構成,執行流程示意圖見圖1。

圖1 模型流程圖

其中,驗證模型是利用USB Key硬件設備作為加解密啟動條件,安全保證模塊通過文件系統驅動進行安全性檢測。

2 模型實現

過濾驅動是一種中間層驅動,它位于其他的驅動程序層次之間,可監視、攔截、修改系統發往下層驅動的I/O請求包(I/O Request Packet, IRP)流。本文模型將在此基礎上,在應用層增加hook機制,通過判斷文件狀態,對加解密前后文件權限進行統一化。本文利用過濾驅動模型,加入hook機制,選取適當捕獲位置,構建一種全新的加解密模型。

2.1 過濾驅動原始模型

在Windows新技術內核模式中,采用分層結構的驅動設計方式。該內核模式的分層方式為文件系統、中間層和設備三級驅動結構[6],文件過濾驅動原理如圖2所示。

在入口函數完成對驅動對象初始化設置、卸載設置、對驅動程序功能的派遣函數設置等操作之后,操作系統會為每個設備創建設備對象,并完成相對應的過濾工作[7]。

圖2 文件過濾驅動原理圖

在驅動對象初始化完畢之后,本模型的過濾驅動主要通過以下三個內容實現:制定訪問策略、組織非法文件操作、可信進程驗證。其中,可信進程驗證是為了防止軟件攻擊,在文件層次上使用MD5算法進行校驗的方法,該方法可以有效保護可信進程,標識惡意進程。

控制策略主要包括保護的文件夾和對應的訪問進程。由于內核模式的命名空間和用戶態不同,所以應用層的文件夾路徑需要轉化為內核模式的命名規范。

本文模型需要將過濾驅動從用戶態傳送策略到內核層,使用端口通信機制。首先創建通信端口,連接過濾驅動創建的通信端口,向過濾驅動發送消息,策略庫可以更替和刪除。文件操作中,過濾管理器

將會調用過濾驅動中的回調函數,返回正確位置。所有的文件操作,I/O管理都會創建對應的操作,并將操作發送給過濾文件驅動。模型的過濾驅動通過捕獲該消息,查詢策略集合予以阻止或者放行。模型首先得到文件的操作路徑和對應的操作進程,然后查詢對應的進程訪問策略庫,若查詢成功,則允許進程訪問,查詢失敗,則返回阻止操作[8]。

2.2 hook機制引入

由于文件復制操作在內核模式的結果不能獲取目標文件與源文件的關系,為保證源文件和目標文件具有相同權限,需要應用層予以輔助支持。

在認證通過之后,應用層hook機制對加解密文件標識統一性進行判斷,對用戶行為進行監控。在增強文件安全性的同時,保證復制以后的文件與源文件的權限一致,確保文件的統一性[9]。

模型在應用層hook機制獲得文件的復制或另存為操作,將復制的文件發送給驅動層,驅動層將這些信息緩存。當驅動例程判斷為創建文件之后,將判斷創建文件是否是復制的目標文件,是則將寫入的文件權限與源文件權限設置為相同,否則寫入新的權限。如圖3所示。

圖3 文件加解密系統框架圖

安全保證模塊實現了對文件加解密標識的判斷,以此調用加解密模塊。其中緩沖維護主要是針對緩存泄密問題設立的防線。由于進程對內容的訪問無法被過濾驅動攔截到,因此解密后的文件可以在內存中獲取到,需要在每次有新進程進行輸入輸出操作之前,對系統緩存進行刷新。實現過程如下:

獲取上下文FsContext;

獲取對象中成員ResourcePagingbResource;

if (資源未被占用)

{

加鎖操作;

緩存刷新(CcFlushCacheMmFlushmageSectionCcPurgeCacheSection);

釋放資源;

}

通過hook機制,可以捕捉到文件的操作。如圖4所示,模型利用并行處理方式,在過濾驅動加解密的同時,完成文件一致性標記操作。hook機制將在捕獲到打開和關閉文件命令的同時,記錄文件標識,并在文件存儲之前,對標識進行更改[10]。

圖4 hook機制過濾驅動模型

3 實驗與分析

本模型的實驗環境如下:操作系統為Windows 7,計算機配置為CPU四核,主頻為1.90GHz,內存為4GB。

模型需要設定文件路徑。根據保護路徑,模型利用單項散列函數計算密鑰,同時寫入USB Key,并對路徑下的明文文件進行加密。應用層控制模塊實時監視進程狀態。加密后的文件以密文形式存儲,模型開啟USB Key身份認證機制,hook機制將對文件的統一性進行比較。圖5為保護程序啟動后檢測到保護進程的示意圖。

當用戶關閉載體進程或保密文件,模型對保護路徑下的文件進行遍歷加密。保護文件以密文形式存儲,隨后對內存進行刷新,防止內存中發生明文泄露。加解密完成以后,模型會根據應用層hook機制的支持信息,對源文件與目標文件的權限一致性進行比較。

圖5 保護程序啟動后檢測到保護進程示意圖

3.1 引入hook機制實驗分析

hook機制通過對事件的捕捉,獲得對應文件操作,保證文件的統一性,通過觸發內存刷新模塊,增強文件的安全性。

3.1.1 實驗結果

基于應用層hook機制的文件復制機制保證了復制的源文件和目標文件具有權限一致性。本文模型處理機制通過比較文件標識進行判斷。具有不同標識屬性的文件,即使有相同的文件名和相同的內容,仍然認為是兩個不同的文件,從而保證文件的安全性。

本文在未加入應用層hook機制的前提下進行實驗,文件標識實驗結果如圖6(a)所示,其中上圖為加密前的文件標識,下圖為加密后的文件標識,實驗前后的文件標識有了改變。在加入應用層hook機制之后,加解密前后文件具有相同的標識,如圖6(b)所示。

圖6 文件標識對比圖

不加入hook機制的模型保存臨時文件的過程當中,需要對原文件的覆蓋進行處理,文件保存前后文件標識發生了變化。此時,如果內存沒有及時進行刷新,可以通過文件標識對解密文件進行拷貝,導致解密文件泄露,安全性不能得到保證。

加入應用層hook機制,文件在加解密前后具有相同的文件標識,被操作系統認為是同一個文件,這將保證文件的統一性。

本文在內存維護之前,通過內存還原的方式,對圖6中的文件進行恢復。通過文件標識獲取到圖7中的兩個解密文件,圖7(a)是對圖6(a)上圖進行內存還原的結果,圖7(b)是對圖6(b)上圖進行內存還原的結果。

圖7(a)中,沒有加入hook機制,在內存維護之前,文件以明文方式存儲在內存當中,這將極大影響到文件的安全性;圖7(b)中,由于受到hook機制的監測,還原結果和加密原文保持一致,同時為密文呈現,提高了文件的統一性和安全性。

圖7 文件內容對比圖

3.1.2 效率分析

應用層hook機制與驅動模塊層次不同,對驅動模塊效率沒有影響。本模型在進程檢測的同時啟動應用層hook機制,程序將兩個模塊進行并行處理,保證模型效率。本文選取4M、8M、16M、32M文件進行測試,實驗方法為:測試直接方式、過濾驅動方式和加入應用層hook機制的微過濾驅動方式加密過程所需時間,采用多次測試取平均的方式,測量次數為100次,結果如表1所示。

表1 模型效率對比表(加密算法采用ECB模式)

其中,過濾驅動方式的效率明顯優于直接方式,并且隨著文件的增大,直接加解密方式在模型整體執行過程中占比不斷增大,而過濾驅動方式的效率

會明顯優于直接方式。在本文模型當中,應用層hook機制的加入并沒有對效率產生影響。

3.2 具有hook機制的過濾驅動加解密模型實驗分析

本模型根據用戶選擇的加密級別和文件大小,選擇出合適的加密模式進行加解密處理。本文模型采用文件對應密鑰的方式,利用混合加密方法——對稱加密方法處理需要加密的文件數據,非對稱的加密方法處理密鑰,在保證文件加密的速度的同時,保證了密鑰的安全性。

目前有很多加密模式用于處理不同塊,本文選取以下三種代表性較強的算法進行選擇和比較:電碼本(Electronic Codebook,ECB)模式;密碼分組鏈接模式(Cipher Block Chaining, CBC)和計數(Counter,CTR)模式。其中,CBC模式安全性較高但是效率較低。過程如下式所示:

Ci=Ek(Pi⊕Ci-1)C0

(1)

其中C表示密文塊,P表示明文塊,Ek是加密算法。ECB模式效率較高但安全性較低,過程如下式所示:

C=Ek(m1m2m3…mn) =Ek(m1), Ek(m2), Ek(m3)…Ek(mn)

(2)

其中,Ek(m1)是第一個明文組,C是密文組。ECB模式如圖8(a)所示。

CTR模式利用與明文分組長度相同的計數器,利用不同的計數器值加密不同的明文分組。該模式的加密公式如下式所示:

Cj=Pj⊕Ek(Tj)

(3)

其中,Cj是密文,Pj是明文,Ek(Tj)是被分割的第j條文段用的加密算法。CTR如圖8(b)所示。

本文實驗方法為:利用搭載不同加密算法的模型處理文件,本文將相同模型試驗兩次,分別按照加入hook機制和不加入hook機制計算密文在內存刷新之前完全破解率和效率分析。

本文采用多次測試取平均的方式,測量次數為100次,表2是文件大小和完全破解率之間的關系圖,表3是不同加解密模式下的hook機制模型和原模型效率比較。

圖8 加密模式圖

文件大小完全破解率2M4M8M16M32M原模型9%7%6%2%3%hook機制5%5%3%1%0%

表3 不同加解密模式下的性能測試結果

結合表1和表3獲得以下結論:透明加解密驅動本身帶來影響是比較小的,加密算法會導致一定的延遲。本模型將根據用戶要求和文件大小選擇合適的模式,保證模型的透明性和安全性。

本文在hook機制的過濾驅動模型上搭載了三種加密算法進行測試,并根據算法效率、文件大小等因素,方框位置是本文建議選擇的算法,如圖9所示。

圖9 加密算法選擇模型影響因素圖

本文的解密過程是:首先由文件系統驅動對文件數據進行讀取,過濾驅動從文件尾部獲得加密標識,進行相對應的解密操作,實現過程如下:

if (進程存在)

{

對部分加密文件做解密操作;

進程掛起;

if (捕獲IRP-MJ-READ操作)

{

喚醒掛起進程繼續解密;

} else

Rollback;

}

4 結 論

文件加密保護是操作系統用戶級信息安全領域的重要研究內容,本研究設計并實現了一套新的文件透明加密保護模型,該模型可以在不改變用戶原有文件操作習慣下,完成對文件的保護。

本文通過在過濾驅動模型上引入了應用層hook機制,實現文件加解密之后的標識檢測,解決過濾驅動模型加解密處理后文件的統一性問題,通過避免內存還原等方式,提升透明加解密模型的安全性。

模型利用USB Key進行用戶身份檢查,根據加解密標識調用過濾驅動模塊對文件進行加解密。本文結合ECB模式、CBC模式、CTR模式在模型下的適應性進行比較,可根據用戶選擇和文件大小獲得合適的加密方法。

模型通過hook機制的引入,有效提升了系統的安全性和統一性,對內存內明文文件的導出獲得有效的處理。加密算法可根據文件大小和用戶選擇進行調整,提升了模型的效率和透明性,具有較好的用戶體驗。但是hook機制對文件操作的捕捉難以把握,如果時機恰當,在文件標識轉換之前,還是可以將明文進行換出。下一步我們將研究一套加解密同時更改文件標識的方法,保證文件一直處于同一標識當中,進一步對模型做提升。

[ 1] Li Y, Shi L. Design and Implementation of Encryption Filter Driver for USB Storage Devices.FourthInternationalSymposiumon, 2011, (12): 54-56

[ 2] 周道明, 錢魯鋒, 王路路. 透明加密技術研究. 信息網絡安全, 2011, 12: 54-56

[ 3] 陳忠貴. 微過濾驅動模型下的加解密文件系統研究:[碩士學位論文]. 南昌:南昌航空大學信息工程學院, 2011. 11-13

[ 4] 陶珉. 基于文件過濾驅動的透明加密系統的設計與實現:[碩士學位論文]. 成都:電子科技大學通信與信息工程學院, 2012

[ 5] Katz I, Ideses I, Porat R, et al. Reversion of system objects affected by a malware. US patent: 20150058988. 2015

[ 6] Mashevsky Y V, Namestnikov Y V, Denishchenko N V, et al. Method and system for detection of previously unknown malware. US patent: 8572740, 2013

[ 7] Zhang X Y, Wang S P, Yun X C. Bidirectional active learning: a two-way exploration into unlabeled and labeled dataset.IEEETransactionsonNeuralNetworksandLearningSystems(TNNLS), 2015, 26(12):3034-3044

[ 8] 趙杰,陳靖,袁峰等. 基于動態加解密的內網信息管理系統設計與實現. 信息網絡安全, 2012, 11: 74-77

[ 9] Zhang X Y, Wang S P, Zhu X B, et al. Update vs. upgrade: modeling with indeterminate multi-class active learning.Neurocomputing, 2015,162: 163-170

[10] Mcdougal M D, Ford B T, Smelser W P, et al. Detecting addition of a file to a computer system and initiating remote analysis of the file for malware. US patent: 8627404, 2014

A filter driver encryption and decryption model with hook mechanism

Cai Qiang, Xue Ziyu, Mao Dianhui, Li Haisheng, Cao Jian

(Beijing Key Laboratory of Big Data Technology for Food Safety, School of Computer and Information Engineering, Beijing Technology and Business University, Beijing 100048)

The encryption and decryption for file protection were studied. To solve the problems of un-unified file identification and increasement of memory’s file leakage risk in information security caused by the file’s use of a filter driver model to perform encryption and decryption, a new encryption and decryption model combining the hook mechanism and the filtering driver model was designed. The model uses the filter driver model to encrypt the file, and at the same time, the hook mechanism is introduced to capture the file operation behavior in memory to make the file has the same identity around the encryption and decryption. Thus under the circum stances of keeping the original operating habits of the file, a reduction on the risk of the file’s recovery is achieved. The theoretical analysis and experiments demonstrate that the model proposed in the study can be used to fast encrypt and decrypt different files under three encryption modes, and its disintegration rate can be decreased over 3 per cent compared with the filter driver model.

file system, information security, transparent encryption, filter driver, hook, encryption and decryption

①國家自然科學基金(QNJJ2014-23),北京市自然科學基金(4162019)和北京市教委科研計劃(SQKM201610011010)資助項目。

②男,1969年生,博士,教授;研究方向:計算機圖形學,計算幾何,科學可視化,智能信息處理;聯系人,E-mail: caiq@th.btbu.edu.cn

2016-02-28)

0 引 言

1 模型思想

加密方式相比其他加密方式,具有速度快、捕獲時機準確等優點。但是該處理方法文件標識不統一,可在內存刷新之前對明文進行恢復,明文具有泄露的風險。

10.3772/j.issn.1002-0470.2016.07.009

不統一與內存明文泄露風險增加等安全問題,設計了一種hook機制和過濾驅動方法相結合的加解密模型。該模型采用過濾驅動方法對文件進行加解密,同時引入hook機制對內存中文件操作行為進行捕獲,使得加解密前后的文件具有相同標識,在保證用戶原有文件操作習慣的同時,實現了文件內存明文恢復風險的降低。理論分析和試驗結果表明,該模型在三種加密模式下,可以針對不同文件進行快速加解密,同時較過濾驅動加解密模型,其恢復風險下降3%以上。

文件保護是操作系統保證用戶級信息安全的重要機制。文件保護在實現方法上可分為以下四類:用戶層文件加密方式、系統調用層文件加密方式、硬件加密方式和文件系統過濾驅動加密方式。用戶層文件加密方式過程繁瑣,安全級別低,用戶操作量較大,研究價值較低;系統調用層文件加密方式滿足透明加密過程,該方法時刻捕獲文件的打開和關閉操作,可靠性較差,運行效率較低。相比以上兩種早期的文件加解密方法,硬件加密方式速度較快、穩定性較好,但是成本較高、靈活性較差。在硬件加密方式中,密鑰一經制定就無法修改,局限了該方法的發展。隨著存儲設備的進步、文件體積的增大、用戶體驗要求的增強,對加密算法的安全性、穩定性、透明性的要求也在不斷提升。文件系統過濾驅動加密方式因其較強的透明性和安全性,逐漸成為了研究熱點。該方式透明性較強,主要在操作系統內核層進行文件處理,具有較高的安全性、穩定性和平臺兼容性,適用性廣泛。國內外的研究人員提出了一些解決方案,很多文件保護系統也逐漸成熟起來。一些文件保護系統,如美國的Symantec公司研發的PGP加密產品系列、邁克菲公司研制的防數據丟失(DLP)產品、易安信公司研制的Source One for File Systems系列產品以及RSA公司研制的數據保護管理(DPM)產品等[1],都應用了文件透明加密,通過過濾驅動加密方式獲得了較好的用戶體驗。這類系統雖然功能齊全,但是龐大繁雜,面向大型企業,由于其固有的整體性和高昂的成本導致其對中小企業以及個人用戶的信息安全問題貢獻不大。與國外的主要文件透明加密系統相比,國內的文件透明加密產品發展時間較短,附加功能較少,但發展勢頭較為強勁[2]。億賽通科技發展有限責任公司開發的SmartSec系統、虹安信息技術有限公司開發的DLP平臺發展較快。目前文件透明加解密系統都存在著不夠獨立、功能較為冗雜、用戶體驗易受到文件大小影響等問題。加解密模型是加解密產品當中的核心模塊,DLP、DPM等國外主流研究模型具有一定的加密時間,保密文件有一部分時間以明文形式存于內存當中,文件具有安全性風險。陳忠貴[3]、陶珉[4]等國內學者研究的加解密模型在算法效率、密碼安全性等方面貢獻很大,但在算法本身安全性方面提升較小。加解密模型[5]在加密模型的功能實現上較為全面,但是同樣沒有關注到文件本身的安全性問題,導致模型的加解密結果不甚理想。以上透明加解密模型,都在過濾驅動模型的基礎上做出了很多提升。在負載、算法、效率等問題上提升較多,但是對需要保護的文件本身并沒有過多限制。這將導致加解密前后文件標識有所變化,內存明文可能發生泄露等問題?;诖藛栴},本文設計并實現了一種具有hook機制的過濾驅動的文件透明加解密模型。該模型首先通過USB Key進行密鑰存儲以及身份認證保證用戶的合法性。通過hook機制實時獲取文件操作,在加解密前后記錄文件標識、對比文件標識、統一文件標識,避免文件標識不同造成的內存內明文泄露等問題。

猜你喜歡
加解密明文應用層
奇怪的處罰
PDF中隱私數據的保護方法
基于分級保護的OA系統應用層訪問控制研究
電子取證中常見數據加解密理論與方法研究
奇怪的處罰
新一代雙向互動電力線通信技術的應用層協議研究
四部委明文反對垃圾焚燒低價競爭
物聯網技術在信息機房制冷系統中的應用
網絡數據傳輸的加解密系統研究
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合