黃秀文
(武漢紡織大學 信息技術中心,湖北 武漢 430074)
基于可信計算的遠程證明的研究
黃秀文
(武漢紡織大學 信息技術中心,湖北 武漢 430074)
可信計算作為一種信息系統安全新技術,為克服單純依靠軟件安全防范方式的不足提供了新的思路,在平臺上通過軟硬件結合的方式構建可信計算環境。遠程證明是可信計算平臺的重要功能之一,是發出證明請求的一方確認遠程平臺的身份和平臺狀態配置信息的過程。本文圍繞可信計算的遠程認證進行研究,從可信平臺模塊、可信軟件棧及其在實際中的應用進行探討、分析和改進,為基于可信計算的遠程認證的設計和實現提供了新的途徑。
信息安全;可信計算;可信計算平臺;可信軟件棧;遠程證明
隨著計算機技術的發展,信息安全技術也在不斷變化和發展中,傳統的安全技術如防火墻、殺毒軟件、入侵檢測己不能保證信息的安全。面對各種各樣的惡意攻擊和病毒,雖然通過加大病毒庫,砌高防火墻,增加入侵檢測的復雜度,但依然有層出不窮的問題出現,尤其對于在電腦硬盤中駐存的一些惡意程序運行更顯得無能為力,這些惡意程序破壞系統,在網絡肆意傳播。整個信息安全狀況令人擔憂,誤報率多、安全投入增加、維護與管理成本高且更加復雜,使用信息系統的效率降低。尤其對一些新的病毒攻擊,入侵檢測毫無防御能力。
可信計算 TC ( Trusted Computing)通過在平臺內部引入可信硬件設備作為可信根,采用軟硬件相結合的技術,建立一條信任鏈,一級認證一級,一級信任一級,把信任關系擴大到整個計算機系統,這樣就能確保計算機系統的可信。遠程證明是指一個節點將自己平臺的某些信息使用約定的格式和協議向另一個節點報告,使得另一節點能夠獲得這些信息,并判定該平臺的可信狀態。其目的是保證兩個節點的身份和安全屬性符合對一方的要求,其平臺狀態是可靠的。而在可信計算平臺上的“遠程證明”是指在平臺上使用身份認證密鑰AIK對當前存儲的PCR值進行簽名,然后報告給遠程挑戰者其平臺的狀態,是建立在可信度量、可信報告基礎之上的技術。
可信就是一個主體可以信賴一個客體,可信計算組織(TCG)用實體行為的預期性來定義可信:如果一個實體的行為是以預期的方式符合預期的目標,則該實體是可信的。這個定義中,信任是一種對設備有信心的期望,認為它的執行會符合主體對它的預期,能夠實現預定的目標。
可信計算是一種信息系統安全新技術,包括可信硬件、可信軟件、可信網絡和可信計算應用等諸多方面??尚庞嬎愕乃枷朐从谌祟惿鐣?,是把人類社會成功的管理經驗用于計算機信息系統和網絡空間,以確保計算機信息系統和網絡空間的安全可信。TCG認為,可信計算的總體目標是提高計算機系統的安全性?,F階段的主要目標是確保系統數據的完整性、數據的安全存儲和平臺可信性的遠程證明。
可信計算的基本思想是:
(1)首先在計算機系統中建立一個信任根。信任根的可信性由物理安全、技術安全與管理安全共同確保。
(2)再建立一條信任鏈。從信任根開始到硬件平臺,到操作系統,一級測量認證一級,一級信任一級,把這種信任擴展到整個計算機系統,從而確保整個計算機系統的可信。
在TCG的架構規范中,可信計算平臺的定義為:“A Trusted Computing Platform is a computing platform that can be trusted to report its properties”(可信計算平臺就是能夠讓人信賴地報告自己屬性的計算平臺)。它不僅指能提供可信計算的硬件體系,還需要在這之上實現軟件接口。目前,可信計算平臺架構從上到下分別由應用軟件、TSS和TPM構成。
可信平臺架構如圖1所示:

圖1 可信平臺架構
可信計算平臺至少要提供下列三個功能:保護功能、完整性度量功能與完整性報告功能,與這三個功能緊密相關的就是三個信任根:可信存儲根(Root of Trust for Storage,RTS)、可信度量根(Root of Trust for Measurement,RTM)與可信報告根(Root of Trust for Reporting,RTR)。
2.1可信平臺模塊TPM
在可信計算技術體系中,最核心的就是可信平臺模塊TPM(Trusted Platform Module)芯片,它是一個內置在系統中的硬件模塊。TPM可以看做是一個完整的計算機,包括處理器,協處理器。存儲單元和操作系統等。TPM是可信根的基礎,具備四個主要功能:對稱/非對稱加密、安全存儲、完整性度量和簽名認證。TPM安全芯片可以進行范圍較廣的加密。除了能進行傳統的開機加密以及對硬盤進行加密外,還能對系統登錄、應用軟件登錄進行加密。比如目前咱們常用的 MSN、QQ、網游以及網上銀行的登錄信息和密碼,都可以通過TPM加密后再進行傳輸,這樣就不用擔心信息和密碼被人竊取。
TPM的架構如圖2所示:

圖2 TPM架構
TPM提供安全存儲功能,能夠對密鑰提供非常好的保護,密鑰的生成和處理都在TPM內部完成。TPM內部的非易失性存儲器中可以存放少量的密鑰。存儲根密鑰(Storage Root Key,SRK)和背書密鑰(Endorsement Key,EK)就存儲于非易失性存儲器中??尚糯鎯Ωㄟ^SRK構建一個密鑰層次架構,中間節點為存儲密鑰,葉子節點為任意需要加密的數據。由于TPM存儲容量有限,因此一般在磁盤上構建一個持久存儲區(Persist Storage,PS),使用SRK進行加密保護,這樣受保護的數據可以進行擴充。
2.2可信軟件棧TSS
在可信計算的體系結構中,處于上層應用程序和底層 TPM之間的是可信軟件棧 TSS(TCG Software Stack),無論什么樣的操作系統和系統平臺,都不會影響平臺與TSS模塊的接口關系,TSS獨立于平臺。其設計的目標為:為應用程序訪問TPM提供接口,同時實施對TPM的管理。
其系統架構圖如圖3所示:

圖3 可信軟件棧架構圖
從圖3中我們可以看出,TSS被劃分為四個功能層次:驅動層TDD(TPM Device Driver)、設備驅動庫層TDDL(TPM Device Driver Library)、核心服務層TCS(TSS Core Services)和服務提供層TSP(Trusted Service Provider),通過接口進行調用和封裝。TSS為應用程序使用TPM的功能提供了豐富的接口,把所有TPM的命令都封裝起來。
越來越多的與互聯網相關的應用需要用戶借助遠程主機運行的特定服務程序來完成,如網上銀行等。用戶通過網絡與遠程主機的服務程序交互之前,如果無法確信遠程主機和服務程序沒有被非法入侵,那么可能因為使用了該服務而造成損失。利用 TPM 芯片和 TSS 軟件棧,可以構建一個通用的可信平臺。以TPM 作為可信度量根、可信存儲根和可信報告根,可信平臺具有這種潛能:可以向外來用戶證實本平臺所處的狀態,包括硬件配置和軟件的狀態,以讓外來用戶判斷本平臺是否出于一個安全的狀態。TCG 組織其規范將這種潛能定義為遠程證明(Remote Attestation),并描述了一個簡單的遠程證明機制。
3.1遠程證明的原理
簡單遠程證明過程的完成要經歷兩個階段:可信度量與可信報告??尚哦攘渴瞧脚_組件完整性度量值的計算與存儲,可信報告是將平臺組件的度量值報告給外來用戶,然后用戶通過驗證度量值來判斷平臺和應用程序是否被篡改。
3.1.1可信度量
平臺可信度量是指通過一定的方法按步驟度量并報告平臺的狀態。從系統加電啟動,一直到最后應用程序每一步都需要度量,整個啟動序列都遵循“先度量,再執行”的原則。當前階段的代碼負責度量下一階段即將要執行的代碼,然后再將度量值擴展到PCR中,這樣一級信任一級,以此保證平臺的可信,保證環境的安全。當然任何信任關系中總是存在某種基礎性的假設,必然存在默認環節的信任關系的基石。在一個信任關系依次傳遞的鏈條中,源頭在啟動的過程中是被假設為安全可信的,不會受到度量。
3.1.2可信報告
在系統進行可信度量時,除了度量結果要在PCR中進行擴展之外,還將具體每一步的度量操作、中間狀態和度量結果保存下來,可以作為系統可信度量的詳細步驟進行參考,存儲度量日志(Storage Measurement Log,SML)用于存儲這些信息。由于PCR被認為是不可篡改的,并且它所保存的值可以通過SML重新計算出來,因此SML一般不需要安全保護。
可信計算平臺使用PCR的值來生成完整性報告。由于PCR的值保存在TPM中,并且在報告生成的過程中要防止被篡改,需要設計一套密碼協議保證PCR值的秘密性、真實性和完整性,同時還要考慮平臺配置的隱私性。TCG提出解決方案是使用平臺的匿名身份證書,既保證該信息來源于一個可信計算平臺,又保證該平臺的匿名性。同時,使用簽名機制保證信息的完整性和真實性。
3.2遠程證明的協議
遠程證明是對平臺做全面的度量,向遠程通信方證明自身運行環境是可信的。它是一個綜合完整性校驗和身份鑒別的過程,同時向驗證者提供了一份可信的平臺狀態報告。TPM是報告的可信根,能夠保證對當前完整性度量值作可信的報告。遠程證明是通過典型的“挑戰——應答”協議來實現的。

圖4 遠程證明協議
遠程證明的協議如圖4所示:
一個平臺(挑戰者)向另一個平臺(證明者)發送一個挑戰證明的消息和一個隨機數(nonce),要求獲得一個或多個PCR值以便對證明者的平臺狀態進行驗證。每個TPM擁有唯一的背書密鑰(Endorsement Key, EK),用來唯一標識可信平臺的身份。對于可信平臺的身份認證,在需要個人隱私來證明其身份的同時還要盡可能的少暴露個人隱私。所以TCG規定EK不用于身份認證,而使用EK生成并通過隱私CA(Certificate Authority)簽發的AIK證書來完成身份認證。證明者利用AIK對挑戰者指定的PCR值進行簽名后,附加上對應的度量日志(SML)表項和AIK證書一起發送給挑戰者。挑戰者對證明值進行驗證,驗證過程包括根據度量日志重新計算哈希值、對AIK證書進行驗證,以及將簽名值和期望值進行匹配三個步驟。經過這三個步驟就可得出遠程證明的結果,即證明者是否是可信的。
3.3遠程證明總體設計
此次遠程證明大概分為以下幾個部分:
(1)度量請求。首先,發送度量請求,客戶端接到度量請求后,通過webservice向服務器發送隨機數請求;

圖5 遠程證明系統架構圖
(2)服務器接到請求后,生成隨機數,并返回給客戶端節點;客戶端節點得到隨機數后,提取度量模塊的PCR值,生成完整性報告并發送給服務器;
(3)服務器接收到客戶端生成的完整性報告(完整性報告report包括PCR值、隨機數等)后,對report進行解析。
具體架構如圖5所示。

圖6 遠程證明流程圖
遠程證明的過程如圖6所示。
(1)服務器觸發客戶端對平臺進行完整性驗證??蛻舳吮O聽,服務器發出連接請求,建立套接字連接。
(2)服務器產生一個隨機數,指定要求的PCR編號,發送給客戶端。
(3)平臺度量值存在PCR里,度量日志寫入文件里,客戶端讀指定PCR獲取度量值,讀日志文件獲取度量日志。
(4)配備TPM的客戶端載入AIK,將度量值和隨機數串聯,用SHA1算法求出哈希值,再用AIK私鑰對其進行簽名,形成完整性報告,報告包括隨機數、度量值、哈希值、簽名值、AIK證書等。
(5)最后將完整性報告和度量日志一起發送給服務器。
(6)服務器驗證簽名、檢查隨機數,通過比較簽名值和期望值判斷平臺是否可信。
在實現用戶身份驗證的過程中,系統利用 MD5信息摘要算法對用戶口令進行加密以防止用戶口令被竊取,用以加強保證系統的安全性。
首先獲得MD5摘要算法的 MessageDigest 對象,然后使用指定的字節更新摘要,digest()最后確定返回md5 hash值,返回值為8為字符串,因為md5 hash值是16位的hex值,實際上就是8位的字符。最后把密文轉換成十六進制的字符串形式返回。
用戶身份認證就是通過搜索用戶信息表,對用戶登錄的 ID和密碼進行鑒別,從而判定該用戶合法還是非法。
隨著信息技術的發展,可信化成為信息安全技術發展的趨勢之一,信息安全逐漸成為獲得可信環境和可信計算的手段,除了重點發展認證技術外,計算機安全也已經從傳統的系統保護階段過渡到以可信計算為下一步發展目標的階段。尤其在分布式計算、云計算環境下,研究適用于平臺間的遠程證明需求會越來越多,因此,有必要深入研究可信計算中的遠程證明技術。本文圍繞可信計算的遠程認證進行研究,從可信平臺模塊、可信軟件棧、及其在實際中的應用進行探討、分析和改進,為基于可信計算的遠程認證的設計和實現提供了新的途徑。
[1] 李昊,馮登國. 可信密碼模塊符合性測試方法與實施[J]. 武漢大學學報(理學版), 2009, 55: 31-34.
[2] 崔奇,石文昌. 一種通過應用程序驗證TPM標準符合性的方法[J]. 中國科學院研究生院學報,2008, 25(5): 649-656.
[3] 張煥國,嚴飛,傅建明,等. 可信計算平臺測評理論與關鍵技術研究[J]. 中國科學::F輯信息科學,2010, 40(2): 167-188.
[4] 朱智強,余發江,張煥國,等. 一種改進的可信計算平臺密碼機制[J]. 武漢大學學報(理學版), 2009, 55(1): 011-016.
[5] 詹靜,張煥國,徐士偉,等. 基于狀態機理論的可信平臺模塊測試研究[J]. 武漢大學學報(信息學版), 2008, 33(10): 1067-1069.
[6] 陳小峰,馮登國. 可信密碼模塊的模型檢測分析[J]. 通信學報,2010, 31(1): 59-65.
[7] TNCwebsite. [EB/OL]. http://www.trustedcomputinggroup.org/developers/trusted network cone ect. [2011-11-17].
[8] Trusted Computing Group. TCG Specification Architecture Overview[S]. USA: Trusted Computing Group, 2007. 5-40.
Study on Remote Attestation Based on Trusted Computing
HUANG Xiu-wen
(Modern Education Centre, Wuhan Textile University, Wuhan Hubei 430074, China)
As a new technology of the information system security, Trusted Computing provides a new method to overcome the shortage of solely relying on software security mode. It builds Trusted Computing Environment through a combination of hardware and software on this platform. Remote attestation is one of the critical functions, which is a process of verifying the identity and configuration information of a remote platform by attestation requester. The remote attestation based on trusted computing is discussed and analyzed from TPM, TSS and its application in this paper. The principal achievements of the paper present a new approach for the design and implementation of trusted remote attestation.
Information Security; Trusted Computing; Trusted Computing Platform; TCG Software Stack; Remote Attestation
TP309
A
2095-414X(2015)06-0084-06
黃秀文(1967-), 女,工程師,研究方向:計算機信息管理系統.