- 相關推薦
電腦文檔的加密技術
加密技術是利用數(shù)學或物理手段,對電子信息在傳輸過程中或存儲設備內(nèi)的數(shù)據(jù)進行保護,以防止泄漏的技術。在信息安全技術中,加密技術占有重要的地位,在保密通信、數(shù)據(jù)安全、軟件加密等均使用了加密技術。常用的加密算法有DES系列(包括DES和3DES),RC系列(常用的有RC4和RC6)和AES等對稱加密算法(加密密鑰和解密密鑰相同或相似)以及RSA等非對稱加密算法。除此此外,還有用于獲取信息摘要的MD5等。這些常用的加密算法,只要設置合適的密碼,在現(xiàn)有的計算機技術條件下,一般均可滿足安全性要求,但不同的加密算法,需要的計算量有很大的不同。對于文檔安全加密系統(tǒng),加密算法是整個系統(tǒng)的核心,其選擇的依據(jù)一般根據(jù)系統(tǒng)的安全性要求進行確定,在滿足安全性要求的前提下,盡可能選用速度快的加密算法,在條件容許的情況下,可以采用硬件的方式對數(shù)據(jù)進行加密(如直接利用安全芯片提供的加密算法進行加密等)。
1. 文檔安全中的加密技術
雖然加密算法是文檔安全系統(tǒng)的核心,但加密算法以何種方式進行實現(xiàn),是決定文檔安全系統(tǒng)的關鍵。在文檔安全系統(tǒng)中,常用的實現(xiàn)方式有靜態(tài)加密方式和動態(tài)加密方式,靜態(tài)加密是指在加密期間,待加密的數(shù)據(jù)處于未使用狀態(tài)(靜態(tài)),這些數(shù)據(jù)一旦加密,在使用前,需首先通過靜態(tài)解密得到明文,然后才能使用。目前市場上許多加密軟件產(chǎn)品就屬于這種加密方式。
與靜態(tài)加密不同,動態(tài)加密(也稱實時加密,透明加密等,其英文名為encrypt on-the-fly),是指數(shù)據(jù)在使用過程中(動態(tài))自動對數(shù)據(jù)進行加密或解密操作,無需用戶的干預,合法用戶在使用加密的文件前,也不需要進行解密操作即可使用,表面看來,訪問加密的文件和訪問未加密的文件基本相同,對合法用戶來說,這些加密文件是“透明的”,即好像沒有加密一樣,但對于沒有訪問權限的用戶,即使通過其它非常規(guī)手段得到了這些文件,由于文件是加密的,因此也無法使用。由于動態(tài)加密技術不僅不改變用戶的使用習慣,而且無需用戶太多的干預操作即可實現(xiàn)文檔的安全,因而近年來得到了廣泛的應用。
由于動態(tài)加密要實時加密數(shù)據(jù),必須動態(tài)跟蹤需要加密的數(shù)據(jù)流,而且其實現(xiàn)的層次一般位于系統(tǒng)內(nèi)核中,因此,從實現(xiàn)的技術角度看,實現(xiàn)動態(tài)加密要比靜態(tài)加密難的多,需要解決的技術難點也遠遠超過靜態(tài)加密。
2. 文檔安全加密系統(tǒng)的實現(xiàn)層次
在現(xiàn)代操作系統(tǒng)中,文件的操作均通過文件系統(tǒng)進行,雖然不同的操作系統(tǒng)支持的文件系統(tǒng)不同,但對文件的訪問方式基本相同,在Windows系統(tǒng)中,文件系統(tǒng)是以設備驅動程序形式存在的。Windows的設備驅動程序采用分層方式,允許在應用程序和硬件之間存在多個驅動程序層次,其中過濾驅動程序是一種特殊類型的中間驅動程序,它們位于其它驅動程序的上層或下層,截獲發(fā)送給低層驅動程序設備對象的請求,在請求到達低層驅動程序之前,過濾驅動程序可以更改該請求,而低層驅動程序完全不知道在其上層驅動中發(fā)生的一切操作。圖1給出了Windows系統(tǒng)中的文件操作流程,其中層次I和II屬于應用層;層次III和IV屬于操作系統(tǒng)內(nèi)核層。從中可以看出,一個應用程序(I層)在發(fā)出文件操作請求時,需要經(jīng)過操作系統(tǒng)提供的API層(II層)、文件過濾驅動程序層(III層)和文件系統(tǒng)層(IV層)才能訪問文件,由此可知,文檔安全加密系統(tǒng)也只能在這四個層次上進行實現(xiàn)。
文件系統(tǒng)的這種組織結構決定了文檔安全加密系統(tǒng)的實現(xiàn)方式,在數(shù)據(jù)從應用程序訪問文件所經(jīng)過的每個層次中,均可對訪問的數(shù)據(jù)實施加密/解密操作,由于層次I只能獲取應用程序自身讀寫的數(shù)據(jù),其他應用程序的數(shù)據(jù)不經(jīng)過該層,因此,在層次I中只能實現(xiàn)靜態(tài)加密,無法實現(xiàn)動態(tài)加密;即使是層次II,也并不是所有文件數(shù)據(jù)均通過該層,但在該層可以攔截到各種文件的打開、關閉等操作。因此,在應用層實現(xiàn)的動態(tài)加解密產(chǎn)品無法真正做到“實時”加密/解密操作,一般只能通過其他變相的方式進行實現(xiàn)(一般均在層次II進行實現(xiàn))。例如,在應用程序打開文件時,先直接解密整個文件或解密整個文件到其他路徑,然后讓應用程序直接(重定向)訪問這個完全解密的文件,而在應用程序關閉這個文件時,再將已解密的文件進行加密。其實質是靜態(tài)加解密過程的自動化,并不屬于嚴格意義上的動態(tài)加密。
只有在層次III和IV中才能攔截到各種文件操作,因此,真正的動態(tài)加解密產(chǎn)品只能在內(nèi)核層進行實現(xiàn)。