[發明專利]一種基于FUSE的雙向文件加密系統有效
| 申請號: | 201610090739.5 | 申請日: | 2016-02-18 |
| 公開(公告)號: | CN105760779B | 公開(公告)日: | 2018-06-22 |
| 發明(設計)人: | 龍毅宏 | 申請(專利權)人: | 武漢理工大學 |
| 主分類號: | G06F21/62 | 分類號: | G06F21/62 |
| 代理公司: | 武漢開元知識產權代理有限公司 42104 | 代理人: | 潘杰 |
| 地址: | 430070 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 文件系統 用戶空間 文件I/O 重定向 受信 過濾器驅動 加密文件 文件加密系統 程序進程 密文數據 明文文件 進程 非加密文件 明文數據 | ||
1.一種基于FUSE的雙向文件加密系統,其特征是:所述雙向文件加密系統包括:
用戶空間文件系統:一個采用用戶空間文件系統技術開發的、對文件進行加密和解密處理的系統;所述用戶空間文件系統在用戶計算機系統中對應一個文件盤或文件目錄,即表現為一個文件盤或文件目錄;所述用戶空間文件系統對應的文件盤或文件目錄稱為虛擬文件盤或虛擬文件目錄;所述虛擬文件盤或虛擬文件目錄中的文件稱為虛擬文件;所述用戶空間文件系統又包括FUSE文件驅動、FUSE用戶空間程序,其中,FUSE文件驅動是所述用戶空間文件系統的驅動,FUSE用戶空間程序是用戶空間文件系統中對文件I/O操作請求進行處理的用戶空間程序;FUSE用戶空間程序的程序進程稱為FUSE用戶空間進程;當一個程序進程請求以緩存I/O方式打開或創建虛擬文件盤或虛擬文件目錄中的一個虛擬文件時,所述用戶空間文件系統的FUSE文件驅動不為打開或創建的虛擬文件在內存中創建數據緩存,即:即便程序進程請求以緩存I/O方式打開或創建虛擬文件,FUSE文件驅動也不為打開或創建的虛擬文件創建數據緩存;對于程序進程針對被打開或創建的虛擬文件進行的所有文件I/O操作,所述用戶空間文件系統的FUSE文件驅動按非緩存I/O的方式進行響應處理,即:FUSE文件驅動將針對虛擬文件的所有文件I/O操作請求,包括數據讀取和存寫、文件信息設置和查詢,都提交到FUSE用戶空間進程進行處理;
文件重定向過濾器驅動:一個攔截文件I/O操作請求并進行文件I/O操作重定向處理的文件系統過濾器驅動類型的驅動;
所述雙向文件加密系統所在用戶計算機中的文件目錄包括加密文件目錄和非加密文件目錄,存儲在加密文件目錄中的文件被所述雙向文件加密系統自動加密成為加密文件,而存儲在非加密文件目錄中的文件是明文文件或者加密文件,存儲在非加密文件目錄中的明文文件不被所述雙向文件加密系統自動加密成為加密文件;
對所述雙向文件加密系統所在用戶計算機中的文件包括明文文件和密文文件進行文件I/O操作的程序進程包括受信進程、非受信進程、中性進程以及操作系統輔助文件I/O操作的系統進程;所述受信進程是中性進程以及操作系統輔助文件I/O操作的系統進程以外的被允許獲取文件的明文數據的程序進程;所述非受信進程是中性進程以及操作系統輔助文件I/O操作的系統進程以外的不被允許讀取文件的明文數據的程序進程;受信進程和非受信進程針對文件類型而設定;所述中性進程是一個在讀取文件的數據時始終讀取的是文件在磁盤上的原始數據的程序進程;操作系統輔助文件I/O操作的系統進程輔助一個程序進程所進行的文件I/O操作是被輔助的程序進程所進行的文件I/O操作的一部分;在處理一個程序進程針對一個文件的文件I/O操作請求的過程中,FUSE文件驅動將進行文件I/O操作的程序進程的進程ID或名稱連同文件I/O操作請求一起傳遞到FUSE用戶空間進程;若傳遞的是進程ID,則FUSE用戶空間進程通過進程ID得到程序進程的名稱;之后FUSE用戶空間進程通過程序進程的名稱確定進行文件I/O操作的程序進程是受信進程,非受信進程,中性進程,還是操作系統輔助文件I/O操作的系統進程;
所述文件重定向過濾器驅動對一個程序進程打開或創建一個文件的I/O操作請求按如下方式進行重定向處理:
當一個程序進程請求打開或創建加密文件目錄中的一個文件包括加密文件和明文文件時,或請求打開或創建非加密文件目錄中的一個加密文件時,所述文件重定向過濾器驅動將文件打開或創建請求重定向到用戶空間文件系統所對應的虛擬文件盤或虛擬文件目錄中的一個虛擬文件;
當一個程序進程請求打開或創建非加密文件目錄中的一個明文文件時,所述文件重定向過濾器驅動按如下方式之一進行處理:
方式一:
當一個受信進程請求打開或創建非加密文件目錄中的一個明文文件時,所述文件重定向過濾器驅動不對文件打開或創建請求進行重定向;
當一個非受信進程或中性進程請求打開或創建非加密文件目錄中的一個明文文件時,所述文件重定向過濾器驅動將文件打開或創建請求重定向到用戶空間文件系統所對應的虛擬文件盤或虛擬文件目錄中的一個虛擬文件;
方式二:
當一個受信進程或中性進程請求打開或創建非加密文件目錄中的一個明文文件時,所述文件重定向過濾器驅動不對文件打開或創建請求進行重定向,而當一個非受信進程請求打開或創建非加密文件目錄中的一個明文文件時,所述文件重定向過濾器驅動將文件打開或創建請求重定向到用戶空間文件系統所對應的虛擬文件盤或虛擬文件目錄中的一個虛擬文件;
當一個程序進程請求打開或創建加密文件目錄或非加密文件目錄中的一個不存在的文件時,被打開或創建的文件被當作明文文件;
所述文件重定向過濾器驅動對所述用戶空間文件系統的FUSE用戶空間進程針對加密文件目錄和非加密文件目錄中的文件包括加密文件和明文文件所進行的文件打開或創建操作請求不進行重定向處理,對所述用戶空間文件系統的FUSE用戶空間進程針對加密文件目錄和非加密文件目錄中的文件包括加密文件和明文文件所進行的文件I/O操作不干預;
加密文件目錄和非加密文件目錄中的重定向前的文件稱為重定向后的虛擬文件的對應原文件;當所述文件重定向過濾器驅動將一個程序進程針對加密文件目錄或非加密文件目錄中的一個文件所進行的文件打開或創建操作重定向到用戶空間文件系統對應的虛擬文件盤或虛擬文件目錄中的一個虛擬文件時,所述文件重定向過濾器驅動將重定向前的原文件的完整文件路徑,包括文件所在文件盤的信息,編碼在重定向后的虛擬文件的文件路徑中,即重定向后的虛擬文件的文件路徑中包含有重定向前程序進程要打開或創建的原文件的完整文件路徑信息,重定向前的原文件同重定向后的虛擬文件之間存在一一對應的關系,而所述用戶空間文件系統的FUSE用戶空間進程從程序進程要打開或創建的虛擬文件的文件路徑中獲得虛擬文件的對應原文件的完整文件路徑;
當接收到一個程序進程針對虛擬文件盤或虛擬文件目錄中的一個虛擬文件進行文件打開或創建的操作請求后,所述用戶空間文件系統的FUSE用戶空間進程從程序進程請求打開或創建的虛擬文件的文件路徑中獲得重定向前的原文件的完整文件路徑,然后將程序進程針對虛擬文件的打開或創建操作轉化為針對虛擬文件對應的重定向前的原文件的打開或創建操作,之后將程序進程針對虛擬文件的文件I/O操作轉化為針對重定向前的原文件的文件I/O操作;特別地:
在將程序進程針對虛擬文件的打開或創建操作轉化為針對虛擬文件對應的重定向前的原文件的打開或創建操作過程中,若所述FUSE用戶空間進程檢查發現程序進程要打開或創建的虛擬文件的對應原文件的是加密文件目錄中的一個明文文件,則FUSE用戶空間進程將虛擬文件的對應原文件加密成為一個加密文件;
若原文件是位于加密文件目錄中的文件,則在將程序進程針對虛擬文件的文件I/O操作轉化為針對重定向前的原文件的文件I/O操作過程中,FUSE用戶空間進程按正向加密方式對文件I/O操作進行處理;
若原文件是位于非加密文件目錄中的加密文件,則在將程序進程針對虛擬文件的文件I/O操作轉化為針對重定向前的原文件的文件I/O操作過程中,FUSE用戶空間進程按正向加密方式或可變正向加密方式對文件I/O操作進行處理;
若原文件是位于非加密文件目錄中的明文文件,則在將程序進程針對虛擬文件的文件I/O操作轉化為針對重定向前的原文件的文件I/O操作過程中,FUSE用戶空間進程按反向加密方式或可變反向加密方式對文件I/O操作進行處理;
所述正向加密方式是:當一個程序進程通過虛擬文件及用戶空間文件系統對一個加密文件進行數據讀取操作時,若程序進程是受信進程,則程序進程讀取的是明文數據,若程序進程是非受信進程或中性進程,則程序進程讀取的是密文數據;而當一個程序進程通過虛擬文件及用戶空間文件系統對一個加密文件進行數據存寫操作時,無論程序進程要存寫的是明文數據還是密文數據,最終存寫到文件的數據是加密數據,即加密文件在磁盤上始終保持為加密文件;
所述可變正向加密方式是:當一個程序進程通過虛擬文件及用戶空間文件系統對一個加密文件進行數據讀取操作時,若程序進程是受信進程,則程序進程讀取的是明文數據,若程序進程是非受信進程或中性進程,則程序進程讀取的是密文數據;而當一個程序進程通過虛擬文件及用戶空間文件系統對一個加密文件進行數據存寫操作時,程序進程要存寫的數據被直接存寫到文件,即若程序進程要存寫的是明文數據,則明文數據被存寫到磁盤上的文件,磁盤上的加密文件變成明文文件,若程序進程要存寫的是密文數據,則密文數據被存寫到磁盤上的文件,磁盤上的文件仍然保持為加密文件;
所述反向加密方式是:當一個程序進程通過虛擬文件及用戶空間文件系統對一個明文文件進行數據讀取操作時,若程序進程是受信進程或中性進程,則程序進程讀取的是明文數據,若程序進程是非受信進程,則程序進程讀取的是密文數據;而當一個程序進程通過虛擬文件及用戶空間文件系統對一個明文文件進行數據存寫操作時,無論程序進程要存寫的是明文數據還是密文數據,最終存寫到文件的數據是明文數據,即明文文件在磁盤上始終保持為明文文件;
所述可變反向加密方式是:當一個程序進程通過虛擬文件及用戶空間文件系統對一個明文文件進行數據讀取操作時,若程序進程是受信進程或中性進程,則程序進程讀取的是明文數據,若程序進程是非受信進程,則程序進程讀取的是密文數據;而當一個程序進程通過虛擬文件及用戶空間文件系統對一個明文文件進行數據存寫操作時,若程序進程要存寫的是明文數據,則明文數據被直接存寫到文件,即磁盤上的文件仍然保持為明文文件,若程序進程要存寫的是密文數據,則FUSE用戶空間進程進一步根據策略確定最終是存寫明文數據還是密文數據,若確定最終是存寫明文數據,則FUSE用戶空間進程將密文數據解密后再存寫到文件,即磁盤上的文件保持為明文文件,若確定最終是存寫密文數據,則FUSE用戶空間進程直接將密文數據存寫到文件,即磁盤上的明文文件變成加密文件;確定最終是存寫明文數據還是密文數據的策略來自配置信息或包含在要存寫的密文數據中或編碼在FUSE用戶空間程序的代碼中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢理工大學,未經武漢理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610090739.5/1.html,轉載請聲明來源鉆瓜專利網。





