余祥 熊秋犇 李強(qiáng)
近年來,數(shù)據(jù)泄漏事件越來越多,成本越來越高,2019年全球數(shù)據(jù)泄露的平均成本為392萬美元,平均規(guī)模達(dá)25575條記錄[1],較2018年繼續(xù)穩(wěn)步上升.2017年6月1日正式生效的《中華人民共和國網(wǎng)絡(luò)安全法》[2]明確提出需要加強(qiáng)對關(guān)鍵信息基礎(chǔ)設(shè)施及其數(shù)據(jù)的保護(hù).數(shù)據(jù)安全作為網(wǎng)絡(luò)空間安全的重要組成部分,已經(jīng)成為信息安全管理體系最突出的問題.
目前,關(guān)于數(shù)據(jù)泄漏防護(hù)以被動檢測為主,常見的包括通過訪問控制技術(shù)防止數(shù)據(jù)被非法訪問[3];通過加密技術(shù)對數(shù)據(jù)進(jìn)行加密處理[4];基于數(shù)據(jù)匹配的內(nèi)容監(jiān)控和過濾技術(shù)發(fā)現(xiàn)和阻斷數(shù)據(jù)泄漏[5?6];通過虛擬化技術(shù)的隔離機(jī)制保護(hù)數(shù)據(jù)等等[7].
隨著云計算技術(shù)的快速發(fā)展和網(wǎng)絡(luò)存儲數(shù)據(jù)的海量增加,虛擬化技術(shù)在數(shù)據(jù)泄漏防護(hù)中正發(fā)揮著越來越重要的作用.但在數(shù)據(jù)主動泄漏方面效果并不盡如人意.隨著基于主動免疫的可信計算技術(shù)逐漸興起并快速發(fā)展[8],為數(shù)據(jù)泄漏防護(hù)提供了全新的解決思路[9?10].2011年,TCG發(fā)布了《虛擬可信平臺架構(gòu)規(guī)范》(Virtualized Trusted Platform Architecture Specification[11],規(guī)范了虛擬可信平臺的架構(gòu),使得虛擬可信平臺的構(gòu)建更加規(guī)范和標(biāo)準(zhǔn)化,也為虛擬可信平臺在數(shù)據(jù)泄漏防護(hù)中應(yīng)用提供了一定的技術(shù)基礎(chǔ).可以結(jié)合我國提出的可信計算3.0規(guī)范構(gòu)建適用于我國可信計算標(biāo)準(zhǔn)的虛擬可信平臺并用于數(shù)據(jù)泄漏防護(hù).
基于上述考慮,本文基于KVM虛擬機(jī)和可信計算技術(shù)構(gòu)建虛擬可信平臺,并在此基礎(chǔ)上設(shè)計客戶端和服務(wù)端網(wǎng)絡(luò)數(shù)據(jù)保護(hù)模型,提高網(wǎng)絡(luò)存儲數(shù)據(jù)的安全性.
將可信計算的主動免疫特性和虛擬化的隔離特點相結(jié)合,一方面通過虛擬化技術(shù)在操作系統(tǒng)和軟件應(yīng)用層之間建立隔離和監(jiān)控機(jī)制,對可信計算平臺提供安全支持;另一方面,通過可信計算技術(shù)防止外界對系統(tǒng)的侵害,使虛擬隔離的虛擬域更加安全.
KVM(Kernel-based Virtual Machine),是基于Linux內(nèi)核的開源虛擬化解決方案.其基本思想是Linux內(nèi)核的基礎(chǔ)上添加虛擬機(jī)管理模塊,重用Linux內(nèi)核中已完善和成熟的機(jī)制和模塊,比如進(jìn)程調(diào)度、內(nèi)存管理、IO管理等,將Linux內(nèi)核轉(zhuǎn)化為一個支持運(yùn)行虛擬機(jī)的Hypervisor.KVM本身只提供部分的虛擬化功能(虛擬CPU和內(nèi)存),由經(jīng)過改造后的Qemu(Qemu-kvm)來協(xié)助提供完整的平臺虛擬化功能.KVM架構(gòu)如圖1所示.
圖1 KVM架構(gòu)
相較于KVM,Xen也是Linux常用虛擬化技術(shù).但Xen是一個外部的虛擬機(jī)管理程序,更新時需要重新編譯整個操作系統(tǒng)內(nèi)核,稍有不慎就無法啟動系統(tǒng).而KVM是Linux的一部分,可使用通常的Linux調(diào)度器和內(nèi)存管理,結(jié)構(gòu)更加簡化,出錯可能性更小,且易于使用[12].
可信計算是保障信息系統(tǒng)可預(yù)期性的技術(shù),是在計算的同時進(jìn)行安全防護(hù),使計算結(jié)果與預(yù)期結(jié)果一樣,計算全程可測可控,不受干擾[13].可信計算的基本思想是基于硬件建立物理安全可信任的可信根,然后從可信根開始,依托可信密碼技術(shù)和系統(tǒng)中的安全機(jī)制,通過可信鏈,確保系統(tǒng)從可信根到應(yīng)用每一層面的可信.
可信計算組織(Trusted Computing Group,TCG)提出可信平臺模塊(Trusted Platform Module,TPM)作為受保護(hù)的可信根,針對TCG提出的TPM存在的一些不足,如缺少對可信計算平臺安全的主動控制;不適合大數(shù)據(jù)量的通信;缺少芯片本身物理安全方面的設(shè)計等,我國研制了可信平臺控制模塊[14](trusted platform control module,TPCM).我國提出的可信支持的雙體系結(jié)構(gòu)如圖2所示.
可信計算的核心是通過硬件確??尚鸥陌踩?再通過可信鏈擴(kuò)展到系統(tǒng)的整體安全,其特點是能夠?qū)Π踩{主動免疫.而虛擬化技術(shù)由于邏輯隔離和部署的靈活性,在數(shù)據(jù)泄漏防護(hù)中欠缺的正是主動數(shù)據(jù)泄漏的問題.由此,將上述二者相結(jié)合,充分發(fā)揮二者的特點和優(yōu)勢,對于解決數(shù)據(jù)泄漏的問題是有益的嘗試.
目前,物理機(jī)環(huán)境下的可信密碼模塊已經(jīng)有了較廣泛的應(yīng)用.為解決虛擬機(jī)環(huán)境下的可信密碼支撐功能需求,學(xué)者們提出了虛擬TPM/TCM的概念[15?17],需要具備可信密碼模塊的基本功能,同時又與特定的虛擬機(jī)綁定.因此,可以通過添加vTCM的方式設(shè)計基于KVM的虛擬可信平臺.
圖2 可信支持的雙體系結(jié)構(gòu)
為防止攻擊者直接攻擊主機(jī)或vTCM管理軟件獲取vTCM密鑰,設(shè)計平臺主要遵循以下原則:
1)虛擬可信平臺密碼模塊保密性和可信性最好能沿用物理TCM的大部分結(jié)論,和物理可信平臺密碼模塊相比,不應(yīng)該有很大差距.
2)使用對稱加密對vTCM密鑰進(jìn)行加密,不允許頻繁訪問物理TCM,提高運(yùn)行效率.一般在以下兩種情況下訪問TCM:a)啟動虛擬機(jī)時,訪問TCM獲得密鑰用于數(shù)據(jù)加密;b)關(guān)閉虛擬機(jī)時,訪問TCM將vTCM的密鑰存儲在宿主機(jī).
3)TCM密鑰的安全遷移.在虛擬機(jī)遷移后,確保vTCM可以繼續(xù)使用以及密鑰的安全問題.
基于KVM的虛擬可信平臺體系結(jié)構(gòu)主要由硬件層、內(nèi)核層和虛擬化層組成,如圖3所示.
硬件層包含物理TCM、CPU、內(nèi)存和I/O設(shè)備等.CPU需要支持虛擬化技術(shù),滿足虛擬化的性能和安全要求.內(nèi)核層主要包含KVM模塊,TCM驅(qū)動程序和vTCM生命周期管理機(jī)制等.vTCM生命周期管理機(jī)制,主要負(fù)責(zé)vTCM的密鑰管理、vTCM模塊、資源管理和遷移管理等.
虛擬化層由宿主機(jī)系統(tǒng)和虛擬機(jī)進(jìn)程組成.所有vTCM的加解密密鑰都存儲在宿主機(jī)系統(tǒng)中,密鑰的加密和解密過程都在物理TCM中完成.虛擬機(jī)的進(jìn)程中包含一個特殊的線程,專門負(fù)責(zé)對vTCM的密鑰進(jìn)行實時加解密.
數(shù)據(jù)正逐漸向網(wǎng)絡(luò)化和分布式的存儲方向發(fā)展,網(wǎng)絡(luò)存儲數(shù)據(jù)安全正面臨越來越大的威脅,其威脅主要來自兩個方面,一是數(shù)據(jù)傳輸過程面臨的威脅,二是數(shù)據(jù)存儲面臨的威脅.數(shù)據(jù)傳輸過程的安全可以通過構(gòu)建三元三層可信網(wǎng)絡(luò)[18?19]保證數(shù)據(jù)在傳輸過程中的機(jī)密性和完整性.存儲在系統(tǒng)中的數(shù)據(jù)不僅會因系統(tǒng)和軟件漏洞受到攻擊而面臨威脅,也會因內(nèi)部人員的主動泄漏而面臨威脅.
為保證數(shù)據(jù)在網(wǎng)絡(luò)中的安全存儲,防止數(shù)據(jù)被動或者主動泄漏,基于虛擬可信平臺,分別設(shè)計客戶端和服務(wù)端的網(wǎng)絡(luò)存儲數(shù)據(jù)泄漏防護(hù)模型,確保網(wǎng)絡(luò)存儲數(shù)據(jù)只能被可信網(wǎng)絡(luò)或授權(quán)用戶訪問.
網(wǎng)絡(luò)存儲數(shù)據(jù)泄漏主要是非法用戶訪問以及合法用戶越權(quán)訪問或通過非法行為(如非法復(fù)制等)使數(shù)據(jù)在不安全系統(tǒng)中被查看.因此,需要對訪問數(shù)據(jù)的客戶端進(jìn)行安全防護(hù),防止用戶對數(shù)據(jù)的越權(quán)訪問,從而導(dǎo)致數(shù)據(jù)泄漏.數(shù)據(jù)泄漏途徑如圖4所示.
為確保數(shù)據(jù)安全,使數(shù)據(jù)即使在未授權(quán)的設(shè)備也無法查看,對數(shù)據(jù)進(jìn)行加密是必要的.數(shù)據(jù)在客戶端后加密再進(jìn)行存儲操作,密鑰加密后存儲在客戶端.如此,加密后存儲的數(shù)據(jù)只有在客戶端才能解密正常查看,其他用戶由于沒有解密密鑰而無法正常查看數(shù)據(jù),即使數(shù)據(jù)外泄也無法被讀取.客戶端需要完成加密操作和密鑰的安全管理,客戶端數(shù)據(jù)泄漏防護(hù)模型如圖5所示.
在客戶端數(shù)據(jù)泄漏防護(hù)模型中,使用國產(chǎn)對稱加密算法SM4-4對數(shù)據(jù)進(jìn)行加密處理,為了確保對稱密鑰的存儲安全,通過vTCM提供的非對稱加密算法SM2加密對稱密鑰,解密的私鑰存儲在vTCM中,可以確保私鑰的安全.使用對稱密鑰加密數(shù)據(jù)的同時,將被加密數(shù)據(jù)與可信平臺狀態(tài)綁定,只有當(dāng)可信平臺狀態(tài)與加密時的狀態(tài)相同,才能得到對稱密鑰,用戶才可以使用對稱密鑰解密被加密的數(shù)據(jù).
根據(jù)圖5所示客戶端數(shù)據(jù)泄漏防護(hù)模型,數(shù)據(jù)加密存儲的主要過程如下:
1)基于vTCM接口函數(shù)獲取一個用于加密的隨機(jī)數(shù)K,并將其作為對稱密鑰用于加密數(shù)據(jù);
2)基于對稱加密算法E對數(shù)據(jù)M進(jìn)行加密操作得到加密數(shù)據(jù)C1,C1=EK(M),其中,K為對稱密鑰;
圖3 虛擬可信平臺體系結(jié)構(gòu)
圖4 數(shù)據(jù)泄漏途徑
圖5 客戶端數(shù)據(jù)泄漏防護(hù)模型
3)基于vTCM提供的非對稱加密算法EKpub?s對對稱密鑰 K 進(jìn)行加密,C2=EKpub?s(K∪VPCR?x),其中,Kpub?s是非對稱密鑰對的公鑰,VPCR?x是可信平臺一組PCR值,反映可信平臺的狀態(tài);
4)將加密數(shù)據(jù)C1保存到網(wǎng)絡(luò)存儲服務(wù)器中.
客戶端從網(wǎng)絡(luò)存儲數(shù)據(jù)庫讀取數(shù)據(jù)的主要過程如下:
1)從網(wǎng)絡(luò)存儲服務(wù)器讀取加密數(shù)據(jù)C1;
2)使用vTCM 中的私鑰 Kpri?s進(jìn)行密鑰解密K=DKpri?s(C2)kVPCR?x,其中,DKpri?s是解密算法,如果發(fā)現(xiàn)VPCR?x與加密時的值不同則說明平臺已不安全,停止解密;
3)得到對稱密鑰K后,通過其解密數(shù)據(jù),M=DK(C1).
將非對稱加密和對稱加密算法結(jié)合起來使用可以更好地提高加密效果.對稱加密密鑰可以通過vTCM的隨機(jī)數(shù)產(chǎn)生器生成,也可以由用戶選擇其他可信密碼模塊提供的算法生成.非對稱加密公私鑰對由vTCM調(diào)用SM4引擎生成.將對稱密鑰和PCR值通過密封函數(shù)密封,可以把密鑰和可信平臺狀態(tài)綁定,不僅需要得到私鑰,并且PCR值加解密前后一致才能得到對稱密鑰,充分發(fā)揮了可信平臺的優(yōu)勢.
僅僅是在客戶端對數(shù)據(jù)進(jìn)行加密處理后存儲在網(wǎng)絡(luò)中對數(shù)據(jù)安全而言是不夠的,而且對用戶操作有一定要求.數(shù)據(jù)長期存儲在網(wǎng)絡(luò)服務(wù)器中,如果不對網(wǎng)絡(luò)服務(wù)器采取必要的數(shù)據(jù)保護(hù)措施,數(shù)據(jù)泄漏風(fēng)險依然不小.因此,有必要對網(wǎng)絡(luò)服務(wù)器采取保護(hù)機(jī)制,確保存儲在網(wǎng)絡(luò)服務(wù)器中數(shù)據(jù)的安全性.
訪問控制是網(wǎng)絡(luò)存儲數(shù)據(jù)保護(hù)的常見方法.用戶通過身份標(biāo)識和口令得到網(wǎng)絡(luò)存儲數(shù)據(jù)的使用權(quán)并依據(jù)身份類別享有不同的權(quán)限.一旦身份標(biāo)識和口令被截獲或破解,則用戶數(shù)據(jù)將面臨較大安全威脅.不僅如此,一旦服務(wù)器被攻擊導(dǎo)致防御機(jī)制失效或被繞過,其中存儲的數(shù)據(jù)將面臨泄漏的巨大風(fēng)險.單純依靠一種方法并不能保證數(shù)據(jù)安全,多管齊下是提高數(shù)據(jù)安全的有效手段.通過虛擬可信平臺對數(shù)據(jù)進(jìn)行加密,可以進(jìn)一步提高數(shù)據(jù)的安全性.網(wǎng)絡(luò)存儲服務(wù)端的數(shù)據(jù)保護(hù)模型如圖6所示.
網(wǎng)絡(luò)存儲服務(wù)端的數(shù)據(jù)保護(hù)模型由用戶端、服務(wù)器端和網(wǎng)絡(luò)存儲設(shè)備組成.其中,用戶端是數(shù)據(jù)的來源地和所有者.服務(wù)器端包括虛擬數(shù)據(jù)端和虛擬密鑰端,其中,虛擬數(shù)據(jù)端負(fù)責(zé)數(shù)據(jù)和對稱密鑰的加密操作,虛擬密鑰端負(fù)責(zé)對稱密鑰的解密操作.虛擬數(shù)據(jù)端和虛擬密鑰端的vTCM分別存放密鑰的公鑰部分和私鑰部分.網(wǎng)絡(luò)存儲設(shè)備包括兩部分,分別存儲加密后的數(shù)據(jù)和加密密鑰.
根據(jù)圖6所示服務(wù)端數(shù)據(jù)泄漏防護(hù)模型,數(shù)據(jù)保護(hù)的主要過程如下:
1)用戶端將數(shù)據(jù)M傳輸?shù)骄W(wǎng)絡(luò)存儲服務(wù)器的虛擬數(shù)據(jù)端;
2)在虛擬數(shù)據(jù)端通過vTCM接口函數(shù)生成對稱密鑰K,K=Random(),用密鑰K對用戶上傳的數(shù)據(jù)M進(jìn)行加密處理,C1=EK(M),數(shù)據(jù)C1存儲在網(wǎng)絡(luò)存儲設(shè)備(數(shù)據(jù))中;
3)使用虛擬數(shù)據(jù)端vTCM中的公鑰Kpub?s加密對稱密鑰K,并綁定平臺狀態(tài),C2=EKpub?s(K);
4)將加密后的密鑰C2保存到網(wǎng)絡(luò)存儲設(shè)備(密鑰)中;
5)用戶訪問數(shù)據(jù)時,虛擬密鑰端從網(wǎng)絡(luò)存儲設(shè)備(密鑰)中讀取加密后的對稱密鑰C2;
圖6 服務(wù)端數(shù)據(jù)泄漏防護(hù)模型
6)通過vTCM中的私鑰 Kpri?s解密,得到對稱密鑰 K=DKpri?s(C2);
7)虛擬數(shù)據(jù)端從網(wǎng)絡(luò)存儲設(shè)備(數(shù)據(jù))中讀取加密后的用戶數(shù)據(jù)C1;
8)使用在虛擬密鑰端解密后的對稱密鑰K對數(shù)據(jù)進(jìn)行解密,M=DK(C2),將數(shù)據(jù)M傳輸?shù)接脩舳?
本模型中的密鑰由可信密碼模塊提供安全保護(hù),加密對稱密鑰的公私鑰對是可遷移密鑰,公鑰和私鑰分別存儲在不同的虛擬域vTCM中分開管理,進(jìn)一步提高存儲數(shù)據(jù)的安全性.也正因如此,對稱密鑰加密時沒有和平臺狀態(tài)綁定,因為加密和解密分別在不同的可信平臺完成,如果綁定則解密時會因為平臺狀態(tài)不同而無法進(jìn)行密鑰解密.但是,基于密封原理對指定文件進(jìn)行雜湊,并將結(jié)果與密鑰一起密封.需要進(jìn)行密鑰解密時,可以將特定文件拷貝到虛擬密鑰端,類似處理即可得到解密后的密鑰.這樣通過指定文件為密鑰的解密又增加了一道鎖,可以進(jìn)一步提高密鑰安全.
虛擬機(jī)在遷移過程中會使密鑰脫離物理TCM的保護(hù),從而可能給密鑰帶來風(fēng)險.為此,需要設(shè)置專門的密鑰管理機(jī)制進(jìn)行密鑰管理,使一個虛擬客戶端專門負(fù)責(zé)密鑰管理,負(fù)責(zé)生成公私鑰對,并將其發(fā)送給虛擬數(shù)據(jù)端,加解密數(shù)據(jù)的對稱密鑰都由密鑰管理的虛擬客戶端進(jìn)行管理,解密數(shù)據(jù)需要先從其中取出密鑰,此時取出的密鑰是已加密的對稱密鑰,進(jìn)行私鑰解密后發(fā)送給虛擬數(shù)據(jù)端,用于解密數(shù)據(jù),從而確保私鑰的安全.
網(wǎng)絡(luò)中存儲的數(shù)據(jù)越來越多,其安全的重要性也與日俱增.本文在分析網(wǎng)絡(luò)存儲數(shù)據(jù)安全問題的基礎(chǔ)上,將虛擬化技術(shù)和可信計算技術(shù)相結(jié)合,構(gòu)建虛擬可信平臺,提出了客戶端數(shù)據(jù)泄漏防護(hù)模型和服務(wù)端數(shù)據(jù)泄漏防護(hù)模型,充分利用可信密碼模塊提供的密鑰保護(hù)和虛擬化技術(shù)的虛擬域相互隔離的特點,在遭受網(wǎng)絡(luò)攻擊的情況下保護(hù)數(shù)據(jù)安全,防止數(shù)據(jù)非法泄漏.隨著物聯(lián)網(wǎng)和霧計算的發(fā)展,網(wǎng)絡(luò)規(guī)模也在不斷擴(kuò)大,數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的數(shù)據(jù)泄漏防護(hù)仍需進(jìn)一步研究.