劉安戰(zhàn)
中原工學院 河南 450007
國際組織可信計算組織 TCG推出的產(chǎn)品和規(guī)范提供了基于硬件可信平臺模塊 TPM 的數(shù)據(jù)安全存儲和完整性驗證解決方案。TCG 開發(fā)了一系列可信計算技術(shù)方面的技術(shù)規(guī)范。然而,隨著服務計算的發(fā)展,在網(wǎng)絡(luò)環(huán)境下如何建立可信的安全機制是個需要研究和探討的安全問題。
無論是怎樣的分布式自治網(wǎng)絡(luò)系統(tǒng),在引入可信保護機制時,都存在一個可信硬件的支持問題。在設(shè)計自治網(wǎng)絡(luò)系統(tǒng)的可信保護機制時,考慮到可信硬件 TPM 的支持問題,采用在自治網(wǎng)絡(luò)系統(tǒng)中引用一個可信網(wǎng)絡(luò)節(jié)點,該節(jié)點由鑲嵌有可信的硬件芯片TPM,并安裝有可信保護機制所需要的可信軟件棧TSS。整個自治網(wǎng)絡(luò)系統(tǒng)采用星型的網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。這里稱引入可信節(jié)點的自治網(wǎng)絡(luò)系統(tǒng)為可信自治網(wǎng)絡(luò)系統(tǒng)。
圖1 網(wǎng)絡(luò)拓撲圖
可信中心節(jié)點提供基本功能:(1)對系統(tǒng)內(nèi)部節(jié)點起到基于TPM安全保護功能;(2)對系統(tǒng)外部提供基于TPM可信報告。
可信自治網(wǎng)絡(luò)系統(tǒng)保護應用靜態(tài)依賴配置的完整性也就是檢查應用依賴存儲介質(zhì)上執(zhí)行文件和運行時支持庫等文件的完整性??尚抛灾尉W(wǎng)絡(luò)系統(tǒng)采用基于 TPM 的數(shù)據(jù)保護和簽名,達到硬件級別的可信安全,通過利用 TPM 提供的PCR達到系統(tǒng)狀態(tài)的安全保護。
在可信自治網(wǎng)絡(luò)系統(tǒng)中,系統(tǒng)首先通過可信初始化,把系統(tǒng)中需要保護的應用的完整性基準值I初始化到可信數(shù)據(jù)庫中,在運行時刻通過計算檢測H和I是否相同的方法,判斷應用的靜態(tài)可信性。由于I是作為基準的,因此它的安全性必須得到保障,通過利用可信平臺模塊TPM的數(shù)據(jù)安全功能對保存在可信數(shù)據(jù)庫中基準值I進行簽名保護,確保其安全。
應用靜態(tài)可信保護能夠確保應用對應的進程處在非運行狀態(tài)時的進程代碼和數(shù)據(jù)的完整性,但它不能確保應用對應的進程加載到內(nèi)存后沒有被惡意修改或破壞。TCG的可信鏈機制能夠很好保護加載在本地計算機上的應用是可信的,基本過程首先有一個可信根,由可信根開始,每加載一個新的模塊之前,都首先度量要加載的模塊的完整性,如果檢測通過則運行加載模塊,然后,進行控制權(quán)的轉(zhuǎn)移。這樣一步一步逐漸擴大信任域,使得整個體統(tǒng)處于可信的狀態(tài)。應用的動態(tài)可信保護需要在加載應用前進行靜態(tài)的完整性檢查,系統(tǒng)只允許符合靜態(tài)可信的應用啟動,從而達到系統(tǒng)整個運行環(huán)境的可信。
在可信自治網(wǎng)絡(luò)系統(tǒng)中,可信中心節(jié)點可以利用傳統(tǒng)的可信鏈機制保障可信安全,但是自治網(wǎng)絡(luò)系統(tǒng)即使一個一體的系統(tǒng),同時又是一個分布式的網(wǎng)絡(luò),加載在集群普通節(jié)點上的應用,由于缺少 TPM 的支持,沒有辦法通過傳統(tǒng)的可信啟動方法解決可信安全問題。
對于一個應用A對應的若干個進程P1,P2,…Pm ,通過抽取這些進程運行期間的不變的特征值后,再利用靜態(tài)可信保護機制保護應用A的運行完整性。這里稱應用A對應的進程運行期間的不變數(shù)據(jù)集為A的靜態(tài)抽取集,記作SS(A)。如果應用A對應的進程名,進程ID和啟動時間在整個運行期間是不會改變的,則可以把這些信息進行保護。因此可信自治網(wǎng)絡(luò)系統(tǒng)的保護方式不同于傳統(tǒng)的檢驗-->啟動(阻止啟動)-->檢驗-->啟動(阻止啟動)的過程,而是采用啟動-->度量-->可信存儲-->檢驗-->阻止啟動(無動作)。也就是說,在應用啟動后,采用靜態(tài)抽取的方法抽取出應用進程運行過程中不變的信息進行HASH可信存儲,在可信存儲后的任何時刻可以通過檢驗的方法判斷應用是否可信。
用上述靜態(tài)可信保護的方法對于那些運行中變化頻繁的應用顯然是不適用的,為了彌補其不足,可信自治網(wǎng)絡(luò)系統(tǒng)還采用授權(quán)監(jiān)控的方式達到動態(tài)可信應用保護的目的,如圖2,當系統(tǒng)中的應用運行于非可信中心節(jié)點UtNode時,通過在檢測服務模塊Trdm對運行于UtNode上的應用進行可信控制,Trdm通過白名單WL和黑名單BL的方式控制運行于UtNode上的應用,列于WL中的應用采用由Trdm先檢查后啟動的可信啟動方式保證可信,列于黑名單中的應用(一般是破壞程序病毒木馬等)Trdm通過檢測控制的方式阻止其運行。
為了增加Trdm的安全性,系統(tǒng)使Trdm運行于核心模塊。同時Trdm本身也可以看成是系統(tǒng)中的應用,WL和BL是Trdm的靜態(tài)完整集S(Trdm),可信中心對Trdm采用靜態(tài)抽取方式和靜態(tài)可信保護的方式來保護Trdm的可信。
圖2 可信鏈機制
可信自治網(wǎng)絡(luò)系統(tǒng)的目標是通過引入可信中心為自治網(wǎng)絡(luò)系統(tǒng)提供可信計算的基本特性,包括保護能力、完整性檢測和完整性報告??尚抛灾尉W(wǎng)絡(luò)系統(tǒng)的可信檢測與報告流程圖如圖3所示。
圖3 可信檢測與報告流程圖
圖3中,網(wǎng)絡(luò)用戶是訪問自治系統(tǒng)的外部用戶,通過用戶接口享用服務,服務用戶接口根據(jù)不同的服務有不同的訪問形式,用戶登錄管理負責管理用戶。用戶可享用的服務分布在自治網(wǎng)絡(luò)系統(tǒng)中,可信報告服務是系統(tǒng)中一個特殊的用戶可享用服務,它工作在可信中心節(jié)點上,向用戶提供可信報告信息??尚艛?shù)據(jù)庫位于可信中心,受 TPM 硬件平臺簽名保護。Trdm是檢測和其自身運行于同一節(jié)點上服務的,它主要作用是服務的可信檢測以及和檢測控制服務通信,檢測服務和檢測控制服務構(gòu)成多對一的關(guān)系。檢測控制服務負責系統(tǒng)中服務的檢測值的獲取,更新可信數(shù)據(jù)庫和修改平臺寄存器等作用。
可信數(shù)據(jù)庫中包括了應用的基本信息和配置信息,基本信息包括應用的ID、應用名、應用所在的服務節(jié)點地址、安全級別、完整性狀態(tài)等,配置信息包括應用ID、路徑、類型、依賴文件列表、初始Hash值、檢測Hash值等信息。
可信數(shù)據(jù)庫關(guān)于應用的可信檢測和報告的數(shù)據(jù)表字段設(shè)計如表1、表2所示。
表1 應用基本信息表的字段和說明
表2 應用配置信息表的字段和說明
可信數(shù)據(jù)庫受到TPM的硬件簽名保護,簽名采用RSA算法對數(shù)據(jù)庫中的數(shù)據(jù)用 SHA-1算法計算出的數(shù)字摘要進行非對稱密碼的公鑰加密,公私密鑰對是由可信安全芯片TPM創(chuàng)建,并且只有加載到TPM內(nèi)部方可進行密鑰加密解密運算,簽名保護防止數(shù)據(jù)庫被非法篡改。
系統(tǒng)測試是在以太網(wǎng)構(gòu)成的自治系統(tǒng)節(jié)點之間進行的,節(jié)點采用Linux2.4內(nèi)核系統(tǒng),可信中心通過對運行一個節(jié)點上的的firestarter應用進行完整性檢測報告測試,如表3所示。
表3 可信檢測報告測試
可信數(shù)據(jù)庫存放的主要數(shù)據(jù)之一就是系統(tǒng)中服務的檢測值,即通過SHA1算法得到HASH值。無論是系統(tǒng)可信初始化,還是系統(tǒng)運行過程的 HASH值的更新,都需要進行HASH值的運算,系統(tǒng)的時間效率不僅和計算HASH值的時間有關(guān),而且還和通信速度和通信數(shù)據(jù)量有關(guān),HASH的運算時間和應用配置項多少有關(guān),同時還和配置文件的大小有關(guān)。而通信量主要依賴于應用可信配置的項的多少。表4給出應用在單個配置項及百兆以太網(wǎng)的環(huán)境下,可信數(shù)據(jù)更新和配置文件大小的時間消耗關(guān)系圖。表5給出應用在多個配置項的情況下,單個配置大小都是1K(1024字節(jié))情況下,可信數(shù)據(jù)更新和配置文件大小的時間消耗關(guān)系圖。從測試的結(jié)果分析,配置文件的大小對延遲的影響相對較小,配置項的增多對延遲影響較大。
表4 單配置項下的可信更新時間測試
表5 多項配置項下的可信更新時間測試
本文在可信計算思想上,提出了一個基于 TPM 的可信自治網(wǎng)絡(luò)系統(tǒng)架構(gòu),并闡述了在該架構(gòu)下的具體可信自治網(wǎng)絡(luò)系統(tǒng)中應用的完整性保護機制。闡述了系統(tǒng)的總體設(shè)計和實現(xiàn)方式??尚抛灾尉W(wǎng)絡(luò)系統(tǒng)實現(xiàn)了應用服務可信的啟動控制過程,是從全新的角度研究可信計算體系結(jié)構(gòu)的一種嘗試。在進一步的工作中,將主要針對可信網(wǎng)絡(luò)的可信支撐加以研究。
[1]李曉勇,沈昌祥.一個動態(tài)可信應用傳遞模型的研究.華中科技大學學報.2005.
[2]黃濤,沈昌祥.一種基于可信服務器的可信引導方案[J].武漢大學學報(理學版).2004.
[3]朱璇,鄭緯民,汪東升等.單一系統(tǒng)映象在機群管理中的實現(xiàn).計算機工程與應用.2002.