如何設(shè)計面向虛擬化平臺的透明加密系統(tǒng)

針對虛擬化平臺下數(shù)據(jù)防泄漏系統(tǒng)的要求,為此我們借助于可信計算技術(shù),提出了一種eCrytpfs文件系統(tǒng)的透明加密系統(tǒng),該系統(tǒng)增加了與自定制TPM密鑰管理模塊兼容的守護(hù)進(jìn)程模塊,并修改了Cryptfs用戶空間的密鑰管理部分;取消了多用戶模式,增強(qiáng)了整個系統(tǒng)的安全性。

一、傳統(tǒng)加密文件系統(tǒng)

1、傳統(tǒng)的加密文件系統(tǒng)

CFS實現(xiàn)了一個網(wǎng)絡(luò)文件系統(tǒng)(network filesystem,NFS)服務(wù)器。由于其加密解密操作在用戶層完成,因此要頻繁地在用戶層與核心層之間進(jìn)行數(shù)據(jù)交換,效率低下。TCFS實現(xiàn)了一個NFS客戶端,其加密解密操作在核心層完成。TCFS系統(tǒng)的安全性依賴于用戶登錄密碼,而且加密密鑰存放在磁盤上,這使得系統(tǒng)的安全性有所降低。AFS是分布式加密文件系統(tǒng),數(shù)據(jù)在該系統(tǒng)服務(wù)器上的明文存儲方式存在很大的安全隱患。同時,這種方式使系統(tǒng)中的每一臺服務(wù)器都要足夠安全,否則,只要有一臺服務(wù)器被入侵,整個系統(tǒng)的安全都將受到威脅。

Windows EFS只能在Window s操作系統(tǒng)的NTFS卷上使用,具有一定的局限性,此外,如果需要重裝操作系統(tǒng),要同時備份加密文件和密鑰證書,否則,重裝系統(tǒng)后就無法再訪問加密文件。

2、eCryptfs文件系統(tǒng)

Linux采用虛擬文件系統(tǒng)(virtual file sy stem,VFS)來管理底層文件系統(tǒng)。VFS為Linux處理不同的文件系統(tǒng)提供了統(tǒng)一的接口。

eCry ptfs是Linux內(nèi)核2.6.19版本中引入的一個企業(yè)級加密文件系統(tǒng),為應(yīng)用程序提供透明、動態(tài)、高效和安全的加密功能,它位于VFS與底層文件系統(tǒng)之間。對于VFS來說,eCryptfs扮演了標(biāo)
準(zhǔn)文件系統(tǒng)的角色,但它是將VFS傳遞下來的系統(tǒng)調(diào)用加上加密解密操作,再傳遞到下層文件系統(tǒng)。

eCry ptfs為每一文件隨機(jī)產(chǎn)生一個對稱文件加密密鑰(file encryption key,F(xiàn)EK)。eCry ptfs使用用戶口令或TPM的公鑰對FEK進(jìn)行加密保護(hù);加密FEK的口令或公鑰稱為文件加密密鑰(file eCry ptfs tion key encryption key,F(xiàn)EKEK),加密后的FEK則稱為加密的文件加密密鑰(encrypte file encry-rtion key,EFEK)。

雖然eCryptfs的加密解密效率較高,滿足了透明加密解密的要求,但它與數(shù)據(jù)防泄漏系統(tǒng)中的自定制TPM密鑰管理模塊不兼容;而且eCry ptfs運(yùn)行在多用戶模式下,低權(quán)限的用戶就可以使用一些現(xiàn)有的技術(shù)提升自己的權(quán)限從而入侵系統(tǒng)關(guān)鍵區(qū)域。針對這些問題,本文提出了MeCryptfs加密系統(tǒng)。

二、MeCryptfs加密系統(tǒng)設(shè)計方案

1、系統(tǒng)模塊結(jié)構(gòu)

文件系統(tǒng)模塊由用戶空間模塊和內(nèi)核模塊構(gòu)成;守護(hù)進(jìn)程模塊由用戶操作命令子模塊、密鑰處理子模塊和腳本程序子模塊構(gòu)成。

用戶操作命令子模塊主要提供給用戶密鑰請求、更新、銷毀命令。密鑰處理子模塊與下層密鑰管理模塊相連接;它根據(jù)用戶操作命令調(diào)用相應(yīng)的函數(shù),獲取密鑰或相關(guān)信息,然后調(diào)用腳本程序子模塊完成相應(yīng)操作,腳本程序子模塊調(diào)用了相關(guān)系統(tǒng)命令,使文件系統(tǒng)模塊完成相應(yīng)操作。用戶空間模塊修改了原eCryptfs系統(tǒng)的密鑰管理部分,更加精煉、安全、易維護(hù),內(nèi)核空間模塊產(chǎn)生文件加密密鑰,并調(diào)用底層文件系統(tǒng)完成文件的讀寫等操作。

2、密鑰管理模塊

MeCryptfs使用的密鑰是由數(shù)據(jù)防泄漏系統(tǒng)中的密鑰管理模塊進(jìn)行管理的。

自定制的TPM密鑰管理模塊使用TPM對加密系統(tǒng)使用的會話密鑰進(jìn)行加密保護(hù),大大增加了密鑰的安全性。

密鑰管理模塊主要負(fù)責(zé)接收密鑰處理命令,調(diào)用相應(yīng)的TPM命令,完成密鑰的處理。其中“密鑰信息”、“返回信息”和“錯誤類型”是一個聯(lián)合體。

3、密鑰處理方案

密鑰處理是MeCryptfs中最重要的部分,如圖3所示。它主要分為3個操作:密鑰請求操作、密鑰更新操作和密鑰銷毀操作。

MeCryptfs在工作時,首先用一個會話密鑰將用于存儲文件密文的隱私目錄掛載到存儲對應(yīng)明文的工作目錄上,這兩個目錄合稱為P/W目錄對。

1)密鑰請求操作過程:

(a)守護(hù)進(jìn)程與密鑰管理模塊交互,獲得密鑰并將其寫入臨時密鑰文件。

(b)守護(hù)進(jìn)程發(fā)出掛載文件系統(tǒng)的命令。

(c)文件系統(tǒng)模塊讀取密鑰,刪除臨時密鑰文件并利用此密鑰完成掛載。

2)密鑰更新操作過程:

(a)守護(hù)進(jìn)程與密鑰管理模塊交互獲取新的密鑰,并將其寫入臨時密鑰文件。

(b)守護(hù)進(jìn)程發(fā)出創(chuàng)建新P/W目錄對的命令,文件系統(tǒng)模塊完成創(chuàng)建操作。

(c)守護(hù)進(jìn)程發(fā)出在新P/W目錄對上掛載文件系統(tǒng)的命令,文件系統(tǒng)模塊讀取密鑰,刪除臨時密鑰文件并完成掛載。

(d)守護(hù)進(jìn)程發(fā)出復(fù)制舊P/W目錄對中文件到新P/W目錄對中命令,文件系統(tǒng)模塊完成復(fù)制操作。

(e)守護(hù)進(jìn)程發(fā)出卸載和刪除舊P/W目錄對的命令,文件系統(tǒng)完成卸載和刪除操作。

(f)守護(hù)進(jìn)程發(fā)出將新P/W目錄對名稱改為舊P/W目錄對名稱命令,文件系統(tǒng)模塊完成改名操作。

3)密鑰銷毀操作過程:

(a)守護(hù)進(jìn)程與密鑰管理模塊交互,傳送密鑰銷毀的命令和結(jié)果。

(b)如果銷毀成功,守護(hù)進(jìn)程發(fā)出卸載文件系統(tǒng)和刪除隱私目錄的命令,文件系統(tǒng)模塊完成卸載和刪除。

(c)守護(hù)進(jìn)程發(fā)出創(chuàng)建同名隱私目錄的命令,文件系統(tǒng)模塊完成創(chuàng)建操作。

4、面向虛擬化平臺的透明加密系統(tǒng)的實現(xiàn)

面向虛擬化平臺的透明加密系統(tǒng)需要編碼實現(xiàn)的部分主要有守護(hù)進(jìn)程模塊以及對eCryptf's用戶空間模塊的修改。

1)守護(hù)進(jìn)程模塊的實現(xiàn)

用戶命令操作子模塊向用戶提供了操作MeCryptf's的接口,主要包括3個命令:請求、更新、銷毀密鑰。它們調(diào)用密鑰處理子模塊中的相關(guān)函數(shù),其基本流程為發(fā)送命令包、接收應(yīng)答包、解析應(yīng)答包、調(diào)用腳本程序子模塊。守護(hù)進(jìn)程模塊和密鑰管理模塊通過管道進(jìn)行數(shù)據(jù)包的傳送,腳本程序子模塊通過一系列系統(tǒng)命令對MeC-yptfs的文件系統(tǒng)模塊進(jìn)行操作,以完成密鑰的處理。

2)eCryptfs用戶空間模塊的修改

密鑰由密鑰管理模塊產(chǎn)生,MeCryptfs文件系統(tǒng)模塊中的用戶空間模塊從臨時密鑰文件中獲取密鑰,代替原來的用戶輸入。

三、面向虛擬化平臺的透明加密系統(tǒng)結(jié)果分析與討論

本文對MeCryptfs工作性能進(jìn)行了測試,目的是分析本系統(tǒng)對性能下降的影響程度。測試環(huán)境為:hiter Pentium M處理器,1.70 GHz/768 Mb內(nèi)存/Ubuntu 9.04操作系統(tǒng),Linux 2.6.30內(nèi)核/ext3文件系統(tǒng)。測試在是否掛載MeCryptfs的情況下,復(fù)制數(shù)據(jù)的時間消耗,測試選用的加密算法是高級加密密標(biāo)準(zhǔn)(advan ced en cr yption st an dard,AES),密鑰長度128位。

在復(fù)制699.3Mb的大數(shù)據(jù)時,使用MeCryptf's的情況下,時間消耗增加了25.5%,帶寬下降了20.35%,性能下降較少,在復(fù)制30 Mb這樣的小數(shù)據(jù)時,帶寬下降了82.99%,性能下降較多,但因其本身消耗時間較少,用戶仍可承受。TCFS與ext3相比其讀寫帶寬分別下降了95.65%和97.63%。與TCFS相比,MeC-yptfs的系統(tǒng)負(fù)載要小很多。

小知識之虛擬化

虛擬化,是指通過虛擬化技術(shù)將一臺計算機(jī)虛擬為多臺邏輯計算機(jī)。在一臺計算機(jī)上同時運(yùn)行多個邏輯計算機(jī),每個邏輯計算機(jī)可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計算機(jī)的工作效率。