摘要:隨著越來越多的重要數據存儲在磁盤上,磁盤數據的安全保護逐漸成為備受關注的問題。眾多的安全威脅如磁盤數據被非法修改、磁盤數據泄漏、磁盤失竊,都可能會對保存著重要信息的組織如軍隊、政府、企業等造成無法估計的損失。以保密性、完整性、可用性、驗證和授權為安全威脅模型,從硬件和軟件兩個方面對當前主要的磁盤數據安全保護技術、系統進行分析和比較,并展望今后的研究方向。
關鍵詞:磁盤數據安全保護; 保密性; 完整性; 可用性; 驗證; 授權
中圖分類號:TP309文獻標志碼:A
文章編號:1001-3695(2008)05-1288-04
信息時代的重要特征之一就是大量的數據都以電子化的形式存儲在各種媒質上。自1956年第一塊磁盤IBM 350 RAMAC誕生以來[1],磁盤就以其體積小、容量大、速度快等特點逐漸成為存儲數據的理想介質。
磁盤數據的安全保護可以從硬件和軟件兩個方面進行。硬件保護是指借助于額外的硬件單元或部件對磁盤數據進行保護;軟件保護是指依賴于硬件上層的操作系統或文件系統,從應用程序級、文件系統級或操作系統級對磁盤的讀/寫、訪問等進行安全保護。在當前的磁盤數據保護技術的研究中,基于硬件保護的研究工作主要以產品或專利的形式存在[2~6]。基于軟件的保護研究有各種原型系統和解決方案,主要可分為encrypt-on-wire和encrypt-on-disk系統兩類[7]。其中,encrypt-on-wire系統是指加密服務器與客戶端之間數據傳輸的系統[8~10];encrypt-on-disk系統是指加密磁盤上存儲數據的系統。Encrypt-on-disk系統又可以分為共享[11~18]和非共享系統[19~21]兩類,其區別主要在于是否提供加密文件的多用戶共享機制。
如何衡量當前提出的眾多磁盤數據安全保護系統,需要考慮其具體的應用場景和威脅模型。Hasan等人[22]提出了一個通用的安全存儲系統的威脅模型CIAA,即保密性、完整性、可用性和驗證,但他并沒有強調訪問控制失效給系統帶來的危險。而在磁盤數據保護中,對磁盤的讀寫權限控制是保護磁盤數據安全的必要手段。因此本文在CIAA的基礎上添加了授權即CIAAA,并將其作為分析各種磁盤數據保護技術的指標。
當前磁盤數據保護技術的研究日趨熱門,相關的研究工作很多。例如,Riedel等人[7]提出了一個評價存儲系統安全性的框架;Kher等人[23]對當前主要的安全存儲系統進行了介紹和比較。但這些工作都沒有包括當前最新的工作,如Windows Vista BitLocker drive encryption等,并且都沒有涉及硬件方面的保護技術。因此有必要對現有技術給出較為全面的分析和歸納,以提供有益的借鑒。
1硬件系統
1.1硬盤數據加密系統
硬盤數據加密系統是苗勝等人[2]設計的一種基于FPGA的硬盤加密系統。其基本原理是由數據緩沖電路對硬盤數據線上的數據進行緩沖,過濾命令控制信號、加密數據信號,實現硬盤數據的安全保護。該系統使用智能卡存儲和管理密鑰,并支持DES、3DES、AES等各種加密算法。
CIAAA評價為:
a)保密性。總線上流入磁盤的數據通過硬件電路模塊進行加/解密保護,確保了磁盤數據的保密性。但文獻[2]中沒有指出所使用的加密算法的加密模式。如果是簡單的ECB模式,則同樣的明文塊會產生同樣的密文塊,造成安全隱患。
b)完整性。系統沒有驗證磁盤數據完整性的機制。
c)可用性。硬件電路的使用周期一般較長,且執行效率較軟件系統有很大的優勢。但系統的硬件單元一旦受到物理損壞,則整個系統就無法正常工作。
d)驗證。系統沒有驗證機制。
e)授權。系統沒有權限控制機制。
1.2Secured data storage device
SDSD[3]由保護和媒質部分構成。保護部分的主要模塊有實時時鐘、命令處理器、數據存儲處理器及固定存儲等。媒質部分為存儲數據的介質(如磁盤、軟盤等)及其控制單元,由介質控制器、介質驅動及介質本身組成。保護和媒質部分通過接口邏輯連接。
SDSD通過保護部分將數據通過實時時鐘打上時間戳,再經過加密后將其寫入存儲介質。SDSD將加密密鑰分為兩部分,一部分存儲在媒質部分的存儲介質中,一部分存儲在保護部分的固定存儲中。這樣做的目的是即使非法用戶通過訪問磁盤獲得了存儲在介質中的密鑰,也無法獲得存儲在保護部分中的密鑰以獲得完整的加/解密密鑰。為了提高系統的效率,SDSD沒有采用通用的加密算法如DES等,而是通過由密鑰產生的偽隨機序列進行加/解密操作。
CIAAA評價為:
a)保密性。磁盤上的數據經過保護部分的安全操作后以密文的形式存儲,確保了數據的保密性。
b)完整性。通過對寫入數據打上時間標簽,保證了系統抗重放攻擊的能力 。
c)可用性。電路損耗或損壞對系統的正常工作產生影響。
d)驗證。SDSD沒有提供單獨的驗證機制。
e)授權。SDSD沒有磁盤數據讀寫的權限控制機制。
2軟件系統
2.1Encrypt-on-wire系統
SFS(self-certifying file system)[13]系統由三部分組成,即SFS文件服務器、SFS客戶端和SFS認證服務器。SFS的認證服務器用來存儲客戶端用戶的組信息和公鑰信息。SFS采用自認證路徑來完成服務器和客戶端的雙向認證。
SFS文件系統通過掛載點/sfs/location/hostid進行訪問。其中,location是文件服務器的地址,可以是其DNS主機名或IP地址;hostid是服務器地址和其公鑰的哈希值。當用戶請求文件服務器上的文件時,SFS客戶端首先生成一個公私鑰對,然后從認證服務器獲取文件服務器的公鑰,并將其哈希值同hostid值比對以驗證文件服務器的身份。通過服務器的身份認證后,客戶端和文件服務器協商創建會話密鑰,建立安全信道。接著客戶端用其私鑰簽名一個請求發送給文件服務器,用于獲得服務器的驗證。當服務器和客戶端的雙向認證結束后,雙方在事先建立好的安全信道中通信。
SFS后來又發展了兩個改進的版本,即集中訪問控制的SFS[24]和只讀SFS[25]。前者在SFS中增加了非集中式的訪問控制功能,允許文件的創建者添加在本地或遠程SFS中的用戶對該文件的訪問權限。后者使用新的模塊——數據庫生成程序,在用戶創建文件時將其每個數據塊進行哈希,然后將哈希值插入到文件的inode中,接著將每個inode的哈希值插入到文件目錄中。如此重復這個過程,直到創建系統根目錄/root的哈希值,構成整個文件系統的哈希樹。
CIAAA評價為:
a)保密性。SFS及其改進版本都通過雙向認證阻止非法用戶對系統的訪問,間接地保護了數據的隱私,但是磁盤數據仍然以明文形式存在。
b)完整性。SFS-RO通過建立整個文件系統的哈希樹確保了文件系統的完整性。
c)可用性。SFS及其改進版本中,存儲服務器公鑰的認證服務器由于直接參與了系統的認證過程,容易造成單點拒絕服務攻擊。
d)驗證。SFS及其改進版本提供了完善的雙向認證機制,并通過使用自認證技術增強了系統的可擴展性。
e)授權。SFS-DAC通過創建可信任用戶組及其權限控制表,控制了共享文件的授權訪問。SFS及其改進版本的磁盤訪問控制主要由UNIX本身自帶的訪問控制機制提供。
2.2Encrypt-on-disk系統
2.2.1非共享系統CFS
CFS[19]是最早提出的encrypt-on-disk系統。CFS向客戶端內核注冊為一個NFS服務器,不論其是在客戶端本地還是在遠程服務器上。因此CFS是運行在用戶進程空間中,當其執行加/解密操作時需要額外的上下文切換,影響了系統的效率。CFS通過cattach命令將加密的文件目錄映射為一個虛擬目錄掛載在“/crypt”下,用戶通過這個目錄訪問他們的文件。CFS基本上設計為一個單用戶系統。每個用戶為自己需要加密的目錄及文件指定一個密鑰種子,系統根據該種子生成加密密鑰。當用戶需要與其他用戶共享加密文件時,需要親自將密鑰交給其他用戶。
CIAAA評價為:
a)保密性。CFS中磁盤存儲的是密文,只有在客戶端執行讀操作后,磁盤數據才以明文形式存在。
b)完整性。CFS沒有提供驗證磁盤數據完整性的機制。
c)可用性。CFS通過加密磁盤上存儲的數據確保只能被其創建者或擁有者訪問,但由于CFS運行在用戶進程空間,頻繁的上下文切換操作會消耗系統的額外資源。
d)驗證。CFS依賴UNIX自身的驗證機制完成用戶身份驗證。
e)授權。CFS采用UNIX自身的磁盤文件讀寫訪問控制機制。
2.2.2共享系統
1)PLUTUS
PLUTUS[15]設計了良好的機制以完成文件的多用戶共享。PLUTUS中具有相同共享屬性的文件被歸為同一文件組(file-group)中。同一文件組中的文件共享一個共同的數據結構lockbox,其中存放著該文件組的lockbox-key。同一文件組中文件的每個數據塊都由不同的file-block keys加密,而這些file-block keys再由lockbox-key加密。
對于每個文件組,有一個RSA公私鑰對與其關聯。私鑰部分叫做file-signkey,公鑰部分叫做file-verifykey。PLUTUS將系統文件操作對象分為讀者(readers)和寫者(writers)兩類。讀者只被分配給lockbox-keys,而寫者除了lockbox-keys外還分配給file-signkeys。PLUTUS中的文件塊以Merkel tree的形式組織。寫文件時寫者通過對該文件的root用與該文件組對應的file-signkey進行簽名。而其他的讀者或寫者都可以用該文件組的file-verifykey對該文件的完整性進行驗證。
PLUTUS借鑒了很多Cepheus系統[14]的特點,如lockbox技術最早就是由Cepheus提出。除此之外,PLUTUS還借鑒了Cepheus的lazy re-encryption的思想。Lazy re-encryption是指當用戶從系統中刪除時,不立即對屬于該用戶的文件用新的密鑰重新加密,而是等該文件被再次訪問時再重新加密。關于注銷用戶的密鑰管理,文獻[7,26]中進行了有關的討論,lazy re-encryption比用戶注銷后立即進行重新加密的active/aggressive re-encryption在性能上有優勢。
CIAAA評價為:
a)保密性。PLUTUS文件服務器上的數據以密文形式存在,保護了數據的隱秘性。
b)完整性。PLUTUS通過file-signkey和file-verifykey對文件進行簽名和驗證保護,確保了磁盤數據的完整性。
c)可用性。PLUTUS通過將安全操作轉移到客戶端,減輕了服務器的工作壓力,并且通過file-groups實現文件的共享,使得文件的所有者無須在線仍然可以共享其所擁有的文件。
d)驗證。PLUTUS依賴UNIX系統自身的驗證機制。
e)授權。PLUTUS通過分配不同的密鑰授權不同的磁盤數據讀寫權限。
2)NCryptfs
NCryptfs[16]是利用可堆疊文件系統技術設計的encrypt-on-disk共享文件系統。NCryptfs提供內核級別的安全服務,因此在性能上有很大的優勢。NCryptfs通過掛載點/mnt/ncryptfs進行訪問,并且通過授權入口(authorizatoin entries)管理系統的訪問和操作。每個授權入口都是一個登錄口令及其相關權限的哈希值。
與CFS一樣,用戶通過attach命令創建一個加密目錄。NCryptfs通過用戶輸入的passphrase為該目錄及目錄下的文件創建密鑰,該密鑰儲存在內核中。當用戶需要共享文件時,必須為每個其他用戶關聯授權入口。但由于密鑰是通過用戶的attach命令生成的,當其他用戶訪問共享文件時,該文件的創建者必須在線,否則無法事先產生文件的加/解密密鑰并對訪問者進行驗證。另外由于密鑰是儲存在內核中,只能在同一臺機器中共享文件。這些都是NCryptfs共享文件機制的弊端。由于NCryptfs是利用可堆疊文件系統技術設計的,無須過分依賴底層操作系統內核的具體細節,具有較高的可移植性。
CIAAA評價為:
a)保密性。NCryptfs中磁盤上的數據以密文的形式存在。
b)完整性。NCryptfs沒有設計保護數據完整性的機制,但是在其后續工作中[27]添加了相關的內容。
c)可用性。由于文件密鑰通過attach命令生成并且駐留在內存中,NCryptfs的文件共享機制存在很大的局限性。
d)驗證。NCryptfs通過authorization entry驗證合法的系統用戶。
e)授權。NCryptfs通過authorization entry規定用戶不同的訪問及操作權限,但其具體實現仍然是依賴UNIX自身提供的授權訪問控制機制。
3)Windows Vista BitLocker drive encryption
Windows Vista BitLocker drive encryption[7]是微軟公司近期推出的在其下一代操作系統Windows Vista中使用的磁盤數據安全保護技術。BitLocker drive encryption提供兩項最基本的功能:全卷加密和系統啟動前基礎模塊的完整性檢查。
BDE(bitlocker drive encryption)使用全卷加密密鑰(full volume encryption key,FVEK)對整個系統卷進行加密,FVEK本身又被主卷密鑰(volume master key,VMK)加密。BDE通過TPM[18](trust platform module)芯片進行系統啟動前的基礎模塊完整性檢查,以確保磁盤數據的完整性。TPM芯片收集系統啟動模塊的信息,如BIOS上的設置等,形成當前機器的指紋。當磁盤被替換或磁盤啟動數據被非法修改時,由于機器無法正確識別當前磁盤而不能正常啟動系統。當機器不支持TPM或沒有TPM芯片時,用戶可以使用BDE自身加強的驗證功能來保護系統的啟動。此時用戶必須輸入正確的PIN碼或插入USB設備并輸入正確的啟動口令,否則系統無法正常啟動。
BED中的文件共享與Windows上的普通文件共享一樣,授權的用戶可以通過網絡對其進行訪問,而被加密的文件在磁盤上仍然是以密文形式存在的。
CIAAA評價為:
a)保密性。BDE通過全卷加密保護了磁盤上數據的隱秘性。
b)完整性。BDE通過TPM實現系統啟動前的完整性校驗,一旦校驗失敗就無法正常進入Windows操作系統。c)可用性。在沒有TPM支持,使用通過USB設備加強系統啟動驗證時,USB設備的安全保護是能否成功進入操作系統的關鍵。
d)驗證。BDE使用各種加強驗證方式如USB啟動口令、PIN啟動碼等對合法用戶進行安全驗證。
e)授權。BDE的磁盤數據讀寫權限控制依賴于底層Windows操作系統的機制。
3比較和討論
按照CIAAA安全威脅模型,針對系統是否提供了防范各個安全威脅的功能,對磁盤數據安全保護系統的比較總結如表1所示。
由表1可見,磁盤數據保護的硬件系統大多集中于應對某一特定方面的安全威脅,而軟件保護系統由于其設計的靈活性,大多數都考慮了更多的安全威脅。然而,所有的系統都是不盡完善的,為了提供更加可靠的磁盤數據安全環境,應當考慮綜合各種方案。在設計新的磁盤數據保護系統時,也應綜合考慮各種技術,提供更加全面的安全保護。
磁盤數據保護系統的設計除了需要提供全面的安全保護外,還應考慮系統的實用性。主要有以下幾個方面的考慮:
a)性能。磁盤數據保護由于增加了額外的安全操作,會對系統的性能帶來損耗。文獻[7,28]中對現有的若干安全存儲系統的性能進行了比較。Encrypt-on-disk系統一般比encrypt-on-wire系統有更好的性能;不同技術的選取,如lazy re-encryption和aggressive re-encryption對系統性能的影響是不同的;系統加密算法的選取也會對系統的性能造成影響。實現上,硬件系統較軟件系統有較大的優勢。
b)實現及部署成本。實現及部署成本是指系統的開發、 運行及維護所帶來的人力、財力的開銷。硬件系統由于需要特定硬件支持,其部署成本一般比軟件系統高。軟件系統中,可堆疊文件系統技術[16]能加快系統的實現速度、節約系統的開發成本。
c)用戶體驗。系統如果需要用戶過多地參與,并且需要過多的額外操作,都會影響系統的實用性。在不損失系統安全性能的前提下,應為用戶提供更方便的使用體驗,如用戶可以自行選擇不同的加密算法。系統密鑰的分配和管理應當對用戶透明。
d)特殊應用場景。針對特定的應用場景,如嵌入式設備環境等,磁盤數據保護系統應當根據安全需求進行定制化的設計,并且在資源受限環境中系統的性能也將有更高的要求。
4結束語
由于現有的磁盤數據保護技術和系統很多,限于文章的篇幅,不能對所有系統進行討論和比較。選擇了具有代表性的主要硬件和軟件系統,以CIAAA為安全威脅模型進行了分析和比較。在分析了磁盤數據保護系統安全性要求的同時,提出了性能、系統成本、用戶體驗及特殊應用場景等問題,以進行今后進一步的研究。
參考文獻:
[1]IBM 305 RAMAC[EB/OL].[2007-02-11].http://www.cedmagic.com/history/ibm-305-ramac.html.
[2]苗勝,張新家,曹衛兵,等.硬盤數據加密系統的設計及其FPGA實現[J].計算機應用研究, 2004, 21(10):217-219.
[3]CHAN, et al. Secured data storage devices[EB/OL].(1992-09-22).http://patft.uspto.gov.
[4]FISHERMAN,IGOR, OLEG U, et al. Personal computer hard disk protection system[EB/OL].(1997-08-12).http://patft.uspto.gov.
[5]RENTON. Hard drive security system[EB/OL].(1997-08-12).http://patft.uspto.gov/.
[6]MATHERS S, STEWART A C. Security system for hard disk drive[EB/OL].(2000-01-04).http://patft.uspto.gov/.
[7]RIEDEL E, KALLAHALLA M, SAMINATHAN R. A framework for evaluating storage system security[C]//Proc of the 1st Conference on File and Storage Technologies. Berkeley: USENIX Association, 2002:15-30.
[8]MAZIERES D, KAMINSKY M, KAASHOEDK M F, et al. Separating key management from file system security[C]//Proc of the 17th ACM Symposium on Operating Systems Principles. New York: ACM Press, 1999:124-139.
[9]HOWARD J. An overview of the Andrew file system[C]//Proc of USENIX Winter Technical Conference. Berkeley: USENIX Association, 1998.
[10]GOBIOFF H, GIBSON G, TYGAR D. Security for network attached storage devices, CMU-CS-91-185[R]. Pittsburgh: Carnegie Mellon University SCS, 1997.
[11]林昊翔,董淵,張為,等.基于Linux的通用加密文件系統Waycryptic的設計與實現[J]. 小型微型計算機系統, 2007,28(1):122-126.
[12]邢常亮,卿斯漢,李麗萍.一個基于Linux的加密文件系統的設計與實現[J]. 計算機工程與應用, 2005, 42(17):101-104.
[13]徐國棟,白英彩.加密文件系統在Windows下的實現[J]. 微型電腦應用, 2006,13(5):56-58,2.
[14]FU K. Group sharing and random access in cryptographic storage file systems[D]. Massachusettes: Massachusettes Institute of Technology, 1999.
[15]KALLAHAHHA M, RIEDEL E, SWAMINATHAN R, et al. PLUTUS: scalable secure file sharing on untrusted storage[C]//Proc of the 2nd USENIX Conference on File and Storage Technologies. Berkeley: USENIX Association, 2003:29-42.
[16]CHARLES E Z, WRIGHT P, MARTINA M C. Ncryptfs: a secure and convenient cryptographic file system[C]//Proc of USENIX Annual Technical Conference. San Antonio: USENIX Press, 2003:197-210.
[17]BitLocker drive encryption: technical overview[EB/OL].[2007-01-12].http://technet.microsoft.com/en-us/windowsvista/aa906017.aspx.
[18]CATTANEO G, CATUOGNO L, SORBO A D, et al. The design and implementation of a transparent cryptographic file system for UNIX[C]//Proc of FREENIX Track: USENIX Annual Technical Con-ference. Berkeley: USENIX Association, 2001:199-212.
[19]BLAZE M. A cryptographic file system for UNIX[C]//Proc of the 1st ACM Conference on Communications and Computing Security. New York: ACM Press, 1993:9-16.
[20]SafeNet ProtectDrive[EB/OL].[2007-02-02].http://www.safene-tinc.com/products/data_at_rest_protection/Protectdrive.asp.
[21]TrueCrypt[EB/OL].[2007-03-11].http://www.truecrypt.org.
[22]HASAN R, MYAGMAR S, LEE A J, et al. Toward a threat model for storage systems[C]//Proc of ACM Workshop on Storage Security and Survivability. New York: ACM Press, 2005:94-102.
[23]KHER V, KIM Y. Securing distributed storage: challenges, techniques, and systems[C]//Proc of ACM Workshop on Storage Security and Survivability. New York: ACM Press, 2005: 9-25.
[24]KAMINSKY M, SAVVIDES G, MAZIERES D, et al. Decentralized user authentication in a global file system[C]//Proc of the 19th ACM Symposium on Operating Systems Principles. New York: ACM Press, 2003:60-73.
[25]FU K, KAASHOEKM F, MAZIERES D. Fast and secure distributed read-only file system[J]. ACM Trans on Computer Systems, 2002, 20(1):1-24.
[26]BACKES M, CACHIN C, OPREA A. Lazy revocation in cryptogra-phic file systems[C]//Proc of the 3rd IEEE International Security in Storage Workshop. Washington DC: IEEE Computer Society, 2005:1-11.
[27]SIVATHANU G, WRIGH C P, ZADOK E. Enhancing file system integrity through checksums, FSL-04-04[R]. New York: Stony Brook University, 2004.
[28]WRIGHT C P, DAVE J, ZADOK E. Cryptographic file systems performance: what you don’t know can hurt you[C]//Proc of the 2nd IEEE Security in Storage Workshop. Washington DC: IEEE Computer Society, 2003.
[29]TPM specification[EB/OL].[2007-01-04].http://www.trustedcomputinggroup.org/specs/TPM/.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”