專利名稱::用于驗(yàn)證處理系統(tǒng)部件的方法和裝置的制作方法用于msE處理系統(tǒng)部件的方法和裝置
技術(shù)領(lǐng)域:
本公開(kāi)大致涉及數(shù)據(jù)處理領(lǐng)域,更具體地說(shuō),涉及用于驗(yàn)證處理系統(tǒng)部件的方法及相關(guān)裝置。
背景技術(shù):
:處理系統(tǒng)可以包括硬件資源,諸如中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)和非易失性存儲(chǔ)器。處理系統(tǒng)還可以包括軟件資源,諸如基本輸入/輸出系統(tǒng)(BIOS)、虛擬機(jī)監(jiān)控程序(VMM)和運(yùn)行于VMM上的一個(gè)或多個(gè)客戶操作系統(tǒng)(OS)(guest叩eratingsystem)。在引導(dǎo)或復(fù)位計(jì)算機(jī)系統(tǒng)時(shí),它會(huì)加載BIOS,然后是VMM。然后,VMM可以產(chǎn)生一個(gè)或多個(gè)虛擬機(jī),并且虛擬機(jī)可以引導(dǎo)(boot)到不同的OS或相同OS中的不同示例。除了RAM和一個(gè)或多個(gè)CPU之外,處理系統(tǒng)還可以包括安全協(xié)處理器(securitycoprocessor),諸如可信平臺(tái)模塊(TPM)。TPM是駐留于處理系統(tǒng)內(nèi)的硬件部件,并提供了各種設(shè)施和服務(wù)以擴(kuò)增處理系統(tǒng)的安全性。例如,TPM可實(shí)現(xiàn)為集成電路(IC)或半導(dǎo)體晶片,并且它可以用于保護(hù)數(shù)據(jù)和認(rèn)i正平臺(tái)的配置。TPM可按照規(guī)范來(lái)實(shí)現(xiàn),諸如2003年十月二日的可信計(jì)算組(TCG)TPM規(guī)范版本1.2(下文的"TPM規(guī)范"),它包括諸如設(shè)計(jì)原則、TPM結(jié)構(gòu)和TPM命令的部分。TPM規(guī)范由TCG公布并且可從互聯(lián)網(wǎng)(www.trustedcomputinggroup.org/home)得到。TPM的子部件可以包括執(zhí)4亍引擎和安全的非易失性(NV)存儲(chǔ)器或存貯器??煽康腘V存儲(chǔ)器用于存儲(chǔ)敏感信息,諸如密碼密鑰,并且執(zhí)行引擎根據(jù)由TPM控制邏輯規(guī)定的安全策略而保護(hù)敏感信息。通常,基于平臺(tái)特征,TCG順應(yīng)的TPM可以提供安全性服務(wù),諸如驗(yàn)證身份和/或平臺(tái)的完整性。通常由TPM考慮的平臺(tái)特征包括平臺(tái)的硬件部件(諸如處理器和芯片組)以及駐留于平臺(tái)中的軟件(諸如固件和OS)。TPM還可以支持軟件處理的審核和登錄,以及平臺(tái)引導(dǎo)完整性、文件完整性和軟件許可的核實(shí)。因此,TPM可以被認(rèn)為是平臺(tái)的可信根。然而,TPM通常還依賴于固有可靠的平臺(tái)的CPU執(zhí)行的特定代碼。該代碼被認(rèn)為是核心度量可信根CCRT1V0。具體而言,TCG識(shí)別平臺(tái)用的三個(gè)主可信根存儲(chǔ)可信根(RTS)、報(bào)告可信根(RTR)和度量可信根(RTM)。就如https:〃www.Trustedcomputinggroup.org/groups/glossary網(wǎng)址的TCG術(shù)語(yǔ)表中所說(shuō)明的,TPM通常用作RTS和RTR。相反,通常RTM是"由CRTM控制的普通平臺(tái)計(jì)算引擎。這是可信傳遞鏈的根。"而且,TCG術(shù)語(yǔ)表解釋到,可信根是"必須總是以預(yù)期方式實(shí)施行為的部分,因?yàn)槠洳徽?dāng)行為是不能,皮檢測(cè)到的。"
發(fā)明內(nèi)容本發(fā)明的一個(gè)方面涉及一種用于驗(yàn)證軟件的方法,該方法包括在引導(dǎo)過(guò)程期間,將密碼密鑰的加密版本從處理系統(tǒng)的非易失性存儲(chǔ)器取到處理系統(tǒng)的處理單元;在處理單元中將密碼密鑰解密;獲取處理系統(tǒng)的軟件的預(yù)定義驗(yàn)"^正碼;用密碼密鑰來(lái)計(jì)算軟件的當(dāng)前驗(yàn)證碼;及至少部分基于預(yù)定義驗(yàn)證碼與當(dāng)前驗(yàn)證碼的比較而確定軟件是否應(yīng)該可信。本發(fā)明的另一方面涉及一種用于支持軟件驗(yàn)證的方法,方法包括使用密碼密鑰來(lái)為處理系統(tǒng)的軟件產(chǎn)生驗(yàn)證碼;將驗(yàn)證碼保存到處理系統(tǒng)中;將密碼密鑰保存到處理系統(tǒng)的非易失性存儲(chǔ)器中;以及為處理系統(tǒng)配置能夠使處理系統(tǒng)執(zhí)行《I導(dǎo)操作的引導(dǎo)軟件,其中包括從非易失性存儲(chǔ)器獲取密碼密鑰;使用密碼密鑰來(lái)重新計(jì)算驗(yàn)證碼;及至少部分基于重新計(jì)算的驗(yàn)證碼和保存的驗(yàn)證碼的比較而確定軟件是否應(yīng)該可信。本發(fā)明的又一方面涉及一種處理系統(tǒng)包括帶非易失性存貯器的處理單元;存貯于非易失性存貯器中的密碼處理單元密鑰(PUK);與處理單元進(jìn)行通信的至少一個(gè)非易失性存貯部件;至少一個(gè)非易失性存貯部件中的候選代碼模塊;和至少一個(gè)非易失性存貯部件中的擴(kuò)增引導(dǎo)代碼模塊;處理單元構(gòu)造成能夠在執(zhí)行來(lái)自候選代碼模塊的代碼之前,執(zhí)行來(lái)自擴(kuò)增引導(dǎo)代碼模塊的代碼;其中,擴(kuò)增引導(dǎo)代碼模塊包括驗(yàn)證密鑰的加密版本;在由處理單元執(zhí)行時(shí)能夠使處理單元執(zhí)行如下操作的指令,包括使用PUK解密驗(yàn)證密鑰的加密版本;及在執(zhí)行任何來(lái)自候選代碼模塊的指令之前,使用驗(yàn)證密鑰來(lái)驗(yàn)證候選代碼模塊。本發(fā)明還有一方面涉及一種裝置包括機(jī)器可訪問(wèn)介質(zhì);機(jī)器可訪問(wèn)介質(zhì)中的擴(kuò)增引導(dǎo)代碼才莫塊,其中擴(kuò)增引導(dǎo)代碼模塊包括驗(yàn)證密鑰的加密版本;在引導(dǎo)過(guò)程期間由處理單元執(zhí)行的初級(jí)引導(dǎo)指令,處理單元帶有非易失性存貯器,并且密碼處理單元密鑰(PUK)存貯于非易失性存貯器中;初級(jí)引導(dǎo)指令包括在由處理單元執(zhí)行時(shí)能夠使處理單元執(zhí)行下列操作的指令,包括使用PUK來(lái)解密驗(yàn)證密鑰的加密版本;及在執(zhí)行來(lái)自候選代碼模塊的任何指令之前,使用驗(yàn)證密鑰來(lái)驗(yàn)證候選代碼模塊。通過(guò)所附的權(quán)利要求、下文對(duì)一個(gè)或多個(gè)示范性實(shí)施例的詳細(xì)描述及對(duì)應(yīng)附圖,本發(fā)明的特征和優(yōu)點(diǎn)將變得很顯明,其中圖1是描述一適用數(shù)據(jù)處理系統(tǒng)的框圖,其中可實(shí)現(xiàn)本發(fā)明的示范性實(shí)施例的某些方面;圖2是描述涉及圖1的^:據(jù)處理系統(tǒng)的一例數(shù)據(jù)處理環(huán)境的框圖;圖3是根據(jù)本發(fā)明的示范性實(shí)施例的、用于提供帶第三方密鑰和各種清單(manifest)的、圖1的處理系統(tǒng)的流程圖;圖4是根據(jù)本發(fā)明的示范性實(shí)施例的擴(kuò)增驗(yàn)證碼模塊的框圖;圖5是根據(jù)本發(fā)明的示范性實(shí)施例的、在處理單元和安全協(xié)處理器之間建立受保護(hù)信道的過(guò)程的流程圖;圖6是根據(jù)本發(fā)明的示范性實(shí)施例的、用于驗(yàn)證圖1的數(shù)據(jù)處理系統(tǒng)的部件的過(guò)程的流程具體實(shí)施方式本發(fā)明的實(shí)施例提供用于驗(yàn)證平臺(tái)部件,諸如引導(dǎo)固件和/或全性。比如,平臺(tái)可以檢查系統(tǒng)的只讀存儲(chǔ)器(ROM)中的引導(dǎo)固件的真實(shí)性?;蛘撸枰?yàn)證的代碼可以包括諸如來(lái)自硬盤(pán)或其它大容量存)l!i器的OS和/或VMM等部件。作為背景,在帶TPM的平臺(tái)中,平臺(tái)測(cè)試(platformmeasurement)和加密方法可用來(lái)將敏感信息或機(jī)密密封到TPM。比如,在帶VMM的處理系統(tǒng)中,使用VMM和其它平臺(tái)部件的度量能夠?qū)C(jī)密密封到TPM。TPM可以阻止機(jī)密隨后從TPM釋放或啟封,除非VMM和其它平臺(tái)被驗(yàn)證為與密封用的度量匹配。然而,在機(jī)密被啟封時(shí),它就可以用明語(yǔ)電文(即未加密)形式在在TPM和CPU之間處理系統(tǒng)中的信道上傳遞。本公開(kāi)介紹了用于在安全協(xié)處理器(例如,TPM)和處理單元(例如,CPU)之間以加密格式傳遞機(jī)密的機(jī)制和過(guò)程。從而,即使攻擊者窺探(snoop)到了處理系統(tǒng)中的內(nèi)部總線,攻擊者也不能截獲明語(yǔ)電文機(jī)密。介紹的機(jī)制和過(guò)程可以適于為高價(jià)值內(nèi)容提供擴(kuò)增的保護(hù),例如,關(guān)于數(shù)字版權(quán)管理(DRM)。就如將在下文詳細(xì)介紹的,在一個(gè)實(shí)施例中,TPM和CPU之間的信道上的數(shù)據(jù)使用各會(huì)話的密碼密鑰(cryptographickey)而加密。另外,CPU和TPM預(yù)先設(shè)置有密碼密鑰(本文稱為"第三方密碼密鑰"或"3PK,,),該密鑰用于驗(yàn)證會(huì)話終端和產(chǎn)生各會(huì)話的密碼密鑰。因此,3PK還被稱為驗(yàn)證密鑰。為此公開(kāi)的目的,對(duì)于處理單元和包括處理單元的處理系統(tǒng)而言,"第一方"是處理器的制造商,而"第三方"則是與處理單元或處理系統(tǒng)相關(guān)的任何其它實(shí)體。比如,處理系統(tǒng)的制造商和處理系統(tǒng)的所有者被認(rèn)為是"第三方"。再來(lái)討論第三方密鑰,CPU的制造商不必將3PK加載到CPU或TPM。事實(shí)上,由于TPM是與平臺(tái)相關(guān)的,在CPU制造商并不裝配平臺(tái)時(shí),CPU制造商就沒(méi)有機(jī)會(huì)將3PK加載入TPM內(nèi)。相反,3PK和將其加載入處理系統(tǒng)內(nèi)的過(guò)程主要由某些其它方控制,諸如由處理系統(tǒng)的制造商控制。例如,就如在下文將詳細(xì)介紹的,在構(gòu)建處理系統(tǒng)時(shí),初始設(shè)備廠家(OEM)可以獲得擴(kuò)增驗(yàn)證碼(AC)模塊,它包含要安裝到處理系統(tǒng)CPU中的第三方密碼密鑰。就如將在下文詳細(xì)介紹的,在擴(kuò)增AC模塊(augmentedACmodule)內(nèi),3PK可基于處理單元密鑰(PUK)而被加密保護(hù)。為了此公開(kāi)的目的,處理單元密鑰或PUK是在制造處理器時(shí)存貯于處理器中且以非易失性形式保留于處理器中的密碼密鑰。比如,處理器可以不管關(guān)機(jī)重啟(powercycle)或處理器的復(fù)位而保留密鑰。擴(kuò)增AC模塊還可以包括初級(jí)引導(dǎo)代碼,并且擴(kuò)增AC^莫塊可以用簽名來(lái)保護(hù)b擴(kuò)增AC模塊可以存儲(chǔ)于引導(dǎo)存貯器中(例如,通常包含BIOS代碼的閃存)。平臺(tái)構(gòu)建者還可以在平臺(tái)制造期間將3PK安裝到平臺(tái)的TPM內(nèi)。隨后在復(fù)位時(shí),CPU就可以定位并運(yùn)行擴(kuò)增AC;f莫塊中的初級(jí)引導(dǎo)代碼。因此,AC模塊和已經(jīng)用加密3PK擴(kuò)增的相似類型的模塊可以被認(rèn)為是擴(kuò)增引導(dǎo)代碼模塊。在一個(gè)實(shí)施例中,CPU可以將固件接口表(FIT)用作標(biāo)準(zhǔn)機(jī)制以定位并運(yùn)行擴(kuò)增AC模塊。關(guān)于FIT的附加信息提供于2003年12月的IntelItaniumProcessorFamilySystemAbstractionLayer(處理器家族系統(tǒng)抽象層規(guī)范)中,它可以從互寫(xiě)關(guān)網(wǎng)在download.intel.com/design/Itanhjrn/Downloads/24535907.Pdf網(wǎng)址獲得。在運(yùn)^"時(shí),擴(kuò)增AC^t塊可以將3PK安裝到只能由特權(quán)代碼(privilegedcode)修改的CPU寄存器中。因此,平臺(tái)可用文中介紹的方法來(lái)將OEM密鑰傳送到BIOS存儲(chǔ)器,并安全地在各次引導(dǎo)時(shí)將它們安裝到處理器。擴(kuò)增AC模塊還可以初始化TPM,并創(chuàng)建由處理器和TPM使用以加密兩個(gè)部件之間的交換數(shù)據(jù)的會(huì)話密鑰。例如,一旦3PK已裝入處理器和TPM內(nèi),使用標(biāo)準(zhǔn)加密方案,這些密鑰又可以用來(lái)產(chǎn)生一個(gè)或多個(gè)會(huì)話密鑰。然后,會(huì)話就用于處理器和TPM之間的安全通信。介紹的解決方案允許CPU和安全性處理器(諸如TPM)之間的安全通信,因此確保了安全的交換,甚至可以防范擁有高級(jí)窺探硬件(sno叩inghardware)和可對(duì)機(jī)器進(jìn)行物理接觸的攻擊者。比如,根據(jù)本公開(kāi)的平臺(tái)可確保用于保護(hù)數(shù)據(jù)內(nèi)容的密碼密鑰(例如,用于保護(hù)運(yùn)動(dòng)圖象專家組(MPEG)電影的密鑰,用于保護(hù)信用卡信息數(shù)據(jù)庫(kù)的密鑰等)受到保護(hù),從而不受到基于目的性探測(cè)(in-targetprobe)(ITP)的攻擊。另外,本公開(kāi)介紹了方便、靈活的方法以提供帶有建立受保護(hù)信道用的密鑰的平臺(tái)。第三方可以選擇密鑰并將它裝入平臺(tái)內(nèi)。3PK密碼密鑰不需要構(gòu)建到處理器中。因此,處理器制造商不必知道3PK。另外,如果處理器被返回到制造商,也可以在不損害3PK的情況下重新使用處理器。如果是可信代理需要的話,3PK可以被改變,并且只有在處理器存在于平臺(tái)中時(shí),3PK才可與處理器聯(lián)系在一起。因此,這種3PK還可以被稱為平臺(tái)密鑰。OEM或其它實(shí)體也可使用3PK以在裝配或配置處理系統(tǒng)時(shí)為處理系統(tǒng)的各種軟件部件創(chuàng)建清單。隨后,處理系統(tǒng)可使用來(lái)自擴(kuò)增AC模塊的3PK來(lái)驗(yàn)證那些部件,例如在引導(dǎo)期間。因此,處理系統(tǒng)可以避免執(zhí)行已經(jīng)感染了惡意軟件(malware),諸如病毒、根套件(訓(xùn)tkit)、虛擬機(jī)根套件等的軟件包。比如,將在下文詳細(xì)介紹的,OEM可以將帶系統(tǒng)固件用的驗(yàn)證碼的固件清單保存在引導(dǎo)閃存中。隨后在處理系統(tǒng)引導(dǎo)時(shí),在執(zhí)行固件時(shí),系統(tǒng)可以檢查清單以確定固件是否已經(jīng)被篡改。可以采取相似的步驟來(lái)保護(hù)其它部件,諸如v畫(huà)、os等。另一可選方式是,OEM可將這些3PK中多于一個(gè)的3PK存貯到擴(kuò)增AC片莫塊中,而各3PK用于不同的目的。比如,一個(gè)3PK可以用于在處理器和TPM之間建立可靠的通信,而其它3PK可以用于(a)驗(yàn)證平臺(tái)固件,(b)驗(yàn)證主OS,以及(c)驗(yàn)證VMM。圖1是描述適用數(shù)據(jù)處理系統(tǒng)20的框圖,其中實(shí)現(xiàn)了本發(fā)明示范性實(shí)施例的某些方面。數(shù)據(jù)處理系統(tǒng)20具有不同硬件部件82,諸如中央處理器(CPU)22通過(guò)一個(gè)或多個(gè)系統(tǒng)總線24或其它通信路徑或介質(zhì)可通信地連接到各種其它部件。此公開(kāi)使用的"總線"指的是共享通信路徑,以及點(diǎn)到點(diǎn);洛徑。CPU22可包括兩個(gè)或多個(gè)處理單元,諸如處理單元30和處理單元32。另一可選方式是,處理系統(tǒng)可包括帶一個(gè)處理單元的CPU,或各具有至少一個(gè)處理單元的多個(gè)處理器。處理單元可實(shí)現(xiàn)為處理核心(processingcore)、超線程(HT)技術(shù),或用于同時(shí)或基本同時(shí)地執(zhí)行多線程的任何其它適用技術(shù)。文中使用的術(shù)語(yǔ)"處理系統(tǒng)"和"數(shù)據(jù)處理系統(tǒng)"廣義地涵蓋單一的機(jī)器或由可通信地連接的機(jī)器、設(shè)備構(gòu)成的共同運(yùn)行的系統(tǒng)。示例處理系統(tǒng)包括(但是并不僅限于)分布式計(jì)算系統(tǒng)、超級(jí)計(jì)算機(jī)、高性能計(jì)算系統(tǒng)、計(jì)算群集(computingcluster)、大型計(jì)算機(jī)、微型計(jì)算機(jī)、客戶-服務(wù)器系統(tǒng)、個(gè)人計(jì)算機(jī)、工作站、服務(wù)器、手提式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板設(shè)備(tablet)、電話、個(gè)人數(shù)字助理(PDA)、手提式裝置、娛樂(lè)裝置、諸如音頻和/或視頻裝置和用于處理或傳送信息的其它設(shè)備。處理系統(tǒng)20可以由來(lái)自傳統(tǒng)輸入設(shè)備,諸如鍵盤(pán)、鼠標(biāo)等的輸入,和/或接收自另一機(jī)器、生物反饋(biometricfeedback),或其它輸入源或信號(hào)的指示來(lái)控制,或至少部分控制。處理系統(tǒng)20可以利用到達(dá)一個(gè)或多個(gè)遠(yuǎn)程數(shù)據(jù)處理系統(tǒng)的一個(gè)或多個(gè)連接,諸如通過(guò)網(wǎng)絡(luò)接口控制器(NIC)40、調(diào)制解調(diào)器或其它通信端口或耦合。處理系統(tǒng)可以借助于物理和/或邏輯網(wǎng)絡(luò)而互聯(lián),諸如借助局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、內(nèi)部網(wǎng)、互聯(lián)網(wǎng)等。涉及網(wǎng)絡(luò)的通信可以利用各種有線和/或無(wú)線的短程或遠(yuǎn)程載體和協(xié)議,包括射頻(RF)、衛(wèi)星、微波、美國(guó)電氣與電子工程師協(xié)會(huì)(IEEE)802.11、802.16、802.20、藍(lán)牙、光、紅外、電纜、激光等。802.11用的協(xié)議還可以被稱作無(wú)線保真(WiFi)協(xié)議。802.16還可以-陂稱為WiMAX或無(wú)線城域網(wǎng)網(wǎng)絡(luò)協(xié)議,涉及這些協(xié)i義的信息目前可以在grouper.ieee.org/groups/802/16/published.html網(wǎng)iiM尋到。圖2是描述涉及圖1處理系統(tǒng)20的一例數(shù)據(jù)處理環(huán)境12的框圖。尤其是,數(shù)據(jù)處理環(huán)境12包括作為本地處理系統(tǒng)的處理系統(tǒng)20,以及稱為擴(kuò)增驗(yàn)證碼^t塊(AACM)發(fā)生器80的遠(yuǎn)程處理系統(tǒng)。處理系統(tǒng)20和AACM發(fā)生器80可以通過(guò)網(wǎng)多90進(jìn)行通信。比如,處理系統(tǒng)20可以位于OEM裝配車間102中,并且在OEM裝配或配置處理系統(tǒng)20時(shí),OEM可以使處理系統(tǒng)20與AACM發(fā)生器80進(jìn)行通信以向處理系統(tǒng)20提供一個(gè)或多個(gè)專用于該OEM的3PK,就如下文將參照?qǐng)D3詳細(xì)介紹的。尤其是,如下所述的,OEM可引起AACM發(fā)生器80將3PK72、3PK,75和3PK,,77嵌入初級(jí)AC模塊(preliminaryACmodule)中,因此將它轉(zhuǎn)換成專用于該OEM的AACM。再來(lái)看圖1,在處理系統(tǒng)20內(nèi),處理器22可以可通信地連接到一個(gè)或多個(gè)易失性或非易失性的數(shù)據(jù)存貯設(shè)備,諸如RAM26、只讀存儲(chǔ)器(ROM)42、大容量存貯器36,諸如硬盤(pán)驅(qū)動(dòng)器,和/或其它設(shè)備或介質(zhì),諸如軟盤(pán)、光學(xué)存儲(chǔ)器、磁帶,閃存、記憶棒、數(shù)字電視唱片等。出于此公開(kāi)的目的,術(shù)語(yǔ)"ROM"通常用于指的是非易失性存儲(chǔ)設(shè)備,諸如電可編程只讀存儲(chǔ)器(EPROM)、電可擦除只讀存儲(chǔ)器(EEPROM)、flashROM/閃存等。處理器22還可以可通信地連接到附加部件,諸如視頻控制器、集成設(shè)備電路(IDE)控制器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)控制器、通用串行總線(USB)控制器、輸入/輸出(I/0)端口、輸入設(shè)備、輸出設(shè)備,諸如顯示器等。在圖1的實(shí)施例中,處理系統(tǒng)20還包括TPM44。在其它實(shí)施例中,也可以使用其它類型的安全協(xié)處理器。處理器22、RAM26、TPM44和其它部件可以連接到芯片組34。芯片組34可以包括一個(gè)或多個(gè)橋接器(bridge)或集線器(hub),以可通信地連接系統(tǒng)部件,以及其它邏輯和存貯部件。諸如視頻控制器的一些部件(例如)可以實(shí)現(xiàn)為帶有與總線通信用的接口的適配卡形式(例如,PCI連接器)。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)設(shè)備實(shí)現(xiàn)為嵌入式控制器,使用諸如可編程的或不可編程的邏輯器件或陣列、某些用途集成電路(ASIC)、嵌入式計(jì)算機(jī)、智能卡和類似物的部件。本文將參考數(shù)據(jù),諸如指令、功能、程序、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序和配置設(shè)定等來(lái)介紹本發(fā)明。在數(shù)據(jù)可以由機(jī)器訪問(wèn)時(shí),機(jī)器可以通過(guò)如下形式來(lái)來(lái)作出反應(yīng)執(zhí)行任務(wù)、定義抽象數(shù)據(jù)類型或低級(jí)硬件關(guān)聯(lián),和/或執(zhí)行其它操作,就如下文將詳細(xì)介紹的。數(shù)據(jù)可以存貯于易失性的和/或非易失性的數(shù)據(jù)存貯器中。出于此公開(kāi)的目的,術(shù)語(yǔ)"程序"涵蓋很廣泛的軟件成分和結(jié)構(gòu),包括應(yīng)用程序、驅(qū)動(dòng)程序、過(guò)程、例行程序方法^t塊和子程序。術(shù)語(yǔ)"程序"可用來(lái)指完整的編譯單元(即能夠獨(dú)立編譯的指令集)、編譯單元的集合或編譯單元的一部分。因此,術(shù)語(yǔ)"程序"可以用于指在由處理系統(tǒng)執(zhí)行時(shí)完成所希望的單個(gè)操作或多個(gè)操作的指令的集合。處理系統(tǒng)20中的程序可以認(rèn)為是軟件環(huán)境84的組成部分。比如,在處理系統(tǒng)20引導(dǎo)時(shí),BIOS50和VMM52可被載入RAM26,在軟件環(huán)境84內(nèi)執(zhí)行。VMM52可以包括或多或少地用作OS的組成部分,或者它可運(yùn)行于主OS54的頂層。比如,BIOS50可按照2006年1月31日的統(tǒng)一可擴(kuò)展軟固件接口規(guī)范(UnifiedExtensiblefirmwareInterfaceSpecification)的第二版來(lái)實(shí)現(xiàn)。ROM42還可以包括諸如擴(kuò)增AC模塊(AACM)60等模塊。就如下文將參照?qǐng)D6詳細(xì)介1紹的,AACM60可導(dǎo)致處理系統(tǒng)20在讓它們運(yùn)行之前驗(yàn)證BIOS50、OS54和/或VMM52。圖3是根據(jù)本發(fā)明的示范性實(shí)施例的、將3PK提供給處理系統(tǒng)20的過(guò)程的流程圖。所描述的過(guò)程適合于由OEM管理的部件或配置操作,它開(kāi)始于OEM已經(jīng)選擇了將要提供給3PK的處理系統(tǒng)20之后。在步驟110處,OEM選擇將要提供的3PK。在步驟112處,OEM準(zhǔn)備初級(jí)AC模塊。在本示范性實(shí)施例中,OEM為AC模塊使用諸如在2006年九月的LaGrandeTechnologyPreliminaryArchitectureSpecification(安全技術(shù)初步體系結(jié)構(gòu)規(guī)范,下文稱為"LTPA規(guī)范")中介紹的格式。LTPA規(guī)范目前可從互聯(lián)網(wǎng)上獲得(www.intel.com/technology/security/downloadslT—spec—0906.pdf)。圖1的示范性處理系統(tǒng)提供使用已知為更安全模式擴(kuò)展(safermodeextension)(SMX)功能的快速啟動(dòng)(launch)和控制接口。涉及SMX的附加信息可以從LTPA規(guī)范獲得。LTPA規(guī)范還介紹了AC模塊是如何被驗(yàn)證和執(zhí)行的。例如,第11和12頁(yè)提供了下述說(shuō)明*為支持受保護(hù)環(huán)境的建立,SMX啟動(dòng)驗(yàn)證代碼執(zhí)行;漠式的性能。這提供了用于將特殊代碼模塊,也被稱為驗(yàn)證碼模塊(AC模塊)載入處理器內(nèi)的內(nèi)部RAM(稱為驗(yàn)證代碼執(zhí)行區(qū)域)的性能。AC模塊首先^皮驗(yàn)證,然后用抗篡改法4丸行。*驗(yàn)證可以通過(guò)使用AC才莫塊標(biāo)頭中的數(shù)字簽名而實(shí)現(xiàn)。處理器計(jì)算AC模塊的散列(hash),并使用此結(jié)果來(lái)確認(rèn)簽名。使用SMX,處理器將只初始化處理器狀態(tài)或執(zhí)行AC代碼才莫塊,如果它通過(guò)驗(yàn)證的話。由于驗(yàn)證碼模塊保存在處理器的內(nèi)部RAM中,模塊的執(zhí)行的發(fā)生可隔離于外部存儲(chǔ)器的內(nèi)容或外部處理器總線上的行為。再來(lái)看步驟112,為了準(zhǔn)備初級(jí)AC模塊,OEM可以將用戶代碼/數(shù)據(jù)載入初級(jí)AC模塊的用戶區(qū)域內(nèi)。這里,初級(jí)AC模塊用作需要嵌入到擴(kuò)增AC才莫塊中的OEM內(nèi)容的格式化輸入。在示范性實(shí)施例中,用戶區(qū)中的代碼包括在將控制權(quán)交給BIOS50之前用于控制初級(jí)引導(dǎo)操作的指令和數(shù)據(jù)。處理系統(tǒng)20還可以增加初級(jí)AC模塊的其它部分,諸如長(zhǎng)度字段(sizefield)。如步驟114處所示,處理系統(tǒng)20然后可連接到AACM發(fā)生器80。在本示范性實(shí)施例中,處理系統(tǒng)20和AACM發(fā)生器80建立安全通道來(lái)傳遞加密數(shù)據(jù)。任何適用技術(shù)都可用來(lái)建立該安全通道。如步驟116中所示,處理系統(tǒng)20然后將消息或請(qǐng)求84發(fā)送到AACM發(fā)生器80。如圖2所示,請(qǐng)求84可以包括初級(jí)AC^莫塊,以及所想要的3PK。在本示范性實(shí)施例中,初級(jí)AC模塊包含這樣的域,它由OEM或第三方制造商填充,以指示為之查找AACM的處理器家族。如在步驟120和122中所示,AACM發(fā)生器80可以從處理系統(tǒng)20接收初級(jí)AC模塊和3PK,然后可將3PK加密。在圖2實(shí)施例中,AACM發(fā)生器80由處理器22的制造商管理,并且AACM發(fā)生器80使用預(yù)定義的處理器制造密鑰(PMK)71來(lái)加密3PK。在圖2實(shí)施例中,PMK71是私有密鑰,處理單元30包括PUK70,PUK70是相應(yīng)的公有密鑰。在另一實(shí)施例中,PMK和PUK可以是相同密鑰(即它們具有相同值)。在圖1實(shí)施例中,在處理器22^皮運(yùn)送到購(gòu)買方如OEM之前,PUK70可以永久地由處理器22的制造商在制造過(guò)程期間燒入處理單元30內(nèi)。處理器22的制造商可以保存PMK71機(jī)密,使得永遠(yuǎn)沒(méi)有其它實(shí)體能夠得知PMK71的值。另一可選方式是,處理器制造商可以安排單獨(dú)的可信實(shí)體來(lái)管理AACM發(fā)生器80。盡管PUK70可以認(rèn)為是"公開(kāi)"密鑰,但是也可以將它保密,使得其值永不從處理單元30釋放。再來(lái)看圖3,AACM發(fā)生器80然后構(gòu)建包括加密的3PK的AACM60,如在步驟124處所示。例如,再參照?qǐng)D1,AACM發(fā)生器80可以包括AACM60中的下列3PK:加密的3PK(E3PK)72A、E3PK'75A和E3PK"77A。尤其是,再參照?qǐng)D2,在AACM發(fā)生器80構(gòu)建AACM60時(shí),AACM發(fā)生器80可以將E3PK添加到初級(jí)AC才莫塊的用戶數(shù)據(jù),并更新模塊長(zhǎng)度字段?;蛘?,AACM60可以包括一個(gè)或多個(gè)用于保存加密的3PK的預(yù)定義的i或。包括3PK的加密版本的AACM也稱為加密的AC模塊。圖4是來(lái)自圖1的AACM60的框圖,示出了模塊標(biāo)頭(moduleheader),其后是暫存區(qū),再后面是帶有附加在模塊端或接近模塊端的加密3PK的用戶區(qū),加密3PK的用戶區(qū)跟隨在來(lái)自初級(jí)AC模塊的用戶代碼/數(shù)據(jù)之后。另一可選方式是,AC才莫塊可以構(gòu)造成帶有可能是位于模塊標(biāo)頭中的一個(gè)或多個(gè)獨(dú)立域,以保存加密的3PK。使用區(qū)中用于控制初級(jí)引導(dǎo)操作的指令和其它數(shù)據(jù)在文中稱為AACM代碼79。再參照?qǐng)D3,然后AACM發(fā)生器80將AACM60發(fā)送到處理系統(tǒng)20,如步驟126所示。在步-銀130中,處理系統(tǒng)20可以從AACM發(fā)生器80接收AACM60。然后處理系統(tǒng)20可以標(biāo)記AACM60,如在步驟132處所指示的。例i口,OEM可以選擇AC^^莫塊密鑰對(duì),諸如Rivest、Shamir、Adelman(RSA)公有/私有密鑰對(duì),然后將來(lái)自該密鑰對(duì)的公有密鑰載入AACM60的標(biāo)頭。OEM可使用來(lái)自該密鑰對(duì)的私有密鑰創(chuàng)建AACM60用的RSA簽名,這可能是基于用戶區(qū)的散列消息或也可能是基于AACM60的其它部分。然后OEM可以將該RSA簽名存貯到AACM60的標(biāo)頭中。再參照?qǐng)D4,在AACM60的標(biāo)頭中描述了這種RSA公有密鑰76和這種RSA簽名78。因此,OEM(或其它第三方)可以為AC模塊選擇3PK及RSA公有密鑰。從而,為了區(qū)別那些密鑰,RSA公有密鑰可以被稱為主模塊密鑰,而3PK可以稱為補(bǔ)充;f莫塊密鑰。如在步驟134處所示,處理系統(tǒng)20然后可以將AACM60存貝i到如圖1中描述的ROM42中。在圖1實(shí)施例中,處理單元30構(gòu)造成用作自引導(dǎo)處理器(BSP),處理系統(tǒng)20構(gòu)造成能夠?qū)OM42使用作引導(dǎo)存貯器(即處理單元30可以從中獲得指令以用于在上電或復(fù)位時(shí)初始化和配置處理系統(tǒng)20的非易失性存貝i器)。因此,實(shí)現(xiàn)系統(tǒng)配置的OEM或其它實(shí)體可以將密碼密鑰,諸如E3PK72A裝入系統(tǒng)ROM(例如ROM42)中。此外,由于E3PK72A本身是加密的,因此即使攻擊者能夠從ROM42獲取E3PK72A,攻擊者還是不能解密和使用E3PK72A。如在圖3中步驟136處所示,處理系統(tǒng)20然后可以將3PK中的一個(gè)或多個(gè)(例如3PK72)存入TPM44。比如,處理系統(tǒng)20可以在各次引導(dǎo)期間安全地將3PK72和其它3PK安裝入TPM44內(nèi)。另一可選方式是,OEM可以在處理系統(tǒng)制造期間將3PK72和其它3PK設(shè)置入TPM44內(nèi)。然后,處理系統(tǒng)20可以使用3PK中的一個(gè)或多個(gè)來(lái)為要保護(hù)的各種軟件部件計(jì)算驗(yàn)證碼,并且處理系統(tǒng)20可以將那些驗(yàn)證碼保存為處理系統(tǒng)20中的清單。在示范性實(shí)施例中,散列消息驗(yàn)證碼(hashed(HMAC)用于各驗(yàn)證碼或清單。HMAC可以具有如下形式HMACK(m)=h((Kxoropad))||h((KxorIPAD)||m》其中,m是要保護(hù)的消息或數(shù)據(jù),h是散列函數(shù),K是選擇的3PK(例如,3PK'75),ipad是預(yù)定義的內(nèi)部填充常數(shù)(padconstant),opad是預(yù)定義的外部填充常數(shù)。涉及HMAC的附加信息目前可從互聯(lián)網(wǎng)(http:〃en.wikipedia.org/wiki/HMAC)上獲得。例如,如在步驟140所描迷的,處理系統(tǒng)20可以計(jì)算處理系統(tǒng)20的系統(tǒng)固件的HMAC。尤其是,處理系統(tǒng)20可以將3PK'75用作HMAC用的K,并且處理系統(tǒng)20可以將固件鏡像(firmwareimage)(例如,BIOS50的內(nèi)容)用作HMAC的m。相類似的,如在步驟142和144處所示,處理系統(tǒng)20可以用3PK,'77來(lái)計(jì)算VMM52用的HMAC,并且處理系統(tǒng)可用另一3PK來(lái)計(jì)算OS54的HMAC。如在步驟150處指出的,處理系統(tǒng)20然后可以將HMAC保存為相應(yīng)部件用的清單。比如,如圖1中所示,處理系統(tǒng)20可以用附加、預(yù)先計(jì)劃,或以其它方式將VMM驗(yàn)證碼(AC)53增加到VMM52,將固件AC51增加到BIOS50,和將OSAC55增加到OS54。另一可選方式是,清單或驗(yàn)證碼可以獨(dú)立地從相應(yīng)軟件;f莫塊保存。圖5是根據(jù)本發(fā)明的示范性實(shí)施例的、用于在處理單元和TPM之間建立受保護(hù)通信通道的過(guò)程的流程圖。圖1在總線24和芯片組34上使用粗線來(lái)描述這種可靠通道的示例,該可靠通道根據(jù)圖5的過(guò)程而建立于處理單元30和TPM44之間。帶E3PK72A的AACM60已經(jīng)存貯于ROM42中之后開(kāi)始該過(guò)程,可能是根據(jù)諸如上述介紹的過(guò)程。尤其是,圖5的過(guò)程可以響應(yīng)于加電或復(fù)位的處理系統(tǒng)20而開(kāi)始,該過(guò)程可以使處理單元30中的微指令檢查ROM42中的預(yù)定義位置以確定ROM42是否包含AC模塊。如果找到了AC模塊,處理單元30可以將AC才莫塊加載入處理單元30內(nèi)的受保護(hù)內(nèi)部RAM。接收AC模塊的受保護(hù)內(nèi)部RAM可以被稱為驗(yàn)證碼執(zhí)行區(qū)(ACEA)38。出于說(shuō)明的目的,可以々i-沒(méi),處理單元30在ROM42中找到了AACM60。如在步驟220處所示的,處理單元30然后可根據(jù)上述從LTPA的少見(jiàn)范摘錄,確定AACM60是否可信。比如,處理單元30可以(a)計(jì)算AACM60某些部分的散列(b)使用RSA公有密鑰76來(lái)解密簽名78,以及(c)將解密的簽名與散列作比較以確定,AACM60是否匹配OEM最初用對(duì)應(yīng)的RSA私有密鑰所做的簽名。處理單元30還可以核實(shí)RSA公有密鑰76是否違背有效公有密鑰的預(yù)定義列表。比如,處理單元可以從RSA公有密鑰76導(dǎo)出散列值,并在處理系統(tǒng)20中將該值與受保護(hù)存貯器中的有效散列值列表做比較。如果RSA公有密鑰76核實(shí)是好的,并且AACM60的散列匹配解密的RSA簽名,那么處理單元30就推斷AACM60可信。如果處理單元30不能找到AC才莫塊,或如果處理單元30找到了AC模塊,但是確認(rèn)它不可信,那么處理單元30就可以記錄適當(dāng)?shù)腻e(cuò)誤消息,如在步驟240處指示的。處理單元30然后可以檢查處理系統(tǒng)20中的配置設(shè)定以確認(rèn),是否允許處理系統(tǒng)20使用非ACM引導(dǎo)過(guò)程,如在步驟250處所示。如果允許非ACM引導(dǎo),那么處理單元30就可以執(zhí)行非ACM引導(dǎo),如在步驟252處所示。如果不允許非ACM引導(dǎo),那么過(guò)程就可結(jié)束而不作處理系統(tǒng)20引導(dǎo)。再來(lái)看步驟220,如果處理單元30確認(rèn)AACM60可信,那么處理單元30然后就可以從AACM60獲取E3PK,如步驟222所示。處理單元30可以暫時(shí)將E3PK存貯在(比如)一個(gè)或多個(gè)處理器寄存器或其它內(nèi)部存貯器中。然后,處理單元32解密E3PK(例如,E3PK72A,E3PK'75A,E3PK"77A)并將結(jié)果(例如,3PK72,3PK'75,3PK"77)保存在處理單元32內(nèi)的受保護(hù)存貯器中,如步驟224和226所示。在圖1的實(shí)施例中,其中受保護(hù)存貯器實(shí)現(xiàn)為一個(gè)或多個(gè)寄存器,這些寄存器(a)只能由特權(quán)代碼修改;(b)不能由非特權(quán)代碼讀、寫(xiě)或調(diào)度;并且(c)不能由ITP訪問(wèn)。在此上下文中,特權(quán)代碼是這樣的代碼,它可從外面?zhèn)魉偷教幚砥鳎窃谒商幚砥鬟\(yùn)行前需要特殊驗(yàn)證,并且然后運(yùn)行于千凈環(huán)境中的處理器中,以使得特權(quán)代碼執(zhí)行不能由惡意方監(jiān)視或操縱。在一可選實(shí)施例中,處理系統(tǒng)可以等待,直到不需要用TPM建立安全通道的未來(lái)時(shí)間點(diǎn)才解密E3PK。在圖1實(shí)施例中,處理單元30使用PUK70來(lái)解密E3PK。如步驟228處所示,處理單元30和TPM44然后可以使用3PK72來(lái)創(chuàng)建會(huì)話密鑰(SK)74以保護(hù)處理單元30和TPM44之間的通信。處理單元30和TPM44然后可用SK74來(lái)創(chuàng)建受保護(hù)通道,如步驟230處所示。該受保護(hù)通道可以橫貫多個(gè)系統(tǒng)總線24和零個(gè)或多個(gè)芯片組34的部件。TPM44和處理單元30然后可以4吏用SK74來(lái)加密通信,如在步驟232處所示。在可選實(shí)施例中,可以用多個(gè)會(huì)話密鑰來(lái)保護(hù)處理單元30和TPM44之間的通信??梢杂檬鼙Wo(hù)的通道(比如)來(lái)將來(lái)自TPM44的密鑰或其它受保護(hù)信息加載到處理單元30內(nèi)。同樣的,可以用受保護(hù)通道將來(lái)自處理單元30的密鑰或其它敏感信息發(fā)送到TPM44。因此,受保護(hù)通道確保了通道的任何觀察者都不能確定通信的內(nèi)容,并保護(hù)傳送中的數(shù)據(jù)不受到修改。此外,用于初始化通道的過(guò)程可以驗(yàn)證終端以保護(hù)不受未授權(quán)的存取,并不受重放和TPM交換攻擊(replayandTPMswapattack)。如在步驟260處所示,處理系統(tǒng)20然后可以確定是否有其它部件需要在?l導(dǎo)過(guò)程的初級(jí)階段中被驗(yàn)證。如果是這樣的話,過(guò)程就通過(guò)頁(yè)連接符A而接續(xù)到圖6。圖6是根據(jù)本發(fā)明示范性實(shí)施例的、用于驗(yàn)證處理系統(tǒng)20的部件的過(guò)程的流程圖。在控制流程通過(guò)頁(yè)連接符A到達(dá)圖6時(shí),處理系統(tǒng)20就可以嘗試來(lái)定位固件清單(firmwaremanifest)或驗(yàn)證碼,諸如BIOSAC51,如在步驟310處所示。如果沒(méi)有找到BIOSAC51,處理單元30就記錄錯(cuò)誤,如在步驟350處所示,并且過(guò)程就可以在沒(méi)有完成引導(dǎo)過(guò)程的情況下結(jié)束。如果找到了BIOSAC51,處理單元30就使用3PK'75來(lái)計(jì)算HMAC為當(dāng)前BIOS鏡像(BIOSimage),如在步驟312處所示。如在步驟320處所示,處理單元30然后可以比4交BIOSAC51與當(dāng)前AC以確認(rèn)BIOS50是否已經(jīng)凈支篡改過(guò)。如果HMAC不匹配,處理單元30就記錄錯(cuò)誤,如步驟350處所示,并且過(guò)程就結(jié)束。如果它們確實(shí)匹配,那么來(lái)自AACM60的初級(jí)引導(dǎo)代碼可以將控制傳遞到(handoff)系統(tǒng)固件,如步驟322所示。如在步驟330處所示,處理系統(tǒng)20然后可以嘗試定位清單諸如VMM52用的VMMAC53。如果沒(méi)有找到VMMAC53,處理單元30就記錄錯(cuò)誤,如步驟350處所示,并且過(guò)程就此結(jié)束。然而,如果找到VMMAC53,處理單元30就用3PK"77來(lái)計(jì)算當(dāng)前VMM鏡像的HMAC,如步驟332處所示。如步驟340處所示,處理單元30然后可以比較VMMAC53與當(dāng)前AC以確定VMM52是否已被篡改。如果HMAC不匹配,那么處理單元30就記錄錯(cuò)誤,如步驟350所示,并且過(guò)程就此結(jié)束。如杲它們確實(shí)匹配,那么BIOS50就將控制傳遞給(handoff)VMM52,如在步驟344處所示。在VMM52包括或多或少地起OS作用的部件時(shí),可以使用上述操作。在OS54與VMM52有區(qū)別時(shí),處理系統(tǒng)20可用如上述的那些操作來(lái)定位OS54用的清單(例如,OSAC55),并在OS54已經(jīng)被篡改時(shí)保護(hù)OS54,使其不^U丸行。按照這里介紹和描述的原則和示范性實(shí)施例,可以認(rèn)識(shí)到,在不背離這些原則的情況下,能夠修改所描述的實(shí)施例的設(shè)置和細(xì)節(jié)。另外,前述討論集中于特殊實(shí)施例,但是也可以構(gòu)思出其它配置。尤其是,雖然在本文中使用了諸如"在一個(gè)實(shí)施例中,在另一實(shí)施例中"等的表達(dá),這些短語(yǔ)只是意味著一般地提及參考實(shí)施例的可能性,而不是旨在將本發(fā)明限制于某些實(shí)施例配置。如本文中所使用的,這些術(shù)語(yǔ)可以指能夠結(jié)合到其它實(shí)施例內(nèi)的相同或不同實(shí)施例。相似地,盡管已經(jīng)參照以某些順序?qū)崿F(xiàn)的某些操作來(lái)介紹過(guò)了示例過(guò)程,還可以將許多改進(jìn)應(yīng)用到那些過(guò)程上以推導(dǎo)出本發(fā)明的多個(gè)可選實(shí)施例。例如,可選實(shí)施例可以包括使用比所有公開(kāi)操作都要少的過(guò)程;使用附加操作的過(guò)程;以不同順序使用相同操作的過(guò)程;和將本文公開(kāi)的單一操作進(jìn)行組合、再分或其它改變的過(guò)程。還有,盡管在示范性實(shí)施例中介紹了由OEM實(shí)現(xiàn)或控制的某些操作,在其它實(shí)施例中其它類型的實(shí)體也可以實(shí)現(xiàn)或控制操作,包括(但并不僅限于)實(shí)現(xiàn)平臺(tái)配置、軟件安裝、信息技術(shù)(IT)輔助等的實(shí)體。另外,此公開(kāi)涉及各種操作的密鑰的使用。需要明白的是,這種使用包括直接和間接地使用。比如,如果使用第一密鑰來(lái)創(chuàng)建第二密鑰,然后第二密鑰用于操作,那么兩個(gè)密鑰都被認(rèn)為已用于操作。已經(jīng)直接使用了第二密鑰,并且也已經(jīng)間接使用了第一密鑰。介質(zhì)(machineaccessiblemedia)編碼指令。這種實(shí)施例還可^皮稱作程序產(chǎn)品。這類機(jī)器可訪問(wèn)介質(zhì)可以包括,但并不僅限于,存貯介質(zhì),諸如軟盤(pán)、硬盤(pán)、CD-ROM、ROM和RAM;和由機(jī)器或設(shè)備制造的微粒的其它可檢測(cè)設(shè)置。指令還可以用于分布式環(huán)境,并可以本地存貝i和/或可由單處理器或多處理器機(jī)器遠(yuǎn)程訪問(wèn)。當(dāng)知,本文描述的硬件和軟件部件代表合理獨(dú)立的功能裝置,以使得每個(gè)都能基本獨(dú)立于其它而被設(shè)計(jì)、構(gòu)建或更新。在可選實(shí)施例中,其中許多部件可以被實(shí)現(xiàn)為硬件、軟件、或硬件和軟件的組合,以用于提供上述介紹和描述的功能。種有用改變,所以此詳述只是旨在于描述目的,不應(yīng)當(dāng)^L認(rèn)為是用來(lái)限制本發(fā)明范圍的。因此,本發(fā)明要求保護(hù)的是落入所附權(quán)利要求的范圍和精神的所有實(shí)現(xiàn)方式,以及所有與其相當(dāng)?shù)膶?shí)現(xiàn)方式。權(quán)利要求1.一種用于驗(yàn)證軟件的方法,所述方法包括在引導(dǎo)過(guò)程期間,將密碼密鑰的加密版本從處理系統(tǒng)的非易失性存儲(chǔ)器取到所述處理系統(tǒng)的處理單元;在所述處理單元中解密所述密碼密鑰;獲取所述處理系統(tǒng)的軟件的預(yù)定義驗(yàn)證碼;用所述密碼密鑰來(lái)計(jì)算所述軟件的當(dāng)前驗(yàn)證碼;以及至少部分基于所述預(yù)定義驗(yàn)證碼與所述當(dāng)前驗(yàn)證碼的比較而確定所述軟件是否應(yīng)該可信。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述處理單元中解密所述密碼密鑰的操作包括使用存于所述處理單元的非易失性存貯器中的密鑰來(lái)解密所述密碼密鑰的加密版本。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,從非易失性存儲(chǔ)器獲取所述密碼密鑰的加密版本的操作包括從除可信平臺(tái)模塊以外的部件獲取所述密碼密鑰的加密版本。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,用所述密碼密鑰來(lái)為所述軟件計(jì)算當(dāng)前驗(yàn)證碼的操作包括用所述密碼密鑰來(lái)為所述軟件計(jì)算當(dāng)前散列消息驗(yàn)證碼。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,使用所述密碼密鑰來(lái)為所述軟件計(jì)算當(dāng)前驗(yàn)證碼的操作包括使用基于所述密碼密鑰的密鑰來(lái)為所述軟件計(jì)算當(dāng)前散列消息驗(yàn)證碼。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,需要驗(yàn)證的所述軟件包括由如下部分構(gòu)成的組中的至少一個(gè)程序引導(dǎo)固件;虛擬機(jī)監(jiān)控程序;以及操作系統(tǒng)。7.—種用于支持軟件驗(yàn)證的方法,所述方法包括使用密碼密鑰來(lái)為處理系統(tǒng)的軟件產(chǎn)生驗(yàn)證碼;將所述驗(yàn)證碼保存到所述處理系統(tǒng)中;將所述密碼密鑰保存到所迷處理系統(tǒng)的非易失性存儲(chǔ)器中;以及為所述處理系統(tǒng)配置能夠^f吏所述處理系統(tǒng)執(zhí)行引導(dǎo)操作的引導(dǎo)軟件,其中包括從所述非易失性存儲(chǔ)器中取出所述密碼密鑰;用所述密碼密鑰來(lái)重新計(jì)算所述驗(yàn)證碼;以及至少部分基于所述重新計(jì)算的驗(yàn)證碼和所述保存的驗(yàn)證碼的比較而確定所述軟件是否可信。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,將所述密碼密鑰保存到所述處理系統(tǒng)的非易失性存儲(chǔ)器中的操作包括,將所述密碼密鑰的加密版本保存到所述非易失性存儲(chǔ)器中。9.根據(jù)權(quán)利要求7所迷的方法,其特征在于,用所述密碼密鑰來(lái)重新計(jì)算所述驗(yàn)證碼的操作包括使用至少部分基于所述密碼密鑰的密鑰來(lái)重新計(jì)算所述驗(yàn)證碼。10.根據(jù)權(quán)利要求7所述的方法,其特征在于,用所述密碼密鑰來(lái)為所述處理系統(tǒng)的軟件產(chǎn)生驗(yàn)證碼的操作包括為由下列部分構(gòu)成的組中的至少一個(gè)程序產(chǎn)生所述驗(yàn)證碼引導(dǎo)固件;虛擬機(jī)監(jiān)控程序;以及操作系統(tǒng)。11.一種處理系統(tǒng)包括帶非易失性存貯器的處理單元;存于所述非易失性存貯器中的密碼處理單元密鑰PUK;與所述處理單元進(jìn)行通信的至少一個(gè)非易失性存貯部件;所述至少一個(gè)非易失性存貯部件中的候選代碼沖莫塊;以及所述至少一個(gè)非易失性存貯部件中的擴(kuò)增引導(dǎo)代碼;漠塊;所述處理單元配置成可在纟丸行來(lái)自所述候選代碼模塊的代碼之前,執(zhí)行來(lái)自所述擴(kuò)增引導(dǎo)代碼模塊的代碼;以及其中,所述擴(kuò)增引導(dǎo)代碼才莫塊包括驗(yàn)證密鑰的加密版本;以及在由所述處理單元執(zhí)行時(shí)可使所述處理單元執(zhí)行如下操作的指令用所述PUK解密所述驗(yàn)證密鑰的加密版本;以及在執(zhí)行任何來(lái)自所述候選代碼^t塊的指令之前,使用所述驗(yàn)證密鑰來(lái)驗(yàn)證所述候選代碼模塊。12.根據(jù)權(quán)利要求11所述的處理系統(tǒng),其特征在于,所述至少一個(gè)非易失性存貯部件包括非易失性存儲(chǔ)器;以及所述候選代碼模塊包括引導(dǎo)固件鏡像。13.根據(jù)權(quán)利要求ll所述的處理系統(tǒng),其特征在于,所述候選代碼模塊包括虛擬機(jī)監(jiān)控程序的至少一部分。14.根據(jù)權(quán)利要求11所述的處理系統(tǒng),其特征在于,所述候選代碼模塊包括操作系統(tǒng)的至少一部分。15.根據(jù)權(quán)利要求11所述的處理系統(tǒng),其特征在于,所述至少一個(gè)非易失性存貯部件包括非易失性存儲(chǔ)器和大容量存貝i器;以及所述候選代碼模塊駐留在所述大容量存貯器中。16.根據(jù)權(quán)利要求15的處理系統(tǒng),其特征在于,所述擴(kuò)增引導(dǎo)代碼模塊駐留在所述非易失性存儲(chǔ)器中。17.根據(jù)權(quán)利要求11所述的處理系統(tǒng),其特征在于,用所述驗(yàn)證密鑰來(lái)驗(yàn)證所述候選代碼模塊的操作包括用至少部分基于所述驗(yàn)證密鑰的密鑰來(lái)驗(yàn)證所述候選代碼模18.—種裝置,包括機(jī)器可訪問(wèn)介質(zhì);以及所述機(jī)器可訪問(wèn)介質(zhì)中的擴(kuò)增引導(dǎo)代碼才莫塊,其中所述擴(kuò)增引導(dǎo)代碼模塊包括驗(yàn)證密鑰的加密版本;以及在引導(dǎo)過(guò)程期間由處理單元執(zhí)行的初級(jí)引導(dǎo)指令,所述處理單元帶有非易失性存貯器,并且密碼處理單元密鑰PUK存于所述非易失性存貯器中;所述初級(jí)引導(dǎo)指令包括在由所述處理單元執(zhí)行時(shí)可使所述處理單元執(zhí)行下列操作的指令用所述PUK來(lái)解密所述驗(yàn)證密鑰的加密版本;以及在執(zhí)行來(lái)自所述候選代碼才莫塊的任何指令之前,用所述驗(yàn)證密鑰來(lái)驗(yàn)證候選代碼纟莫塊。19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述指令在—皮執(zhí)行時(shí),能夠在執(zhí)行來(lái)自引導(dǎo)固件鏡像的任何指令之前導(dǎo)致所述處理單元驗(yàn)證引導(dǎo)固件鏡像。20.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述指令在纟皮執(zhí)行時(shí),能夠在執(zhí)行來(lái)自虛擬機(jī)監(jiān)控程序的任何指令之前導(dǎo)致所述處理單元驗(yàn)證所述虛擬機(jī)監(jiān)控程序的至少一部分。21.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述指令在纟皮執(zhí)行時(shí),能夠在執(zhí)行來(lái)自O(shè)S的任何指令之前導(dǎo)致所述處理單元驗(yàn)證所述操作系統(tǒng)的至少一部分。22.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述指令在被執(zhí)行時(shí),能夠?qū)е滤鎏幚韱卧?yàn)證駐留于非易失性存儲(chǔ)器中的候選代碼模塊。23.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述指令在纟支執(zhí)行時(shí),能夠?qū)е滤鎏幚韱卧?yàn)證駐留于大容量存貯器中的候選代碼模塊。24.根據(jù)權(quán)利要求18所述的裝置,其特征在于,使用所述驗(yàn)證密鑰來(lái)驗(yàn)證所述候選代碼模塊的操作包括用至少部分基于所述驗(yàn)證密鑰的密鑰來(lái)驗(yàn)證所述候選代碼模塊。全文摘要在處理系統(tǒng)引導(dǎo)時(shí),它可將密碼密鑰的加密版本從非易失性存儲(chǔ)器取到處理單元,該處理單元可將密碼密鑰解密。處理系統(tǒng)還可為處理系統(tǒng)的軟件獲取預(yù)定義驗(yàn)證碼,并且處理系統(tǒng)可用密碼密鑰來(lái)為軟件計(jì)算當(dāng)前驗(yàn)證碼。然后,通過(guò)比較預(yù)定義驗(yàn)證碼和當(dāng)前驗(yàn)證碼,處理系統(tǒng)可以確認(rèn)軟件是否可信。在各種實(shí)施例中,處理單元可以使用存于處理單元的非易失性存貯中的密鑰來(lái)將密碼密鑰的加密版本解密,可用散列消息驗(yàn)證碼(HMAC)作為驗(yàn)證碼,和/或需要驗(yàn)證的軟件可以是引導(dǎo)固件、虛擬機(jī)監(jiān)控程序(VMM)或其它軟件。還就其它一些實(shí)施例作了描述并主張了它們的權(quán)利要求。文檔編號(hào)G06F21/22GK101221613SQ20071030726公開(kāi)日2008年7月16日申請(qǐng)日期2007年12月28日優(yōu)先權(quán)日2006年12月29日發(fā)明者M(jìn)·J·庫(kù)馬,S·蓋龍申請(qǐng)人:英特爾公司