專利名稱:擴(kuò)展完整性測量的制作方法
擴(kuò)展完整性測量
背景技術(shù):
計算實體之間的交互的重要考慮是信任——外來計算實體是將以可靠且可預(yù)測的方式表現(xiàn),還是將(或者已經(jīng))經(jīng)受破壞。組成可信計算組織(TCG)的公司已經(jīng)開發(fā)了可信系統(tǒng),其包含采取至少在邏輯上被保護(hù)以免于破壞的硬件可信組件(或設(shè)備)形式的可信實體。TCG開發(fā)了此領(lǐng)域中的規(guī)范,例如“TCG TPM規(guī)范”版本1. 2,其在TCG網(wǎng)站https://www.trustedcomputinggroup.org/上公布。并且,還有TCG移動電話規(guī)范(移動可信模塊(MTM)規(guī)范),其使得能夠在移動平臺上實現(xiàn)可信計算,所述MTM規(guī)范是在著眼于與移動設(shè)備相關(guān)聯(lián)的特定需要和限制的情況下開發(fā)的??尚畔到y(tǒng)的隱含可信組件使得能夠?qū)崿F(xiàn)可信系統(tǒng)的測量,并且然后能夠以完整性度量的形式將這些提供給希望與可信系統(tǒng)相交互的適當(dāng)實體。接收實體然后能夠根據(jù)所測量的完整性度量與已知或預(yù)期值的一致性來確定可信系統(tǒng)正在如預(yù)期的那樣操作??尚沤M件的原始設(shè)計規(guī)則中的一個是它們能夠被廉價地生產(chǎn)。這導(dǎo)致可信組件能和不能做什么方面的許多權(quán)衡。例如,可信組件至少最初不具有實時可信時鐘且沒有對稱密碼引擎。這兩個特征在主流計算中是相對標(biāo)準(zhǔn)的,但并不被認(rèn)為是用于可信組件的基礎(chǔ)規(guī)范所必需的(并且對于該基礎(chǔ)規(guī)范而言過于昂貴)。隨著新代次的可信組件被規(guī)定,可以預(yù)期,越來越多的功能將被自然地添加——隨著技術(shù)進(jìn)步和成本降低——例如,如在從TCG規(guī)范的版本1.1前進(jìn)至1. 2的情況下已經(jīng)存在的那樣。將始終存在可信組件應(yīng)該和不應(yīng)該執(zhí)行哪些功能方面的權(quán)衡。因此,用一般化命令來替換可信環(huán)境中的專用命令可以導(dǎo)致改善的資源利用,這可以帶來較低的成本和較高的效率,這例如在移動計算環(huán)境中是特別有價值的。
現(xiàn)在將以非限制性示例的方式參考現(xiàn)有技術(shù)和本發(fā)明的實施例的附圖來描述本發(fā)明的實施例,在所述附圖中
圖1是圖示出示例性現(xiàn)有技術(shù)計算平臺的示意 圖2是指示存在于現(xiàn)有技術(shù)可信計算平臺的母板上的功能元件的方框 圖3是指示圖2的可信計算平臺的現(xiàn)有技術(shù)可信實體(在該實例中,為可信設(shè)備)的功能元件的方框 圖4是圖示出將值擴(kuò)展至圖2的可信設(shè)備的平臺配置寄存器中的已知現(xiàn)有技術(shù)過程的流程 圖5是圖示出現(xiàn)有技術(shù)可信計算平臺中的可傳遞信任的原理的流程 圖6是圖示出已知完整性質(zhì)詢/響應(yīng)過程的流程 圖7是圖示出與諸如可信設(shè)備的可信實體相關(guān)聯(lián)的密鑰分級結(jié)構(gòu)的方框 圖8是運(yùn)行管理程序(hypervisor)且提供多個隔離可信操作系統(tǒng)環(huán)境的另一現(xiàn)有技術(shù)可信計算平臺的功能方框 圖9是根據(jù)本發(fā)明的實施例的可信設(shè)備和關(guān)聯(lián)的外部策略引擎的功能方框圖,可信設(shè)備使用所述關(guān)聯(lián)的外部策略引擎來對從進(jìn)行請求的應(yīng)用接收到的各安全操作請求執(zhí)行策略;
圖10是根據(jù)本發(fā)明的實施例的由可信設(shè)備使用外部策略引擎制定的可信過程的流程圖;以及
圖11是根據(jù)本發(fā)明的另ー實施例的可信設(shè)備和三個關(guān)聯(lián)的外部策略引擎的功能方框圖,可信設(shè)備使用所述三個關(guān)聯(lián)的外部策略引擎來對從進(jìn)行請求的應(yīng)用接收到的安全操作請求執(zhí)行三個相應(yīng)的策略。
具體實施例方式完整性度量通常將包括可信系統(tǒng)所使用的軟件的測量。這些測量通??梢越M合地用來指示可信系統(tǒng)的狀態(tài)或可信狀態(tài)。通常將以“摘要(digest)”——使用散列算法對所測量數(shù)據(jù)進(jìn)行散列以產(chǎn)生固定大小結(jié)果的結(jié)果的形式,來記錄這些測量??梢詫⒋祟愓M合到可信組件的“平臺配置寄存器”(PCR)中,可信組件一般將具有專用于特定目的的多個PCR。在某些可信計算組織規(guī)范中,還講授了用于將數(shù)據(jù)“密封”到特定平臺狀態(tài)的機(jī)制——這具有將所密封數(shù)據(jù)加密成不能預(yù)測的“不透明ニ進(jìn)制大對象(opaque blob)”的結(jié)果,其包含至少部分地從平臺上的軟件的測量導(dǎo)出的值。所指出的測量包括軟件的摘要,因為摘要值將在對軟件進(jìn)行任何修改時改變。根據(jù)依照TGC規(guī)范的可信組件的最一般策略,僅在如果可信組件測量當(dāng)前平臺狀態(tài)并發(fā)現(xiàn)其在不透明ニ進(jìn)制大對象中由(ー個或多個)相同的值來表示吋,才可以在可信組件之外釋放此所密封數(shù)據(jù)。鑒于此過程,當(dāng)想到對可信平臺的軟件或硬件配置進(jìn)行合法變化、導(dǎo)致關(guān)聯(lián)的PCR值的變化時,可能需要同時開始管理過程,該管理過程在仍處于舊狀態(tài)的同時恢復(fù)所有所密封數(shù)據(jù)并將該數(shù)據(jù)重新密封到新的PCR值和各平臺狀態(tài)。當(dāng)然,是否恢復(fù)并釋放數(shù)據(jù)還能夠取決于許多其他種類的策略,該策略取決于各操作的性質(zhì)。 在描述本發(fā)明的實施例之前,將參考圖1至8來描述兩個現(xiàn)有技術(shù)可信計算平臺,以介紹稍后在描述本發(fā)明的實施例時所使用的某些術(shù)語和概念。所描述的現(xiàn)有技術(shù)可信計算平臺的特定細(xì)節(jié)(從下一段開始)并不意圖限制本發(fā)明的范圍,除非另外說明。應(yīng)將本文所使用的術(shù)語“計算平臺”理解為涵蓋能夠執(zhí)行計算且不限于計算機(jī)的任何設(shè)備。因此,包括移動電話和個人數(shù)字助理(PDA)的數(shù)字式蜂窩設(shè)備在術(shù)語“計算平臺”的范圍內(nèi),并且事實上特別相關(guān),因為移動可信模塊的提供很可能將被結(jié)合在大多數(shù)現(xiàn)代移動電話中。另外,除非在上下文另外要求的情況下,本文中的術(shù)語計算平臺包括虛擬計算平臺環(huán)境,其基本上獨立于其他此類計算環(huán)境(例如相對于其他此類計算環(huán)境被封裝或劃分),所述計算環(huán)境全部存在于公共物理計算平臺上(在下文中給出此類環(huán)境的示例)。此外,在本上下文中,“信任”是設(shè)備將出于特定目的以特定方式表現(xiàn)的預(yù)期,并且“用戶”可以是本地用戶或諸如遠(yuǎn)程計算實體之類的遠(yuǎn)程用戶。
_7] 現(xiàn)有技術(shù)可信平臺的一般特性
可信計算平臺提供了可信任的平臺完整性測量和報告,并且為此具有多個被隔開位置(shielded location),亦即其中可安全地對敏感數(shù)據(jù)進(jìn)行操作的地方(存儲器、寄存器等)。完整性測量是獲得平臺的完整性度量測量(亦即,影響平臺的完整性——可信任性的平臺特性的測量)并將該測量(在這里被取為涵蓋諸如摘要之類的衍生值)放入被隔開位置的過程;用TCG用語,把用于存儲完整性度量的被隔開位置稱為平臺配置寄存器或“PCR”且在下文中將使用此術(shù)語。保持在PCR中的值是可報告完整性度量值。完整性報告是以使記錄在PCR中的完整性度量與相關(guān)平臺相關(guān)聯(lián)的方式來證明這些完整性度量的過程。除被隔開位置之外,可信計算平臺還可以提供用于以加密形式安全地存儲數(shù)據(jù)并用于保證對此數(shù)據(jù)的訪問僅在命名環(huán)境中發(fā)生的可信任存儲。前述可信特征將通常涉及密碼函數(shù)的使用。用戶可以例如在與可信計算平臺交換數(shù)據(jù)之前,通過請求可信平臺提供一個或多個完整性度量,來驗證可信計算平臺的正確操作。用戶接收一個或多個完整性度量,并且將它們與其相信為真的值(這些值是由準(zhǔn)備好保證平臺的可信任性的可信方“ TP”或由用戶愿意信任的另一方提供)進(jìn)行比較。如果存在匹配,則含意是平臺的至少一部分正在正確地操作,取決于完整性度量的范圍。如果不存在匹配,則假設(shè)是整個平臺已經(jīng)被破壞且不能被信任(除非采用隔離技術(shù)以限制什么不能信任的范圍)。一旦用戶已確定了該平臺的可信操作,則其與平臺交換數(shù)據(jù)。針對本地用戶,該交換可能是通過與在平臺上運(yùn)行的某個軟件應(yīng)用相交互。針對遠(yuǎn)程用戶,該交換可能涉及安全交易。在任ー情況下,優(yōu)選地由可信平臺來對所交換數(shù)據(jù)進(jìn)行‘簽名’。用戶然后可以具有更大的信心——正在與其行為能夠被信任的平臺交換數(shù)據(jù)。所交換數(shù)據(jù)可以是關(guān)于在計算機(jī)平臺上運(yùn)行的某些或所有軟件的信息。提供信任根的可信實體
為了對計算平臺賦予可信計算平臺的特性,必需為平臺提供某些固有地可信任的功能(共同地構(gòu)成在本文中稱為“可信實體”的東西),其在物理上或在邏輯上綁定到平臺并連同計算平臺的元件一起操作以提供期望的可信特性(最低限度地,完整性測量和報告)。實際上,可信實體為平臺提供“信任根”,并且下面給出其示例。對于遵循TCG規(guī)范的可信平臺,可信實體是稱為可信平臺模塊(“TPM”)或可信移動模塊(“TMM”)的硬件組件或設(shè)備,其用于連同可信實體被綁定到的計算平臺的元件一起提供以下“信任根”
一用于測量的信任根(RTM),-RTM是能夠進(jìn)行固有地可靠的完整性測量的計算引擎,并且通常是由所謂的用于測量的核心信任根(CRTM)所控制的普通平臺計算引擎(主處理器),用于測量的核心信任根(CRTM)是當(dāng)其充當(dāng)RTM時由平臺執(zhí)行的指令。CRTM在邏輯上是上述可信實體的一部分,并且理想地會被包括在TPM中,但是由于成本原因,通常是由單獨ROM實現(xiàn)的。一用于存儲的信任根(RTS) —RTS是能夠在完整性測量摘要的值的PCR中保持準(zhǔn)確的概要(smnmary)的計算引擎;RTS還可以提供“受保護(hù)存儲”,其用于保護(hù)作為不透明“ニ進(jìn)制大對象”和‘密封’ / ‘開封’而被保持在外部存儲設(shè)備中的供RTS訪問的數(shù)據(jù)(常常是密鑰)免受特定環(huán)境侵害(如PCR值所指示的)。一用于報告的信任根(RTR) -RTR是負(fù)責(zé)建立平臺身份、報告平臺配置(PCR值)、保護(hù)所報告值和建立用于證明所報告值的上下文的計算引擎。RTR與RTS分擔(dān)保護(hù)測量摘要的責(zé)任??梢宰⒁獾降氖牵缟衔乃甘镜?,形成RTM的元件通常(但不一定)在可信模塊外面;相反,RTS和RTR —般是由可信模塊本身提供的。一般地,任何可信平臺將提供此類信任根(不過可能采取不同的概念布置)。
可以將可信實體體現(xiàn)為硬件設(shè)備(其可以包括程序控制的處理器)或者體現(xiàn)為軟件以便由平臺的主處理器執(zhí)行(在這種情況下,其通常稱為‘虛擬’可信實體/設(shè)備或者在TPM/TMM的情況下為虛擬TPM/TMM)。實際上,一般在具有用于基本平臺環(huán)境的基本硬件可信實體但采用用于在平臺上創(chuàng)建的虛擬環(huán)境的另外的可信實體的平臺上提供虛擬可信實體。硬件可信實體通常在物理上被綁定于其與之相關(guān)聯(lián)的平臺,而軟件可信實體在邏輯上被綁定于其與之相關(guān)聯(lián)的平臺。當(dāng)然,還可以將可信實體實現(xiàn)為硬件設(shè)備和意圖用于在平臺上執(zhí)行的軟件的組合;其中,可以用生根于RTM中的信任鏈來確定軟件的可信任性??尚艑嶓w的功能可以分布在多個設(shè)備(在硬件實施例的情況下)之間或分布在多個代碼塊(在‘虛擬’實施例的情況下)之間。可信實體使用密碼過程,但不一定提供到那些密碼過程的外部接ロ。應(yīng)在邏輯上保護(hù)可信實體免受其他實體侵害,其他實體包括它本身是其中一部分的平臺的其他部分。并且,最期望的實施方式為可信實體提供保護(hù)性特征,以通過使得由可信實體存儲或者正在由可信實體處理的秘密對于其他平臺功能而言不可訪問,來保護(hù)該秘密,并且提供對于未授權(quán)修改基本上免疫的環(huán)境。對于硬件實施例,可信實體因此優(yōu)選地由防篡改的ー個物理組件組成。與防篡改有關(guān)的技術(shù)對于安全領(lǐng)域的技術(shù)人員而言是眾所周知的。這些技術(shù)包括用于防篡改的方法(諸如可信實體的適當(dāng)封裝)、用于檢測篡改的方法(諸如可信實體外殼中的物理完整性的損失、X射線或規(guī)范電壓之外的檢測),以及用于在篡改很明顯時消除數(shù)據(jù)的方法。關(guān)于‘虛擬’可信實體,雖然軟件可能不會給予如硬件設(shè)備那樣高度的防篡改性,但這可以用附加保護(hù)措施來補(bǔ)償。例如,軟件代碼可以包括自測功能,以檢查可信功能的完整性。信仟鏈
通過平臺中的可信實體的存在所實現(xiàn)的可信任完整性測量和報告通常使得能夠在其他平臺組件或功能中給予信任,其他平臺組件或功能又執(zhí)另外的平臺組件或功能的可信任完整性測量等等。擴(kuò)展什么是可信任的邊界的此過程稱為“可傳遞信任”,并且可以視為建立生根于平臺的信任根中的信任鏈。因此,在典型示例中
一用于執(zhí)行初始完整性測量的可信代碼(例如,TCG用語中的CRTM)用于測量OS加載器代碼的完整性度量以使得能夠?qū)Υ舜a給予信任(如果該度量與預(yù)期值匹配的話);
-OS加載器代碼又確定用于操作系統(tǒng)代碼的完整性度量以使得能夠?qū)Σ僮飨到y(tǒng)給予ィ目任;
一操作系統(tǒng)又確定用于應(yīng)用代碼的完整性度量以使得能夠?qū)υ搼?yīng)用給予信任。第一示例性現(xiàn)有技術(shù)可信平臺ー概述
在圖1中的圖中圖示出示例性可信平臺10。計算平臺10被示為所謂的個人計算機(jī),并且在外觀上完全是常規(guī)的——其已經(jīng)關(guān)聯(lián)了鍵盤14、鼠標(biāo)16和視覺顯示単元(VDU)19的標(biāo)準(zhǔn)特征,這些標(biāo)準(zhǔn)特征提供平臺的物理‘用戶接ロ’。另外,平臺可以具有關(guān)聯(lián)的安全設(shè)備,諸如用于讀取智能卡19的智能卡讀取器17。此類安全設(shè)備為平臺提供制定雙因素認(rèn)證的能力。附加或替換安全設(shè)備(未示出)可以包括生物計量讀取器,諸如指紋讀取器或虹膜讀取器。計算平臺10被布置成例如運(yùn)行諸如Microsoft Windows XP的標(biāo)準(zhǔn)操作系統(tǒng)??商鎿Q地,諸如移動電話之類的移動設(shè)備可以是可信平臺,并且應(yīng)將在下文中對圖1中所描述的可信平臺的組件的引用視為包括諸如移動電話或PDA之類的移動設(shè)備中所存在的那些。因此,移動可信平臺可以包括用戶接ロ,其允許用戶控制正在討論中的設(shè)備,并且可以使用諸如觸摸屏、按鈕、操縱桿等之類的設(shè)備的多個控制機(jī)構(gòu)中的一個來控制該設(shè)備??梢詫⑦m當(dāng)?shù)囊苿釉O(shè)備布置成運(yùn)行任何數(shù)目的適當(dāng)移動設(shè)備特定操作系統(tǒng)。如圖2中所示,可信計算平臺10的母板20包括(除了其他標(biāo)準(zhǔn)組件外)主處理器21、主存儲器22、在這里以可信設(shè)備24 (諸如硬件TMM)的形式體現(xiàn)的可信實體、數(shù)據(jù)總線26和各控制線27和地址線28、包含用于平臺10的BIOS程序的BIOS存儲器29、輸入/輸出(10)設(shè)備23,其控制母板的組件與設(shè)備的輸入/輸出機(jī)制之間的交互。主系統(tǒng)存儲器22通常是隨機(jī)存取存儲器(RAM)??尚旁O(shè)備24到設(shè)備母板上的安裝用于在物理上將其綁定于
\T7.ムIn。在重置之后,設(shè)備的主處理器適合于最初由CRTM代碼(其在本示例中包括存儲在可信設(shè)備24中的散列函數(shù)代碼)來控制,該CRTM代碼然后將控制移交給平臺特定的BIOS程序,該平臺特定的BIOS程序又正常地對所有輸入/輸出設(shè)備進(jìn)行初始化。在已經(jīng)執(zhí)行BIOS程序之后,控制被BIOS程序正常地移交給操作系統(tǒng)程序。主處理器21最初是由CRTM代碼控制的,因為必需對將在可信平臺上執(zhí)行的第一測量給予信任。CRTM代碼通常由于其出處而被至少部分地信任。如已指出的,主處理器21在處于CRTM控制下時形成“用于測量的信任根” RTM。通常,本情況下的RTM的ー個作用是,在其他測量代理被使用并且它們的測量依賴之前,來測量這些測量代理。RTM是用于上述“信任鏈”的基礎(chǔ)。請注意,RTM和后續(xù)測量代理不需要驗證后續(xù)測量代理它們僅僅在其執(zhí)行之前對其進(jìn)行測量和記錄。這稱為“認(rèn)證的啟動過程”??梢酝ㄟ^將測量代理的摘要與有效測量代理的摘要的列表進(jìn)行比較來識別有效測量代理。未列出的測量代理將不會被識別,并且由它們和后續(xù)測量代理進(jìn)行的測量將被認(rèn)為是可疑的。
示例性可信設(shè)備
現(xiàn)在將給出可信設(shè)備24的實施方式的進(jìn)ー步細(xì)節(jié),應(yīng)理解的是可以在軟件可信實體(亦即,虛擬可信設(shè)備)中提供相應(yīng)的功能??尚旁O(shè)備24包括多個塊,如在圖3中所示。如已經(jīng)指出的,在系統(tǒng)重置之后,可信設(shè)備24參與認(rèn)證的啟動過程以保證平臺10的操作狀態(tài)被以安全的方式記錄。在認(rèn)證的啟動過程期間,可信設(shè)備24獲取計算平臺10的至少ー個完整性度量??尚旁O(shè)備24還可以執(zhí)行安全的數(shù)據(jù)傳輸。可信設(shè)備24還可以安全地執(zhí)行各種安全控制策略,諸如用戶接ロ的鎖定。具體地,本實施例中的可信設(shè)備24包括控制器30,其被編程為控制可信設(shè)備24的總體操作,并與可信設(shè)備24上的其他功能且與母板20上的其他設(shè)備相交互;測量功能31,其用于經(jīng)由直接測量或可替換地間接地經(jīng)由要在平臺的主處理器上執(zhí)行的可執(zhí)行指令,從平臺10獲取第一完整性度量;加密功能32,其用于對指定數(shù)據(jù)進(jìn)行簽名、加密/解密;認(rèn)證功能33,其用于對智能卡19進(jìn)行認(rèn)證;以及接ロ電路34,其具有用于將可信設(shè)備24分別連接至母板20的數(shù)據(jù)總線26、控制線27和地址線28的適當(dāng)端ロ(36、37 & 38)??尚旁O(shè)備24中的每個塊可訪問(通常經(jīng)由控制器20)可信設(shè)備24的適當(dāng)易失性存儲區(qū)域4和/或非易失性存儲區(qū)域3。如已經(jīng)描述的,可信設(shè)備24被以已知方式設(shè)計成防篡改的。由于性能原因,可以將可信設(shè)備24實現(xiàn)為專用集成電路(ASIC)。然而,為了靈活性,可信設(shè)備24可以是適當(dāng)編程的微控制器。ASIC和微控制器兩者在微電子領(lǐng)域中是眾所周知的,并且在本文中將不會更詳細(xì)地考慮。可信設(shè)備24的非易失性存儲器3存儲特定于可信設(shè)備24的簽注密鑰(EK)對的私鑰355 (PRIVEK);優(yōu)選地,非易失性存儲器3還存儲至少包含可信設(shè)備24的簽注密鑰對的公鑰351 (PUBEK)和由可信方(TP)測量的至少ー個平臺完整性度量的認(rèn)證值352的證書350。在將證書350存儲在可信設(shè)備24中之前,由TP使用TP的私鑰對其進(jìn)行簽名。在稍后的通信會話中,平臺10的用戶可以通過驗證證書上的TP的簽名來推斷公鑰屬于可信設(shè)備。并且,平臺10的用戶可以通過將ー個或多個獲取的完整性度量與真實完整性度量值(多個)352相比較來驗證平臺10的完整性。如果存在匹配,則用戶可以相信平臺10尚未被破壞。TP的一般可用公鑰的知識使得能夠?qū)崿F(xiàn)證書350的簡單驗證。非易失性存儲器35還可以包含身份(ID)標(biāo)簽353。ID標(biāo)簽353是常規(guī)ID標(biāo)簽,例如序號,其在某個上下文內(nèi)是唯一的。ID標(biāo)簽353 —般被用于對與可信設(shè)備24相關(guān)的數(shù)據(jù)編索引和加標(biāo)簽,但是其本身不足以在可信條件下證明平臺10的身份。如已經(jīng)指出的,可信設(shè)備24與平臺10的其他元件協(xié)作以可靠地獲取平臺的至少一個完整性度量。在本實施例中,通過使主平臺處理器執(zhí)行存儲在可信設(shè)備24的非易失性存儲器3中的CRTM代碼354來獲取第一完整性度量;CRTM在被平臺處理器執(zhí)行時在BIOS存儲器中生成BIOS指令的摘要并將其傳遞至測量功能以用于存儲。此類所獲取的完整性度量如果被如上所述地驗證則給平臺10的潛在用戶提供平臺10尚未在硬件或BIOS程序級別被破壞的高級別的置信度??商鎿Q地,可以在可信設(shè) 備內(nèi)提供測量引擎,并且使此引擎在平臺啟動(重置)時形成對BIOS代碼的完整性測量。在本示例中,測量功能31可訪問非易失性存儲器3 (用于訪問CRTM散列碼354)和易失性存儲器4 (用于存儲所獲取的完整性度量測量)??尚旁O(shè)備24具有有限存儲器,然而可能期望存儲關(guān)于大量完整性度量測量的信息。這是在可信計算平臺中完成的,如可信計算組織通過使用PCR 8a — Sn所描述的??尚旁O(shè)備24具有固定大小的多個PCR (與標(biāo)準(zhǔn)測量摘要相同的大小)一在平臺的初始化時,它們被設(shè)置為固定初始值。然后用圖4中所示的過程將完整性測量“擴(kuò)展”至PCR中。將PCR 8i值與輸入41序連(concatenate) 43,其為將被擴(kuò)展至PCR的完整性測量的值。然后對該序連進(jìn)行散列42以形成新的160位值。此散列被反饋至PCR以形成相關(guān)完整性度量的新值。除了將完整性測量擴(kuò)展到PCR中之夕卜,為了提供所執(zhí)行測量的清楚歷史,還可以將測量過程記錄在常規(guī)日志文件中(其可以簡單地在計算機(jī)平臺的主存儲器中)。然而,出于信任目的,將依賴的是PCR值而不是軟件日
O很明顯,根據(jù)所需信任的范圍,存在可以用來計算初始完整性度量值的許多不同方式。BIOS程序的完整性的測量提供對平臺的底層處理環(huán)境的完整性的基本檢查。完整性度量測量應(yīng)采取這樣的形式,即其將使得能夠?qū)崿F(xiàn)關(guān)于啟動過程的有效性的推理一完整性度量的值可以用來驗證是否使用正確的BIOS啟動了平臺??蛇x地,BIOS內(nèi)的単獨功能塊可以具有其自己的摘要值,全體(enSemble)BI0S摘要是這些単獨摘要的摘要。這使得策略能夠說明BIOS操作的哪些部分對于預(yù)定目的而言是關(guān)鍵的,以及哪些是無關(guān)的(在這種情況下,必須以能夠確定該策略下的操作的有效性的方式來存儲單獨的摘要)。
還可以注意的是,優(yōu)選地,BIOS啟動過程包括用以驗證啟動過程本身的完整性的機(jī)制。從例如 Intel 的草案“Wired for Management baseline specification v 2. 0 -BOOT Integrity Service”已經(jīng)了解此類機(jī)制,并且此類機(jī)制涉及在加載軟件或固件之前計算該軟件或固件的摘要。將此類所計算摘要與存儲在由可信實體提供的證書中的值相比較,該可信實體的公鑰是BIOS所知的。然后只有當(dāng)所計算值與來自證書的預(yù)期值匹配時才加載軟件/固件,并且通過可信實體的公鑰的使用,該證書已被證明是有效的。否則,調(diào)用適當(dāng)?shù)漠惓L幚砝???蛇x地,在接收到所計算的BIOS摘要之后,可信設(shè)備24可以檢查證書中的BIOS摘要的適當(dāng)值,并且如果所計算摘要并不與該適當(dāng)值匹配,則不將控制傳遞至BIOS—可以調(diào)用適當(dāng)?shù)漠惓L幚砝?。一旦已?jīng)由CRTM測量了 BIOS代碼、完整性度量測量被存儲于PCR且BIOS被加載,BIOS就優(yōu)選地測量下ー個軟件組件(諸如OS加載器)并促使在加載該軟件之前將相應(yīng)的完整性度量測量存儲在可信設(shè)備24中,等等(參見圖5);這樣,可以構(gòu)建信任鏈(“可傳遞信任”)以包括操作系統(tǒng)和由其加載的應(yīng)用,其中相應(yīng)的完整性度量被存儲在可信設(shè)備24的PCR 中。可以執(zhí)行其他完整性檢查,涉及程序代碼的測量和相應(yīng)完整性度量測量在可信設(shè)備中的存儲;例如,可以將CRTM或BIOS布置成測量與SCSI控制器相關(guān)聯(lián)的BIOS程序以使得能夠信任與外圍設(shè)備的通信。還可以執(zhí)行其他形式的完整性檢查,例如可以通過制定固定質(zhì)詢/響應(yīng)交互來驗證平臺上的存儲器設(shè)備或協(xié)處理器以保證一致的結(jié)果;這些檢查也可以引起完整性度量被存儲在可信設(shè)備24的PCR中。如從前述內(nèi)容將清楚的,可以直接地通過測量代理來收集大量完整性測量或可以由RTM來間接地測量該大量完整性測量,并且這些完整性測量擴(kuò)展至可信設(shè)備24的PCR中。這些完整性測量的某些ー常常是許多一將涉及可信平臺的軟件狀態(tài)。優(yōu)選地針對每個平臺類型對如何分配PCR進(jìn)行標(biāo)準(zhǔn)化。舉例來說,根據(jù)用于PC客戶端的TCG規(guī)范,PCR被劃分成兩個主要集合第一集合是針對平臺的預(yù)-OS環(huán)境指定的(PCR
),并且另一集合是針對平臺的OS指定的(PCR[8-15])。在這種情況下,預(yù)-OS PCR從平臺重置開始提供平臺的初始信任鏈;換言之,它們通過OS的IPL (初始程序加載)代碼從CRTM建立信任鏈。在其初始測量和加載之后對軟件組件的改變導(dǎo)致軟件組件被重新測量,并且結(jié)果得到的完整性測量將被傳遞至可信設(shè)備以擴(kuò)展與該組件相關(guān)聯(lián)的PCR。如已經(jīng)指出的,當(dāng)用戶希望與平臺通信時,他使用質(zhì)詢/響應(yīng)例程來質(zhì)詢可信設(shè)備24 (平臺的操作系統(tǒng)或適當(dāng)軟件應(yīng)用被布置成識別該質(zhì)詢并將其傳遞至可信設(shè)備24,通常以適當(dāng)?shù)姆绞浇?jīng)由BIOS類型呼叫完成此)??尚旁O(shè)備24接收該質(zhì)詢并基于所測量的一個或多個完整性度量來創(chuàng)建適當(dāng)?shù)捻憫?yīng)-這可以被提供以給出(ー個或多個)預(yù)期完整性度量值的(ー個或多個)證書并進(jìn)行簽名。這提供了足以允許由用戶進(jìn)行驗證的信息。圖6更詳細(xì)地圖示出(例如,遠(yuǎn)程平臺的)用戶可以用于驗證結(jié)合了可信設(shè)備24的可信平臺的完整性的總體過程。作為初始步驟,為可信平臺作擔(dān)保的可信方TP將已檢查了平臺的類型以決定是否為其作擔(dān)保。這將是策略的問題。如果全部都很好,在步驟600中,TP測量平臺的完整性度量352的值。然后,TP在步驟605中生成用于平臺的證書350。該證書是由TP通過將可信設(shè)備的公鑰(EKPUB)和可選地其ID標(biāo)簽附加于所測量的完整性度量并用TP的私鑰來對該串簽名而生成的。在步驟610中,通過將證書30寫入可信設(shè)備24的適當(dāng)非易失性存儲器位置來對可信設(shè)備14進(jìn)行初始化。這優(yōu)選地通過在可信設(shè)備14被安裝在母板10中之后的與可信設(shè)備14的安全通信來完成。該安全通信由只有TP知道的‘主密鑰’支持,該主密鑰在制造期間被寫入可信設(shè)備,并且用來實現(xiàn)數(shù)據(jù)到可信設(shè)備24的寫入;在沒有主密鑰的知識的情況下,數(shù)據(jù)到可信設(shè)備14的寫入是不可能的。在平臺操作期間的某一稍后的點處,例如當(dāng)可信設(shè)備24被接通或重置時,在步驟615中,可信設(shè)備24獲取平臺的一個或多個完整性度量并將其存儲在其PCR中。當(dāng)用戶希望與平臺通信時,在步驟620中,他創(chuàng)建諸如隨機(jī)數(shù)字之類的隨機(jī)數(shù),并且在步驟625中質(zhì)詢可信設(shè)備24。該隨機(jī)數(shù)用來保護(hù)用戶免于由不可信平臺的舊的但真實的簽名的重放引起的欺詐(稱為“重放攻擊”)。提供隨機(jī)數(shù)并驗證響應(yīng)的過程是眾所周知的“質(zhì)詢/響應(yīng)”過程的示例。在步驟630中,可信設(shè)備24接收質(zhì)詢并創(chuàng)建所測量完整性度量(PCR值)、隨機(jī)數(shù)以及可選地其ID標(biāo)簽中的ー個、某些或全部的序連。然后,在步驟635中,可信設(shè)備24使用其私鑰EK對該序連進(jìn)行簽名,并將已簽名序連連同證書一起返回給用戶。在步驟640中,用戶接收質(zhì)詢響應(yīng)并使用TP的眾所周知的公鑰來驗證該證書。用戶然后在步驟650中從證書提取可信設(shè)備24的公鑰并將其用來對來自質(zhì)詢響應(yīng)的已簽名序連進(jìn)行解密。然后,在步驟660中,用戶驗證質(zhì)詢響應(yīng)內(nèi)部的隨機(jī)數(shù)。接下來,在步驟670中,用戶將其從質(zhì)詢響應(yīng)提取的所報告PCR值與其從證書提取的(ー個或多個)真實平臺完整性度量值相比較。如果在步驟645、655、665或675中,前述驗證步驟中的任何ー個失敗,則整個過程在步驟680中結(jié)束而不發(fā)生進(jìn)ー步的通信。將認(rèn)識到的是,用于PCR的真實值可以被質(zhì)詢者以任何適當(dāng)?shù)姆绞将@得(例如,直接從可信方),并且不需要通過存儲在TPM中的證書來提供這些真實值。假設(shè)在步驟685和690中,一切都是令人滿意的,則用戶和可信平臺使用其他協(xié)議來建立用于其他數(shù)據(jù)的安全通信,其中,優(yōu)選地由可信設(shè)備24對來自平臺的數(shù)據(jù)進(jìn)行簽名。步驟620至675組成證明協(xié)議(質(zhì)詢者可以用來基于TPM簽名的PCR值對平臺進(jìn)行查驗的程序)。實際上,通常(但不一定)在至少兩個領(lǐng)域中增強(qiáng)了該證明協(xié)議
首先,作為TPM在步驟635中使用其私有簽注密鑰PRIVEK的替代,其使用作為所謂的證明身份密鑰(AIK)對的一部分的短期私鑰;其原因是,如果僅采用EK,其就能夠用來鏈接涉及TPM的交易,這從保密性觀點出發(fā)通常是不期望的。因此,優(yōu)選地將TPM布置成生成一連串的AIK,AIK中的每ー個被可信方擔(dān)保為屬于有效TPM (可信方通過為AIK的公共部分提供已簽名證書來為AIK作擔(dān)保)。其他機(jī)制(諸如‘直接匿名證明’)可以替換地用來提供TPM匿名性。其次,TPM不僅報告ー個或多個PCR值,而且報告所進(jìn)行的測量的日志。此日志(稱為所存儲測量日志,SML)是由TPM創(chuàng)建的,用以按照進(jìn)行測量的次序來全面地記錄所進(jìn)行的完整性測量;與由作為這些測量的摘要的PCR值提供的相比,這提供了關(guān)于什么軟件已被加載到平臺上的大得多的可見性。SML占用比PCR值更多的存儲器,并且因此不被存儲在TPM中;然而,并不要求SML的安全存儲。質(zhì)詢者在接收到SML時可以用用于相關(guān)軟件的真實值來檢查其包含的測量值(這些真實值是以任何適當(dāng)方式獲得的);假設(shè)測量值檢驗合格(check out),然后它們可以用來計算用于所報告PCR的預(yù)期值。然后比較預(yù)期值和所報告PCR值,并且如果它們匹配,則對平臺狀態(tài)進(jìn)行查驗。SML的使用不僅提供更大的透明度,而且提供更高的效率,因為在任何給定環(huán)境中需要的真實測量值的數(shù)目(例如,用于可加載的每個軟件模塊中的ー個)明顯小于可以得到的PCR值的潛在數(shù)目(因為后ー個數(shù)目不僅取決于所加載軟件模塊的可能組合數(shù)目,而且取決于其加載次序)。受保護(hù)存儲——對數(shù)據(jù)進(jìn)行密封/開封
如上文所指出的,諸如可信設(shè)備24之類的可信實體可以包括提供用于將數(shù)據(jù)(通常為密鑰或ロ令)密封到被保持在可信實體外面的不透明ニ進(jìn)制大對象的‘受保護(hù)存儲’機(jī)制的可信功能(RTS),所述ニ進(jìn)制大對象隨后只有當(dāng)平臺處于特定(可信)狀態(tài)時才是可訪問的。此狀態(tài)是在密封時由ー些或全部PCR的值的摘要指定的。為了將數(shù)據(jù)ニ進(jìn)制大對象開封,必須從PCR的當(dāng)前值形成相同摘要。如果新摘要并不與不透明ニ進(jìn)制大對象中的摘要相同,則用戶不能恢復(fù)數(shù)據(jù)?,F(xiàn)在將描述實現(xiàn)可信設(shè)備24中的受保護(hù)存儲的ー種方法。如圖7所示,在這種方法中,將受保護(hù)存儲實現(xiàn)為存儲數(shù)據(jù)對象的節(jié)點的分級結(jié)構(gòu)(樹)72,其根是被永久地存儲在可信設(shè)備24中(且不從其釋放)的存儲根密鑰(SRK) 71。除SRK之外,可以將樹72存儲在可信設(shè)備外面的正常存儲器74中。當(dāng)使用或披露節(jié)點中的信息時,節(jié)點被可信設(shè)備操縱。樹中的每個中間節(jié)點對象被樹中的在其上面的節(jié)點對象(父節(jié)點)中的密鑰所加密,一直返回至SRK根節(jié)點;在圖7中,在SRK下面示出了兩個級別,即存儲密鑰Kl-1至K1-3的第一級別和存儲密鑰K2-1和K2-2的第二級別,每個密鑰的加密性質(zhì)是由環(huán)繞影線環(huán)指示的。每個密鑰具有希望利用該密鑰的實體必須在可信設(shè)備允許使用密鑰之前呈現(xiàn)給可信設(shè)備24 (或者,更準(zhǔn)確地,在不披露值的 情況下在體現(xiàn)證明該值的知識的策略的協(xié)議中使用)的相關(guān)聯(lián)授權(quán)值。樹中的中間節(jié)點將始終是密鑰,但是葉節(jié)點可以是任意數(shù)據(jù)(但是其常常也將是密鑰,諸如供應(yīng)用進(jìn)程在保護(hù)批量數(shù)據(jù)時使用的對稱密鑰)。樹中的密鑰一般可以是“可遷移的”或“不可遷移的”??梢詫⒖蛇w移密鑰開封并傳遞至其他可信設(shè)備;因此可以存在多個副本。可以將可遷移密鑰用于對來自特定用戶的電子郵件進(jìn)行簽名,并且可以例如存在于用戶的工作和家用計算機(jī)兩者上。此類密鑰可能是由可信設(shè)備或由在可信設(shè)備外面的任何其他應(yīng)用或設(shè)備生成的,不存在關(guān)于私鑰的起源或可信任性的保證,并且不存在用于使可信設(shè)備確定用于可遷移密鑰的預(yù)定目的地是否安全且可靠的容易方式。由特定可信設(shè)備產(chǎn)生不可遷移密鑰且其并不意圖在該設(shè)備外面披露;其僅為該可信設(shè)備所知,并且因此固有地是安全的,但在可信設(shè)備之間不是可移動的。不可遷移密鑰用來例如證明可信實體的身份。另ー類密鑰是已證明可遷移密鑰(“CMK”,由TGC規(guī)范的版本1.2定義)。CMK是介于不可遷移密鑰與可遷移密鑰之間的ー種密鑰。CMK是可遷移的,但是在ー個操作模式下,如果來自可信組件的所有者和各遷移選擇權(quán)カ機(jī)構(gòu)(MSA)的許可被認(rèn)證為特殊CMK遷移協(xié)議的一部分——這是由存儲CMK的相應(yīng)可信設(shè)備執(zhí)行的,CMK只能從ー個平臺遷移至另ー個。因此,CMK是可在可信設(shè)備之間移動的且是相對安全的。按照慣例,期望的是,將不可遷移密鑰存儲在存儲分級結(jié)構(gòu)樹的ー個或多個分支中并將可遷移密鑰存儲在不同的分支中,從而使得可信設(shè)備管理不同類別的密鑰相對簡単??梢詫MK存儲在其他分支中。對于可信平臺的每個用戶,可以復(fù)制(對于不同類別的密鑰的使用不同分支的)此布置,使得僅僅屬于ー個用戶的密鑰被存儲在每個分支中。第二示例性現(xiàn)有技術(shù)可信平臺
假設(shè)針對操作系統(tǒng)和由操作系統(tǒng)加載的應(yīng)用記錄了完整性度量,則上述可信平臺10使得用戶能夠檢查平臺的狀態(tài)并決定是否信任它。如果操作系統(tǒng)已經(jīng)運(yùn)行不被第一用戶信任(但可能被不同的用戶信任)的應(yīng)用,則第一用戶可以通過檢查相關(guān)PCR檢測到這一點(甚至在應(yīng)用已經(jīng)終止之后)。然而,在這種情況下,對于上述可信平臺,用于針對第一用戶重建對平臺的信任的唯一方式是使平臺被重新啟動。此缺點在平臺用來運(yùn)行支持多個計算環(huán)境的分隔式操作系統(tǒng)的情況下倍増,因為除非適當(dāng)?shù)拇胧┚臀?,否則在任何環(huán)境中運(yùn)行不可信應(yīng)用都要求重新啟動平臺以重建信任。其解決方案是提供ー種硬件/軟件架構(gòu),其使得能夠?qū)⒑诵能浖?BI0S&操作系統(tǒng)/管理程序)與較高級別的軟件隔離,使得如果后者不被信任,則只需從核心軟件重建信任(假設(shè)后者是被信任的)。在核心軟件支持多個計算環(huán)境的情況下,然后假設(shè)后者被相互隔離,則可以重新啟動不可信環(huán)境,而不重新啟動核心軟件或由其支持的其他計算環(huán)境。此夕卜,在支持多個計算環(huán)境的情況下,為每個此類環(huán)境提供相應(yīng)的可信實體(通常是虛擬可信設(shè)備)是方便的?,F(xiàn)在將參考圖8來簡要地描述支持多個隔離計算環(huán)境的示例性可信平臺80。在通過引用結(jié)合到本文中的美國公開專利申請US 2005/0223221中可以找到各種形式的此類可信平臺的更全面描述。圖8中所示的可信平臺80具有一個或多個平臺處理器81和與先前所述可信設(shè)備24類似但是其中形成CRTM的代碼在單獨ROM 83中的硬件可信設(shè)備82。以與上文針對平臺10和可信設(shè)備24所述等同的方式,在平臺重置之后,由主平臺處理器81中的一個來運(yùn)行CRTM代碼以確定用于BIOS代碼(例如存儲在與CRTM相同的ROM 83中)的完整性度量并將該度量傳遞至可信設(shè)備82以便插入PCR中。其后,加載BIOS 84,BIOS又在加載安全核85之前測量并在可信設(shè)備82中記錄安全核代碼的完整性度量;安全核85然后在加載管理程序86 (也稱為虛擬機(jī)監(jiān)視程序)之前測量并在可信設(shè)備82中記錄管理程序代碼的完整性度量。實際上,通常將記錄更多的完整性度量并加載中間代碼模塊。元件81至85形成平臺80的可信計算基800。也可以將管理程序86視為可信計算基的一部分,附帯條件是針對諸如管理程序86之類的任何復(fù)雜程序,雖然可以驗證平臺上的管理程序代碼與參考版本相同,但非常難以保證參考版本本身并不具有任何安全弱點。管理程序86使得能夠提供多個操作系統(tǒng)環(huán)境,每個在被與其他操作系統(tǒng)環(huán)境隔離的其自己的分區(qū)中;在圖8中,舉例來說,示出了三個操作系統(tǒng)環(huán)境88A、88B和88C,每個在其自己的相應(yīng)分區(qū)87A、87B、87C中;可以將每個分區(qū)布置成在不同的平臺處理器81上執(zhí)行,從而改善隔離程度。管理程序86使得能夠?qū)崿F(xiàn)且保護(hù)分區(qū)之間和與外面世界的通信。按照需要,應(yīng)用在操作系統(tǒng)環(huán)境中的適當(dāng)?shù)囊粋€中運(yùn)行;在這種情況下,示出了在操作系統(tǒng)環(huán)境88A中運(yùn)行的一個應(yīng)用801??梢酝ㄟ^使用提供多個特權(quán)級別的主平臺處理器來提供分區(qū)的隔離的附加/替換保證。在這種情況下,BIOS 84和安全核85例如在主平臺處理器81的最特權(quán)級別運(yùn)行,而管理程序86在主平臺處理器81的第二最特權(quán)級別運(yùn)行。所有其他代碼在較低特權(quán)級別運(yùn)行(應(yīng)用通常在低于操作系統(tǒng)環(huán)境的級別的最低特權(quán)級別運(yùn)行),因此提供了 BIOS 84、安全核85和管理程序86與潛在不可信代碼的隔離。將認(rèn)識到的是,實際上,每個分區(qū)87A、87B、87C提供虛擬計算平臺環(huán)境,該虛擬計算平臺環(huán)境基本上獨立于其他此類計算環(huán)境(例如相對于其他此類計算環(huán)境被封裝或分隔)。對于用戶而言,此類環(huán)境看起來與標(biāo)準(zhǔn)的獨立式計算平臺完全相同的方式表現(xiàn),甚至下至重新啟動平臺的能力其中,虛擬計算平臺的重新啟動操作僅重新啟動相關(guān)分區(qū)中可用的資源(換言之,重新啟動操作將不會對其他虛擬計算平臺具有任何影響)。在本示例中,每個分區(qū)87A、87B、87C具有其自己的關(guān)聯(lián)虛擬可信設(shè)備89A、89B、89C (雖然在圖8中在每個分區(qū)中示出,但虛擬可信設(shè)備在邏輯上是安全核的一部分,并且對于具有特權(quán)級別的主處理器,虛擬可信設(shè)備可以在與安全核相同的特權(quán)級別或在単獨分區(qū)中運(yùn)行)。硬件可信設(shè)備82負(fù)責(zé)存儲用于虛擬設(shè)備和相關(guān)可信功能(諸如虛擬RTM)的代碼的完整性度量。其后,分區(qū)的虛擬可信設(shè)備89負(fù)責(zé)記錄和報告用于相關(guān)操作系統(tǒng)環(huán)境及其正在運(yùn)行的任何應(yīng)用的完整性度量。每個虛擬可信設(shè)備具有其自己的(ー個或多個)AIK以便對其完整性度量報告進(jìn)行簽名;此類AKI是由可信實體(其可以是硬件可信設(shè)備82)基于由用于可信計算基的設(shè)備82報告的完整性度量和虛擬可信設(shè)備代碼而發(fā)布的。與給定分區(qū)中的應(yīng)用有關(guān)的完整性度量的全面報告是以下各項的組合
一由硬件可信設(shè)備簽名的用于可信計算基和虛擬可信設(shè)備代碼的完整性度量;以及 一由相關(guān)虛擬可信設(shè)備簽名的應(yīng)用及其操作系統(tǒng)環(huán)境的完整性度量。將認(rèn)識到的是,由平臺80提供的隔離使必須被重啟以重建對任何特定分區(qū)的信任的軟件最小化。還將認(rèn)識到的是,具有用于可信計算基800的一個硬件可信設(shè)備82和每個分區(qū)一個虛擬可信設(shè)備的布置僅僅是許多可能性之中的ー個,該許多可能性包括僅僅具有用于整個平臺的單個硬件或虛擬可信設(shè)備?!愣?,本發(fā)明的實施例使得可信實體能夠?qū)⒂糜趫?zhí)行策略的責(zé)任委托給外部策略引擎可信實體外面的意義上的外部,例如在同一可信平臺上或在遠(yuǎn)程平臺上。因此,可以在可信設(shè)備內(nèi)不要求顯著的附加資源的情況下執(zhí)行甚為復(fù)雜的策略,從而使得可信設(shè)備能夠保持相對廉價。策略引擎可以涉及可信實體內(nèi)部的密鑰的使用、秘密從可信實體的釋放、密鑰從可信實體(密鑰至可信實體)的遷移。事實上,可以將所述原則應(yīng)用于要求策略執(zhí)行的任何可信過程。本發(fā)明的實施例信賴于這樣的認(rèn)識即,默認(rèn)地,使用密鑰和秘密的應(yīng)用就緒,宣稱策略;亦即,何時使用密鑰或秘密。例如,如果密鑰將被環(huán)境中的應(yīng)用軟件使用或者秘密被可信實體披露給環(huán)境中的應(yīng)用軟件,則可以在與該應(yīng)用相同的程度上保護(hù)該環(huán)境中的其他軟件。因此,在可信實體(策略引擎)外面的軟件可以用來在由應(yīng)用進(jìn)行密鑰使用或秘密披露之前應(yīng)用任意復(fù)雜的策略。在未提供硬件可信模塊的設(shè)備中,可以提供用于執(zhí)行如上所述的相同任務(wù)的軟件核。例如,在其中成本和/或空間非常重要的某些設(shè)備中,可能期望用軟件來實現(xiàn)信任模塊。因此,移動可信模塊(MTM)是形成供在移動和嵌入式設(shè)備中使用的TCG規(guī)范的一部分的安全元件。MTM的實現(xiàn)是作為軟件功能而不是硬件的物理實現(xiàn)而提供的。移動電話例如通常將包含多個MTM,其全部提供與現(xiàn)有TPM類似的功能,但其中的某些具有附加功能以將電話的數(shù)個部分引導(dǎo)到預(yù)置狀態(tài)。ー個 MTM 命令是“MTM_VerifyRMCertAndExtend” (RIM =參考完整性度量),其使得能夠在嵌入式平臺中實現(xiàn)與非嵌入式平臺中的TCG的局部性授權(quán)等同的功能。此命令使用第一公鑰來驗證PCR值上的所簽名證書加上要被擴(kuò)展至所述PCR中的測量。如果驗證成功,并且證書中的PCR值與當(dāng)前在MTM中的那些相同,則來自證書的測量被MTM擴(kuò)展至所述PCR中。在使用第一公鑰之前對第一公鑰本身進(jìn)行驗證。可以通過將其與存儲在MTM中的值相比較來對其進(jìn)行驗證。可以通過使用通過將第二公鑰與存儲在MTM中的值相比較而被驗證的第二公鑰來檢查第一公鑰上的簽名,來驗證第一公鑰??梢詫⒃摲椒ㄒ话慊潦褂霉€分級結(jié)構(gòu)的任何深度以便驗證證書,其中,通過將分級結(jié)構(gòu)的根與存儲在TPM中的值相比較來對其進(jìn)行驗證(以某種期望方式)。因此,當(dāng)由MTM_VerifyRIMCertAndExtend命令發(fā)起PCR更新時,用由命令中的密鑰句柄所指示的所加載驗證密鑰來檢查外部RM證書上的簽名。如果簽名匹配,并且前提條件、計數(shù)值等效值和PCR內(nèi)容也匹配,則用在RM證書中所述的值來更新給定PCR。在圖9中,可信實體是可信硬件設(shè)備90,其被示為被附著于可信存儲器92 (例如,系統(tǒng)RAM或普通硬盤),可信存儲器92包含受保護(hù)存儲分級結(jié)構(gòu)94,如上所述??尚旁O(shè)備90與進(jìn)行請求的應(yīng)用96和策略引擎98進(jìn)行通信。圖9中的布置根據(jù)圖10中的流程圖進(jìn)行操作。參考圖10,進(jìn)行請求的應(yīng)用96與可信設(shè)備90通信[步驟100]并讓可信設(shè)備執(zhí)行某種安全操作(例如,對例如密鑰、ロ令等秘密進(jìn)行釋放、接收或以某種方式進(jìn)行操作)。出于本示例的目的,假設(shè)請求是釋放存儲在ニ進(jìn)制大對象中的秘密。可信設(shè)備90接收該請求并從可信存儲器92恢復(fù)ニ進(jìn)制大對象[步驟105]。接下來[步驟110],可信設(shè)備90生成包括授權(quán)值(authValue)的質(zhì)詢,其被傳遞至所識別策略引擎98且被其接收[步驟115]??尚旁O(shè)備90還保持authValue的副本以用于將來的比較目的。在該簡單實施例中,authValue包括新生成的隨機(jī)數(shù)(隨機(jī)數(shù)字)。策略引擎98和進(jìn)行請求的應(yīng)用96相交互[步驟120和125]以便以適當(dāng)?shù)姆绞綀?zhí)行策略,通常驗證除進(jìn)行請求的應(yīng)用96所固有的任何授權(quán)或認(rèn)證之外的授權(quán)和/或認(rèn)證。附加授權(quán)和/或認(rèn)證可以采取各種形式。例如,其可以包括由控制該進(jìn)行請求的應(yīng)用96的用戶將ロ令輸入到圖形用戶界面彈出框,或智能卡19的使用,和用戶進(jìn)行的關(guān)聯(lián)ロ令的輸入。如果該進(jìn)行請求的應(yīng)用96 (以及潛在地控制該進(jìn)行請求的應(yīng)用的用戶)未經(jīng)認(rèn)證[步驟130],則將策略視為不令人滿意且過程結(jié)束[步驟135]。如果進(jìn)行請求的應(yīng)用96(和控制該進(jìn)行請求的應(yīng)用的任何用戶)被認(rèn)證[步驟130],則將策略視為令人滿意且策略引擎98將authValue傳遞至進(jìn)行請求的應(yīng)用96,該進(jìn)行請求的應(yīng)用96接收authValue [在步驟140中]。隨后[步驟145],該進(jìn)行請求的應(yīng)用96將authValue傳遞至可信設(shè)備90且可信設(shè)備將接收到的authValue與所存儲副本[步驟150]相比較以便對請求進(jìn)行認(rèn)證。如果接收到的authValue并不與所存儲副本匹配,則過程結(jié)束[步驟135]。然而,如果接收到的authValue與所存儲副本匹配,則可信設(shè)備90接受該策略一定已被滿足并向該進(jìn)行請求的應(yīng)用釋放秘密[步驟160]。圖11中的圖舉例說明了圖9中所示方案的替換方案。 在圖11中,附圖標(biāo)記與在圖9中相同,除存在兩個附加策略引擎98’和98’’之外。在該實例中,來自進(jìn)行請求的應(yīng)用96的請求要求在可信設(shè)備90將釋放秘密之前三個不同的策略被滿足。因此,可信設(shè)備90可以在ー個或多個ニ進(jìn)制大對象中存儲每個策略引擎的身份。在本示例中,可信設(shè)備90生成三個不同的質(zhì)詢(每個策略引擎ー個質(zhì)詢),其中,每個質(zhì)詢包括不同的authValue (隨機(jī)數(shù)),并且將每個隨機(jī)數(shù)密封到各策略引擎的測量。如果進(jìn)行請求的應(yīng)用96滿足每個策略,則每個策略引擎將其各自的隨機(jī)數(shù)轉(zhuǎn)送至進(jìn)行請求的應(yīng)用96。如果進(jìn)行請求的應(yīng)用96能夠?qū)⒄_數(shù)目和形式的隨機(jī)數(shù)發(fā)送至可信設(shè)備90,則可信設(shè)備相信策略一定已經(jīng)被滿足,并且向進(jìn)行請求的應(yīng)用96釋放秘密。如所指出的,在需要執(zhí)行多個策略的情況下,如在圖11中所示的方案中,用于姆個策略引擎的姆個質(zhì)詢可以包含不同的authValue。作為存儲姆個單獨authValue的副本的替代,可信設(shè)備90可以使用‘秘密共享’來將多個authValue (或authValue份額)組合成單個authValue,例如通過對AuthValue份額一起取“異或”91并存儲結(jié)果得到的authValue。當(dāng)進(jìn)行請求的應(yīng)用96從策略引擎接收到姆個authValue份額時(當(dāng)然,假設(shè)其滿足每個策略),則其還可 以將各份額一起取“異或”98成單個authValue,其將該authValue傳遞至可信設(shè)備90??尚旁O(shè)備90然后可以在單個比較操作中將接收到的authValue與所存儲authValue相比較??梢酝ㄟ^記錄在policyHash寄存器(類似于PCR寄存器)中來將響應(yīng)ー個接ー個地組合,即用來驗證每個響應(yīng)的方法。然后將policyHash寄存器的最終內(nèi)容與例如目標(biāo)密鑰中的PolicyDigest值相比較。如果它們是相同的,則密鑰的使用已經(jīng)例如經(jīng)由策略機(jī)制被授權(quán)。TCG的TPM工作組已經(jīng)定義了授權(quán)方法,其使得能夠?qū)崿F(xiàn)除其他算子之外的布爾與等式的構(gòu)造和驗證,其中,該等式中的每ー項表示對數(shù)據(jù)的操作。如果操作成功地完成,則表示該操作的某些數(shù)據(jù)被以與對PCR執(zhí)行的擴(kuò)展過程類似的方式擴(kuò)展至稱為policyHash的策略寄存器中。如果policyHash的內(nèi)容與存儲在諸如TCG的密鑰中的ー個之類的對象內(nèi)的PolicyDigest匹配,則認(rèn)為對該對象的操作被批準(zhǔn)。因此將來自授權(quán)方法的命令稱為‘策略命令’,因為該方法可以用來驗證與對象相關(guān)聯(lián)的策略??梢允褂檬跈?quán)方案、具體地通過使用三個命令來執(zhí)行實現(xiàn)MTM_VerifyRIMCertAndExtend命令的功能的方法1.策略命令,其提供PCR的列表加上測量值,并且使TPM將該列表加上所列PCR的當(dāng)前值加上意圖被擴(kuò)展的PCR擴(kuò)展至policyHash中。2.策略命令,其驗證先前策略命令中的被擴(kuò)展至policyHash中的值[的摘要]上的簽名,并且(如果驗證成功)使TPM將驗證密鑰加上其為驗證密鑰的指示擴(kuò)展至policyHash 中。3.策略命令,其將先前策略命令中的被擴(kuò)展至policyHash中的值[的摘要]與存儲在TPM中的值相比較,并且(如果它們是相同的)使TPM將所存儲值加上其為存儲值的指示擴(kuò)展至policyHash中。命令(I)和(2)和(3)使得能夠消除專用VerifyRIMCertAndExtend命令。要使用三級公鑰分級結(jié)構(gòu)對針對PCR的擴(kuò)展操作進(jìn)行授權(quán)所采取的步驟的示例如下
(i)在策略會話開始時使用命令(I)。被擴(kuò)展至policyHash寄存器中的值是等同于VerifyRIMCertAndExtend證書的內(nèi)容的值,除實際測量值之外。
(ii)使用命令(2)以使用第一驗證公鑰來驗證該證書值是預(yù)期值。被擴(kuò)展至policyHash寄存器中的值是[第一]驗證公鑰加上其為驗證密鑰的指示。(iii)使用命令(2)以使用第二驗證公鑰來驗證在先前命令中使用的[第一]驗證公鑰是預(yù)期值。被擴(kuò)展至policyHash寄存器中的值是當(dāng)前[第二]驗證公鑰加上其為驗證密鑰的指示。(iv)使用命令(2)以使用第三公鑰來驗證在先前命令中使用的[第二 ]驗證公鑰是預(yù)期值。被擴(kuò)展至policyHash寄存器中的值是當(dāng)前[第三]驗證公鑰加上其為驗證密鑰的指示。(v)使用命令(3)以驗證在先前命令中使用的[第三]驗證公鑰是預(yù)期值。被擴(kuò)展至policyHash寄存器中的值是在先前命令中所使用的[第三]驗證公鑰加上其為所存儲值的指示。根據(jù)實施方式,無論公鑰分級結(jié)構(gòu)的深度如何,都要求步驟(i) (ii)和(V)。如果公鑰分級結(jié)構(gòu)是ー級,則不要求步驟(iii )和(iv)。如果公鑰分級結(jié)構(gòu)是僅僅兩級,則不要求步驟(iv)。如果公鑰分級結(jié)構(gòu)大于三級,則要求步驟(iii)或(iv)的附加復(fù)制。因此,提供了專用MTM_VerifyRIMCertAndExtend命令的消除和由一般化命令進(jìn)行的其替換。
權(quán)利要求
1.一種通過使用一組策略命令來擴(kuò)展在可信平臺中操作的可信設(shè)備中的完整性測量的方法,該方法用于 將用于該設(shè)備的平臺配置寄存器(PCR)的列表及所列PCR的當(dāng)前值和標(biāo)識完整性測量的完整性值擴(kuò)展至策略寄存器中; 驗證被擴(kuò)展至策略寄存器中的完整性值上的簽名,并且如果驗證成功,則將可信平臺的驗證密鑰加上其為驗證密鑰的指示擴(kuò)展至策略寄存器中; 將被擴(kuò)展至策略寄存器中的完整性值與存儲在可信平臺中的值相比較,并且如果它們是相同的 將所存儲值加上其為所存儲的值的指示擴(kuò)展至策略寄存器中;以及如果策略寄存器中的值與和完整性測量一起存儲的值匹配,則擴(kuò)展可信設(shè)備中的完整性測量。
2.如權(quán)利要求1所述的方法,其中,所述完整性測量是PCR的內(nèi)容。
3.如權(quán)利要求1所述的方法,其中,所述可信平臺是嵌入式可信平臺。
4.如權(quán)利要求1所述的方法,其中,擴(kuò)展PCR的列表在策略會話開始時使用策略命令。
5.如權(quán)利要求1所述的方法,其中,被擴(kuò)展至策略寄存器中的完整性值是等同于可信平臺環(huán)境中的專用證明和擴(kuò)展證書的內(nèi)容的值。
6.如權(quán)利要求1所述的方法,其中,使用第一驗證公鑰來執(zhí)行對簽名進(jìn)行驗證。
7.如權(quán)利要求6所述的方法,其中,被擴(kuò)展至策略寄存器中的值是第一驗證公鑰加上其為驗證密鑰的指示。
8.如權(quán)利要求6所述的方法,還包括 使用第二驗證公鑰來驗證在先前命令中所使用的第一驗證公鑰是預(yù)期值。
9.如權(quán)利要求8所述的方法,其中,被擴(kuò)展至策略寄存器中的值是第二驗證公鑰加上其為驗證密鑰的指示。
10.一種控制對對象的訪問的方法,包括 將第一值結(jié)合到特權(quán)值中; 將第二值結(jié)合到特權(quán)值中,其中,第二值描述成功地對第一值進(jìn)行驗證的方法;以及 當(dāng)特權(quán)值與和對象一起存儲的值匹配時,提供對對象的訪問。
11.一種在可信平臺中操作的設(shè)備,該設(shè)備包括用于通過使用一組策略命令通過以下操作來擴(kuò)展設(shè)備中的完整性測量的處理器 將用于該設(shè)備的平臺配置寄存器(PCR)的列表及所列PCR的當(dāng)前值和標(biāo)識完整性測量的完整性值擴(kuò)展至策略寄存器中; 驗證被擴(kuò)展至策略寄存器中的完整性值上的簽名,并且如果驗證成功,則將可信平臺的驗證密鑰加上其為驗證密鑰的指示擴(kuò)展至策略寄存器中; 將被擴(kuò)展至策略寄存器中的完整性值與存儲在可信平臺中的值相比較,并且如果它們是相同的 將所存儲值加上其為所存儲的值的指示擴(kuò)展至策略寄存器中;以及如果策略寄存器中的值與和完整性測量一起存儲的值匹配,則擴(kuò)展可信設(shè)備中的完整性測量。
全文摘要
一種通過使用一組策略命令來擴(kuò)展在嵌入式可信平臺中操作的可信設(shè)備中的完整性測量的方法,該方法用于將用于該設(shè)備的平臺配置寄存器(PCR)的列表及所列PCR的當(dāng)前值和標(biāo)識完整性測量的完整性值擴(kuò)展至策略寄存器中,驗證被擴(kuò)展至策略寄存器中的完整性值上的簽名,并且如果驗證成功,則將可信平臺的驗證密鑰加上其為驗證密鑰的指示擴(kuò)展至策略寄存器中,將被擴(kuò)展至策略寄存器中的完整性值與存儲在可信平臺中的值相比較,并且如果它們是相同的將所存儲值加上其為所存儲的值的指示擴(kuò)展至策略寄存器中,并且如果策略寄存器中的值與和完整性測量一起存儲的值匹配,則擴(kuò)展可信設(shè)備中的完整性測量。
文檔編號G06F9/44GK103038745SQ201180035623
公開日2013年4月10日 申請日期2011年5月12日 優(yōu)先權(quán)日2010年5月21日
發(fā)明者G.J.普勞德勒, L.陳 申請人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)