透明加密技術是近年來針對企業檔案保密需求應運而生的一種檔案加密技術。所謂透明,是指對使用者來說是未知的。當使用者在開啟或編輯指定檔案時,系統將自動對未加密的檔案進行加密,對已加密的檔案自動解密。檔案在硬碟上是密文,在記憶體中是明文。一旦離開使用環境,由於應用程式無法得到自動解密的服務而無法開啟,從而起來保護檔案內容的效果。透明加密有以下特點:
強制加密:安裝系統後,所有指定型別檔案都是強制加密的;
使用方便:不影響原有操作習慣,不需要限止埠;
於內無礙:內部交流時不需要作任何處理便能交流;
對外受阻:一旦檔案離開使用環境,檔案將自動失效,從而保護智財權。
透明加密技術原理
透明加密技術是與windows緊密結合的一種技術,它工作於windows的底層。通過監控應用程式對檔案的操作,在開啟檔案時自動對密文進行解密,在寫檔案時自動將記憶體中的明文加密寫入儲存介質。從而保證儲存介質上的檔案始終處於加密狀態。
監控windows開啟(讀)、儲存(寫)可以在windows操作檔案的幾個層面上進行。現有的32位cpu定義了4種(0~3)特權級別,或稱環(ring),其中0級為特權級,3級是最低階(使用者級)。執行在0級的**又稱核心模式,3級的為使用者模式。常用的應用程式都是執行在使用者模式下,使用者級程式無權直接訪問核心級的物件,需要通過api函式來訪問核心級的**,從而達到最終操作儲存在各種介質上檔案的目的。
為了實現透明加密的目的,透明加密技術必須在程式讀寫檔案時改變程式的讀寫方式。使密文在讀入記憶體時程式能夠識別,而在儲存時又要將明文轉換成密文。window 允許程式設計者在核心級和使用者級對檔案的讀寫進行操作。核心級提供了虛擬驅動的方式,使用者級提供hook api的方式。因此,透明加密技術也分為api hook廣度和vdm(windows driver model)核心裝置驅動方式兩種技術。api hook俗稱鉤子技術,vdm俗稱驅動技術。
「只要安裝了透明加密軟體,企業圖紙辦公文件在企業內部即可自動加密,而且對使用者完全透明,絲毫不改變使用者的工作習慣。在沒有授權的情況下,檔案即使流傳到企業外部,也無法正常應用。就像乙個防盜門,裝上就能用,而且很管用。」這是2023年透明加密在開闢市場時打出的宣傳旗號。
對於當時空白的市場來講,這一旗號確實打動了不少企業。如今,經過四年多的歲月洗禮,透明加密技術也在不斷進步。就目前市面上的透明加密技術來看,主要分為兩大類:即應用層透明加密技術和驅動層透明加密技術。本文將重點對兩種技術的優缺點進行剖析。
應用層透明加密(鉤子透明加密)技術簡介
所有windosw應用程式都是通過windows api函式對檔案進行讀寫的。程式在開啟或新建乙個檔案時,一般要呼叫windows的createfile或openfile、readfile等windows api函式;而在向磁碟寫檔案時要呼叫writefile函式。
同時windows提供了一種叫鉤子(hook)的訊息處理機制,允許應用程式將自己安裝乙個子程式到其它的程式中,以監視指定視窗某種型別的訊息。當訊息到達後,先處理安裝的子程式後再處理原程式。這就是鉤子。
應用層透明加密技術俗稱鉤子透明加密技術。這種技術就是將上述兩種技術(應用層api和hook)組合而成的。通過windows的鉤子技術,監控應用程式對檔案的開啟和儲存,當開啟檔案時,先將密文轉換後再讓程式讀入記憶體,保證程式讀到的是明文,而在儲存時,又將記憶體中的明文加密後再寫入到磁碟中。
應用層透明加密(鉤子透明加密)技術與應用程式密切相關,它是通過監控應用程式的啟動而啟動的。一旦應用程式名更改,則無法掛鉤。同時,由於不同應用程式在讀寫檔案時所用的方式方法不盡相同,同乙個軟體不同的版本在處理資料時也有變化,鉤子透明加密必須針對每種應用程式、甚至每個版本進行開發。
目前不少應用程式為了限止黑客入侵設定了反鉤子技術,這類程式在啟動時,一旦發現有鉤子入侵,將會自動停止執行,所以應用層加密很容易通過反鉤子來避開繞過。
驅動層透明加密技術簡介
驅動加密技術是基於windows的檔案系統(過濾)驅動(ifs)技術,工作在windows的核心層。我們在安裝計算機硬體時,經常要安裝其驅動,如印表機、u盤的驅動。檔案系統驅動就是把檔案作為一種裝置來處理的一種虛擬驅動。當應用程式對某種字尾檔案進行操作時,檔案驅動會監控到程式的操作,並改變其操作方式,從而達到透明加密的效果。
驅動加密技術與應用程式無關,他工作於windows api函式的下層。當api函式對指定型別檔案進行讀操作時,系統自動將檔案解密;當進入寫操作時,自動將明文進行加密。由於工作在受windows保護的核心層,執行速度更快,加解密操作更穩定。
但是,驅動加密要達到檔案保密的目的,還必須與使用者層的應用程式打交道。通知系統哪些程式是合法的程式,哪些程式是非法的程式。
驅動層透明加密技術工作在核心層。
驅動加密技術雖然有諸多的優點,但由於涉及到windows底層的諸多處理,開發難度很大。如果處理不好與其它驅動的衝突,應用程式白名單等問題,將難以成為乙個好的透明加密產品。因此,目前市面上也只有天津優盾科技等少數幾家公司有成熟的產品。
應用層透明加密技術(鉤子透明加密技術)與驅動層透明加密技術優缺點比較
兩種加密技術由於工作在不同的層面,從應用效果、開發難度上各有特點。綜上所述,應用層透明加密技術(鉤子透明加密技術)開發容易,但存在技術缺陷,而且容易被反hook所破解。正如防毒軟體技術從hook技術最終走向驅動技術一樣,相信透明加密技術也終將歸於越來越成熟應用的驅動技術,為廣大使用者開發出穩定、可靠的透明加密產品來。
應用層到驅動層
1 應用層 vfs 驅動層 硬體層 2 應用層的程式要想跟底層的硬體打交道必須要有裝置檔案 在應用層通過open開啟乙個裝置檔案時,在vfs層會建立inode結構體和file結構體,前者是靜態的描述裝置的一些資訊 如 裝置號,節點指標,裝置型別以及cdev結構體 後者則會描述裝置型別的一些動態資訊 ...
file inode在應用層和驅動層之間的聯絡 轉
應用層和驅動的銜接,一直是乙個老大難問題,若弄不清楚,總覺得驅動寫起來似是而非的。下面就說說我對他們的理解,還有就是如何實現乙個驅動支援多個上裝置的問題。最主要涉及兩個機制 inode和file。在驅動中 1 我們先找到乙個裝置號devno,可以動態申請,也可以靜態設定,假設靜態設定為major,m...
驅動與應用層簡單訊息通訊
驅動sys irp1.h include 採用緩衝區記憶體模式ioctl,my dvc buffered code是自定義的控制碼 define my dvc buffered code ulong ctl code file device unknown,0x900,method buffered...