麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于分層文件系統的Windows內核文件透明過濾的方法

文檔序號:6621378閱讀:316來源:國知局
基于分層文件系統的Windows內核文件透明過濾的方法
【專利摘要】一種基于分層文件系統的Windows內核文件透明過濾的方法,通過在Windows文件系統過濾驅動中創建一個分層文件系統實現文件透明過濾,進而實現文件透明加密,來保護云環境下的隱私數據。本發明較好地解決了上述Windows平臺下文件透明過濾的問題,能夠不必針對同一文件不同的明文、密文內容反復清除緩存,提高了效率,同時還能夠靈活定制I/O操作的語義,有更為廣泛的應用空間。
【專利說明】基于分層文件系統的Windows內核文件透明過濾的方法

【技術領域】
[0001] 本發明涉及云環境下隱私數據的保護方法,具體是一種基于分層文件系統 (Layerfsd)的Windows內核文件透明過濾的方法,保護云環境下隱私數據。

【背景技術】
[0002] 云環境下隱私數據的保護具有廣泛的應用價值。通過實現文件透明加密,可以保 護云環境下的隱私數據。通過文件透明過濾的方法,在寫入文件時對文件內容進行加密,在 讀取文件時對文件內容進行解密,就實現了文件透明加密,如圖1所示。
[0003] 然而,在Windows操作系統中進行文件透明過濾具有實現上的困難。這是因為在 Windows內核中,文件系統、虛擬內存管理器和緩存管理器緊密耦合,如圖2所示。當用戶通 過ReadFileOAPI來讀取文件時,首先會經過文件系統。如果文件系統發現虛擬內存中存 在緩存的內容,就會使用緩存中的內容。在這種情況下,可以在文件系統之上安裝一個過濾 驅動,截獲用戶的訪問并對返回的內容進行修改。當用戶通過內存映射來訪問文件時,情況 則有所不同。如果文件的內容不在緩存中,就會產生缺頁中斷,并調用文件系統來獲取文件 的內容;如果文件的內容在緩存中,就不會產生缺頁中斷,即使在文件系統之上安裝過濾驅 動,也無法截獲任何訪問。
[0004] 這就產生了一個問題,假設要實現一種文件透明加密,包含一個進程列表,在此列 表中的進程才能訪問文件的真實內容,通過在讀取和寫入時進行解密和加密;而其他進程 只能訪問原始的文件內容,即加密后的數據。使用普通的文件系統過濾方法無法實現上述 需求,因為緩存中只能保存一種文件的內容,即明文或密文二者取其一。而用戶總可以通過 內存映射的方法,使得文件系統過濾驅動無法截獲到任何請求。
[0005] 這類問題對文件透明過濾在Windows平臺上的應用產生了限制。例如,如果不解 決這類問題,就無法實現同時支持明文、密文訪問的文件透明加密系統。
[0006] 在與Windows下文件透明加密的相關已公開專利CN102129540A和CN102567670A 中,都使用了普通的文件系統過濾驅動,直接截獲對文件的讀取和寫入操作,并加入加密和 解密的動作,并未考慮緩存的影響,因此存在上述問題,無法做到根據進程的狀態返回明文 或者密文。
[0007] 工業界廣泛使用一種刷新緩存的方法,即當同一個文件在被機密進程和非機密進 程訪問之間,強制將有關的緩存清空。這樣,當緩存中的內容非法時,緩存一定不會被命中, 從而一定會請求文件系統提供內容,并經過安裝在其上的過濾驅動。然而,這大大降低了整 個系統的工作效率,尤其在不同狀態的進程頻繁切換時。


【發明內容】

[0008] 本發明針對上述現有技術的不足,提出了一種基于分層文件系統(Layerfsd)的 Windows內核文件透明過濾的方法,解決了上述Windows平臺下文件透明過濾的問題。所述 的分層文件系統驅動是指在原本的文件系統之上實現了一層新的抽象的文件系統。
[0009] 本發明原理如下:
[0010] 如圖3所示,普通的文件系統過濾驅動僅僅截獲、改變I/O請求的內容,處理后的 請求仍然被請求發送到原來的文件系統,應用程序中看到的文件屬于原來的文件系統。而 本發明實現了一個分層的文件系統,通過在原文件系統上安裝一個特殊的過濾驅動,該過 濾驅動中包含一個分層的文件系統。部分符合條件I/O請求被轉發到分層文件系統,應用 程序中看到的文件屬于該分層文件系統,原本的文件系統僅提供底層的功能支持;而另一 部分不符合條件的I/O請求被轉發到原文件系統。
[0011] 本發明的具體技術解決方案如下:
[0012] 一種基于分層文件系統的Windows內核文件透明過濾的方法,其特點在于,該方 法包括如下步驟:
[0013] 首先,將文件系統過濾驅動直接或間接地綁定在原有的文件系統驅動上,使之能 夠截獲I/O管理器下發的IRP(I/〇 Request Packet)。這既可以通過傳統的方法,即綁定 文件系統的控制設備與卷設備;也可以實現為一個Mini-filter。當實現為一個Mini-filter 時,我們需要注冊綁定所有的IRP,不能遺漏。
[0014] 然后,當用戶請求操作系統創建或打開一個文件時,I/O管理器會請求創建一個文 件對象,并下發功能號為IRP_MJ_CREATE的IRP,文件系統過濾驅動將截獲該IRP,獲取文件 名和打開方式信息,并根據用戶的選擇,決定是否接管這個文件的I/O操作:
[0015] 如果選擇不接管這個文件的I/O操作,則直接下發原來的IRP到原文件系統;
[0016] 如果選擇接管這個文件的I/O操作,則創建一個FCB (File Control Block),該 FCB屬于分層文件系統,且滿足三個要求:能和I/O管理器正常交互、能被過濾驅動識別、包 含下層文件系統的文件句柄;
[0017] 當用戶請求操作系統對一個文件進行打開或創建以外的操作時,1/0管理器會對 下層文件系統下發一個包含該1/0操作功能號的IRP ;此時,包含分層文件系統的文件系統 過濾驅動將截獲所有1/0操作功能號的IRP(由于文件系統過濾驅動被綁定在原有的文件 系統驅動上,1/0管理器在下發IRP時會經過文件系統過濾驅動,從而得到該驅動),并判斷 1/0操作所針對的文件對象中的FCB是否屬于該分層文件系統:
[0018] 如果屬于該分層文件系統,則在文件系統過濾驅動中完成該IRP的處理,具體是: [0019] 對于不需要修改語義的1/0操作,直接生成內容完全相同、目標為下層文件對象 的IRP,并調用下層文件系統,待下層文件系統完成請求后,將1/0結果按原樣返回給用戶;
[0020] 對于需要修改語義的1/0操作,利用分層文件系統定制1/0操作的語義,一個上層 的1/0操作,對應于零個、一個或多個下層的1/0操作。
[0021] 如果不屬于該分層文件系統,則下發該IRP到下層文件系統;
[0022] 最后,文件系統過濾驅動處理文件的關閉。
[0023] 與現有技術相比,本發明具有如下有益效果:
[0024] (1)能夠不必針對同一文件不同的明文、密文內容反復清除緩存,提高了效率。
[0025] (2)能夠靈活定制1/0操作的語義,有更為廣泛的應用空間。

【專利附圖】

【附圖說明】
[0026] 圖1描述了通過文件透明過濾實現文件透明加密的方法
[0027] 圖2描述了文件系統、虛擬內存和緩存管理器的緊密耦合關系
[0028] 圖3比較了普通文件系統過濾驅動和使用分層文件系統的文件系統過濾驅動的 異同
[0029] 圖4包含了本發明實施例的系統架構
[0030] 圖5描述了本發明實施例中對IRP進行分發的流程
[0031] 圖6描述了本發明實施例中打開文件操作的處理序列。

【具體實施方式】
[0032] 下文將結合附圖對本發明的實施例作詳細說明。本實施例在以本發明技術方案為 前提下進行實施,給出了詳細的實施方式和具體的操作過程。本發明的保護范圍包括但不 限于下述實施例。
[0033] 本實施例為基于分層文件系統的Windows內核透明加密系統,采用了上述發明的 基于分層文件系統的文件透明過濾方法,旨在為云環境下的用戶隱私建模和隱私節點保 護。本實施例包括一個文件系統過濾驅動,一個服務進程和一個服務器,如圖4所示。
[0034] 文件系統過濾驅動為本系統的核心,應用了基于分層文件系統的文件透明過濾方 法,當被訪問的文件為機密文件,并且訪問文件的進程為機密進程時,應用透明加密:在所 有讀取操作時透明地解密,在所有寫入操作時透明地加密。
[0035] 該過濾驅動基于微軟提供的Mini-filter框架實現,該框架用于簡化文件系統過 濾驅動開發以及增強其兼容性。在驅動中需要指定待過濾的I/O操作功能號列表并在入口 點處進行注冊。普通的文件系統過濾驅動中,一般只注冊必要的I/O操作功能號,以達到最 優性能;然而如同
【發明內容】
章節所述,我們需要實現一層文件系統,需要接管屬于這層文件 系統的文件的所有I/O操作,所以我們需要注冊所有的I/O操作功能號。
[0036] 當IRP被I/O管理器下發到目標文件系統之前,會經過所有掛載在文件系統設備 之上的過濾驅動。此時,Mini-filter框架會調用指定的回調函數。該函數對IRP的I/O功 能號進行判斷并分別處理,如圖5所示。
[0037] 如果I/O功能號為IRP_MJ_CREATE,即創建或打開一個文件:若當前進程為機密 進程,且被訪問的文件為機密文件時,創建一個屬于我們分層文件系統的FCB,并返回FLT_ PRE0P_C0MPLETE 以完成 I/O 操作;否則返回 FLT_PREOP_SUCCESS_NO_CALLBACK 以將該 IRP 下發到原文件系統。
[0038] 如果I/O功能號為其他:若被訪問文件的FCB屬于分層文件系統,則根據I/O功能 號對I/O操作進行分別處理,并返回FLT_PRE0P_C0MPLETE以完成I/O操作;否則返回FLT_ PREOP_SUCCESS_NO_CALLBACK以將該IRP下發到原文件系統。
[0039] 創建FCB的過程富有技巧性。如前文所述,FCB必須滿足三個要求,因此設計FCB 結構如下列代碼清單:
[0040]

【權利要求】
1. 一種基于分層文件系統的Windows內核文件透明過濾的方法,其特征在于,該方法 包括如下步驟: 首先,將文件系統過濾驅動直接或間接地綁定在原有的文件系統驅動上,使之能夠截 獲I/O管理器下發的IRP; 然后,當用戶請求操作系統創建或打開一個文件時,I/O管理器會請求創建一個文件對 象,并下發功能號為IRP_MJ_CREATE的IRP,包含分層文件系統的文件系統過濾驅動將截獲 該IRP,獲取文件名和打開方式信息,并根據用戶的選擇,決定是否接管這個文件的I/O操 作: 如果選擇不接管這個文件的I/O操作,則直接下發原來的IRP到原文件系統; 如果選擇接管這個文件的I/O操作,則創建一個FCB,該FCB屬于分層文件系統,且滿足 三個要求:能和I/O管理器正常交互、能被過濾驅動識別、包含下層文件系統的文件句柄; 當用戶請求操作系統對一個文件進行打開或創建以外的操作時,I/O管理器會對下層 文件系統下發一個包含該I/O操作功能號的IRP ;此時,包含分層文件系統的文件系統過濾 驅動將截獲所有I/O操作功能號的IRP,并判斷I/O操作所針對的文件對象中的FCB是否屬 于該分層文件系統: 如果屬于該分層文件系統,則在文件系統過濾驅動中完成該IRP的處理; 如果不屬于該分層文件系統,則下發該IRP到下層文件系統; 最后,文件系統過濾驅動處理文件的關閉。
2. 根據權利要求1所述的基于分層文件系統的Windows內核文件透明過濾的方法,其 特征在于,在文件系統過濾驅動中完成該IRP的處理,具體實現方法是: 對于不需要修改語義的I/O操作,直接生成內容完全相同、目標為下層文件對象的 IRP,并調用下層文件系統,待下層文件系統完成請求后,將I/O結果按原樣返回給用戶; 對于需要修改語義的I/O操作,利用分層文件系統定制I/O操作的語義,一個上層的1/ 〇操作,對應于零個、一個或多個下層的I/O操作。
【文檔編號】G06F21/60GK104123371SQ201410360078
【公開日】2014年10月29日 申請日期:2014年7月25日 優先權日:2014年7月25日
【發明者】管海兵, 龔路, 戚正偉 申請人:上海交通大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 湘潭县| 文登市| 叙永县| 辽阳县| 兴业县| 桐城市| 平阴县| 普兰店市| 盘锦市| 比如县| 陇西县| 巴楚县| 靖边县| 广州市| 怀宁县| 平安县| 揭西县| 兴国县| 朝阳区| 南皮县| 安顺市| 成安县| 信宜市| 岱山县| 志丹县| 河南省| 曲沃县| 玉溪市| 胶南市| 泸定县| 深州市| 来安县| 衡阳县| 达孜县| 平遥县| 荆州市| 福海县| 来安县| 漳平市| 达孜县| 甘肃省|