引言
近年來,信息技術(shù)迅猛發(fā)展,越來越多的信息和資料以數(shù)字形式存放在硬盤等數(shù)字存儲(chǔ)設(shè)備中,并且隨著信息共享技術(shù)的突破,通過移動(dòng)存儲(chǔ)設(shè)備、網(wǎng)絡(luò)等介質(zhì)交換數(shù)據(jù)越來越方便,但同時(shí),核心數(shù)據(jù)的控制和管理也越來越難,如何保證核心數(shù)據(jù)不泄露逐漸成為了信息安全的熱點(diǎn)問題。為此,很多單位采取了“完全封閉式的管理”、“堵塞或拆除計(jì)算機(jī)的USB接口,禁止上網(wǎng)”、“簡易的身份認(rèn)證”等各種方式防止核心數(shù)據(jù)泄露,但往往是顧此失彼,難以完全控制。如何建立完善的數(shù)據(jù)泄露防護(hù)體系、保護(hù)核心資源,已迫在眉睫。
數(shù)據(jù)加密作為數(shù)據(jù)保護(hù)的有效方式之一,越來越受到廣泛認(rèn)可,但傳統(tǒng)的數(shù)據(jù)加密方式存在加密速度慢、密碼易被破解、無法防止文檔被復(fù)制等缺點(diǎn),難以滿足需要。近年來,隨著對加密技術(shù)的深入研究,透明加密技術(shù)正逐漸得到廣泛應(yīng)用。
1 實(shí)現(xiàn)原理
透明加密技術(shù)是近年來發(fā)展較為迅速的一種文件加密技術(shù)。所謂透明加密是指對使用者來說,數(shù)據(jù)的加、解密是自動(dòng)的,不會(huì)影響其正常的操作習(xí)慣。采用這種技術(shù),當(dāng)使用者保存數(shù)據(jù)時(shí),系統(tǒng)將對數(shù)據(jù)自動(dòng)進(jìn)行加密,當(dāng)使用者打開或編輯指定文件時(shí),系統(tǒng)自動(dòng)對已加密的文件進(jìn)行解密,在硬盤上存儲(chǔ)的是密文,在內(nèi)存中存儲(chǔ)的是明文,—旦離開使用環(huán)境,數(shù)據(jù)就無法得到自動(dòng)解密的服務(wù),從而達(dá)到保護(hù)數(shù)據(jù)內(nèi)容的效果。
透明加密技術(shù)的產(chǎn)生是與windows操作系統(tǒng)的發(fā)展密不可分的。自windows NT問世以來,微軟提出了系統(tǒng)分層的概念,將操作系統(tǒng)設(shè)計(jì)為雙模式多層驅(qū)動(dòng)式結(jié)構(gòu),典型的windows驅(qū)動(dòng)程序?qū)哟谓Y(jié)構(gòu)如圖1所示。
圖1 Windows驅(qū)動(dòng)程序?qū)哟谓Y(jié)構(gòu)圖
兩個(gè)模式主要指用戶模式和內(nèi)核模式。通常情況下,應(yīng)用程序運(yùn)行在用戶模式下,只能訪問自己私有的內(nèi)存空間,無法直接訪問硬件,它對文件的操作只能通過調(diào)用windows API函數(shù)進(jìn)行,這為在用戶模式下進(jìn)行透明加解密提供了時(shí)機(jī)。如在寫文件時(shí),首先對文件數(shù)據(jù)進(jìn)行加密,再調(diào)用win32 API函數(shù)進(jìn)行寫操作;在讀文件時(shí),先調(diào)用windows API函數(shù)讀出加密的數(shù)據(jù),再自動(dòng)進(jìn)行解密。在調(diào)用windows API函數(shù)時(shí)截獲消息并對數(shù)據(jù)進(jìn)行加解密處理,是在用戶模式下實(shí)現(xiàn)透明加解密的主要方式。
在核心模式下,應(yīng)用程序?qū)indows API函數(shù)的調(diào)用,最終將轉(zhuǎn)化為不同的操作指令傳遞給I/O管理器,I/O管理器將不同的操作請求轉(zhuǎn)化為IRP(I/O Request Package,輸入/輸出請求包),分發(fā)給各層驅(qū)動(dòng)依次處理。windows將驅(qū)動(dòng)分成了以下三種。總線型驅(qū)動(dòng)程序主要用于管理一個(gè)邏輯的或物理的總線,比如PCI、USB等;功能型驅(qū)動(dòng)程序用于管理某一特定類型的設(shè)備,主要用于將一個(gè)設(shè)備的操作接口導(dǎo)出給操作系統(tǒng);過濾型驅(qū)動(dòng)程序位于功能型驅(qū)動(dòng)程序的上層或下層,可增加或者改變一個(gè)設(shè)備或另一個(gè)驅(qū)動(dòng)程序的行為。具備不同功能的各種驅(qū)動(dòng),分層合作,各司其職。過濾型驅(qū)動(dòng)的出現(xiàn),為在核心模式下實(shí)現(xiàn)數(shù)據(jù)透明加解密提供了手段。如寫文件時(shí),在上層過濾型驅(qū)動(dòng)程序或下層過濾型驅(qū)動(dòng)程序中可以首先截獲IRP,進(jìn)行加密處理,然后再交給下層驅(qū)動(dòng)處理;讀文件時(shí),在上層過濾型驅(qū)動(dòng)程序或下層過濾型驅(qū)動(dòng)程序中可以首先獲取讀到的加密數(shù)據(jù),進(jìn)行解密后交給上層驅(qū)動(dòng)或應(yīng)用程序。編寫具備加解密功能的過濾型驅(qū)動(dòng),是在內(nèi)核模式下實(shí)現(xiàn)透明加解密的主要方式。
2 透明加密關(guān)鍵技術(shù)
2.1加密技術(shù)分析
個(gè)加密系統(tǒng)s可以用數(shù)學(xué)符號(hào)描述為S={P,C,K,E,D),其中:
P——明文空間,表示所有可能出現(xiàn)的明文集合;c——密文空間,表示所有可能出現(xiàn)的密文集合;K一密鑰,是密碼算法中的可變參數(shù);E——加密算法,由一些公式、協(xié)議或程序構(gòu)成;D——解密算法,它是E的逆運(yùn)算。
當(dāng)給定密鑰K時(shí),存在兩種關(guān)系,c=EK(P),即對明文P加密后得到密文C;P=Dk(C)=Dk(Ek(P)),即對密文c解密后得明文P。因此,加密技術(shù)的關(guān)鍵在于密鑰和算法的選擇。在密碼學(xué)中,根據(jù)密鑰類型不同將密碼算法分為兩類:對稱算法(傳統(tǒng)密碼算法)和非對稱算法(公開密鑰算法)。對稱算法采用同一種密鑰進(jìn)行加解密運(yùn)算,它的優(yōu)點(diǎn)是運(yùn)算速度快,缺點(diǎn)是算法的安全性依賴于密鑰,且密鑰難于管理,常見的對稱算法有DEs、3DES、AES(見表1);非對稱算法采用的是兩種密鑰,分別是加密密鑰(公鑰)和解密鑰(私鑰),通常情況下,公鑰是公開的,私鑰是保密的,其優(yōu)點(diǎn)是密鑰容易管理,缺點(diǎn)是運(yùn)算速度慢,常見的非對稱算法有RsA、DsA、Ecc(見表2)。
公開密鑰密碼與對稱密碼是兩種不同的東西,它們解決不同的問題。一般情況下,對稱算法和非對稱算法會(huì)結(jié)合應(yīng)用。在對文件進(jìn)行加解密的過程中,由于運(yùn)算數(shù)據(jù)量大,要求運(yùn)算效率高,因此常采用對稱算法,從性能和安全性綜合考慮,優(yōu)先選用AES算法;而非對稱算法常被應(yīng)用于對稱算法密鑰的管理,采用公鑰對對稱算法密鑰進(jìn)行加密,私鑰進(jìn)行解密,在性能要求不是很高的情況下,可以優(yōu)先選用RsA算法。
表1對稱加密算法的比較
表2 非對稱加密算法的比較
2.2 HOOK技術(shù)分析
H00K是捕獲應(yīng)用程序消息處理的技術(shù),俗稱鉤子技術(shù)。它允許應(yīng)用程序安裝一個(gè)子程序到其它的程序中,以監(jiān)視指定窗口某種類型的消息。當(dāng)消息到達(dá)后,先交給鉤子程序處理,然后再交給原程序處理,如圖2所示。
H00K技術(shù)主要包括用戶模式下的API H00K技術(shù)和核心模式下的H00K技術(shù)兩類。在用戶模式下,應(yīng)用程序進(jìn)程通過windows API函數(shù)庫,如Kernel32、user32、Gui32、Advapi.du等動(dòng)態(tài)鏈接庫提供的函數(shù),形成其私有的導(dǎo)入地址表(Impon Address Table),并通過IAT訪問系統(tǒng)核心。APIHOOK技術(shù)就是通過訪問應(yīng)用程序的私有地址,改變應(yīng)用程序的IAT,即可過濾應(yīng)用程序消息處理,完成加密和解密操作。在核心模式下,通常通過H00K系統(tǒng)服務(wù)描述表(System service Dispatch Table,SSDT)、中斷描述表(InterruptDescription Table)和IRP(I/O Request Package)函數(shù)表來實(shí)現(xiàn)過濾操作。
圖2 HOOK技術(shù)透明加密示意圖
采用H00K技術(shù)進(jìn)行透明加密的特點(diǎn)是實(shí)現(xiàn)簡單,但缺點(diǎn)是可靠性差,速度比較慢,而且必須針對每種應(yīng)用程序、甚至每個(gè)版本進(jìn)行定制開發(fā)。
2.3驅(qū)動(dòng)過濾技術(shù)
如圖1所示,windows的內(nèi)核驅(qū)動(dòng)是分層的,每層驅(qū)動(dòng)只有一個(gè)驅(qū)動(dòng)對象,每個(gè)驅(qū)動(dòng)對象可以包含多個(gè)設(shè)備對象,若干個(gè)設(shè)備對象(可以屬于不同的驅(qū)動(dòng))依次綁定形成一個(gè)設(shè)備棧,最頂端的設(shè)備總是先接受到數(shù)據(jù)處理請求,處理完后依次向下傳遞。IRP(I/O Request Package,輸入/輸出請求包)是上下級(jí)設(shè)備問傳遞請求的重要數(shù)據(jù)結(jié)構(gòu)。應(yīng)用程序與底層驅(qū)動(dòng)程序通信時(shí),應(yīng)用程序會(huì)發(fā)出I/O請求,操作系統(tǒng)將I/O請求轉(zhuǎn)化為相應(yīng)的IRP數(shù)據(jù),各層驅(qū)動(dòng)程序根據(jù)自己的功能分部對IRP數(shù)據(jù)進(jìn)行處理2。如果在不影響上下層驅(qū)動(dòng)接口的情況下,在windows系統(tǒng)內(nèi)核中加入新的驅(qū)動(dòng)層,將新的驅(qū)動(dòng)層設(shè)備對象加入到設(shè)備棧的相應(yīng)位置,就可以捕獲IRP數(shù)據(jù),進(jìn)行加解密處理后再向下傳遞,就可達(dá)到數(shù)據(jù)透明加密的目的。
通過在不同驅(qū)動(dòng)層加入過濾驅(qū)動(dòng),可以實(shí)現(xiàn)不同的透明加密技術(shù)。目前驅(qū)動(dòng)過濾技術(shù)主要分為文件驅(qū)動(dòng)過濾技術(shù)和內(nèi)核級(jí)沙盒加密技術(shù)。
2.4文件驅(qū)動(dòng)過濾技術(shù)
文件過濾驅(qū)動(dòng)加密技術(shù)是在最高層驅(qū)動(dòng)程序中加入過濾驅(qū)動(dòng),一般掛載在磁盤驅(qū)動(dòng)之上,其主要目的是捕獲windows系統(tǒng)對文件的種種操作行為,比如文件的創(chuàng)建、打開、讀/寫、改名,目錄的創(chuàng)建、打開、枚舉、改名、刪除等。捕獲對文件的操作,并對其進(jìn)行過濾,能實(shí)現(xiàn)許多強(qiáng)大的功能,比如檢查病毒、數(shù)據(jù)加密、數(shù)據(jù)備份、安全監(jiān)控等。
文件過濾驅(qū)動(dòng)加密技術(shù)運(yùn)行在受windows保護(hù)的內(nèi)核層,加、解密速度比H00K技術(shù)快,解決了H00K技術(shù)不能解決的問題,但穩(wěn)定性一直不太理想,比如大文件破損、多進(jìn)程軟件同時(shí)操作某個(gè)文件時(shí),一個(gè)進(jìn)程加密,另一個(gè)進(jìn)程不加密,交替訪問文件,極容易造成異常等。
2.5內(nèi)核級(jí)沙盒加密技術(shù)
沙盒的實(shí)質(zhì)就是一個(gè)虛擬空間。用戶首先創(chuàng)建一個(gè)虛擬空間,在使用過程中,所有格式的涉密數(shù)據(jù)、文件等都可以放人這個(gè)虛擬空間,存入的時(shí)候,自動(dòng)加密,讀取時(shí)自動(dòng)解密。這個(gè)虛擬空間是透明的,使用者感覺不到它的存在。內(nèi)核級(jí)縱深沙盒加密技術(shù)融合了磁盤過濾驅(qū)動(dòng)技術(shù),卷過濾驅(qū)動(dòng)技術(shù),文件過濾驅(qū)動(dòng)技術(shù),網(wǎng)絡(luò)過濾驅(qū)動(dòng)(NDIS/TDI)技術(shù)等一系列內(nèi)核級(jí)驅(qū)動(dòng)技術(shù),從上到下,縱深防御加密,每層驅(qū)動(dòng)只做自己最擅長的工作。
內(nèi)核級(jí)沙盒加密技術(shù)的特點(diǎn)是,在使用前,要先初始化沙盒,創(chuàng)建成功之后,所有的文件,不論什么格式,都可以自動(dòng)加、解密,所以無數(shù)據(jù)破損等問題。特點(diǎn)是加解密速度快,穩(wěn)定,但技術(shù)相當(dāng)復(fù)雜,研制難度較大。
3 透明加密技術(shù)的發(fā)展要求
透明加密技術(shù)作為一門新興的技術(shù),正不斷被應(yīng)用到各個(gè)領(lǐng)域,但隨著信息技術(shù)的不斷發(fā)展和應(yīng)用需求的不斷變化,對透明加密技術(shù)也提出了更高的要求。
1)透明加密效率必須不斷提高
計(jì)算機(jī)處理能力不斷提升,磁盤存儲(chǔ)空間越來越大,單個(gè)文件大小也越來越大,像一些設(shè)計(jì)類圖紙,單個(gè)文件大小可達(dá)幾個(gè)G。如何提高透明加密效率成為了必須要考慮的問題之一。
2)應(yīng)用系統(tǒng)支持要求越來越廣
windows 64位、LINUX、UNIX等計(jì)算機(jī)操作系統(tǒng)不斷普及,蘋果OS、Android、塞班等手機(jī)操作系統(tǒng)得到廣泛應(yīng)用,應(yīng)著重考慮透明加密技術(shù)在這些平臺(tái)上的應(yīng)用。
3)從單—加密向全方位發(fā)展.
透明加密技術(shù)在加密方面表現(xiàn)出了其良好的特性,但對于數(shù)據(jù)泄漏防護(hù)而言,單一加密是不能滿足需求的,還應(yīng)該從內(nèi)部網(wǎng)絡(luò)授權(quán)訪問,文件防打印、拷貝,網(wǎng)絡(luò)發(fā)送擴(kuò)散控制,預(yù)防木馬和病毒等方面進(jìn)行全方位的考慮,探索透明加密技術(shù)在這些領(lǐng)域的應(yīng)用。
4 結(jié)束語
目前,我國大多數(shù)非涉密信息系統(tǒng)中,使用windows操作系統(tǒng)的用戶不在少數(shù),而透明加密技術(shù)與windows操作系統(tǒng)結(jié)合較為緊密,因此,對透明加密技術(shù)的研究具有相當(dāng)?shù)膶?shí)用價(jià)值。然而,目前業(yè)界對于透明加密技術(shù)的研究還有待于進(jìn)一步加強(qiáng),該加密技術(shù)的安全性、可靠性也有待于進(jìn)一步得到學(xué)術(shù)和技術(shù)層面的全面論證。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:透明加密技術(shù)研究
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112158709.html