明加密技術(shù)是近年來針對企業(yè)文件保密需求應(yīng)運(yùn)而生的一種文件加密技術(shù)。應(yīng)用透明加密技術(shù),用戶打開或編輯未加密的指定后綴文件時(shí)會(huì)自動(dòng)加密;打開加密了的指定后綴文件時(shí)不需要輸入密碼會(huì)自動(dòng)解密。因此,用戶在環(huán)境內(nèi)使用密文不影響原有的習(xí)慣,但文件已經(jīng)始終處于加密狀況。一旦離開環(huán)境,文件將得不到解密服務(wù),將無法打開,從而起到保護(hù)電子文件知識(shí)產(chǎn)權(quán)的效果。本文將簡要介紹目前市場上透明加密軟件產(chǎn)品采用的透明加密技術(shù)。
透明加密技術(shù)
透明加密技術(shù)是近年來針對企業(yè)文件保密需求應(yīng)運(yùn)而生的一種文件加密技術(shù)。所謂透明,是指對使用者來說是未知的。當(dāng)使用者在打開或編輯指定文件時(shí),系統(tǒng)將自動(dòng)對未加密的文件進(jìn)行加密,對已加密的文件自動(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í)不需要作任何處理便能交流;
對外受阻:一旦文件離開使用環(huán)境,文件將自動(dòng)失效,從而保護(hù)知識(shí)產(chǎn)權(quán)。
透明加密技術(shù)原理
透明加密技術(shù)是與windows緊密結(jié)合的一種技術(shù),它工作于windows的底層。通過監(jiān)控應(yīng)用程序?qū)ξ募牟僮鳎诖蜷_文件時(shí)自動(dòng)對密文進(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),如圖1所示。其中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í)的對象,需要通過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í)對文件的讀寫進(jìn)行操作。內(nèi)核級(jí)提供了虛擬驅(qū)動(dòng)的方式,用戶級(jí)提供Hook API的方式。因此,透明加密技術(shù)也分為API HOOK廣度和VDM(Windows Driver Model)內(nèi)核設(shè)備驅(qū)動(dòng)方式兩種技術(shù)。API HOOK俗稱鉤子技術(shù),VDM俗稱驅(qū)動(dòng)技術(shù)。
鉤子透明加密技術(shù)簡介
所有Windosw應(yīng)用程序都是通過windows API函數(shù)對文件進(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á)后,先處理安裝的子程序后再處理原程序。這就是鉤子。
鉤子透明加密技術(shù)就是將上述兩種技術(shù)組合而成的。通過windows的鉤子技術(shù),監(jiān)控應(yīng)用程序?qū)ξ募拇蜷_和保存,當(dāng)打開文件時(shí),先將密文轉(zhuǎn)換后再讓程序讀入內(nèi)存,保證程序讀到的是明文,而在保存時(shí),又將內(nèi)存中的明文加密后再寫入到磁盤中。如圖2所示。
鉤子透明加密技術(shù)與應(yīng)用程序密切相關(guān),它是通過監(jiān)控應(yīng)用程序的啟動(dòng)而啟動(dòng)的。一旦應(yīng)用程序名更改,則無法掛鉤。同時(shí),由于不同應(yīng)用程序在讀寫文件時(shí)所用的方式方法不盡相同,同一個(gè)軟件不同的版本在處理數(shù)據(jù)時(shí)也有變化,鉤子透明加密必須針對每種應(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)核層。我們在安裝計(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ù)對指定類型文件進(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)透明加密工作在內(nèi)核層。
驅(qū)動(dòng)加密技術(shù)雖然有諸多的優(yōu)點(diǎn),但由于涉及到windows底層的諸多處理,開發(fā)難度很大。如果處理不好與其它驅(qū)動(dòng)的沖突,應(yīng)用程序白名單等問題,將難以成為一個(gè)好的透明加密產(chǎn)品。因此,目前市面上也只有武漢風(fēng)奧軟件、北京億賽通等少數(shù)幾家公司有成熟的產(chǎn)品。(U盤加密軟件)
鉤子透明加密技術(shù)與驅(qū)動(dòng)透明加密技術(shù)比較
兩種加密技術(shù)由于工作在不同的層面,從應(yīng)用效果、開發(fā)難度上各有特點(diǎn)。表1從幾個(gè)方面進(jìn)行了簡單比較。

綜上所述,鉤子透明加密技術(shù)開發(fā)容易,但存在技術(shù)缺陷,而且容易被反Hook所破解。正如殺毒軟件技術(shù)從Hook技術(shù)終走向驅(qū)動(dòng)技術(shù)一樣,相信透明加密技術(shù)也終將歸于越來越成熟應(yīng)用的驅(qū)動(dòng)技術(shù),為廣大用戶開發(fā)出穩(wěn)定、可靠的透明加密產(chǎn)品來。