透明加密技術分析

透明加密技術是近年來針對企業數據保密需求應運而生的一種數據加密技術。所謂透明,是指對使用者來說是透明的,感覺不到加密存在,當使用者在打開或編輯指定文件時,系統將自動對加密的數據進行解密,讓使用者看到的是明文。保存數據的時候,系統自動對數據進行加密,保存的是密文。而沒有權限的人,無法讀取保密數據,從而達到數據保密的效果。
自WindowsNT問世以來,微軟提出的分層的概念,使透明加密有了實現的可能。自上而下,
應用軟件,應用層APIhook(俗稱鉤子), 文件過濾驅動,捲過濾驅動,磁盤過濾驅動,另外還有網絡過濾驅動,各種設備過濾驅動。其中應用軟件和應用層apihook在應用層(R3),從文件過濾驅動開始,屬於內核層(R0).數據透明加密技術,目前爲止,發展了3代,分別爲:
第一代APIHOOK應用層透明加密技術;
第二代文件過濾驅動層(內核)加密技術;
第三代內核級縱深加密技術;

第一代:APIHOOK應用層透明加密技術
技術及設計思路:應用層透明加密技術俗稱鉤子透明加密技術。這種技術就是將上述兩種技術(應用層API和Hook)組合而成的。通過windows的鉤子技術,監控應用程序對文件的打開和保存,當打開文件時,先將密文轉換後再讓程序讀入內存,保證程序讀到的是明文,而在保存時,又將內存中的明文加密後再寫入到磁盤中。應用層APIHOOK加密技術,特點是實現簡單,缺點是可靠性差,速度超級慢,因爲需要臨時文件,也容易破解。但由於直接對文件加密直觀感覺非常好,對於當初空白的市場來講,這一旗號確實打動了不少企業。

第二代:文件過濾驅動加密技術
驅動加密技術是基於windows的文件系統(過濾)驅動技術,工作在windows的內核層,處於應用層APIHook的下面,捲過濾和磁盤過濾的上面。設計思想是建立當應用程序(進程)和文件格式(後綴名)進行關聯,當用戶操作某種後綴文件時對該文件進行加密解密操作,從而達到加密的效果。
內核層文件過濾驅動技術,分IFS和Minifilter2類。IFS出現較早,Minfilter出現在xp以後。兩者的區別可以理解爲VC++和MFC的區別,IFS很多事情需要自己處理,而Minifilter是微軟提供了很多成熟庫,直接用。由於windows文件保存的時候,存在緩存,並不是立即寫入文件,所以根據是否處理了雙緩bug,後來做了些細分,但本質還是一樣,都是問題的修正版本而已。但由於工作在受windows保護的內核層,運行速度比APIHOOK加密速度快,解決了很多問題和風險。
文件過濾驅動技術實現相對簡單,但穩定性一直不太理想。

第三代:內核級縱深沙盒加密技術
之所以叫內核級縱深沙盒加密技術,主要原因是使用了磁盤過濾驅動技術,捲過濾驅動技術,文件過濾驅動技術,網絡過濾驅動(NDIS/TDI)技術等一系列內核級驅動技術,從上到下,縱深防禦加密。沙盒加密,是當使用者操作涉密數據的時候,對其過程進行控制,對其結果進行加密保存,每個模塊只做自己最擅長的那塊,所以非常穩定。加密的沙盒是個容器,把涉密軟件,文件扔到容器中加密。而這個容器是透明的,使用者感覺不到它的存在。,
第三代透明加密技術的特點是,涉密數據使用前,先初始化涉密沙盒,沙盒加密一旦成功,之後所有的數據都是數據實體,不針對文件個體,所以無數據破損等問題。特點是速度快,穩定,但技術相當複雜。

第一代,第二代本質都是採用的針對單個文件實體進行加密,如a.txt內容爲1234, 加密後變成@#$%% +標記。@#$%%是把原文1234進行加密之後的密文。而標記的用途是用來區分一個a.txt文件是否是已經被加密。當系統遇到一個文件的時候,首先判斷這個標記是否存在,如果存在,表明時被系統加密過的,則走解密讀取流程,如果不是加密的,就無需解密,直接顯示給使用者,只是當保存的時候,再進行加密,使其成文密文+標記。

這就帶來一個巨大的風險:如果是一個較大文件,加密過程中發生異常,標記沒加上,那麼下次讀這個文件的時候,因爲沒有讀到表記,而採用原文讀取,然後再加密,那麼這個文件就徹底毀壞了。這個現象在第一代APIHOOK透明加密技術的產品中特別明顯,在第二代文件過濾驅動產品中,因爲速度變快了,使文件破損發生概率減低了很多,但並沒有本質解決這個問題。

另外,由於是進程和文件後綴名進行關聯,也造成了一個缺陷:很多編程類軟件,複雜製圖軟件的編譯,曬圖等操作,都是很多進程同時操作某個文件,這個時候進行進程和文件關聯顯然太牽強了,因爲進程太多了。即使進行關聯,多個進程交替訪問文件,加密解密混在一起,極容易造成異常。所以纔會出現VC等環境下如不能編譯,調試等。
其他方面,版本管理無法對比,服務器上存放的是密文(服務器存密文,是個極大的風險,目前沒有哪家大企業敢這麼做,畢竟太依賴加密軟件,持續性沒有了),大文件速度慢等,一系列問題,無法解決。

而第三代內核縱深加密技術是在前者2個基礎之上發展而來的,每個過濾層都只做自己最擅長的事情,所以特別穩定,速度快,性能可靠,不存在第一代和第二代的問題。由於內核級縱深透明加密技術要求高,涉及技術領域廣,極其複雜,開發週期長,所以國內的能做開發的廠商不多。目前,深信達公司推出的SDC機密數據保密系統,給人一眼前一亮的感覺,其產品是第三代透明加密保密技術的典型產品,其產品主要特點是:
1)採用了磁盤過濾,捲過濾,文件過濾,網絡過濾等一系列縱深內核加密技術,採用沙盒加密,和文件類型和軟件無關,沙盒是個容器。
2)在操作涉密數據的同時,不影響上外網,QQ,MSN等。
3)保密徹底,包括網絡上傳,郵件發送,另存,複製粘貼,屏幕截取等,特別是屏幕保密,做得非常炫。
4)服務上存放的是明文,客戶端存放的是密文,文件上傳服務器自動解密,到達客戶端自動加密。服務器上明文,減少了業務連續性對加密軟件的依賴。
5)不但可以針對普通文檔圖紙數據進行保密需求,同時更是研發性質的軟件公司(遊戲,通訊,嵌入式,各種BS/CS應用系統)源代碼保密首選。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章