應用層
加密技術是通過調用應用系統的windowsAPI函數來對文件進行讀寫的加密控制。
應用層加密技術俗稱鉤子加密技術。通過windows的鉤子技術,監控應用程序對文件的打開和保存,當打開文件時,先將密文轉換后再讓程序讀入內存,保證程序讀到的是明文,而在保存時,又將內存中的明文加密后再寫入到磁盤中。
應用層加密技術與應用程序密切相關,它是通過監控應用程序的啟動而啟動的。一旦應用程序名更改,則無法掛鉤。同時,由于不同應用程序在讀寫文件時所用的方式方法不盡相同,同一個軟件不同的版本在處理數據時也有變化,應用層加密必須針對每種應用程序、甚至每個版本進行開發。
目前不少應用程序為了限止黑客入侵設置了反鉤子技術,這類程序在啟動時,一旦發現有鉤子入侵,將會自動停止運行,所以應用層加密很容易通過反鉤子技術來避開繞過。
文件加密技術之驅動層加密
驅動層加密技術是通過攔截操作系統文件過濾驅動的讀寫動作對文件進行加解密控制。
驅動層加密技術是基于windows的文件系統(過濾)驅動(IFS)技術,工作在windows的內核層。我們在安裝計算機硬件時,經常要安裝其驅動,如打印機、U盤的驅動。文件系統驅動就是把文件作為一種設備來處理的一種虛擬驅動。當應用程序對某種后綴文件進行操作時,文件驅動會監控到程序的操作,并改變其操作方式,從而達到透明加密的效果。
驅動加密技術與應用程序無關,他工作于windowsAPI函數的下層。當API函數對指定類型文件進行讀操作時,系統自動將文件解密;當進入寫操作時,自動將明文進行加密。由于工作在受windows保護的內核層,運行速度更快,加解密操作更穩定。但是,驅動加密要達到文件保密的目的,還必須與用戶層的應用程序打交道。通知系統哪些程序是合法的程序,哪些程序是非法的程序。
驅動加密技術雖然有諸多的優點,但由于涉及到windows底層的諸多處理,開發難度很大。如果處理不好與其它驅動的沖突,應用程序白名單等問題,將難以成為一個好的透明加密產品。
應用層加密技術與驅動層加密技術優缺點比較
兩種加密技術由于工作在不同的層面,從應用效果、開發難度上各有特點。
綜上所述,應用層技術相對簡單,更容易控制,但由于需要調用每個應用程序的API函數,擴展能力較差;驅動層技術難度高,由于和操作系統底層驅動打交道,藍屏、死機,甚至和殺毒軟件等驅動層產品兼容性差,但其集成性和擴展性更好。