劉安戰
中原工學院 河南 450007
國際組織可信計算組織 TCG推出的產品和規范提供了基于硬件可信平臺模塊 TPM 的數據安全存儲和完整性驗證解決方案。TCG 開發了一系列可信計算技術方面的技術規范。然而,隨著服務計算的發展,在網絡環境下如何建立可信的安全機制是個需要研究和探討的安全問題。
無論是怎樣的分布式自治網絡系統,在引入可信保護機制時,都存在一個可信硬件的支持問題。在設計自治網絡系統的可信保護機制時,考慮到可信硬件 TPM 的支持問題,采用在自治網絡系統中引用一個可信網絡節點,該節點由鑲嵌有可信的硬件芯片TPM,并安裝有可信保護機制所需要的可信軟件棧TSS。整個自治網絡系統采用星型的網絡拓撲結構如圖1所示。這里稱引入可信節點的自治網絡系統為可信自治網絡系統。

圖1 網絡拓撲圖
可信中心節點提供基本功能:(1)對系統內部節點起到基于TPM安全保護功能;(2)對系統外部提供基于TPM可信報告。
可信自治網絡系統保護應用靜態依賴配置的完整性也就是檢查應用依賴存儲介質上執行文件和運行時支持庫等文件的完整性。可信自治網絡系統采用基于 TPM 的數據保護和簽名,達到硬件級別的可信安全,通過利用 TPM 提供的PCR達到系統狀態的安全保護。
在可信自治網絡系統中,系統首先通過可信初始化,把系統中需要保護的應用的完整性基準值I初始化到可信數據庫中,在運行時刻通過計算檢測H和I是否相同的方法,判斷應用的靜態可信性。由于I是作為基準的,因此它的安全性必須得到保障,通過利用可信平臺模塊TPM的數據安全功能對保存在可信數據庫中基準值I進行簽名保護,確保其安全。
應用靜態可信保護能夠確保應用對應的進程處在非運行狀態時的進程代碼和數據的完整性,但它不能確保應用對應的進程加載到內存后沒有被惡意修改或破壞。TCG的可信鏈機制能夠很好保護加載在本地計算機上的應用是可信的,基本過程首先有一個可信根,由可信根開始,每加載一個新的模塊之前,都首先度量要加載的模塊的完整性,如果檢測通過則運行加載模塊,然后,進行控制權的轉移。這樣一步一步逐漸擴大信任域,使得整個體統處于可信的狀態。應用的動態可信保護需要在加載應用前進行靜態的完整性檢查,系統只允許符合靜態可信的應用啟動,從而達到系統整個運行環境的可信。
在可信自治網絡系統中,可信中心節點可以利用傳統的可信鏈機制保障可信安全,但是自治網絡系統即使一個一體的系統,同時又是一個分布式的網絡,加載在集群普通節點上的應用,由于缺少 TPM 的支持,沒有辦法通過傳統的可信啟動方法解決可信安全問題。
對于一個應用A對應的若干個進程P1,P2,…Pm ,通過抽取這些進程運行期間的不變的特征值后,再利用靜態可信保護機制保護應用A的運行完整性。這里稱應用A對應的進程運行期間的不變數據集為A的靜態抽取集,記作SS(A)。如果應用A對應的進程名,進程ID和啟動時間在整個運行期間是不會改變的,則可以把這些信息進行保護。因此可信自治網絡系統的保護方式不同于傳統的檢驗-->啟動(阻止啟動)-->檢驗-->啟動(阻止啟動)的過程,而是采用啟動-->度量-->可信存儲-->檢驗-->阻止啟動(無動作)。也就是說,在應用啟動后,采用靜態抽取的方法抽取出應用進程運行過程中不變的信息進行HASH可信存儲,在可信存儲后的任何時刻可以通過檢驗的方法判斷應用是否可信。
用上述靜態可信保護的方法對于那些運行中變化頻繁的應用顯然是不適用的,為了彌補其不足,可信自治網絡系統還采用授權監控的方式達到動態可信應用保護的目的,如圖2,當系統中的應用運行于非可信中心節點UtNode時,通過在檢測服務模塊Trdm對運行于UtNode上的應用進行可信控制,Trdm通過白名單WL和黑名單BL的方式控制運行于UtNode上的應用,列于WL中的應用采用由Trdm先檢查后啟動的可信啟動方式保證可信,列于黑名單中的應用(一般是破壞程序病毒木馬等)Trdm通過檢測控制的方式阻止其運行。
為了增加Trdm的安全性,系統使Trdm運行于核心模塊。同時Trdm本身也可以看成是系統中的應用,WL和BL是Trdm的靜態完整集S(Trdm),可信中心對Trdm采用靜態抽取方式和靜態可信保護的方式來保護Trdm的可信。

圖2 可信鏈機制
可信自治網絡系統的目標是通過引入可信中心為自治網絡系統提供可信計算的基本特性,包括保護能力、完整性檢測和完整性報告。可信自治網絡系統的可信檢測與報告流程圖如圖3所示。

圖3 可信檢測與報告流程圖
圖3中,網絡用戶是訪問自治系統的外部用戶,通過用戶接口享用服務,服務用戶接口根據不同的服務有不同的訪問形式,用戶登錄管理負責管理用戶。用戶可享用的服務分布在自治網絡系統中,可信報告服務是系統中一個特殊的用戶可享用服務,它工作在可信中心節點上,向用戶提供可信報告信息。可信數據庫位于可信中心,受 TPM 硬件平臺簽名保護。Trdm是檢測和其自身運行于同一節點上服務的,它主要作用是服務的可信檢測以及和檢測控制服務通信,檢測服務和檢測控制服務構成多對一的關系。檢測控制服務負責系統中服務的檢測值的獲取,更新可信數據庫和修改平臺寄存器等作用。
可信數據庫中包括了應用的基本信息和配置信息,基本信息包括應用的ID、應用名、應用所在的服務節點地址、安全級別、完整性狀態等,配置信息包括應用ID、路徑、類型、依賴文件列表、初始Hash值、檢測Hash值等信息。
可信數據庫關于應用的可信檢測和報告的數據表字段設計如表1、表2所示。

表1 應用基本信息表的字段和說明

表2 應用配置信息表的字段和說明
可信數據庫受到TPM的硬件簽名保護,簽名采用RSA算法對數據庫中的數據用 SHA-1算法計算出的數字摘要進行非對稱密碼的公鑰加密,公私密鑰對是由可信安全芯片TPM創建,并且只有加載到TPM內部方可進行密鑰加密解密運算,簽名保護防止數據庫被非法篡改。
系統測試是在以太網構成的自治系統節點之間進行的,節點采用Linux2.4內核系統,可信中心通過對運行一個節點上的的firestarter應用進行完整性檢測報告測試,如表3所示。

表3 可信檢測報告測試
可信數據庫存放的主要數據之一就是系統中服務的檢測值,即通過SHA1算法得到HASH值。無論是系統可信初始化,還是系統運行過程的 HASH值的更新,都需要進行HASH值的運算,系統的時間效率不僅和計算HASH值的時間有關,而且還和通信速度和通信數據量有關,HASH的運算時間和應用配置項多少有關,同時還和配置文件的大小有關。而通信量主要依賴于應用可信配置的項的多少。表4給出應用在單個配置項及百兆以太網的環境下,可信數據更新和配置文件大小的時間消耗關系圖。表5給出應用在多個配置項的情況下,單個配置大小都是1K(1024字節)情況下,可信數據更新和配置文件大小的時間消耗關系圖。從測試的結果分析,配置文件的大小對延遲的影響相對較小,配置項的增多對延遲影響較大。

表4 單配置項下的可信更新時間測試

表5 多項配置項下的可信更新時間測試
本文在可信計算思想上,提出了一個基于 TPM 的可信自治網絡系統架構,并闡述了在該架構下的具體可信自治網絡系統中應用的完整性保護機制。闡述了系統的總體設計和實現方式。可信自治網絡系統實現了應用服務可信的啟動控制過程,是從全新的角度研究可信計算體系結構的一種嘗試。在進一步的工作中,將主要針對可信網絡的可信支撐加以研究。
[1]李曉勇,沈昌祥.一個動態可信應用傳遞模型的研究.華中科技大學學報.2005.
[2]黃濤,沈昌祥.一種基于可信服務器的可信引導方案[J].武漢大學學報(理學版).2004.
[3]朱璇,鄭緯民,汪東升等.單一系統映象在機群管理中的實現.計算機工程與應用.2002.