複製鏈接
請複製以下鏈接發送給好友

動態加密

鎖定
隨着計算機和網絡技術的飛速發展,越來越多的信息以電子形式存儲在個人和商用電腦中,並且通過網絡進行廣泛地傳遞,在大量的信息存儲和交換中,信息的安全問題越來越引起人們的重視。
中文名
動態加密
原    因
隨着計算機和網絡技術的飛速發展
根    據
現代密碼學的理論
詞    性
名詞

動態加密簡介

信息保密的理論基礎是密碼學,根據現代密碼學的理論,一個好的加密算法的安全性只依賴於密鑰,加密算法的公開與否不影響其安全性。現代密碼學經過幾十年的研究和發展,已經發明瞭許多安全性很高的加密算法,並且被廣泛地應用在各種信息安全產品中,其中數據加密技術是密碼學的一個重要應用領域。數據加密產品由於實現的方法和層次的不同,決定了其應用領域和範圍。

動態加密定義概念

動態加密(也稱實時加密,透明加密等,其英文名為encrypt on-the-fly),是指數據在使用過程中自動對數據進行加密或解密操作,無需用户的干預,合法用户在使用加密的文件前,也不需要進行解密操作即可使用,表面看來,訪問加密的文件和訪問未加密的文件基本相同,對合法用户來説,這些加密文件是“透明的”,即好像沒有加密一樣,但對於沒有訪問權限的用户,即使通過其它非常規手段得到了這些文件,由於文件是加密的,因此也無法使用。由於動態加密技術不僅不改變用户的使用習慣,而且無需用户太多的干預操作即可實現文檔的安全,因而近年來得到了廣泛的應用。

動態加密層次級別

在不同的操作系中(如WINDOWS、LINUXUNIX等),雖然數據的具體組織和存儲結構會有所不同,但它們均可用圖1的模型進行表示,即應用程序在訪問存儲設備數據時,一般都通過操作系統提供的API 調用文件系統,然後文件系統通過存儲介質的驅動程序訪問具體的存儲介質。其中層次I和II屬於應用層;層次III和IV屬於操作系統內核層。這種組織結構決定了加密系統的實現方式,在數據從存儲介質到應用程序所經過的每個路徑中,均可對訪問的數據實施加密/解密操作,其中模型中的層次I只能捕獲應用程序自身讀寫的數據,其他應用程序的數據不經過該層,因此,在層次I中只能實現靜態加密,無法實現動態加密;即使是層次II,也並不是所有文件數據均通過該層,但在該層可以攔截到各種文件的打開、關閉等操作。因此,在應用層實現的動態加解密產品無法真正做到“實時”加密/解密操作,一般只能通過其他變相的方式進行實現(一般均在層次II進行實現)。例如,在應用程序打開文件時,先直接解密整個文件或解密整個文件到其他路徑,然後讓應用程序直接(重定向)訪問這個完全解密的文件,而在應用程序關閉這個文件時,再將已解密的文件進行加密。其實質是靜態加解密過程的自動化,並不屬於嚴格意義上的動態加密。
由於目前的操作系統,如Windows/Linux/Unix等,只有在內核層才能攔截到各種文件或磁盤操作,因此,真正的動態加解密產品只能在內核層進行實現。在圖1給出的模型中,在內核層中的文件系統可以攔截到所有的文件操作,但並不能攔截到所有的存儲設備(在下面的敍述中,我們一般用磁盤來表示存儲設備)操作,要攔截所有的存儲設備操作,必須在存儲設備驅動程序中進行攔截,操作系統的對存儲設備的訪問形式決定了動態加解密安全產品的兩大種類:基於文件級的動態加解密產品和基於磁盤級的動態加解密產品。
操作系統的存儲設備訪問模型 操作系統的存儲設備訪問模型

動態加密技術原理

動態加密加解密技術

在文件系統層,不僅能夠獲得文件的各種信息,而且能夠獲得訪問這些文件的進程信息和用户信息等,因此,可以研製出功能非常強大的文檔安全產品。就動態加解密產品而言,有些文件系統自身就支持文件的動態加解密,如Windows系統中的NTFS文件系統,其本身就提供了EFS(Encryption File System)支持,但作為一種通用的系統,雖然提供了細粒度的控制能力(如可以控制到每個文件),但在實際應用中,其加密對象一般以分區或目錄為單位,難以做到滿足各種用户個性化的要求,如自動加密某些類型文件等。雖然有某些不足,但支持動態加密的文件系統在某種程度上可以提供和磁盤級加密技術相匹敵的安全性。由於文件系統提供的動態加密技術難以滿足用户的個性化需求,因此,為第三方提供動態加解密安全產品提供了足夠的空間。
要研發在文件級的動態加解密安全產品,雖然與具體的操作系統有關,但仍有多種方法可供選擇,一般可通過Hook或過濾驅動等方式嵌入到文件系統中,使其成為文件系統的一部分,從某種意義上來説,第三方的動態加解密產品可以看作是文件系統的一個功能擴展,這種擴展往往以模塊化的形式出現,能夠根據需要進行掛接或卸載,從而能夠滿足用户的各種需求,這是作為文件系統內嵌的動態加密系統難以做到的。
下面我們以億賽通公司的SmartSec為例,分析一下文件動態加解密的具體實現方式。圖2給出了SmartSec的實現原理,從中可以看出,SmartSec的動態加解密是以文件過濾驅動程序的方式進行實現的(位於層次III),同時在應用層(層次II)和內核層(層次III)均提供訪問控制功能,除此之外,還提供了日誌和程序行為控制等功能,這種通過應用層和內核層相互配合的實現方式,不僅能提供更高的安全性,而且有助於降低安全系統對系統性能的影響。

動態加密磁盤級動態

對於信息安全要求比較高的用户來説,文件級加密是難以滿足要求的。例如,在Windows系統中(在其它操作系統中也基本類似),我們在訪問文件時,會產生各種臨時文件,雖然這些臨時文件在大多數情況下,會被應用程序自動刪除,但某些情況下,會出現漏刪的情況,即使臨時文件被刪除,但仍然可以通過各種數據恢復軟件將其進行恢復,在實際應用中,這些臨時文件一般不會被加密,從而成為信息泄密的一個重要渠道。更進一步,即使將臨時文件也進行了加密處理,但系統的頁面交換文件等(如Windows的Pagefile.sys等,除文件系統內嵌的加密方式外,第三方動態加解密產品一般不能對系統文件進行加密,否則會引起系統無法啓動等故障)也會保留用户訪問文件的某些信息,從而引起信息的泄密。
有一種方式可以避免上述提到的各種漏洞,那就是將存儲設備上包括操作系統在內的所有數據全部加密,要達到這個目的,只有基於磁盤級的動態加解密技術才能滿足要求。靜態加密技術在這種情況下,一般無法使用,這是因為操作系統被加了密,要啓動系統,必須先解密操作系統才能啓動,如果採用靜態加解密方式,只能在每次關機後將磁盤上的所有數據進行加密,在需要啓動時再解密磁盤上的所有數據(至少也得解密所有的操作系統文件,否則系統無法啓動),由於操作系統佔用的空間越來越大,這個過程所需要的時間是難以忍受的。
與靜態方式不同,在系統啓動時,動態加解密系統實時解密硬盤的數據,系統讀取什麼數據,就直接在內存中解密數據,然後將解密後的數據提交給操作系統即可,對系統性能的影響僅與採用的加解密算法的速度有關,對系統性能的影響也非常有限,這類產品對系統性能總體的影響一般不超過10%(取目前市場上同類產品性能指標的最大值)。圖3給出了億賽通公司基於磁盤級動態加解密的安全產品DiskSec的實現原理,從中可以看出,DiskSec的動態加解密算法位於操作系統的底層,操作系統的所有磁盤操作均通過DiskSec進行,當系統向磁盤上寫入數據時,DiskSec首先加密要寫入的數據,然後再寫入磁盤;反之,當系統讀取磁盤數據時,DiskSec會自動將讀取到的數據進行解密,然後再提交給操作系,因此,加密的磁盤數據對操作系統是透明的,也就是説,在操作系統看來,磁盤上的加密數據和未加密的狀態是一樣的。

動態加密比較

這兩類加密方法均有各自的優點和缺點,磁盤級加密與文件級加密方式相比,主要優點是:加密強度高,安全性好。
由於這一級別的加密方式直接對磁盤物理扇區進行加密,不考慮文件等存儲數據的邏輯概念,在這種加密方式下,任何存儲在磁盤上的數據均是加密的,相反,採用文件級的加密方式一般只對用户指定的某些文件進行加密,而這些文件在用户日常使用中,由於臨時文件等均會帶來安全隱患。因此,採用磁盤級的加密方式要較文件級的加密方式安全。
磁盤級加密的主要缺點是:不夠靈活方便,適用面比較窄。
與文件級的加密方式不同,由於磁盤級的加密方式沒有文件、目錄等概念,難以對指定的文件或目錄進行加密、隱藏等操作,反之,文件級的加密方式可以採用各種靈活的加密手段,能夠做到更細粒度的控制,用户不僅可以指定要加密的文件類型或目錄,同時也可以隱藏某些目錄等。