王川
長沙學(xué)院教務(wù)處 湖南 410003
數(shù)據(jù)加密是計算機數(shù)據(jù)的安全常用的保護手段,它使用各種加密算法對重要文件進行加密,使盜竊者無法獲得真實的數(shù)據(jù)內(nèi)容。市場上很多加密軟件是基于應(yīng)用層開發(fā),由于其沒有與操作系統(tǒng)集成,用戶使用加密文件時每次使用都要輸入密碼,使用起來不方便。雖然微軟提供的EFS系統(tǒng)的加/解密處理過程位于操作系統(tǒng)內(nèi)核,得到系統(tǒng)內(nèi)核的保護,可以進行文件透明加/解密,使用起來也很方便,但是它的缺點也是很多:安全控制需要在NTFS文件系統(tǒng)上使用;加密算法的安全性相對較低,且不能夠更改;EFS只能針對指定文件和文件夾進行加密,而不能對某一類型的文件進行加密,靈活性不夠。
文件系統(tǒng)過濾驅(qū)動技術(shù)可以使文件保護與 Windows系統(tǒng)緊密結(jié)合,在內(nèi)核級實現(xiàn)了實時安全的文件加/解密,可以進行實時的文件訪問控制,適用于Windows 2003/XP系統(tǒng)下的多種文件系統(tǒng)格式,不依賴于具體的應(yīng)用程序。
Windows驅(qū)動模型(WDM)采用的是分層的結(jié)構(gòu)。應(yīng)用程序發(fā)出對磁盤設(shè)備的操作請求后,由I/O管理器構(gòu)造相應(yīng)的IRP,發(fā)往下層的文件系統(tǒng)驅(qū)動程序,文件系統(tǒng)驅(qū)動程序則把相對應(yīng)于文件系統(tǒng)的操作轉(zhuǎn)換為相對應(yīng)于磁盤設(shè)備的操作,并通過I/O管理器來調(diào)用磁盤驅(qū)動程序。
根據(jù)WDM的特點,可以構(gòu)造一個位于文件系統(tǒng)驅(qū)動程序之上的一種特殊的中間層驅(qū)動程序,我們稱為文件系統(tǒng)過濾驅(qū)動程序,文件系統(tǒng)過濾驅(qū)動程序的位置如圖1所示。有了文件系統(tǒng)過濾驅(qū)動程序后,I/O管理器構(gòu)造的IRP則會先送給文件系統(tǒng)過濾驅(qū)動程序,然后再由文件過濾驅(qū)動程序在I/O管理器的幫助下將IRP傳給下層的文件系統(tǒng)驅(qū)動程序。
因此,我們可以在文件系統(tǒng)過濾驅(qū)動程序這一層實現(xiàn)對文件系統(tǒng)操作的截取、監(jiān)控甚至替換工作,由此實現(xiàn)許多新功能:①防病毒引擎。在系統(tǒng)讀寫文件時,捕獲讀寫的數(shù)據(jù)內(nèi)容,對內(nèi)容檢測是否含有病毒代碼。②對用戶透明的文件加解密。在文件寫過程時對數(shù)據(jù)進行加密,在讀文件的過程中進行解密。③對數(shù)據(jù)的讀寫進行訪問控制??梢苑乐箰阂膺M程對受保護文件的進行破壞。
圖1 文件系統(tǒng)過濾驅(qū)動層次結(jié)構(gòu)
文件保護系統(tǒng)的功能主要由文件系統(tǒng)過濾驅(qū)動、密鑰管理、加/解密處理、配置程序和訪問控制組成。各模塊之間的關(guān)系如圖2所示。文件系統(tǒng)過濾驅(qū)動是系統(tǒng)的核心,利用它實現(xiàn)對文件操作的截獲,與系統(tǒng)中的其它模塊進行交互,控制整個系統(tǒng)。密鑰管理負責(zé)密鑰的產(chǎn)生、分配、更換和銷毀等方面管理工作。加/解密處理使用密鑰對文件進行加/解密運算,也是對用戶透明動態(tài)加/解密的實現(xiàn)部分。配置程序是用戶用來定制和修改策略文件的模塊。訪問控制根據(jù)配置程序生成的策略配置文件對受保護的文件進行加/解密前的處理,包括安全目錄識別、用戶身份識別、安全目錄訪問控制、密鑰文件訪問控制和共享目錄訪問控制等,有利于提高文件保護系統(tǒng)的安全性和效率。
圖2 文件安全保護系統(tǒng)結(jié)構(gòu)
(1)構(gòu)造文件系統(tǒng)過濾驅(qū)動對象,并附著在要過濾的文件系統(tǒng)對象之上。
(2)創(chuàng)建文件系統(tǒng)過濾驅(qū)動程序所需的分派例程,用于對IRP進行預(yù)處理。分派例程是用來響應(yīng)應(yīng)用程序的打開、讀、寫、關(guān)閉等I/O請求的一組回調(diào)函數(shù),這些函數(shù)由系統(tǒng)在相應(yīng)情況下調(diào)用。
(3)取消對目標(biāo)設(shè)備的綁定過濾。
實現(xiàn)文件系統(tǒng)過濾驅(qū)動程序除了上述三個必要方面外,還有一些功能需要加入進來。如:實現(xiàn)文件系統(tǒng)過濾驅(qū)動程序與上層應(yīng)用程序通信。實現(xiàn)過濾驅(qū)動的動態(tài)附著,以便能夠過濾新加載的文件系統(tǒng)。
密鑰管理負責(zé)密鑰的產(chǎn)生、分配、更換和銷毀等方面管理工作。文件保護系統(tǒng)采用兩類加/解密算法,在保證安全性的同時保證了加密效率。對稱加密算法的加密速度較快,但安全性較低,適合對文件內(nèi)容進行加密。非對稱加密算法安全性較高,但加密速度較慢。適合用來對加密密鑰進行加密,這樣有助于提高密鑰的安全性,也方便文件共享。
在安全目錄中對每一個文件都隨機分配一個不同的文件密鑰(文件密鑰可以通過合理增加密鑰長度提高破解密鑰的難度,在保證一定加密速度的情況下適當(dāng)?shù)卦鰪姲踩?,該目錄下的所有文件密鑰(不包括子文件夾)被存放在該目錄下的同一個密鑰文件中。密鑰文件中存放著多條文件密鑰信息,文件密鑰信息的主要結(jié)構(gòu)是:被加密的文件名、所有者、共享者、加密密鑰等內(nèi)容。密鑰文件存放在安全目錄中,每一個目錄(包括子目錄)都有一個。密鑰文件是在安全目錄創(chuàng)建時有密鑰管理模塊自動生成,刪除安全目錄及子目錄時刪除密鑰文件。
對密鑰文件我們采取兩類保護措施:一是對密鑰文件中的文件密鑰信息使用文件所有者的公鑰進行加密,這里不是對整個密鑰文件整體用公鑰加密,而是對每個文件密鑰單獨加密。而創(chuàng)建、修改或刪除文件密鑰都需要文件所有者插入私鑰U盤才能進行。二是通過文件保護系統(tǒng)的訪問控制模塊對密鑰文件進行保護,不準非授權(quán)程序進行創(chuàng)建、修改或者刪除。通過這兩類措施,大大提高了文件密鑰安全性。
加/解密處理模塊是位于內(nèi)核模式中實現(xiàn)的,這樣可以利用操作系統(tǒng)來提高加/解密過程的安全。在文件系統(tǒng)過濾驅(qū)動程序的讀寫處理中實現(xiàn)對文件的加密和解密。對攔截上層發(fā)送的讀寫 IRP,通過訪問控制檢查判斷是否為合法訪問,如是非法訪問將阻止訪問繼續(xù),對于合法訪問還要判斷是否為共享訪問,共享訪問不進行加解密,直接采用默認的處理。對于合法的非共享訪問,按以下的流程進行訪問,流程如圖3所示。
應(yīng)用程序?qū)懖僮鲿r,文件系統(tǒng)過濾驅(qū)動程序從I/O管理器截獲IRP中的明文后,若該文件是已建文件,從密鑰文件中取出文件密鑰,從文件所有者私鑰U盤中讀出私鑰,用私鑰解密文件密鑰,再用文件密鑰加密明文并將其向下層驅(qū)動程序傳遞,在完成方法中恢復(fù)緩沖區(qū)的明文;若該文件是新建文件,首先由密鑰管理模塊生成文件密鑰,用文件密鑰加密明文的同時,還利用文件所有者公鑰加密文件密鑰并保存在密鑰文件中。
應(yīng)用程序讀操作時,文件系統(tǒng)過濾驅(qū)動程序從文件驅(qū)動程序截獲密文后,從密鑰文件中讀取文件對應(yīng)的文件密鑰,從文件所有者私鑰U盤中讀出私鑰,用私鑰解密文件密鑰,在完成方法中用文件密鑰解密密文并向上層傳送明文至應(yīng)用程序。
圖3 加/解密處理流程
用戶使用配置程序?qū)⑴渲煤玫牟呗陨刹呗晕募?,以加密的形式存放在操作系統(tǒng)下。系統(tǒng)的訪問控制模塊可以直接讀取并解密策略文件,然后根據(jù)策略文件對保護文件進行加解密前的處理。訪問控制功能主要有以下幾個方面。
密鑰訪問控制:由于密鑰的特殊性,除密鑰管理模塊外,不允許任何進程直接創(chuàng)建、修改、刪除或讀取該文件,密鑰只允許過濾驅(qū)動程序通過密鑰管理模塊訪問。用戶訪問控制:對于能提供私鑰的文件所有者用戶和合法的共享用戶可以訪問文件。安全文件識別:為提高工作效率,文件系統(tǒng)過濾驅(qū)動程序只處理訪問安全文件的 IRP,不處理訪問非安全文件的IRP。
本文提出的文件保護系統(tǒng)適用于Windows XP/2003操作系統(tǒng),屬于操作系統(tǒng)內(nèi)核程序,系統(tǒng)的安全性得到操作系統(tǒng)的安全保障。系統(tǒng)采用了雙密鑰體系增強了文件系統(tǒng)的安全性,經(jīng)測試表明,使用雙密鑰體系的文件加/解密與文件直接明文讀取在效率上差距不大,具有較好的實用性。加密算法可以靈活采用并且不公開,提高了加密的安全性。系統(tǒng)也存在一定風(fēng)險性,文件密鑰保存在密鑰文件里,如果該文件損壞或丟失將會導(dǎo)致密文無法解密。今后的研究重點放在密鑰文件的安全保護和高效訪問方面。
[1]胡宏銀,姚峰,何成萬.一種基于文件過濾驅(qū)動的Windows文件安全保護方案[J].計算機應(yīng)用.2009.
[2]于飛,胡平.基于文件過濾驅(qū)動的局域網(wǎng)安全系統(tǒng)設(shè)計[J].計算機工程與設(shè)計.2008.
[3]沈瑋,王雷,陳佳捷.基于文件系統(tǒng)過濾驅(qū)動的加密系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程.2009.
[4]王全民,周清,劉宇明,朱二夫.文件透明加密技術(shù)研究[J].計算機技術(shù)與發(fā)展.2010.
[5]王德明,劉淳,邱俊山.基于過濾器驅(qū)動程序的文件保護系統(tǒng)軟件設(shè)計[J].四川理工學(xué)院學(xué)報(自然科學(xué)版).2006.
[6]Chris Cant.Windows WDM設(shè)備驅(qū)動程序開發(fā)指南[M].北京:機械工業(yè)出版社.2005.
[7]鄭玉彤,王志娟.Windows驅(qū)動程序開發(fā)[M].北京:中央名族大學(xué)出版社.2006.