文件加密技術研究

簡介:


文檔加密是現今信息安全防護的主力軍,採用透明加解密技術,對數據進行強制加密,不改變用戶原有的使用習慣;此技術對數據自身加密,不管是脫離操作系統,還是非法脫離安全環境,用戶數據自身都是安全的,對環境的依賴性比較小。市面上的文檔加密主要的技術分爲磁盤加密、應用層加密、驅動級加密等幾種技術,應用層加密因爲對應用程序的依賴性比較強,存在諸多兼容性和二次開發的問題,逐步被各信息安全廠商所淘汰。

概念


“文檔加密” 是指通過採用加密算法和各種加密技術對網絡或計算機中的文檔進行加密防止文檔非法外泄的技術。加密技術是利用數學或物理手段,對電子信息在傳輸過程中或存儲設備內的數據進行保護,以防止泄漏的技術。在信息安全技術中,加密技術佔有重要的地位,在保密通信、數據安全、軟件加密等均使用了加密技術。

1. 文檔安全中的加密技術


雖然加密算法是文檔安全系統的核心,但加密算法以何種方式進行實現,是決定文檔安全系統的關鍵。在文檔安全系統中,常用的實現方式有靜態加密方式和動態加密方式,靜態加密是指在加密期間,待加密的數據處於未使用狀態(靜態),這些數據一旦加密,在使用前,需首先通過靜態解密得到明文,然後才能使用。目前市場上許多加密軟件產品就屬於這種加密方式。


與靜態加密不同,動態加密(也稱實時加密,透明加密等,其英文名爲encrypt on-the-fly),是指數據在使用過程中(動態)自動對數據進行加密或解密操作,無需用戶的干預,合法用戶在使用加密的文件前,也不需要進行解密操作即可使用,表面看來,訪問加密的文件和訪問未加密的文件基本相同,對合法用戶來說,這些加密文件是“透明的”,即好像沒有加密一樣,但對於沒有訪問權限的用戶,即使通過其它非常規手段得到了這些文件,由於文件是加密的,因此也無法使用。由於動態加密技術不僅不改變用戶的使用習慣,而且無需用戶太多的干預操作即可實現文檔的安全,因而近年來得到了廣泛的應用。


由於動態加密要實時加密數據,必須動態跟蹤需要加密的數據流,而且其實現的層次一般位於系統內核中,因此,從實現的技術角度看,實現動態加密要比靜態加密難的多,需要解決的技術難點也遠遠超過靜態加密。

2. 文檔安全加密系統的實現層次


在現代操作系統中,文件的操作均通過文件系統進行,雖然不同的操作系統支持的文件系統不同,但對文件的訪問方式基本相同,在Windows系統中,文件系統是以設備驅動程序形式存在的。


Windows的設備驅動程序採用分層方式,允許在應用程序和硬件之間存在多個驅動程序層次,其中過濾驅動程序是一種特殊類型的中間驅動程序,它們位於其它驅動程序的上層或下層,截獲發送給低層驅動程序設備對象的請求,在請求到達低層驅動程序之前,過濾驅動程序可以更改該請求,而低層驅動程序完全不知道在其上層驅動中發生的一切操作。圖1給出了Windows系統中的文件操作流程,其中層次I和II屬於應用層;層次III和IV屬於操作系統內核層。從中可以看出,一個應用程序(I層)在發出文件操作請求時,需要經過操作系統提供的API層(II層)、文件過濾驅動程序層(III層)和文件系統層(IV層)才能訪問文件,由此可知,文檔安全加密系統也只能在這四個層次上進行實現。


文件系統的這種組織結構決定了文檔安全加密系統的實現方式,在數據從應用程序訪問文件所經過的每個層次中,均可對訪問的數據實施加密/解密操作,由於層次I只能獲取應用程序自身讀寫的數據,其他應用程序的數據不經過該層,因此,在層次I中只能實現靜態加密,無法實現動態加密;即使是層次II,也並不是所有文件數據均通過該層,但在該層可以攔截到各種文件的打開、關閉等操作。因此,在應用層實現的動態加解密產品無法真正做到“實時”加密/解密操作,一般只能通過其他變相的方式進行實現(一般均在層次II進行實現)。


例如,在應用程序打開文件時,先直接解密整個文件或解密整個文件到其他路徑,然後讓應用程序直接(重定向)訪問這個完全解密的文件,而在應用程序關閉這個文件時,再將已解密的文件進行加密。其實質是靜態加解密過程的自動化,並不屬於嚴格意義上的動態加密。
只有在層次III和IV中才能攔截到各種文件操作,因此,真正的動態加解密產品只能在內核層進行實現。


image.png

3. 在系統內核層實現動態加解密


在文件過濾驅動層(III)和文件系統層(IV),不僅能夠獲得文件的各種信息,而且能夠獲得訪問這些文件的進程信息和用戶信息等,因此,可以研製出功能非常強大的文檔安全產品。就動態加解密產品而言,有些文件系統自身就支持文件的動態加解密,如Windows系統中的NTFS文件系統,其本身就提供了EFS(Encryption File System)支持,但作爲一種通用的系統,雖然提供了細粒度的控制能力(如可以控制到每個文件),但在實際應用中,其加密對象一般以分區或目錄爲單位,難以做到滿足各種用戶個性化的要求,如自動加密某些類型文件等。
雖然有某些不足,但支持動態加密的文件系統在某種程度上可以提供和磁盤級加密技術相匹敵的安全性。由於文件系統提供的動態加密技術難以滿足用戶的個性化需求,因此,爲第三方提供動態加解密安全產品提供了足夠的空間。


要研發在文件級的動態加解密安全產品,雖然與具體的操作系統有關,但仍有多種方法可供選擇,一般可通過Hook或過濾驅動等方式嵌入到文件系統中,使其成爲文件系統的一部分,從某種意義上來說,第三方的動態加解密產品可以看作是文件系統的一個功能擴展,這種擴展往往以模塊化的形式出現,能夠根據需要進行掛接或卸載,從而能夠滿足用戶的各種需求,這是作爲文件系統內嵌的動態加密系統難以做到的。

4. 文檔安全加密系統的實例


對於個人用戶,由於不涉及權限和密鑰的管理分配等,文檔安全加密系統一般只需要在客戶端實現加解密等功能即可;對於單位用戶來說,只提供加解密等功能是遠遠不夠的,必須提供相應的管理系統,如用戶身份的確認,權限分配,密鑰管理、安全策略管理等多種功能。雖然不同的文檔安全系統有不同的實現方式,但總體架構基本是相似的。下面我們以億賽通公司的文檔安全加密系統SmartSec爲例,對文檔安全加密系統的實現方式進行分析和說明。


image.png


SmartSec的總體架構圖,整個安全系統由服務器端和客戶端兩大部分組成,支持C/S和B/S兩種組織結構。服務端主要由用戶管理、密鑰管理、文檔流轉管理、安全引擎等組成。其中用戶管理主要負責用戶身份的驗證,權限的分配和管理等;文檔流轉管理的主要功能是負責文檔在單位內部不同部門之間的流轉和單位內部與外部之間的流轉工作,在保證文檔不影響用戶交流的情況下,爲文檔提供安全保障。


如控制文檔的瀏覽次數、使用時間,擁有的權限等。密鑰管理用於實現不同部門之間的密鑰分配和交換等功能;安全策略管理用於設置和管理系統的安全策略以及爲每個用戶分配相應的安全策略等;安全引擎主要爲服務器系統提供安全保障,如驗證安全系統模塊的運行權限和條件等,並提供對服務器端存儲的文檔進行加密/解密等多種安全相關的功能。


image.png


上圖給出了SmartSec客戶端的實現原理,從中可以看出,SmartSec的動態加解密是以文件過濾驅動程序的方式進行實現的(位於層次III),同時在應用層(層次II)和內核層(層次III)均提供訪問控制功能,除此之外,還提供了日誌和程序行爲控制等功能,這種通過應用層和內核層相互配合的實現方式,不僅能提供更高的安全性,而且有助於降低安全系統對系統性能的影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章