透明加密技术
透明加密技術(shù)是近年來(lái)針對(duì)企業(yè)文件保密需求應(yīng)運(yùn)而生的一種文件加密技術(shù)。所謂透明,是指對(duì)使用者來(lái)說(shuō)是未知的。當(dāng)使用者在打開(kāi)或編輯指定文件時(shí),系統(tǒng)將自動(dòng)對(duì)未加密的文件進(jìn)行加密,對(duì)已加密的文件自動(dòng)解密。文件在硬盤(pán)上是密文,在內(nèi)存中是明文。一旦離開(kāi)使用環(huán)境,由于應(yīng)用程序無(wú)法得到自動(dòng)解密的服務(wù)而無(wú)法打開(kāi),從而起來(lái)保護(hù)文件內(nèi)容的效果。
透明加密有以下特點(diǎn):
強(qiáng)制加密:安裝系統(tǒng)后,所有指定類(lèi)型文件都是強(qiáng)制加密的;
使用方便:不影響原有操作習(xí)慣,不需要限止端口;
于內(nèi)無(wú)礙:內(nèi)部交流時(shí)不需要作任何處理便能交流;
對(duì)外受阻:一旦文件離開(kāi)使用環(huán)境,文件將自動(dòng)失效,從而保護(hù)知識(shí)產(chǎn)權(quán)。
透明加密技術(shù)原理
透明加密技術(shù)是與Windows緊密結(jié)合的一種技術(shù),它工作于Windows的底層。通過(guò)監(jiān)控應(yīng)用程序?qū)ξ募牟僮?#xff0c;在打開(kāi)文件時(shí)自動(dòng)對(duì)密文進(jìn)行解密,在寫(xiě)文件時(shí)自動(dòng)將內(nèi)存中的明文加密寫(xiě)入存儲(chǔ)介質(zhì)。從而保證存儲(chǔ)介質(zhì)上的文件始終處于加密狀態(tài)。
監(jiān)控Windows打開(kāi)(讀)、保存(寫(xiě))可以在Windows操作文件的幾個(gè)層面上進(jìn)行。現(xiàn)有的32位CPU定義了4種(0~3)特權(quán)級(jí)別,或稱(chēng)環(huán)(ring),如圖1所示。其中0級(jí)為特權(quán)級(jí),3級(jí)是最低級(jí)(用戶級(jí))。運(yùn)行在0級(jí)的代碼又稱(chēng)內(nèi)核模式,3級(jí)的為用戶模式。常用的應(yīng)用程序都是運(yùn)行在用戶模式下,用戶級(jí)程序無(wú)權(quán)直接訪問(wèn)內(nèi)核級(jí)的對(duì)象,需要通過(guò)API函數(shù)來(lái)訪問(wèn)內(nèi)核級(jí)的代碼,從而達(dá)到最終操作存儲(chǔ)在各種介質(zhì)上文件的目的。
圖1
為了實(shí)現(xiàn)透明加密的目的,透明加密技術(shù)必須在程序讀寫(xiě)文件時(shí)改變程序的讀寫(xiě)方式。使密文在讀入內(nèi)存時(shí)程序能夠識(shí)別,而在保存時(shí)又要將明文轉(zhuǎn)換成密文。Window允許編程者在內(nèi)核級(jí)和用戶級(jí)對(duì)文件的讀寫(xiě)進(jìn)行操作。內(nèi)核級(jí)提供了虛擬驅(qū)動(dòng)的方式,用戶級(jí)提供HookAPI的方式。因此,透明加密技術(shù)也分為APIHOOK技術(shù)和VDM(WindowsDriver Model)內(nèi)核設(shè)備驅(qū)動(dòng)方式兩種技術(shù)。APIHOOK俗稱(chēng)鉤子技術(shù),VDM俗稱(chēng)驅(qū)動(dòng)技術(shù)。
鉤子透明加密技術(shù)簡(jiǎn)介
所有Windosw應(yīng)用程序都是通過(guò)WindowsAPI函數(shù)對(duì)文件進(jìn)行讀寫(xiě)的。程序在打開(kāi)或新建一個(gè)文件時(shí),一般要調(diào)用Windows的CreateFile、OpenFile或ReadFile等WindowsAPI函數(shù);而在向磁盤(pán)寫(xiě)文件時(shí)要調(diào)用WriteFile函數(shù)。
同時(shí)Windows支持這樣一種消息處理機(jī)制:允許應(yīng)用程序?qū)⒆约喊惭b一個(gè)子程序到其它的程序中,以監(jiān)視指定窗口某種類(lèi)型的消息。當(dāng)消息到達(dá)后,先處理安裝的子程序后再處理原程序。這就是鉤子(Hook)技術(shù)。
鉤子透明加密技術(shù)就是將上述兩種技術(shù)組合而成的。通過(guò)Windows的鉤子技術(shù),監(jiān)控應(yīng)用程序?qū)ξ募拇蜷_(kāi)和保存,當(dāng)打開(kāi)文件時(shí),先將密文轉(zhuǎn)換后再讓程序讀入內(nèi)存,保證程序讀到的是明文,而在保存時(shí),又將內(nèi)存中的明文加密后再寫(xiě)入到磁盤(pán)中。其工作原理如圖2所示。
圖2
鉤子透明加密技術(shù)通過(guò)監(jiān)控應(yīng)用程序的讀寫(xiě)操作,同時(shí)對(duì)文件進(jìn)行自動(dòng)加密與解密。由于不同應(yīng)用程序在讀寫(xiě)文件時(shí)所用的方式方法不盡相同,同一個(gè)軟件不同的版本在處理數(shù)據(jù)時(shí)也有變化,鉤子透明加密必須針對(duì)每種應(yīng)用程序或程序的每個(gè)版本進(jìn)行配置。
驅(qū)動(dòng)透明加密技術(shù)簡(jiǎn)介
驅(qū)動(dòng)加密技術(shù)基于Windows的文件系統(tǒng)(過(guò)濾)驅(qū)動(dòng)(IFS)技術(shù),工作在Windows的內(nèi)核層。我們?cè)诎惭b計(jì)算機(jī)硬件時(shí),經(jīng)常要安裝其驅(qū)動(dòng),如打印機(jī)、U盤(pán)的驅(qū)動(dòng)。文件系統(tǒng)驅(qū)動(dòng)就是把文件作為一種設(shè)備來(lái)處理的一種虛擬驅(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)用程序無(wú)關(guān),其工作于WindowsAPI函數(shù)的下層。當(dāng)API函數(shù)對(duì)指定類(lèi)型文件進(jìn)行讀操作時(shí),系統(tǒng)自動(dòng)將文件解密;當(dāng)進(jìn)入寫(xiě)操作時(shí),自動(dòng)將明文進(jìn)行加密。由于工作在受Windows保護(hù)的內(nèi)核層,運(yùn)行速度更快,加解密操作更穩(wěn)定。因與系統(tǒng)內(nèi)核關(guān)聯(lián)較密切,系統(tǒng)內(nèi)核的任何變化(如系統(tǒng)更新、補(bǔ)丁安裝后)均會(huì)對(duì)驅(qū)動(dòng)透明加密造成影響,因此驅(qū)動(dòng)透明加密必須對(duì)操作系統(tǒng)的每個(gè)SP版本進(jìn)行開(kāi)發(fā)。
驅(qū)動(dòng)透明加密要達(dá)到文件保密的目的,還必須與用戶層的應(yīng)用程序打交道。通知系統(tǒng)哪些程序是合法的程序,哪些程序是非法的程序。其系統(tǒng)配置方面的易用性不如鉤子透明加密。
驅(qū)動(dòng)透明加密工作在內(nèi)核層,但其無(wú)法進(jìn)行靈活的權(quán)限控制應(yīng)用,權(quán)限控制應(yīng)用必須在應(yīng)用層完成。其工作原理如圖3所示。
圖3
驅(qū)動(dòng)加密技術(shù)雖然控制層次較深,但由于涉及到Windows底層的諸多處理,開(kāi)發(fā)難度較大。如果處理不好與其它驅(qū)動(dòng)的沖突,應(yīng)用程序白名單等問(wèn)題,將難以成為一個(gè)好的透明加密產(chǎn)品。
兩種加密技術(shù)比較
兩種加密技術(shù)由于工作在不同的層面,從應(yīng)用效果、開(kāi)發(fā)難度上各有特點(diǎn)。下表從幾個(gè)方面進(jìn)行了簡(jiǎn)單比較。
| 比較項(xiàng)目 | 鉤子透明加密 | 驅(qū)動(dòng)透明加密 |
| 工作層面 | 應(yīng)用層 | 內(nèi)核層 |
| 工作方式 | Hook應(yīng)用程序和文件類(lèi)型 | 接受系統(tǒng)IRP進(jìn)行處理 |
| 應(yīng)用程序關(guān)聯(lián)性 | 基于系統(tǒng)API的變化而改動(dòng),和應(yīng)用程序處理方式無(wú)關(guān) | 與程序工作方式無(wú)關(guān),但要監(jiān)控應(yīng)用程序名單,這時(shí)需要用到應(yīng)用層技術(shù) |
| 加解密可靠性 | 應(yīng)用層加解密,大文件(32位系統(tǒng)下超過(guò)2G)操作時(shí)速度較慢 | 內(nèi)核層加解密,在32位系統(tǒng)下處理大文件速度較快 |
| 網(wǎng)絡(luò)操作能力 | 不受限制 | 需要專(zhuān)門(mén)處理 |
| 開(kāi)發(fā)難度 | Hook技術(shù),相對(duì)較易 | 驅(qū)動(dòng)技術(shù),開(kāi)發(fā)難度較大,只有專(zhuān)業(yè)的人員可以維護(hù) |
| 系統(tǒng)維護(hù) | 企業(yè)維護(hù)工作量較小 | 企業(yè)維護(hù)工作量較大,需專(zhuān)業(yè)人員維護(hù) |
| 容災(zāi)性 | 出現(xiàn)bug時(shí),不會(huì)影響系統(tǒng)核心,僅影響當(dāng)前處理的應(yīng)用程序。 | 出現(xiàn)bug時(shí),會(huì)出現(xiàn)不可預(yù)知的錯(cuò)誤,可能導(dǎo)致整個(gè)系統(tǒng)崩潰(藍(lán)屏),或者磁盤(pán)系統(tǒng)破壞 |
| 兼容性 | 操作系統(tǒng)升級(jí)時(shí),不需要做太多的更改 | 驅(qū)動(dòng)和操作系統(tǒng)的兼容性較差 |
綜上所述,鉤子透明加密技術(shù)開(kāi)發(fā)和應(yīng)用難度較小,系統(tǒng)維護(hù)較容易,運(yùn)行過(guò)程中即使出現(xiàn)Bug也不會(huì)影響整個(gè)操作系統(tǒng)運(yùn)行;但其存在技術(shù)缺陷,可被反Hook技術(shù)所破解。驅(qū)動(dòng)透明加密技術(shù)開(kāi)發(fā)難度較大,維護(hù)工作量也較大,因其工作于操作系統(tǒng)內(nèi)核層,在運(yùn)行過(guò)程中易影響整個(gè)客戶端系統(tǒng)運(yùn)行,且?guī)?lái)數(shù)據(jù)災(zāi)難。
如上所述,任何一種單一技術(shù)要達(dá)到滿足企業(yè)復(fù)雜需求均是不可能的。同樣,鉤子透明加密和驅(qū)動(dòng)透明加密兩種加密技術(shù)也各有優(yōu)缺點(diǎn),二者必然在發(fā)展的過(guò)程中走向融合,取長(zhǎng)補(bǔ)短,為廣大用戶開(kāi)發(fā)出穩(wěn)定、可靠的透明加密產(chǎn)品來(lái)。
總結(jié)
- 上一篇: 计算机专业夏令营英语面试范文,夏令营英语
- 下一篇: css样式后面显示点点点