透明加密——讓您的數(shù)據(jù)不再“透明”

為了保護(hù)隱私文件或機(jī)密文件,人們會(huì)使用一些加密軟件對(duì)文件進(jìn)行加密處理,它們最常見的功能是對(duì)單個(gè)的文件進(jìn)行加密和解密。在加密的領(lǐng)域,最神秘也是最方便的莫過于透明加密這種加密技術(shù)了。今天,小編就著重給大家講解一下,何為透明加密!

透明加密(又稱為自動(dòng)加密)技術(shù)是近年來針對(duì)企業(yè)文件保密需求應(yīng)運(yùn)而生的一種文件加密技術(shù)。所謂透明,是指對(duì)使用者來說是未知的。當(dāng)使用者在打開或編輯指定文件時(shí),系統(tǒng)將自動(dòng)對(duì)未加密的文件加密,對(duì)已加密的文件自動(dòng)解密。文件在硬盤上是密文,在內(nèi)存中是明文。一旦離開使用環(huán)境,由于應(yīng)用程序無法得到自動(dòng)解密的服務(wù)而無法打開,從而起來保護(hù)文件內(nèi)容的效果。

透明加密的特點(diǎn)

強(qiáng)制加密:安裝系統(tǒng)后,所有指定類型文件都是強(qiáng)制加密的;
使用方便:不影響原有操作習(xí)慣,不需要限止端口;
于內(nèi)無礙:內(nèi)部交流時(shí)不需要作任何處理便能交流;
對(duì)外受阻:一旦文件離開使用環(huán)境,文件顯示亂碼,從而保護(hù)知識(shí)產(chǎn)權(quán)。

透明加密的原理

透明加密技術(shù)是與 Windows 緊密結(jié)合的一種技術(shù),它工作于 Windows 的底層。通過監(jiān)控應(yīng)用程序?qū)ξ募牟僮?,在打開文件時(shí)自動(dòng)對(duì)密文進(jìn)行解密,在寫文件時(shí)自動(dòng)將內(nèi)存中的明文加密寫入存儲(chǔ)介質(zhì)。從而保證存儲(chǔ)介質(zhì)上的文件始終處于加密狀態(tài)。

監(jiān)控 Windows 打開(讀)、保存(寫)可以在 Windows 操作文件的幾個(gè)層面上進(jìn)行?,F(xiàn)有的 32 位 CPU 定義了4種(0~3)特權(quán)級(jí)別,或稱環(huán)(ring)。其中 0 級(jí)為特權(quán)級(jí),3 級(jí)是最低級(jí)(用戶級(jí))。運(yùn)行在 0 級(jí)的代碼又稱內(nèi)核模式,3級(jí)的為用戶模式。常用的應(yīng)用程序都是運(yùn)行在用戶模式下,用戶級(jí)程序無權(quán)直接訪問內(nèi)核級(jí)的對(duì)象,需要通過API函數(shù)來訪問內(nèi)核級(jí)的代碼,從而達(dá)到最終操作存儲(chǔ)在各種介質(zhì)上文件的目的。

為了實(shí)現(xiàn)透明加密的目的,透明加密技術(shù)必須在程序讀寫文件時(shí)改變程序的讀寫方式。使密文在讀入內(nèi)存時(shí)程序能夠識(shí)別,而在保存時(shí)又要將明文轉(zhuǎn)換成密文。Window 允許編程者在內(nèi)核級(jí)和用戶級(jí)對(duì)文件的讀寫進(jìn)行操作。內(nèi)核級(jí)提供了虛擬驅(qū)動(dòng)的方式,用戶級(jí)提供 Hook API 的方式。因此,透明加密技術(shù)也分為 API HOOK 廣度和 WDM(Windows Driver Model)內(nèi)核設(shè)備驅(qū)動(dòng)方式兩種技術(shù)。API HOOK 俗稱鉤子技術(shù),WDM 俗稱驅(qū)動(dòng)技術(shù)。

只要安裝了透明加密軟件企業(yè)圖紙辦公文檔在企業(yè)內(nèi)部即可自動(dòng)加密,而且對(duì)用戶完全透明,絲毫不改變用戶的工作習(xí)慣。在沒有授權(quán)的情況下,文件即使流傳到企業(yè)外部,也無法正常應(yīng)用。就像一個(gè)防盜門,裝上就能用,而且很管用。。

如今,透明加密技術(shù)也在不斷進(jìn)步。就目前市面上的透明加密技術(shù)來看,主要分為兩大類:即應(yīng)用層透明加密技術(shù)和驅(qū)動(dòng)層透明加密技術(shù)。

應(yīng)用層透明加密技術(shù):

所有Windosw應(yīng)用程序都是通過windows API函數(shù)對(duì)文件進(jìn)行讀寫的。程序在打開或新建一個(gè)文件時(shí),一般要調(diào)用windows的CreateFile或OpenFile、ReadFile等Windows API函數(shù);而在向磁盤寫文件時(shí)要調(diào)用WriteFile函數(shù)。

同時(shí)windows提供了一種叫鉤子(Hook)的消息處理機(jī)制,允許應(yīng)用程序?qū)⒆约喊惭b一個(gè)子程序到其它的程序中,以監(jiān)視指定窗口某種類型的消息。當(dāng)消息到達(dá)后,先處理安裝的子程序后再處理原程序。這就是鉤子。

應(yīng)用層透明加密技術(shù)俗稱鉤子透明加密技術(shù)。這種技術(shù)就是將上述兩種技術(shù)組合而成的。通過windows的鉤子技術(shù),監(jiān)控應(yīng)用程序?qū)ξ募拇蜷_和保存,當(dāng)打開文件時(shí),先將密文轉(zhuǎn)換后再讓程序讀入內(nèi)存,保證程序讀到的是明文,而在保存時(shí),又將內(nèi)存中的明文加密后再寫入到磁盤中。如圖1所示。

透明加密——讓您的數(shù)據(jù)不再“透明”

應(yīng)用層透明加密技術(shù)與應(yīng)用程序密切相關(guān),它是通過監(jiān)控應(yīng)用程序的啟動(dòng)而啟動(dòng)的。一旦應(yīng)用程序名更改,則無法掛鉤。同時(shí),由于不同應(yīng)用程序在讀寫文件時(shí)所用的方式方法不盡相同,同一個(gè)軟件不同的版本在處理數(shù)據(jù)時(shí)也有變化,鉤子透明加密必須針對(duì)每種應(yīng)用程序、甚至每個(gè)版本進(jìn)行開發(fā)。

目前不少應(yīng)用程序?yàn)榱讼拗购诳腿肭衷O(shè)置了反鉤子技術(shù),這類程序在啟動(dòng)時(shí),一旦發(fā)現(xiàn)有鉤子入侵,將會(huì)自動(dòng)停止運(yùn)行。

驅(qū)動(dòng)層透明加密技術(shù)

驅(qū)動(dòng)加密技術(shù)是基于windows的文件系統(tǒng)(過濾)驅(qū)動(dòng)(IFS)技術(shù),工作在windows的內(nèi)核層。我們?cè)诎惭b計(jì)算機(jī)硬件時(shí),經(jīng)常要安裝其驅(qū)動(dòng),如打印機(jī)、U盤的驅(qū)動(dòng)。文件系統(tǒng)驅(qū)動(dòng)就是把文件作為一種設(shè)備來處理的一種虛擬驅(qū)動(dòng)。當(dāng)應(yīng)用程序?qū)δ撤N后綴文件進(jìn)行操作時(shí),文件驅(qū)動(dòng)會(huì)監(jiān)控到程序的操作,并改變其操作方式,從而達(dá)到透明加密的效果。

驅(qū)動(dòng)加密技術(shù)與應(yīng)用程序無關(guān),他工作于windows API函數(shù)的下層。當(dāng)API函數(shù)對(duì)指定類型文件進(jìn)行讀操作時(shí),系統(tǒng)自動(dòng)將文件解密;當(dāng)進(jìn)入寫操作時(shí),自動(dòng)將明文進(jìn)行加密。由于工作在受windows保護(hù)的內(nèi)核層,運(yùn)行速度更快,加解密操作更穩(wěn)定。

但是,驅(qū)動(dòng)加密要達(dá)到文件保密的目的,還必須與用戶層的應(yīng)用程序打交道。通知系統(tǒng)哪些程序是合法的程序,哪些程序是非法的程序。

驅(qū)動(dòng)層透明加密技術(shù)工作在內(nèi)核層。如圖2所示。

透明加密——讓您的數(shù)據(jù)不再“透明”

驅(qū)動(dòng)加密技術(shù)雖然有諸多的優(yōu)點(diǎn),但由于涉及到windows底層的諸多處理,開發(fā)難度很大。如果處理不好與其它驅(qū)動(dòng)的沖突,應(yīng)用程序白名單等問題,將難以成為一個(gè)好的透明加密產(chǎn)品。