《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Windows微過濾驅(qū)動文件透明加解密研究
基于Windows微過濾驅(qū)動文件透明加解密研究
來源:微型機與應(yīng)用2014年第4期
孫世杰, 曹 斌
(貴州大學(xué) 計算機科學(xué)與信息學(xué)院, 貴州 貴陽 550025)
摘要: 簡單介紹了當前信息安全技術(shù)國內(nèi)外研究的現(xiàn)狀與趨勢,分析了各種信息安全技術(shù)的優(yōu)點和存在的不足。針對當前信息安全的嚴峻形勢,提出了基于Windows文件系統(tǒng)微過濾驅(qū)動的文件透明加解密技術(shù)的解決方案。介紹了研究“基于Windows文件系統(tǒng)微過濾驅(qū)動的文件透明加/解密技術(shù)”過程中必須掌握的一些理論基礎(chǔ),包括Windows執(zhí)行體組件、內(nèi)核機制、驅(qū)動開發(fā)基礎(chǔ)等基本理論知識。基于微過濾驅(qū)動模型,采用3DES加密算法,實現(xiàn)Windows內(nèi)核層的文件加/解密處理。
Abstract:
Key words :

摘  要: 簡單介紹了當前信息安全技術(shù)國內(nèi)外研究的現(xiàn)狀與趨勢,分析了各種信息安全技術(shù)的優(yōu)點和存在的不足。針對當前信息安全的嚴峻形勢,提出了基于Windows文件系統(tǒng)微過濾驅(qū)動的文件透明加解密技術(shù)的解決方案。介紹了研究“基于Windows文件系統(tǒng)微過濾驅(qū)動的文件透明加/解密技術(shù)”過程中必須掌握的一些理論基礎(chǔ),包括Windows執(zhí)行體組件、內(nèi)核機制、驅(qū)動開發(fā)基礎(chǔ)等基本理論知識。基于微過濾驅(qū)動模型,采用3DES加密算法,實現(xiàn)Windows內(nèi)核層的文件加/解密處理。
關(guān)鍵詞: 信息安全; 微過濾驅(qū)動; 加/解密; 3DES加密算法

1 網(wǎng)絡(luò)信息安全的現(xiàn)狀與研究趨勢
    現(xiàn)今存在的一些信息安全保護方法有很多,如網(wǎng)絡(luò)信息保險箱(瑞星網(wǎng)絡(luò)保險箱、奇虎360網(wǎng)絡(luò)保險箱等)、隱藏文件(隱身俠隱私隱藏文件夾加密軟件)等對信息資源的保護方法。但這些方法都是基于Windows的應(yīng)用層而開發(fā)的,不但需要用戶對其基本操作和原理進行掌握,而且并不能安全可靠地保護被竊取走的資源。
    因此在驅(qū)動層對數(shù)據(jù)進行加/解密成為提高信息安全的一種重要手段,將數(shù)據(jù)以密文的形式存儲在PC或者其他移動設(shè)備中,即使信息被非法竊取,盜竊者因沒有密鑰,最終得到的也只是無法辨認的亂碼,從而真正達到了對信息資源進行保護的目的。
2 驅(qū)動層加密的優(yōu)勢
    驅(qū)動層透明加/解密技術(shù)是通過Windows提供的可安裝文件系統(tǒng)IFS(Installable File System)開發(fā)接口寫設(shè)計一個文件過濾驅(qū)動,通過此驅(qū)動實現(xiàn)透明加/解密功能。
    驅(qū)動層的透明加/解密技術(shù)由于與操作系統(tǒng)的文件系統(tǒng)結(jié)合緊密,加/解密效率更高,控制更加靈活,運行更加穩(wěn)定。
    所謂透明,是因為對用戶來說,是不可見的操作。當用戶對指定的文件進行操作處理時,系統(tǒng)將按用戶需要對未受保護的文件進行自動加密處理,對已受保護的文件進行自動解密處理。驅(qū)動層加/解密使得文件在硬盤上是以密文形式存在的,而在系統(tǒng)內(nèi)存中是明文。但如果離開所設(shè)置好的系統(tǒng)環(huán)境,由于應(yīng)用程序無法獲得自動解密的驅(qū)動程序的服務(wù)而無法正常打開指定文件,從而起到保護文件內(nèi)容的真正目的。
3 微過濾驅(qū)動
3.1 過濾驅(qū)動模型開發(fā)步驟

    微軟提供的過濾驅(qū)動模型和現(xiàn)在的微過濾驅(qū)動模型開發(fā)過濾驅(qū)動都遵循以下幾個基本步驟:
    (1)主要編寫驅(qū)動程序中的派遣函數(shù)(dispatch functions),將驅(qū)動程序加載到目標設(shè)備對象上,攔截所能控制發(fā)往該對象的IRP。
    (2)創(chuàng)建發(fā)往管理目標設(shè)備對象的IRP。
    (3)建立完成派遣例程,從而被所加載的驅(qū)動程序來處理完成IRP時所調(diào)用。
    (4)在需要時將驅(qū)動程序從目標設(shè)備對象上卸載。
3.2 文件系統(tǒng)過濾驅(qū)動開發(fā)的推薦模型為mini-filter
    將基于過濾管理器模型開發(fā)稱做微過濾驅(qū)動。
    每一個微過濾驅(qū)動必須有對應(yīng)一個“層級”,用來決定微過濾驅(qū)動在加載時在I/O stack棧與其他微過濾驅(qū)動的相對位置的唯一標識,層級由微軟分配指定和管理。
    所謂的“微過濾驅(qū)動”就是分層過濾驅(qū)動。
    分層驅(qū)動[1]是指多個驅(qū)動程序分別進行設(shè)備對象的創(chuàng)建,出現(xiàn)由高到低的設(shè)備對象棧,將功能復(fù)雜的驅(qū)動程序分解成多個功能簡單且容易修改和維護的驅(qū)動程序。當IRP被傳送到設(shè)備棧的頂部時,可以由頂層的設(shè)備對象直接處理IRP或傳遞至底層的設(shè)備對象進行處理。
    圖1為分層驅(qū)動的基本模型。分層架構(gòu)采用了化整為零的思想,既提高了驅(qū)動程序的穩(wěn)定性,又能非常有效地避免驅(qū)動之間的沖突。同時還為開發(fā)人員在開發(fā)過程中發(fā)現(xiàn)問題提供了清晰的思路和方便的環(huán)境。

4 3DES加密算法
4.1 算法介紹

    3DES又稱Triple DES[2],是DES加密算法的一種模式,使用3條56 bit的加密密鑰對數(shù)據(jù)進行連續(xù)3次疊加加密。數(shù)據(jù)加密標準(DES)使用對稱密鑰加密法,使用56 bit加密密鑰和密碼塊的方法,而在密碼塊的方法中,文本被分成64 bit大小的文本塊然后再進行加密。比起原始的DES,3DES加密算法的安全強度更高。
 3DES加密算法是DES向AES加密算法進行過渡的一種加密算法(1999年,NIST將3-DES指定為過渡的加密標準),是DES算法的一種進化。以DES算法為基本模型,以組合分組的方法設(shè)計出分組加密算法,其原理如下:
 設(shè)Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,P代表明文,C代表密文,這樣:
    3DES加密過程為:C=Ek3(Dk2(Ek1(P)))
    3DES解密過程為:P=Dk1(EK2(Dk3(C)))
4.2 加密算法的發(fā)展趨勢
4.2.1 對稱加密算法

   對稱加密算法[3]是應(yīng)用較早的加密算法,技術(shù)成熟,在對稱加密算法中,數(shù)據(jù)發(fā)信方將明文和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成密文發(fā)送給收信方;收信方收到密文后,讀取原文,通過加密時使用的密鑰及同一加密算法的逆算法[3]對密文進行解密。美國國家標準局倡導(dǎo)的AES算法即將作為新標準取代DES。利用AES算法進行驅(qū)動層的文件透明加/解密也是接下來工作中要做的。
4.2.2 AES算法簡介
    AES的基本要求是,采用對稱分組密碼體制,密鑰長度最少支持128 bit、192 bit、256 bit,分組長度128 bit,算法易于各種軟件和硬件的實現(xiàn)。
4.2.3 DES算法的趨勢
    在應(yīng)用發(fā)面,盡管DES算法在安全強度上并不高,但由于快速DES芯片的大量產(chǎn)生,使得DES仍能繼續(xù)使用。為提高安全強度,本設(shè)計采用了獨立密鑰的3DES,但無論是DES還是3DES都要被AES算法取締。
4.3 驅(qū)動層加解密
4.3.1 文件過濾驅(qū)動的基本流程

    文件過濾驅(qū)動[4]程序的開發(fā)基本流程是將編寫好的派遣函數(shù)加載到文件系統(tǒng)控制設(shè)備上,使驅(qū)動程序發(fā)揮作用,如圖2所示。

 

 

4.3.2 驅(qū)動對象與設(shè)備對象
    所謂的驅(qū)動對象[4]是一種數(shù)據(jù)結(jié)構(gòu),在驅(qū)動開發(fā)中名為DRIVER_OBJECT[5]。任何驅(qū)動程序都對應(yīng)一個DRIVER_
OBJECT。驅(qū)動程序的入口函數(shù)為DriverEntry,因此,驅(qū)動程序的開始代碼如下:
    NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING
    RegistryPath)
    {
    }
     這就是驅(qū)動程序的入口函數(shù)。DriverObject 就是所寫的驅(qū)動對應(yīng)的DRIVER_OBJECT, 是系統(tǒng)在加載驅(qū)動時所分配的。
     RegisteryPath[5]  是專用于記錄驅(qū)動相關(guān)參數(shù)的注冊表路徑[5]。這兩者都由系統(tǒng)分配并通過這兩個參數(shù)傳遞的。
     DriverObject[5]重要之處在于它擁有一組函數(shù)指針,稱為dispatch functions。
     開發(fā)驅(qū)動程序時,核心任務(wù)就是編寫派遣函數(shù)。當系統(tǒng)用到此驅(qū)動,會向此驅(qū)動發(fā)送IRP(這是Windows所有驅(qū)動的共同工作方式)。其任務(wù)是在派遣函數(shù)中處理這些請求。可以拒絕某些IRP,可以使其成功返回,也可以修改這些IRP,甚至可以通過這些IRP自己發(fā)出新的IRP。
   設(shè)備對象[4]則是指DEVICE_OBJECT(以下簡稱為DO)。但是事實上任何IRP都是針對而DO而發(fā)出的,它們之間是一一對應(yīng)的,由該驅(qū)動生的DO的IRP也應(yīng)該由該驅(qū)動來處理。當一個應(yīng)用程序?qū)δ澄募M行操作的時候,Windows系統(tǒng)將這些IRP發(fā)送給文件系統(tǒng)驅(qū)動。
    文件系統(tǒng)過濾驅(qū)動可以通過其中的派遣函數(shù)對這些IRP進行攔截或釋放,于是系統(tǒng)就有了捕捉和改變文件系統(tǒng)操作的能力。
5 驅(qū)動層的文件加密實例
5.1 開發(fā)軟件及環(huán)境

    實現(xiàn)一個簡單的分層驅(qū)動的文件加/解密功能,系統(tǒng)實現(xiàn)將在Windows 7系統(tǒng)(使用虛擬機)下進行,采用VS2008(編譯器)、WDK(編譯器)、WinDbg(調(diào)試工具)、fltMc(調(diào)試工具)等工具構(gòu)成的平臺,使用C語言進行代碼編寫。
5.2 開發(fā)實例圖片
 用WDK軟件將程序進行編譯,得到.sys文件,通過fltMC和Windbg進行調(diào)試,將實例驅(qū)動加載并綁定到虛擬機上。加載成功后,在虛擬機上新建一個空的.txt文件,打開,輸入隨意字符,如圖3所示。

    點擊保存文件,此時系統(tǒng)用到本驅(qū)動,由設(shè)備對象發(fā)出IRP,進行加密變換。
    由于在代碼中并沒有加入解密算法,所以當再打開此文件時會看到如圖4所示界面。

    如果在代碼中正確的地方加入解密算法,在保存文件以后再打開文件,系統(tǒng)再次用到此驅(qū)動,由對象設(shè)備發(fā)出IRP,進行解密,打開文件后看到的依然是明文。
    文件在硬盤上是密文,在內(nèi)存中是明文。所以當保存的文件被別人獲取后,沒有所加載的驅(qū)動,故無法獲取信息的明文。而用戶在使用過程中,并不會受到影響,也就是所謂的透明加解密。
    驅(qū)動與驅(qū)動之間的層級帶來的沖突問題是目前驅(qū)動開發(fā)中遇到的最大的問題。
    例如,一個antivirus(殺毒)過濾驅(qū)動在棧中的位置應(yīng)該高于一個“加密操作”的過濾驅(qū)動,因而它能在文件被加密之前探測病毒并消除文件中的病毒。這就使得有些所做的驅(qū)動無法正常發(fā)揮作用,所以今后工作中要盡力解決的是驅(qū)動之間的沖突問題。
參考文獻
[1] 侯春明, 陳斌. 基于分層驅(qū)動的Windows內(nèi)核rootkit關(guān)鍵技術(shù)[J]. 吉首大學(xué)學(xué)報(自然科學(xué)版), 2009,30(4):48-51.
[2] 鄭衛(wèi)國. 加密技術(shù)在數(shù)據(jù)安全中的應(yīng)用[J]. 農(nóng)業(yè)網(wǎng)絡(luò)信息,2007(6):115-117.
[3] 廖凌云.基于包過濾的對稱加密系統(tǒng)的研究與實現(xiàn)[D]. 上海:同濟大學(xué)軟件學(xué)院, 2009.
[4] 周斌.主機入侵保護系統(tǒng)的研究與實現(xiàn)[D]. 濟南:山東大學(xué),2008.
[5] 高靜.智能卡在網(wǎng)絡(luò)管理系統(tǒng)中的研究和應(yīng)用[D].北京: 北京郵電大學(xué),2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国产一级毛片亚洲久留木玲 | 国产成人盗摄精品 | 欧美日韩国产一区三区 | 一区二区精品视频 | 国产在线欧美日韩一区二区 | 日韩性视频网站 | cao在线 | 欧美亚洲国产成人不卡 | 国产美女精品视频免费观看 | 日韩精品福利视频一区二区三区 | 国产成人高清亚洲一区91 | 国产精品自拍亚洲 | 被老外玩爽的中国美女视频 | 久草视频在线资源 | 99久久免费观看 | 亚洲一区二区三区久久精品 | 亚洲激情欧美 | 欧美日韩精品一区二区 | 国产高清免费观看 | 亚洲线精品久久一区二区三区 | 午夜在线影院 | 国产成人综合亚洲 | 亚洲精品国产第一区二区多人 | 国产一级毛片亚洲久留木玲 | 亚洲综合色就色手机在线观看 | 亚洲aⅴ男人的天堂在线观看 | 久章草在线观看 | 亚洲色吧| 热99re久久精品精品免费 | 日本三级2021最新理论在线观看 | 91九色精品国产免费 | 国产精品成人亚洲 | 欧美搞黄视频 | 亚洲精品第一区二区三区 | 欧美一级片观看 | cao草棚视频网址成人 | 男人操美女网站 | 欧美性高清bbbbbbxxxxx | 一级做a爰片久久毛片 | 国产国语一级毛片全部 | 久草在线视频新时代视频 |