動態加解密技術綜述

2021-04-20 05:30:39 字數 4420 閱讀 5044

隨著計算機和網路技術的飛速發展,越來越多的資訊以電子形式儲存在個人和商用電腦中,並且通過網路進行廣泛地傳遞,在大量的資訊儲存和交換中,資訊的安全問題越來越引起人們的重視。資訊保密的理論基礎是密碼學,根據現代密碼學的理論,乙個好的加密演算法的安全性只依賴於金鑰,加密演算法的公開與否不影響其安全性。現代密碼學經過幾十年的研究和發展,已經發明了許多安全性很高的加密演算法,並且被廣泛地應用在各種資訊保安產品中,其中資料加密技術是密碼學的乙個重要應用領域。資料加密產品由於實現的方法和層次的不同,決定了其應用領域和範圍。

資料加密技術按照實現的方法可劃分為靜態加密和動態加密,從實現的層次上則可分為檔案級加密和儲存裝置級加密。

1.靜態加密與動態加密

靜態加密是指在加密期間,待加密的資料處於未使用狀態,這些資料一旦加密,在使用前,需首先通過靜態解密得到明文,然後才能使用。目前市場上許多加密軟體產品就屬於這種加密方式。

與靜態加密不同,動態加密(也稱實時加密,透明加密等,其英文名為

encrypt on-the-fly

),是指資料在使用過程中自動對資料進行加密或解密操作,無需使用者的干預,合法使用者在使用加密的檔案前,也不需要進行解密操作即可使用,表面看來,訪問加密的檔案和訪問未加密的檔案基本相同,對合法使用者來說,這些加密檔案是「透明的

」,即好像沒有加密一樣,但對於沒有訪問許可權的使用者,即使通過其它非常規手段得到了這些檔案,由於檔案是加密的,因此也無法使用。由於動態加密技術不僅不改變使用者的使用習慣,而且無需使用者太多的干預操作即可實現文件的安全,因而近年來得到了廣泛的應用。

由於動態加密要實時加密資料,必須動態跟蹤需要加密的資料流,而且其實現的層次一般位於系統核心中,因此,從實現的技術角度看,實現動態加密要比靜態加密難的多,需要解決的技術難點也遠遠超過靜態加密。

2.動態加密實現的層次級別

在不同的操作系中(如

windows

、linux

、unix

等),雖然資料的具體組織和儲存結構會有所不同,但它們均可用圖

1的模型進行表示,即應用程式在訪問儲存裝置資料時,一般都通過作業系統提供的

api

呼叫檔案系統,然後檔案系統通過儲存介質的驅動程式訪問具體的儲存介質。其中層次i和

ii屬於應用層;層次

iii和

iv屬於作業系統核心層。這種組織結構決定了加密系統的實現方式,在資料從儲存介質到應用程式所經過的每個路徑中,均可對訪問的資料實施加密

/解密操作,其中模型中的層次

i只能捕獲應用程式自身讀寫的資料,其他應用程式的資料不經過該層,因此,在層次

i中只能實現靜態加密,無法實現動態加密;即使是層次

ii,也並不是所有檔案資料均通過該層,但在該層可以攔截到各種檔案的開啟、關閉等操作。因此,在應用層實現的動態加解密產品無法真正做到「實時」加密

/解密操作,一般只能通過其他變相的方式進行實現(一般均在層次

ii進行實現)。例如,在應用程式開啟檔案時,先直接解密整個檔案或解密整個檔案到其他路徑,然後讓應用程式直接(重定向)訪問這個完全解密的檔案,而在應用程式關閉這個檔案時,再將已解密的檔案進行加密。其實質是靜態加解密過程的自動化,並不屬於嚴格意義上的動態加密。

由於目前的作業系統,如

windows/linux/unix

等,只有在核心層才能攔截到各種檔案或磁碟操作,因此,真正的動態加解密產品只能在核心層進行實現。在圖

1給出的模型中,在核心層中的檔案系統可以攔截到所有的檔案操作,但並不能攔截到所有的儲存裝置(在下面的敘述中,我們一般用磁碟來表示儲存裝置)操作,要攔截所有的儲存裝置操作,必須在儲存裝置驅動程式中進行攔截,作業系統的對儲存裝置的訪問形式決定了動態加解密安全產品的兩大種類:基於檔案級的動態加解密產品和基於磁碟級的動態加解密產品。

圖1.

作業系統的儲存裝置訪問模型 3.

檔案級動態加解密技術

在檔案系統層,不僅能夠獲得檔案的各種資訊,而且能夠獲得訪問這些檔案的程序資訊和使用者資訊等,因此,可以研製出功能非常強大的文件安全產品。就動態加解密產品而言,有些檔案系統自身就支援檔案的動態加解密,如

windows

系統中的

ntfs

檔案系統,其本身就提供了

efs(

encryption file system

)支援,但作為一種通用的系統,雖然提供了細粒度的控制能力(如可以控制到每個檔案),但在實際應用中,其加密物件一般以分割槽或目錄為單位,難以做到滿足各種使用者個性化的要求,如自動加密某些型別檔案等。雖然有某些不足,但支援動態加密的檔案系統在某種程度上可以提供和磁碟級加密技術相匹敵的安全性。由於檔案系統提供的動態加密技術難以滿足使用者的個性化需求,因此,為第三方提供動態加解密安全產品提供了足夠的空間。

要研發在檔案級的動態加解密安全產品,雖然與具體的作業系統有關,但仍有多種方法可供選擇,一般可通過

hook

或過濾驅動等方式嵌入到檔案系統中,使其成為檔案系統的一部分,從某種意義上來說,第三方的動態加解密產品可以看作是檔案系統的乙個功能擴充套件,這種擴充套件往往以模組化的形式出現,能夠根據需要進行掛接或解除安裝,從而能夠滿足使用者的各種需求,這是作為檔案系統內嵌的動態加密系統難以做到的。

下面我們以億賽通公司的

smartsec

為例,分析一下檔案動態加解密的具體實現方式。圖

2給出了

smartsec

的實現原理,從中可以看出,

smartsec

的動態加解密是以檔案過濾驅動程式的方式進行實現的(位於層次

iii),同時在應用層(層次

ii)和核心層(層次

iii)均提供訪問控制功能,除此之外,還提供了日誌和程式行為控制等功能,這種通過應用層和核心層相互配合的實現方式,不僅能提供更高的安全性,而且有助於降低安全系統對系統效能的影響。 圖

2smartsec

系統中動態加解密的實現 4.

磁碟級動態加解密技術

對於資訊保安要求比較高的使用者來說,檔案級加密是難以滿足要求的。例如,在

windows

系統中(在其它作業系統中也基本類似),我們在訪問檔案時,會產生各種臨時檔案,雖然這些臨時檔案在大多數情況下,會被應用程式自動刪除,但某些情況下,會出現漏刪的情況,即使臨時檔案被刪除,但仍然可以通過各種資料恢復軟體將其進行恢復,在實際應用中,這些臨時檔案一般不會被加密,從而成為資訊洩密的乙個重要渠道。更進一步,即使將臨時檔案也進行了加密處理,但系統的頁面交換檔案等(如

windows

的pagefile.sys

等,除檔案系統內嵌的加密方式外,第三方動態加解密產品一般不能對系統檔案進行加密,否則會引起系統無法啟動等故障)也會保留使用者訪問檔案的某些資訊,從而引起資訊的洩密。

有一種方式可以避免上述提到的各種漏洞,那就是將儲存裝置上包括作業系統在內的所有資料全部加密,要達到這個目的,只有基於磁碟級的動態加解密技術才能滿足要求。靜態加密技術在這種情況下,一般無法使用,這是因為作業系統被加了密,要啟動系統,必須先解密作業系統才能啟動,如果採用靜態加解密方式,只能在每次關機後將磁碟上的所有資料進行加密,在需要啟動時再解密磁碟上的所有資料(至少也得解密所有的作業系統檔案,否則系統無法啟動),由於作業系統占用的空間越來越大,這個過程所需要的時間是難以忍受的。

與靜態方式不同,在系統啟動時,動態加解密系統實時解密硬碟的資料,系統讀取什麼資料,就直接在記憶體中解密資料,然後將解密後的資料提交給作業系統即可,對系統效能的影響僅與採用的加解密演算法的速度有關,對系統效能的影響也非常有限,這類產品對系統效能總體的影響一般不超過

10%(取目前市場上同類產品效能指標的最大值)。圖

3給出了億賽通公司基於磁碟級動態加解密的安全產品

disksec

的實現原理,從中可以看出,

disksec

的動態加解密演算法位於作業系統的底層,作業系統的所有磁碟操作均通過

disksec

進行,當系統向磁碟上寫入資料時,

disksec

首先加密要寫入的資料,然後再寫入磁碟;反之,當系統讀取磁碟資料時,

disksec

會自動將讀取到的資料進行解密,然後再提交給操作系,因此,加密的磁碟資料對作業系統是透明的,也就是說,在作業系統看來,磁碟上的加密資料和未加密的狀態是一樣的。

圖3:磁碟級動態加解密的實現

5.檔案級和磁碟級動態加密的比較

這兩類加密方法均有各自的優點和缺點,磁碟級加密與檔案級加密方式相比,主要優點是:加密強度高,安全性好。

由於這一級別的加密方式直接對磁碟物理扇區進行加密,不考慮檔案等儲存資料的邏輯概念,在這種加密方式下,任何儲存在磁碟上的資料均是加密的,相反,採用檔案級的加密方式一般只對使用者指定的某些檔案進行加密,而這些檔案在使用者日常使用中,由於臨時檔案等均會帶來安全隱患。因此,採用磁碟級的加密方式要較檔案級的加密方式安全。

磁碟級加密的主要缺點是:不夠靈活方便,適用面比較窄。

與檔案級的加密方式不同,由於磁碟級的加密方式沒有檔案、目錄等概念,難以對指定的檔案或目錄進行加密、隱藏等操作,反之,檔案級的加密方式可以採用各種靈活的加密手段,能夠做到更細粒度的控制,使用者不僅可以指定要加密的檔案型別或目錄,同時也可以隱藏某些目錄等。

加密解密技術簡介

加密技術是最常用的安全保密手段,利用技術手段把重要的資料變為亂碼 加密 傳送,到達目的地後再用相同或不同的手段還原 解密 加密技術包括兩個元素 演算法和金鑰。演算法是將普通的資訊或者可以理解的資訊與一串數字 金鑰 結合,產生不可理解的密文的步驟,金鑰是用來對資料進行編碼和解密的一種演算法。在安全保密...

資料加密與解密技術

1.簡述對稱加密與不對稱加密的特點及其原理 對稱加密 1 加密和解密使用同乙個金鑰。2 私鑰演算法以塊為單位加密資料,一次加密乙個資料塊,因此支援資料流。對稱加密的優點 保密強度高,加 解密速度快,適合加密大量資料。對稱加密的缺點 通訊雙方使用相同的金鑰和iv加密,傳送方需要先將金鑰和iv傳送給接收...

簡單的加密解密技術

public class security string result new string cdata,0,cdata.length 將我們加密後的字元陣列轉換成字串 system.out.println result result 輸出加密後的結果 system.out.println 開始解密...