面向Windows的文件透明加解密解決方案(1)——需求分析

1.需求分析:

1、強制性加解密

  • l 根據文檔密級規則,用戶身份,動態地、強制性地對電子文檔進行加解密(保存的時候加密存盤、打開的時候解密打開),不需要由終端用戶來判斷這個文檔是否需要加密;不改變用戶正常的工作習慣。
  • l 在內網使用者使用時,加密的文檔與非加密文檔,應該有一種顯著的識別方式(易於讓使用者區分);
  • l 一定程度上,防止加密文檔的數據內容複製。比如通過截屏、粘貼板等方式複製數據內容;
  • l 支持在指定經過認證的計算機終端進行文檔解密,方便文檔外發管理。
  • l 支持txt、word、ppt、excel、cad等常見文件格式類型;

在文檔的加密標記中GUID值確定本文檔的加密層級,同時設定爲關鍵進程(加密進程)的程序只能用來編輯加密文件。

採用RSA公鑰密碼體制進行密鑰交互,使用RC4流加密算法進行文檔內容加密,對於不同密級的文檔,有不同的公鑰,用戶在開始編輯文檔時候,客戶端自動將私鑰加密傳送到驅動層。驅動層使用公鑰進行文檔加密,使用私鑰進行文檔解密(公鑰存放在程序中,暫時認爲是固定不變的)。

在用戶使用機密進程期間,如果發生用戶使用剪貼板或者截屏方式(假設截屏所生成的文件保存在剪貼板中),系統通過對剪貼板進行實時監控的方式防止惡意用戶將機密文件中的內容拷貝到非機密文件中。

由於文檔使用公鑰加解密,在指定受限主機上直接對機密文件使用私鑰解密即可獲得正常文檔,方便文檔外發管理。

機密進程名

文件類型

notepad.exe

txt

winword.exe

doc/html/txt/rtf/xml/dot

tmp/docx

excel.exe

xls/xml/mht/htm/html/xlt

cad.exe

cad

powerpnt.exe

ppt/tmp/rtf/pot/ppsm/mht/mhtml/htm/html/pps/ppa/pptx/potx/ppsx/mh_/ht_

 

2、文檔保護

  • l 當文檔流轉到外部系統時,未經授權用戶打開文檔將以亂碼文件形式展現,無法識別。
  • l 有效保護:防止文檔內容在使用的過程中被輕易的以明文方式流出。
  • l 文檔僅允許指定應用程序打開,防止惡意程序打開後,通過其它未能控制的方式泄漏信息。
  • l 針對系統採用休眠時,將數據帶出的情況,應當採用有效的方式控制

加解密驅動只安裝在受信客戶端上,保證只有內部安裝了透明加密驅動的客戶端有能力編輯加密文件。

在使用過程中暫不考慮HOOK與惡意過濾驅動的情況(假定本機殺毒軟件可以進行安全清理),對於Windows獨有的內存映射文件機制,我們採取及時刷新系統緩存的技術。

文檔僅允許指定應用程序打開,在IRP_MJ_READ、IRP_MJ_WRITE等的預處理函數中,會自動對於打開進程名進行解析,若不符合預定的機密進程名則設置IoStatus.Status爲STATUS_ACCESS_DENIED並且直接返回FLT_PREOP_COMPLETE,即拒絕對文件的操作。

而對於惡意程序僞裝機密進程的行爲,我們交給上層應用軟件完成,對程序做HASH值並與原HASH值進行對比,若存在差異則也是返回拒絕操作。

當系統處於休眠狀態前,系統會自動將內存中的數據寫入到硬盤上,針對這種情況,在每次計算機休眠前我們會自動關閉文件並且釋放StreamContext。

3、身份鑑別

  • l 需要一種有效的身份鑑別方式,以防止不同系統部署之間的身份混亂或角色冒充。(通常採用數字證書)
  • l 對於確有需要移動辦公的, 可以對移動筆記本進行相關的認證,並可在非可控範圍內,受限的使用指定的文檔。
  • l 能夠對文檔的使用期限或打開次數做出限制。超期的或者超出打開次數的,應當不允許使用;

對於任一客戶端發放一張綁定本地MAC地址的數字證書,客戶端向服務器發出申請,服務器端對於客戶端的數字證書進行驗證並決定是否傳送私鑰(暫不考慮客戶端與服務器端安全通信問題)。

對於文檔的受限打開,即對於移動筆記本客戶端(服務器在發放數據證書的時候會記錄是發給PC還是筆記本的),傳輸的私鑰的結構體中設置參數UseCountActiveTime,記錄私鑰可以用來使用的次數與使用時限,實現了對於打開次數的限制。

發佈了56 篇原創文章 · 獲贊 13 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章