韓春林, 葉里莎
(成都三零盛安信息系統(tǒng)有限公司,四川 成都 610041)
可信計算平臺的興起,對它的研究越來越多,對基于可信計算平臺的認證機制的研究是必不可少的。網(wǎng)絡(luò)中的認證技術(shù)有很多,其中PKI證書認證技術(shù)就是較成熟的一種方式?;诳尚庞嬎闫脚_的認證如果利用PKI技術(shù)來實現(xiàn),一方面會彌補 PKI體系中不能保證加密前的數(shù)據(jù)是安全的這一缺陷,另一方面PKI為平臺認證提供證書支持,CA會成為網(wǎng)絡(luò)中可信的第三方。
身份認證是可信計算平臺的基本功能之一。其中,平臺必須能夠向外部實體認證自己,讓其他實體以確信系統(tǒng)是正確可信的。PKI機制為可信計算平臺的認證提供了有力支撐,數(shù)字證書可以用來證實可信計算平臺的身份。PKI提供了一種以證書為基礎(chǔ)的認證方案,但是不能保證交換的數(shù)據(jù)是可靠、未被篡改的,而可信計算平臺能從終端保證數(shù)據(jù)的可信,是對PKI認證的安全擴展,現(xiàn)提出了基于可信計算平臺的認證機制的設(shè)計方法。
要解決計算機終端安全,就要從硬件和底層軟件抓起,從源頭上保證系統(tǒng)的安全[1]。由此就出現(xiàn)了可信計算平臺技術(shù),它是一種從終端解決安全問題的總體方案。面對網(wǎng)絡(luò)通信,必須要將這種終端的可信擴展到網(wǎng)絡(luò)中,以實現(xiàn)可信網(wǎng)絡(luò)??尚庞嬎闫脚_作為在網(wǎng)絡(luò)中的一個實體,如何向通信對方證實自己的身份,同時告知通信對方當前平臺的狀態(tài),是這種信任在網(wǎng)絡(luò)中傳輸?shù)钠鹗键c。因此而產(chǎn)生的可信計算的課題意在從終端上解決安全問題。
“可信計算”的概念在世界范圍內(nèi)提出是在 1999年由TCG組織提出,主要思路是在PC機硬件平臺上引入安全芯片架構(gòu),通過提供的安全特性來提高終端系統(tǒng)的安全性[2]??尚庞嬎闫脚_基于可信平臺模塊(TPM)[3],以密碼技術(shù)為支持、安全操作系統(tǒng)為核心,如圖1所示。
圖1 可信計算平臺組成
一般來說,可以將可信計算平臺大致劃分成三個模塊:
① 由嵌入主板上的 TPM 和可信 BIOS組成的可信硬件層;
② 基于安全增強操作系統(tǒng)的可信基礎(chǔ)平臺層;
③ 由一些安全應(yīng)用組件組成的可信應(yīng)用層。
也就是說,可信計算平臺涵蓋了基礎(chǔ)硬件、基礎(chǔ)軟件平臺以及各種豐富的安全應(yīng)用[4]。
可信計算平臺技術(shù)能從終端上保障安全,無疑是消除了內(nèi)部威脅。這種終端的可信還要通過一定的方式擴展到網(wǎng)絡(luò)中,也就是遠程的實體要通過一定的方式確認這個終端是一個可信的平臺并與其通信。本文描述的模型是兩個可信計算平臺之間是如何相互認證,建立安全信道進行通信的。簡單的通信模型如圖2所示。
圖2 可信計算平臺間的通信模型
在這個模型中,包括了三類實體:可信計算平臺、可信CA和普通平臺。
可信計算平臺是從硬件到操作系統(tǒng)再到應(yīng)用都可信的一個系統(tǒng),其中在主板上嵌入的 TPM 是平臺的關(guān)鍵。每個可信計算平臺都擁有一張由可信CA頒發(fā)的身份證明證書,即AIK證書。該證書在模型中用來標識每個可信計算平臺的身份。
CA是PKI機制中的核心,負責證書的頒發(fā)、吊銷等。在可信計算平臺上構(gòu)建的CA,在這里稱之為可信CA。由于TPM可以實現(xiàn)存儲的物理隔離,就可以保證CA私鑰的安全性。這里假設(shè)所有可信計算平臺的AIK證書都是由可信CA頒發(fā)的。
普通平臺就是普通的PC終端,是沒有嵌入TPM模塊的,沒有可信CA頒發(fā)的AIK證書。
可信計算平臺之間的認證包括兩個方面的內(nèi)容:
① 通過AIK證書相互認證對方的身份,看是否可信計算平臺;
② 確認對方身份后,再相互評估對方平臺的狀態(tài),再決定是否授予訪問權(quán)限。
可信計算平臺與普通平臺之間,由于普通平臺沒有AIK證書,在認證剛開始可信計算平臺就可以確定對方是不可信的,根據(jù)具體情況可以制定策略來繼續(xù)或是終止與它的通信。
可信計算平臺通過 AIK證書來標識自己的身份,AIK證書相當于是通信中的一張身份證。AIK證書與存在于TPM中的AIK私鑰是相對應(yīng)的,AIK私鑰用來簽名由TPM產(chǎn)生的數(shù)據(jù),既證實數(shù)據(jù)的來源又保證了數(shù)據(jù)的不可抵賴。
AIK證書格式定義完全遵循 X.509 V3標準。TPM Identifier是 TPM 在網(wǎng)絡(luò)中的唯一標識,每個平臺的 TPM Identifier 都是唯一的。Key Type說明了證書所對應(yīng)密鑰的類型,眾所周知TCG定義的TPM中可能有七種不同的密鑰。除了身份證明密鑰(AIK Key)以外,還有簽署密鑰、綁定密鑰等。Key Usage說明了這個密鑰的用途。AIK密鑰是用來簽名由TPM產(chǎn)生的數(shù)據(jù)的。
AIK證書是CA頒發(fā)給可信計算平臺的。AIK證書的獲取過程如圖3所示。
圖3 獲取AIK證書的過程
① TPM 中有個密鑰產(chǎn)生器是可以產(chǎn)生 RSA公私鑰對的。首先,可信計算平臺的擁有者可以用 TPM 的密鑰產(chǎn)生器產(chǎn)生一對RSA密鑰對,并將私鑰存放在TPM相應(yīng)的位置;
② 再將AIK公鑰、TPM ID和平臺的一些相關(guān)信息等提交給可信CA,請求頒發(fā)一個AIK證書;
③ 可信CA驗證提交請求的真實性后,頒發(fā)一個由CA私鑰簽名的AIK證書給提交請求的平臺;
④ 最后,平臺將CA頒發(fā)的AIK證書存放到TPM中。
在實現(xiàn)過程中,每個可信計算平臺都會向可信CA申請一個AIK證書,用來在網(wǎng)絡(luò)通信中證實自己的身份。AIK私鑰存放在 TPM 中以保障不被盜取。申請的過程可以是通過網(wǎng)絡(luò)在線申請,也可以去CA機構(gòu)親自領(lǐng)取。
基于可信計算平臺的認證協(xié)議設(shè)計的目的是先完成相互的身份的認證,也就是先判斷對方是否是可信計算平臺,在身份認證完成以后再互相鑒別了對方平臺環(huán)境配置[5]。通過這樣的兩步認證可以大大提高在網(wǎng)絡(luò)環(huán)境下通信的安全性。認證協(xié)議最后還要實現(xiàn)平臺間會話密鑰的協(xié)商。
假設(shè)有A和B兩個可信計算平臺,它們都有內(nèi)嵌的TPM。在協(xié)議中有關(guān)密碼運算的功能都可以由TPM完成來保證安全性,如隨機數(shù)產(chǎn)生、對稱密鑰產(chǎn)生、加解密運算、ML和PCR值的報告等。在這個協(xié)議設(shè)計中,A和B都已經(jīng)向CA申請了AIK證書,且網(wǎng)絡(luò)中能頒發(fā)可信計算平臺AIK證書的CA是唯一的。在通信開始之時,相互交換AIK證書,并驗證證書的有效性和對方確實是此證書的擁有者。這里的認證是雙向的,A要認證B的身份和狀態(tài),B也要認證A的身份和狀態(tài)。因為AIK證書是互相交換的,所以可以不涉及CA一方的參與,驗證證書的時候只需用CA的根證書及相關(guān)信息在本地來驗證就可以了,減輕了CA通信的負擔。下面是用來描述協(xié)議的符號:
IDi:平臺i的TPM ID號;Certi:平臺i的AIK X.509證書;ri:由平臺i產(chǎn)生的隨機數(shù);
PKi : 平臺i的AIK公鑰;PVi :平臺i的AIK私鑰;MLi:平臺i的度量日志(ML);
PCRi:平臺i的PCR值;T :時間戳;Kij:平臺i和平臺j之間的通信對稱密鑰;{}K:代表用密鑰K來加密{}中的內(nèi)容。
可信計算平臺認證協(xié)議的流程設(shè)計如圖4所示。協(xié)議的具體描述如下:
① 平臺A想和平臺B通信,先由A向B發(fā)一條消息M1=IDA,CertA,其中IDA是可信計算平臺A的TPM ID號,CertA是平臺A的AIK證書。平臺A以此消息向B提出通信請求;
② 平臺B收到A的M1以后,先看IDA與CertA中的ID符不符合,再驗證證書是否過期和是否是由可信CA頒發(fā)的。以上驗證都通過以后,平臺B響應(yīng)A的請求,向A發(fā)送一條回復(fù)消息M2={rB}PKA,IDB,CertB。此消息中也包括了B的TPM ID和B的AIK證書,同時B為了驗證A確實是CertA的擁有者,B產(chǎn)生以隨機數(shù)rB,并用CertA中的公鑰加密這一隨機數(shù);
③ 平臺A收到M2后,和B做同樣的驗證IDB和CertB,驗證了CertB有效以后,用自己的AIK私鑰PVB解密而得到由B發(fā)過來的隨機數(shù)rB,再對照舊隨機數(shù)庫看rB是否發(fā)過以防止重放攻擊。A產(chǎn)生另一隨機數(shù)rA,再用CertB中的B的AIK公鑰PKB加密rA和rB這兩個隨機數(shù),最后用自己的AIK私鑰PVA對這一消息簽名得到M3,將M3發(fā)送給B;
④ 平臺B先后用A的AIK公鑰PKA和自己的私鑰PVB解密M3,得到rA和rB兩個隨機數(shù)。B先驗證M3中的rB是否是自己發(fā)出的那個隨機數(shù),然后也對照隨機數(shù)庫看rA發(fā)過以防重放攻擊。如果以上驗證過程都通過的話,B會產(chǎn)生一個消息M4={{rA}PKA}PVB發(fā)送給A;
⑤ 平臺A收到M4后,先后用B的公鑰PKB和自己的私鑰PVA解密M4,得到rA。這時,A會看這個rA是否是自己發(fā)給B的相等。若相等,則A對B的身份證明通過。到此為止,平臺A和平臺B相互的身份認證已經(jīng)完成,能確認通信的對方是可信計算平臺。接下來要進行平臺間相互的狀態(tài)驗證。A用PVA簽名MLA和PCRA,再產(chǎn)生一會話對稱密鑰KAB,整個消息用PKB加密得到M5發(fā)給平臺B;
⑥ B收到M5后,先用自己私鑰PVB解密,得到會話密鑰KAB和由A的私鑰簽名的平臺狀態(tài)信息。B將如4.3節(jié)中描述的那樣來評估A目前的運行狀態(tài),看是否與預(yù)期相符合。如果A的狀態(tài)與預(yù)期符合,B將進行下一步通信,將自己的平臺狀態(tài)信息MLB和PCRB用PVB簽名,連同用KAB加密的時間戳T一起,用A的公鑰加密得到M6發(fā)送給A;
⑦ A同樣要驗證M6中的B的平臺狀態(tài)是否和預(yù)期相符,并用KAB解密{T}KAB,看是否是剛發(fā)來的消息,同時也驗證B是否已經(jīng)收到了自己發(fā)送的 KAB。最后 A向 B發(fā)送M7={T+1}KAB;
⑧ B驗證M7,確認A和B之間的安全會話通道已經(jīng)建立起來了。
圖4 可信計算平臺認證協(xié)議流程
國內(nèi)外對于可信計算和可信計算平臺的研究越來越廣泛。安全存儲、身份認證和完整性度量、存儲和報告都是可信計算平臺需要提供的基本功能。對于網(wǎng)絡(luò)中的兩個可信計算平臺都有唯一的標識,如何通過協(xié)商來建立可信連接,從而將本機的可信擴展到網(wǎng)絡(luò)中,本文提出了一套認證機制?;诳尚庞嬎闫脚_的認證機制設(shè)計的出發(fā)點是,在利用PKI認證機制的基礎(chǔ)上,實現(xiàn)平臺身份和平臺狀態(tài)的雙重驗證。AIK證書是認證實現(xiàn)的基礎(chǔ),可信 CA是整個認證系統(tǒng)中的核心,負責所有可信計算平臺的身份認證證書的頒發(fā)。
[1] 王新成.可信計算與系統(tǒng)安全芯片設(shè)計研究[DB/OL].(2005-05-07)[2010-03-12]. http://blog.sina.com.cn/s/ blog_538eef960100 csx7.html.
[2] ISO/IEC 11889-1-2009.Information technology-Trusted Platform Module[DB/OL] (2009-05-15) [2010-03-12]-Part1: Overview.http://www.trustedcomputinggroup.org/home.
[3] 樊亞軍,劉久文.TPM安全芯片設(shè)計與實現(xiàn)[J].信息安全與通信保密,2007(06):136-137,140.
[4] 沈昌祥.可信計算平臺與安全操作系統(tǒng)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005(04): 44.
[5] 孫春燕,池亞平,方勇.基于TPM的Needham-Schroeder協(xié)議[J].信息安全與通信保密,2006(11):82-84.