專利名稱:用于虛擬化tpm訪問的系統(tǒng)、方法以及裝置的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容一般涉及數(shù)據(jù)處理領(lǐng)域,具體涉及安全數(shù)據(jù)處理。
背景技術(shù):
在本地或遠(yuǎn)程微計(jì)算機(jī)上執(zhí)行的越來越多的金融和個(gè)人事務(wù)已經(jīng)推動(dòng)“可信任的”或“安全的”微處理器環(huán)境的建立。這些環(huán)境試圖解決的問題是隱私暴露或數(shù)據(jù)被破壞或?yàn)E用。用戶不希望它們的隱私數(shù)據(jù)被公開。他們也不希望他們的數(shù)據(jù)被改動(dòng)或被用于不恰當(dāng)?shù)氖聞?wù)中。這些事務(wù)的示例包括醫(yī)療記錄的不期望流出,或從網(wǎng)上銀行或其它存儲機(jī)構(gòu)以電子方式盜竊資金。類似地,內(nèi)容供應(yīng)商尋求保護(hù)數(shù)字內(nèi)容(例如音樂、其它音頻、視頻或一般而言其它類型的數(shù)據(jù))以免遭未授權(quán)的復(fù)制。此類可信任微處理器系統(tǒng)的一個(gè)部件可以是如TCG TPM規(guī)范(版本1. 2)中公開的可信任平臺模塊(TPM)。
在附圖的各圖中通過示例而非限制地示出本發(fā)明。圖1示出用于實(shí)現(xiàn)可信任計(jì)算的系統(tǒng)。圖2示出計(jì)算機(jī)創(chuàng)建基于TPM命令的分組的方法的實(shí)施例。圖3示出通過管理控制臺處理傳入TPM網(wǎng)絡(luò)分組的方法的實(shí)施例。圖4示出用于通過TPM服務(wù)器處理被轉(zhuǎn)發(fā)TPM網(wǎng)絡(luò)分組的方法的實(shí)施例。圖5示出用于通過管理控制臺處理響應(yīng)分組的方法的實(shí)施例。圖6示出請求計(jì)算機(jī)處理響應(yīng)TPM分組的方法的實(shí)施例。圖7示出根據(jù)本發(fā)明一個(gè)實(shí)施例的系統(tǒng)的框圖。圖8示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的框圖。圖9示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的框圖。
具體實(shí)施例方式以下描述內(nèi)容描述可信任執(zhí)行技術(shù)。在以下描述中,陳述了諸如邏輯實(shí)現(xiàn)、軟件模塊分配以及操作細(xì)節(jié)的多種特定細(xì)節(jié),以提供對本發(fā)明實(shí)施例的更透徹理解。然而,本領(lǐng)域技術(shù)人員將可理解,沒有這些特定細(xì)節(jié)也可實(shí)施本發(fā)明的實(shí)施例。在其它實(shí)例中,沒有詳細(xì)示出控制結(jié)構(gòu)、門級電路和全軟件指令序列以免混淆本發(fā)明的實(shí)施例。本領(lǐng)域普通技術(shù)人員利用所包括的描述將能夠?qū)崿F(xiàn)適當(dāng)功能性而不需要過多的試驗(yàn)。數(shù)據(jù)處理系統(tǒng)可包括諸如中央處理單元(CPU)、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)等等之類的硬件資源。處理系統(tǒng)還可包括諸如基本輸入/輸出系統(tǒng)(BIOS)、虛擬機(jī)監(jiān)控程序(VMM)以及一個(gè)或多個(gè)操作系統(tǒng)(OS)之類的軟件資源。當(dāng)計(jì)算機(jī)系統(tǒng)啟動(dòng)或重置時(shí),它會加載BIOS,然后加載VMM。VMM可在主機(jī)OS之上運(yùn)行,或VMM可實(shí)現(xiàn)為管理程序,其包括或多或少地?fù)?dān)當(dāng)主機(jī)OS的控件。VMM可創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)(VM),且這些VM可引導(dǎo)至不同客戶機(jī)0S,或引導(dǎo)至同一客戶機(jī)OS的不同實(shí)例。為VMM提供工具用于管理處理系統(tǒng)的與虛擬化相關(guān)的特定方面的客戶機(jī)OS可被稱為服務(wù)OS。因此,VMM可允許多個(gè) OS和應(yīng)用在獨(dú)立分區(qū)中運(yùn)行。數(shù)據(jù)處理系統(tǒng)中的CPU可為虛擬化提供硬件支持(例如指令和數(shù)據(jù)結(jié)構(gòu))。不同類型的處理器可提供不同特征以支持虛擬化。處理系統(tǒng)還可包括稱為由英特爾公司開發(fā)的 LaGrande技術(shù)(LT)(或,Intel 可信任執(zhí)行技術(shù)(TXT))的特征。LT/Intel TXT特征可提供對VMM的受保護(hù)管理和啟動(dòng)。不同類型的處理器可提供不同特征以提供對VMM的受保護(hù)
管理和啟動(dòng)。圖1示出用于實(shí)現(xiàn)可信任計(jì)算的系統(tǒng)。在所示示例中,該系統(tǒng)由三個(gè)主要部件組成計(jì)算機(jī)(可信任平臺)101 (諸如臺式機(jī)、膝上計(jì)算機(jī)、筆記本計(jì)算機(jī)等)、管理控制臺 (MGMT控制臺)123以及TPM服務(wù)器125。然而,在一些實(shí)施例中,這些部件中的一個(gè)或多個(gè)被合并(例如,TPM服務(wù)器125和管理控制臺123可以是一個(gè)實(shí)體)。在其它實(shí)施例中,這些部件和它們的子部件分布在附加實(shí)體上。計(jì)算機(jī)101包括用于通過處理指令執(zhí)行軟件程序的至少一個(gè)CPU核103,軟件程序包括想要使用TPM調(diào)用可信任執(zhí)行的軟件程序。在一些實(shí)施例中,CPU核103執(zhí)行指令,這些指令產(chǎn)生平臺101的包括操作系統(tǒng)、應(yīng)用以及虛擬機(jī)的軟件的至少一部分的散列。該散列被儲存在TPM 121本地(若TPM 121可用),或若不可用則儲存在外部。CPU核103耦合至存儲器控制器105。在一些實(shí)施例中,存儲器控制器105與CPU 核103在同一管芯上(集成存儲器控制器)。在其它實(shí)施例中,存儲器控制器在容納CPU核 103的管芯的外部(例如在北橋中)。存儲器控制器105還包括可管理性引擎(ME) 107。ME 107是執(zhí)行ME固件115的微控制器或其它處理器。在一實(shí)施例中,ME 107是基板管理控制器(BMC)。ME 107典型地在輔助電源上運(yùn)行,且可用于大多數(shù)(若非全部)功率狀態(tài)。在另一實(shí)施例中,微控制器ME 與BMC組合使用。-ME固件115儲存在閃存111中。通過ME 107、ME固件115以及ME數(shù)據(jù)儲存器 117,對計(jì)算機(jī)101的遠(yuǎn)程帶外(OBB)管理是可用的。例如,遠(yuǎn)程應(yīng)用可執(zhí)行平臺安裝和配置。在一實(shí)施例中,包括核103的CPU具有用于指示耦合的芯片組是否能利用ME 107的諸如轉(zhuǎn)發(fā)TPM命令之類的安全計(jì)算特征的寄存器。ME固件115在ME 107上執(zhí)行,且可使用耦合至CPU 103的RAM的一部分以供在執(zhí)行期間的存儲。ME固件115執(zhí)行以下操作中的一個(gè)或多個(gè)如將在稍后詳細(xì)描述的在缺少本地TPM 121時(shí)處理請求、充當(dāng)TPM請求的存儲管理器(將TPM請求信息放置到ME數(shù)據(jù)儲存器117或其它存儲中并取回)、通過使用網(wǎng)絡(luò)接口 119中的專用過濾器來跟蹤OS的DHCP租約(何時(shí)獲得租約、何時(shí)租約將過期等)、與網(wǎng)絡(luò)接口 119進(jìn)行交互以維持或獲得連接、讀取芯片組的功率狀態(tài)并使用該功率狀態(tài)來確定何時(shí)將自己關(guān)閉或提高功率(且在一些實(shí)施例中,控制諸如ME 107和ME數(shù)據(jù)儲存器 113之類的其它部件的功率)、將軟件的版本號存儲在ME數(shù)據(jù)117或其它非易失性存儲器中(諸如反病毒保護(hù)版本)、主動(dòng)阻擋進(jìn)入威脅(系統(tǒng)防御)、驗(yàn)證所需軟件代理(諸如反病毒)在運(yùn)行中并如果它們不在運(yùn)行中則警告管理控制臺、即便在主電源關(guān)閉時(shí)仍發(fā)現(xiàn)平臺的資產(chǎn)、和/或使用ME 107在典型的TPM過程下將TPM命令路由至本地TPM 121。ME數(shù)據(jù)儲存器117包含OEM可配置參數(shù)和/或安裝和配置參數(shù),諸如口令、網(wǎng)絡(luò)配置、證書和訪問控制列表(ACL)。ME數(shù)據(jù)儲存器117還可包含其它配置信息,諸如警告和系統(tǒng)防御策略列表以及由BIOS 113在啟動(dòng)時(shí)捕獲的硬件配置。BIOS 113存儲可在測得啟動(dòng)環(huán)境(MLE)中利用的安全引導(dǎo)過程。存儲器控件105耦合至輸入/輸出控制中樞(ICH)或外圍控制中樞(PCH) 109。 ICH/PCH 109耦合至諸如鍵盤、PCI設(shè)備、PCI-Express設(shè)備等等之類的I/O設(shè)備。通常耦合至ICH的設(shè)備之一是諸如無線(例如WLAN)或有線(例如以太網(wǎng))連接之類的網(wǎng)絡(luò)接口 119。除了一些實(shí)施例中的能在輔助電源上運(yùn)行的ME之外,BIOS 113、ME固件115、ME 數(shù)據(jù)儲存器117、TPM 121和/或網(wǎng)絡(luò)連接119也在輔助電源上運(yùn)行。此外,ICH/PCH 109 的部分或全部能在輔助電源上運(yùn)行。此外,TPM 121可被包括在計(jì)算機(jī)101中。在一個(gè)實(shí)施例中,TPM 121由TCG TPM 規(guī)范(版本1.2)中的可信任計(jì)算組(TCG)來定義。TPM 121存儲軟件和策略的加密密鑰和散列。TPM 121為測量值提供存儲庫以及利用此測量值的機(jī)制。系統(tǒng)利用此測量值來報(bào)告當(dāng)前平臺配置并提供對敏感信息的長期保護(hù)。TPM 121將測量值存儲在平臺配置寄存器 (PCR)中。PCR提供存儲區(qū),該存儲區(qū)在固定空間中允許無限數(shù)量的測量值。它們通過加密散列的固有性質(zhì)來提供該特征。外部實(shí)體永遠(yuǎn)不直接寫入PCR寄存器,它們“擴(kuò)展” PCR內(nèi)容。擴(kuò)展操作獲取PCR的當(dāng)前值、追加新值、對組合值執(zhí)行加密散列,且散列結(jié)果是新的PCR 值。加密散列的性質(zhì)之一是它們依賴于順序。這意味著對A然后B執(zhí)行散列運(yùn)算產(chǎn)生的結(jié)果與對B然后A執(zhí)行散列運(yùn)算的結(jié)果不同。該有序性質(zhì)允許PCR內(nèi)容表明測量值的順序。如之前所提示,TPM 121提供用于加密密鑰的安全生成并限制它們的使用的工具, 還提供硬件偽隨機(jī)數(shù)字生成器。它還包括諸如遠(yuǎn)程證明和密封存儲之類的能力。TPM 121 還可被用于認(rèn)證硬件設(shè)備。由于每個(gè)TPM 121具有在制造時(shí)燒錄入其中的唯一且秘密的 RSA密鑰,所以它能執(zhí)行平臺認(rèn)證。例如,它能被用于驗(yàn)證尋求對TPM 121進(jìn)行訪問的系統(tǒng)是所預(yù)期的系統(tǒng)。未示出計(jì)算機(jī)101的其它部件。例如,計(jì)算機(jī)101可包括耦合至存儲器控制器的隨機(jī)存取存儲器(RAM)、圖形處理器、大型非易失性儲存器(機(jī)械或固態(tài))等等。在一些實(shí)施例中,大型非易失性儲存器(或其它非易失性儲存器)保存定義可信任平臺的要素的啟動(dòng)控制策略。這些策略例如由OEM或VAR寫入并駐留在保護(hù)位置。這些策略的散列被存儲在TPM 121中,并在系統(tǒng)引導(dǎo)期間被驗(yàn)證。通常,支持可信任執(zhí)行的計(jì)算機(jī)具有專用于本地TPM 121的一部分地址空間,稱為TPM解碼空間。例如,在一些實(shí)施例中,該地址空間駐留在從0xFED40000到 0xFED4FFF(包含范圍端點(diǎn))的存儲器映射I/O(MMIO)范圍中。通常,對該范圍的所有訪問都被轉(zhuǎn)發(fā)給TPM 121。在計(jì)算機(jī)101上運(yùn)行的主機(jī)軟件根據(jù)TCG (可信任計(jì)算組)標(biāo)準(zhǔn)定義的格式形成命令。這些命令通過向位于此范圍內(nèi)的寄存器發(fā)出讀和寫命令而被執(zhí)行。本質(zhì)上,軟件準(zhǔn)備命令包、向該范圍內(nèi)的(多個(gè))有效載荷寄存器進(jìn)行寫入、并向命令寄存器寫入值。例如,驅(qū)動(dòng)程序向標(biāo)準(zhǔn)TPM存儲器地址(例如0xraD4XXXX)寫入命令,該命令由MMIO 陷阱捕獲然后被遞送至TPM 121。不幸的是,使用諸如TPM 121之類的本地TPM會存在缺點(diǎn)??赡艿娜秉c(diǎn)之一是, 如果出現(xiàn)以下情況,則由利用TPM 121的任何程序加密的數(shù)據(jù)可能變得不可訪問或不可恢復(fù)a)與TPM相關(guān)聯(lián)的口令丟失,這致使經(jīng)加密數(shù)據(jù)不可訪問;b)包含經(jīng)加密數(shù)據(jù)的驅(qū)動(dòng)器故障;和/或c)平臺出故障,且與不可移植的密鑰相關(guān)聯(lián)的任何數(shù)據(jù)將丟失。此外,如果 TPM 121的擁有權(quán)被轉(zhuǎn)讓,則它可能向那些不被期望擁有訪問的對象開放經(jīng)加密數(shù)據(jù)。對于沒有可選的本地TPM 121或選擇不使用本地TPM 121的平臺,可使用管理控制臺123和/或TPM服務(wù)器125來代替本地TPM 121。管理控制臺123通常被管理員用于遠(yuǎn)程地管理平臺101,且可以是諸如服務(wù)器之類的遠(yuǎn)程計(jì)算機(jī)。在一些實(shí)施例中,這是利用 Intel 主動(dòng)管理技術(shù)(AMT)來完成的。此外,當(dāng)作為可能的“遠(yuǎn)程”TPM時(shí),管理控制臺123 可包括分組儲存器1 用于存儲來自平臺的TPM網(wǎng)絡(luò)分組請求,且包括路由信息儲存器131 用于存儲與哪個(gè)計(jì)算機(jī)101作出該請求以及哪個(gè)TPM服務(wù)器125已被選擇處理該請求有關(guān)的信息。例如,路由信息儲存器131中的記錄可包括以下的一個(gè)或多個(gè)用于分組存儲位置的字段、請求時(shí)間、接收分組的時(shí)間、所接收分組被處理的時(shí)間(發(fā)送至TPM服務(wù)器或在內(nèi)部處理);所接收的分組被發(fā)送(如果發(fā)送)至的TPM服務(wù)器的識別標(biāo)志;和/或請求平臺的識別標(biāo)志。在一些實(shí)施例中,管理控制臺123包括TPM 133。管理控制臺還包括路由邏輯(硬件、軟件或固件),路由邏輯將TPM網(wǎng)絡(luò)分組路由至恰當(dāng)?shù)腡PM(在本地上或在另一服務(wù)器上)并使其返回請求平臺。網(wǎng)絡(luò)接口 119和管理控制臺123之間的通信信道通常通過使用SSL/IPSEC或其它安全協(xié)議來保護(hù)。此外,通信信道還可使用TCP/IP或以天然方式在以太網(wǎng)上(適用于數(shù)據(jù)中心)路由。雖然未示出,管理控制臺123和TPM服務(wù)器125還包括網(wǎng)絡(luò)接口、(多個(gè))CPU核等。管理控制臺123還包括供管理員從TPM服務(wù)器125和平臺 101中的一個(gè)或二者遠(yuǎn)程地配置或接收信息的功能。TPM服務(wù)器125耦合至管理控制臺123,且包含至少一個(gè)TPM 127以處理由管理控制臺123轉(zhuǎn)發(fā)的請求。在一些實(shí)施例中,計(jì)算機(jī)101在沒有管理控制臺123介入的情況下與TPM服務(wù)器125進(jìn)行交互。可能存在一個(gè)以上TPM服務(wù)器125可供管理控制臺123與之交互。相似地,取決于計(jì)算機(jī)101被如何規(guī)定(它信任什么,等等),計(jì)算機(jī)101可與一個(gè)以上管理控制臺123交互。雖然未示出,但管理控制臺123和TPM服務(wù)器125還包括網(wǎng)絡(luò)接口、(多個(gè))CPU核等??衫蒙鲜鰞?nèi)容的處理系統(tǒng)包括支持系統(tǒng)管理的嵌入式信息技術(shù)(EIT)。例如, EIT平臺可支持使用Intel TXT的驗(yàn)證引導(dǎo)和TPM能力。此外,平臺中的虛擬機(jī)(VM)可利用TPM的核能力。例如,這樣的VM可運(yùn)行諸如Microsoft Windows Vista 之類的用戶 OS。然而,常規(guī)平臺可能無法在維持TPM的安全保證的同時(shí)在多個(gè)VM之間共享硬件TPM。圖2示出諸如計(jì)算機(jī)101之類的計(jì)算機(jī)創(chuàng)建基于TPM命令的分組的方法的實(shí)施例。在201,由運(yùn)行在計(jì)算機(jī)上的軟件程序作出訪問TPM解碼空間的請求。該請求可以是 TPM命令的形式。在203,確定本地TPM是否可用。諸如圖1的TPM 121之類的本地TPM的可用性可通過若干不同方式知曉。在一些實(shí)施例中,在引導(dǎo)時(shí)向平臺注冊本地TPM。在這種情況下, 平臺知道自己具有可用的本地TPM(且假定地安裝以在BIOS中運(yùn)行)。在其它實(shí)施例中, 本地TPM在引導(dǎo)之后啟動(dòng),并向OS注冊。在其它實(shí)施例中,本地TPM的可用性被存儲在非易失性存儲器(諸如BIOS)中,該非易失性存儲器可由ME訪問而無需平臺經(jīng)過任何引導(dǎo)過程。例如,已知本地TPM存在,且適當(dāng)?shù)牟考?諸如ME 107、ME固件115、ME數(shù)據(jù)117、TPM 121等)被加電(至少部分地)。如果本地TPM可供使用,則在205,TPM請求被路由至本地TPM以進(jìn)行處理。在此實(shí)例中,該請求被照常處理。如果本地TPM不可用,則在207,ME接收該請求。例如,ME 107可從CPU核107接收該請求。在一些實(shí)施例中,存儲器控制器105負(fù)責(zé)截取該請求并將其路由至ME 107。例如,如果存儲器控制器105接收對0xFED40001的訪問請求,它會在MMIO陷阱上將該請求轉(zhuǎn)發(fā)至ME 107,而不是將其發(fā)送至本地TPM 121。在該情形下,通常會與本地TPM 121相關(guān)聯(lián)的位置替代地與ME 107相關(guān)聯(lián)。在其它實(shí)施例中,ME 107自身進(jìn)行截取。一旦接收請求,在209,ME固件至少存儲內(nèi)部路由信息(哪個(gè)CPU核、套接字等作出該請求)。該信息可被存儲在ME數(shù)據(jù)117中。ME固件可附加地存儲該請求本身或它的分組化版本(以下將詳述)。例如,可存儲以下的一個(gè)或多個(gè)TPM命令請求、TPM命令請求的分組化版本、請求時(shí)間、分組化版本被發(fā)出的時(shí)間;分組化版本被發(fā)送到一方的識別標(biāo)志 (地址或名稱)、作出請求的一方(諸如軟件程序、核、套接字等)的識別標(biāo)志和/或該請求的識別標(biāo)志。在211,創(chuàng)建基于TPM命令的網(wǎng)絡(luò)分組。例如,ME 107將執(zhí)行ME固件115來創(chuàng)建 TPM命令分組。在一些實(shí)施例中,該分組可以是TCP/IP分組,其中TPM命令至少部分地構(gòu)成 TCP/IP有效載荷的一部分。附加的有效載荷信息可包括TPM服務(wù)器標(biāo)識符(如果已知)。 在局域網(wǎng)中,它可以不是TCP/IP分組。在213,ME將所創(chuàng)建的該分組轉(zhuǎn)發(fā)至計(jì)算機(jī)的網(wǎng)絡(luò)接口之一。例如,使用ME固件 115的ME 107將TPM網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至NIC、WLAN等。如上所述,網(wǎng)絡(luò)接口需要知道向何處發(fā)送這些TPM網(wǎng)絡(luò)分組(管理控制臺或TPM服務(wù)器的地址)。在一些實(shí)施例中,該信息在諸如引導(dǎo)之前的規(guī)定過程期間被設(shè)定。例如,在規(guī)定期間,計(jì)算機(jī)被設(shè)定為允許遠(yuǎn)程配置,這樣排除了對在平臺上運(yùn)行任何軟件的需求。典型地,這些參數(shù)由管理員在遠(yuǎn)程配置下設(shè)定。在215,取決于所利用的實(shí)現(xiàn)方式,網(wǎng)絡(luò)接口隨后將TPM網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至管理控制臺或TPM服務(wù)器以進(jìn)行處理。因此,原始TPM命令已被“虛擬化”以在不同位置被處理。圖3示出通過管理控制臺處理傳入TPM網(wǎng)絡(luò)分組的方法的實(shí)施例。在301,管理控制臺從一些平臺接收待處理的TPM網(wǎng)絡(luò)分組。例如,管理控制臺123經(jīng)由網(wǎng)絡(luò)接口 119從平臺101接收TPM網(wǎng)絡(luò)分組。管理控制臺然后在303確定它能否處理該TPM網(wǎng)絡(luò)分組。例如,在至少部分地將 TPM網(wǎng)絡(luò)分組解碼以確定它是否包含TPM命令之后,管理控制臺123確定它是否具有用來處理該請求的本地TPM 133。管理控制臺還可確定它的TPM或多個(gè)TPM是否具有用來處理該請求的帶寬。在一些實(shí)施例中,管理控制臺在處理該分組之前將該分組臨時(shí)存儲在其分組儲存器中,并在其路由信息儲存器中創(chuàng)建與該TPM網(wǎng)絡(luò)分組有關(guān)的條目。如果它能處理該請求,則在305,管理控制臺處理該TPM網(wǎng)絡(luò)分組的命令,并將響應(yīng)發(fā)送返回作出該請求的
D ο如果管理控制臺無法處理該分組(無本地TPM可用),則在307,管理控制臺存儲該TPM網(wǎng)絡(luò)分組(例如存儲在儲存器129中),并在其所關(guān)聯(lián)的路由信息儲存器(諸如儲存器131)中創(chuàng)建與該TPM網(wǎng)絡(luò)分組有關(guān)的條目。例如,該TPM網(wǎng)絡(luò)分組可被存儲在分組儲存器1 中,且詳細(xì)描述該TPM網(wǎng)絡(luò)分組的發(fā)送方和被轉(zhuǎn)發(fā)至的對象等等的條目會被創(chuàng)建。 雖然以上已討論了存儲TPM網(wǎng)絡(luò)分組,但在一些實(shí)施例中,僅該分組的一部分被存儲,諸如 TPM命令。
在309,管理控制臺將TPM網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至適當(dāng)?shù)腡PM服務(wù)器。管理控制臺可被配置以基于發(fā)送網(wǎng)絡(luò)接口的MAC地址的目標(biāo)TPM服務(wù)器的位置和/或由網(wǎng)絡(luò)管理員設(shè)定的其它靜態(tài)信息。在一些實(shí)施例中,當(dāng)轉(zhuǎn)發(fā)TPM網(wǎng)絡(luò)分組時(shí),先前的路由信息(諸如TCP/IP)被清除,并被與被選擇用來處理該請求的TPM服務(wù)器相對應(yīng)的新的路由信息替代。此外,在一些實(shí)施例中,將被轉(zhuǎn)發(fā)分組與原始分組進(jìn)行關(guān)聯(lián)的標(biāo)識符被放置在被轉(zhuǎn)發(fā)分組中。此外,管理控制臺的標(biāo)識符可被包括在被轉(zhuǎn)發(fā)分組中。例如,分組在分組儲存器129中的位置被包括在被轉(zhuǎn)發(fā)分組中。該信息可輔助管理控制臺123將來自TPM服務(wù)器125的響應(yīng)合并到被轉(zhuǎn)發(fā)請求中。圖4示出用于通過TPM服務(wù)器處理被轉(zhuǎn)發(fā)TPM網(wǎng)絡(luò)分組的方法的實(shí)施例。在401, TPM服務(wù)器從管理控制臺接收TPM網(wǎng)絡(luò)分組。例如,TPM服務(wù)器125從管理控制臺123接收 TPM網(wǎng)絡(luò)分組,其中TPM網(wǎng)絡(luò)分組源自平臺101。TPM服務(wù)器然后在403以與其是位于作出請求的平臺本地所相同方式來處理(執(zhí)行)來自TPM網(wǎng)絡(luò)分組的TPM命令。如果TPM命令具有與其關(guān)聯(lián)的響應(yīng)(返回?cái)?shù)據(jù)、狀態(tài)等),則TPM服務(wù)器在405對響應(yīng)進(jìn)行分組化并將其發(fā)送至管理服務(wù)器。在一些實(shí)施例中, 該響應(yīng)分組包括與原始請求相關(guān)聯(lián)的標(biāo)識符。例如,如果被轉(zhuǎn)發(fā)分組包括一個(gè)或多個(gè)標(biāo)識符,則那些標(biāo)識符被發(fā)送回。在一些實(shí)施例中,該響應(yīng)分組標(biāo)識作出原始請求的計(jì)算機(jī)。圖5示出用于通過管理控制臺處理響應(yīng)分組的方法的實(shí)施例。在501,管理控制臺從TPM服務(wù)器接收對TPM網(wǎng)絡(luò)分組的響應(yīng)。例如,管理控制臺123接收對其轉(zhuǎn)發(fā)至TPM服務(wù)器125的TPM網(wǎng)絡(luò)分組的響應(yīng)。在503,管理控制臺取回與原始分組相關(guān)聯(lián)的路由信息。在一些實(shí)施例中,還取回原始分組。來自TPM的響應(yīng)被給予該請求的源地址作為該響應(yīng)的目的地址。在505,管理控制臺將該響應(yīng)轉(zhuǎn)發(fā)至適當(dāng)?shù)恼埱笃脚_。圖6示出請求計(jì)算機(jī)處理響應(yīng)TPM分組的方法的實(shí)施例。在601,請求平臺接收 TPM響應(yīng)。例如,網(wǎng)絡(luò)接口 119接收TPM響應(yīng)分組。在網(wǎng)絡(luò)603,該網(wǎng)絡(luò)接口將該響應(yīng)轉(zhuǎn)發(fā)至ME固件。在605,ME固件取回內(nèi)部路由信息(如果存在),并在將該響應(yīng)與已作出的請求關(guān)聯(lián)之后將該響應(yīng)作為內(nèi)部有效載荷轉(zhuǎn)發(fā)。例如,ME固件115取回作出該請求的CPU核103 的識別標(biāo)志并將其發(fā)送至該核。該關(guān)聯(lián)可基于所保存信息(諸如請求自身)、作出該請求的一方的識別標(biāo)志、該請求的識別標(biāo)志等等中的一個(gè)或多個(gè)。從該核(或軟件)角度,該響應(yīng)將表現(xiàn)為對TPM解碼范圍的讀/寫的響應(yīng)。發(fā)出原始請求的軟件也因此將接收該響應(yīng)。除延遲之外,該軟件不知道TPM實(shí)現(xiàn)背后的細(xì)節(jié)。在一些實(shí)施例中,還取回原始請求。雖然上述描述絕大部分利用管理控制臺作為請求計(jì)算機(jī)與TPM服務(wù)器之間的中介,但在一些實(shí)施例中,如果該計(jì)算機(jī)的地址已知(例如如果該地址包括在被轉(zhuǎn)發(fā)分組中),則TPM服務(wù)器向請求計(jì)算機(jī)直接返回響應(yīng)。上述提供許多優(yōu)點(diǎn)。一個(gè)此類優(yōu)點(diǎn)是能恢復(fù)平臺由于錯(cuò)誤配置TPM而造成的損失。如果在平臺上運(yùn)行的軟件錯(cuò)誤配置TPM或?qū)PM放置到損壞的或無效狀態(tài),則該平臺可被關(guān)閉,TPM被恢復(fù),且隨后平臺可被重新引導(dǎo)。如果TPM無法被恢復(fù),則可激活并規(guī)定另一 TPM,且可對管理控制臺編程以將請求重新引導(dǎo)至新的TPM。管理控制臺和相關(guān)聯(lián)的軟件可在TPM上運(yùn)行,而與使用TPM的平臺無關(guān)。此外,其它管理/維護(hù)活動(dòng)可在TPM上離線地執(zhí)行。另一優(yōu)點(diǎn)是可與主TPM—起使用備用TPM。如果主TPM(諸如本地TPM或主TPM服務(wù)器)需要離線,則管理控制臺可被編程為將請求重新引導(dǎo)至備用TPM,同時(shí)主TPM停機(jī)以進(jìn)行維護(hù)。此外,存儲在TPM中的策略或數(shù)據(jù)可用,與平臺的位置無關(guān)。例如,如果任何VM策略被存儲在TPM中且VM被遷移至新節(jié)點(diǎn),則VMM/管理程序具有對策略的立即訪問,這是因?yàn)門PM與平臺分離?,F(xiàn)在參考圖7,所示出的是根據(jù)本發(fā)明一實(shí)施例的系統(tǒng)700的框圖。系統(tǒng)700可包括耦合至圖形存儲器控制器中樞(GMCH) 720的一個(gè)或多個(gè)處理元件710、715。附加的處理元件715的可選性在圖7中通過虛線來表示。每個(gè)處理元件可以是單核,或可替代地包括多核。處理元件可任選地包括除處理核之外的其它片上元件,諸如集成存儲器控制器和/或集成I/O控制邏輯。此外,對于至少一個(gè)實(shí)施例,處理元件的(多個(gè))核可多線程化,因?yàn)樗鼈儗γ總€(gè)核可包括一個(gè)以上的硬件線程上下文。圖7示出GMCH 720可耦合至存儲器740,該存儲器740可以是例如動(dòng)態(tài)隨機(jī)存取存儲器(DRAM)。對于至少一個(gè)實(shí)施例,DRAM可以與非易失性高速緩存相關(guān)聯(lián)。GMCH 720可以是芯片組或芯片組的一部分。GMCH 720可以與(多個(gè))處理器710、 715進(jìn)行通信,并控制處理器710、715和存儲器740之間的交互。GMCH 720還可擔(dān)當(dāng)(多個(gè))處理器710、715和系統(tǒng)700的其它元件之間的加速總線接口。對于至少一個(gè)實(shí)施例, GMCH 720經(jīng)由諸如前端總線(FSB) 795之類的多點(diǎn)總線與(多個(gè))處理器710、715進(jìn)行通此外,GMCH 720耦合至顯示器740 (諸如平板顯示器)。GMCH 720可包括集成圖形加速器。GMCH 720還耦合至輸入/輸出(I/O)控制器中樞(ICH) 750,該輸入/輸出(I/ 0)控制器中樞(ICH) 750可用于將各種外圍設(shè)備耦合至系統(tǒng)700。在圖7的實(shí)施例中作為示例示出了外部圖形設(shè)備760以及另一外圍設(shè)備770,該外部圖形設(shè)備760可以是耦合至 ICH 750的分立圖形設(shè)備。替代地,系統(tǒng)700中還可存在附加或不同的處理元件。例如,附加(多個(gè))處理元件715可包括與處理器710相同的附加處理器、與處理器710異類或不對稱的附加(多個(gè)) 處理器、加速器(諸如例如圖形加速器或數(shù)字信號處理(DSP)單元)、現(xiàn)場可編程門陣列或任何其它處理元件。按照包括體系結(jié)構(gòu)、微體系結(jié)構(gòu)、熱、功耗特征等等優(yōu)點(diǎn)的度量譜,物理資源710、715之間存在各種差別。這些差別會有效顯示為處理元件710、715之間的不對稱性和異類性。對于至少一個(gè)實(shí)施例,各種處理元件710、715可駐留在同一管芯封裝中?,F(xiàn)在參照圖8,所示出的是根據(jù)本發(fā)明一實(shí)施例的第二系統(tǒng)800的框圖。如圖8所示,多處理器系統(tǒng)800是點(diǎn)對點(diǎn)互連系統(tǒng),并且包括經(jīng)由點(diǎn)對點(diǎn)互連850耦合的第一處理元件870和第二處理元件880。如圖8所示,處理元件870和880中的每一個(gè)都可以是多核處理器,包括第一和第二處理器核(即,處理器核87 與874b以及處理器核88 與884b)。替代地,處理元件870、880中的一個(gè)或多個(gè)可以是除處理器之外的元件,諸如加速器或現(xiàn)場可編程門陣列。雖然僅以兩個(gè)處理元件870、880來示出,但應(yīng)理解本發(fā)明的范圍不限于此。在其它實(shí)施例中,在給定處理器中可存在一個(gè)或多個(gè)附加處理元件。第一處理元件870還可包括存儲器控制器中樞(MCH) 872和點(diǎn)對點(diǎn)(P_P)接口 876 和878。類似地,第二處理元件880包括MCH 882與P-P接口 886和888。處理器870、880 可以經(jīng)由使用點(diǎn)對點(diǎn)(PtP)接口電路878、888的點(diǎn)對點(diǎn)(PtP)接口 850來交換數(shù)據(jù)。如圖 8所示,MCH 872和882將處理器耦合到相應(yīng)的存儲器,即存儲器832和存儲器834,這些存儲器可以是本地附連到相應(yīng)處理器的主存儲器部分。處理器870、880可各自經(jīng)由使用點(diǎn)對點(diǎn)接口電路876、894、886、898的單獨(dú)PtP接口 852、邪4與芯片組890交換數(shù)據(jù)。芯片組890還可經(jīng)由高性能圖形接口 839與高性能圖形電路838交換數(shù)據(jù)。本發(fā)明的實(shí)施方式可以置于具有任意數(shù)目的處理核的任意處理器中,或置于圖8的PtP總線代理中的每一個(gè)中。在一個(gè)實(shí)施例中,任意處理器核可包括本地高速緩存存儲器(未示出)或者以其它方式關(guān)聯(lián)于本地高速緩存存儲器(未示出)。此外, 共享高速緩存(未示出)可被包括于在這兩個(gè)處理器的外部但經(jīng)由p2p互連與這些處理器連接的任一處理器中,從而如果一處理器被置于低功率模式,則任一個(gè)或這兩個(gè)處理器的本地高速緩存信息可被存儲在該共享的高速緩存中。第一處理元件870和第二處理元件880可分別經(jīng)由P-P互連876、886和884耦合到芯片組890。如圖8所示,芯片組890包括P-P接口 894和898。此外,芯片組890包括將芯片組890與高性能圖形引擎848耦合的接口 892。在一個(gè)實(shí)施例中,總線849可被用于將圖形引擎848耦合到芯片組890。替代地,點(diǎn)對點(diǎn)互連849可耦合這些部件。接著,芯片組890可經(jīng)由接口 896耦合到第一總線816。在一個(gè)實(shí)施例中,第一總線816可以是外圍部件互連(PCI)總線或諸如PCI Express總線或另一第三代I/O互連總線之類的總線,雖然本發(fā)明的范圍不限于此。如圖8所示,各種I/O設(shè)備814可連同總線橋接器818 —起耦合到第一總線816, 總線橋接器818將第一總線816耦合到第二總線820。在一個(gè)實(shí)施例中,第二總線820可以是低引腳數(shù)(LPC)總線。各種設(shè)備可被耦合到第二總線820,這些設(shè)備包括例如鍵盤/鼠標(biāo)822、通信設(shè)備826以及諸如磁盤驅(qū)動(dòng)器或其它大容量存儲設(shè)備之類的數(shù)據(jù)儲存器單元 828,在一個(gè)實(shí)施例中該數(shù)據(jù)儲存器單元可包括代碼830。此外,音頻I/O擬4可被耦合到第二總線820。注意,其它體系結(jié)構(gòu)是可能的。例如,代替圖8的點(diǎn)對點(diǎn)體系結(jié)構(gòu),系統(tǒng)可實(shí)現(xiàn)多點(diǎn)總線或其它此類體系結(jié)構(gòu)。現(xiàn)在參照圖9,所示出的是根據(jù)本發(fā)明實(shí)施例的第三系統(tǒng)900的框圖。圖8和9中的相同元件使用相同附圖標(biāo)記,且在圖9中省略了圖8的某些方面以避免遮擋圖9的其它方面。圖9示出處理元件870、880可分別包括集成存儲器和I/O控制邏輯(“CL”)872 和882。對于至少一個(gè)實(shí)施例,CL 872,882可包括諸如以上聯(lián)系圖7和8所描述的存儲器控制器中樞邏輯(MCH)。此外,CL 872、882還可包括I/O控制邏輯。圖9示出不僅存儲器 832、834耦合至CL 872、882,而且I/O設(shè)備914也耦合至控制邏輯872、882。傳統(tǒng)I/O設(shè)備 915耦合至芯片組890。本文中公開的機(jī)構(gòu)的實(shí)施例可按照硬件、軟件、固件或此類實(shí)現(xiàn)方法的組合來實(shí)現(xiàn)。本發(fā)明的實(shí)施例可被實(shí)現(xiàn)為在包括至少一個(gè)處理器、數(shù)據(jù)儲存器系統(tǒng)(包括易失性和非易失性存儲器和/或儲存元件)、至少一個(gè)輸入設(shè)備以及至少一個(gè)輸出設(shè)備的可編程系統(tǒng)上執(zhí)行的計(jì)算機(jī)程序??蓪⒅T如圖8中所示的代碼830的程序代碼應(yīng)用于輸入數(shù)據(jù)以執(zhí)行本文中所描述的功能,并產(chǎn)生輸出信息。因此,本發(fā)明的實(shí)施例還可包括機(jī)器可讀介質(zhì),該機(jī)器可讀介質(zhì)包含用于執(zhí)行本發(fā)明的操作實(shí)施例的指令,或包含限定本文中描述的結(jié)構(gòu)、電路、裝置、處理器和/或系統(tǒng)特征的諸如HDL之類的設(shè)計(jì)數(shù)據(jù)。此類實(shí)施例也可被稱為程序產(chǎn)品。此類機(jī)器可讀存儲介質(zhì)可包括但不限于通過機(jī)器或設(shè)備制造或形成的粒子的有形排列,包括存儲介質(zhì),諸如硬盤;包括軟盤、光盤、壓縮盤只讀存儲器(CD-ROM)、可重寫壓縮盤(CD-RW)以及磁光盤的任何其它類型的盤;諸如只讀存儲器(ROM)之類的半導(dǎo)體器件;諸如動(dòng)態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)之類的隨機(jī)存取存儲器 (RAM);可擦除可編程只讀存儲器(EPROM);閃存;電可擦除可編程只讀存儲器(EEPROM); 磁卡或光卡;或適于存儲電子指令的任何其它類型的介質(zhì)??砂凑找阎绞綄⑤敵鲂畔?yīng)用于一個(gè)或多個(gè)輸出設(shè)備。為了此應(yīng)用的目的,處理系統(tǒng)包括具有諸如例如數(shù)字信號處理器(DSP)、微控制器、專用集成電路(ASIC)或微處理器之類的處理器的任意系統(tǒng)。程序可按照高級面向過程或面向?qū)ο蟮木幊陶Z言來實(shí)現(xiàn),以與處理系統(tǒng)通信。程序在需要時(shí)還可按照匯編或機(jī)器語言來實(shí)現(xiàn)。實(shí)際上,本文中描述的機(jī)制在范圍上不限于任何特定編程語言。在任何情況下,該語言可以是編譯或解釋語言。至少一個(gè)實(shí)施例的一個(gè)或更多個(gè)方面可以用存儲在表示處理器內(nèi)各種邏輯的機(jī)器可讀介質(zhì)上的代表性數(shù)據(jù)來實(shí)現(xiàn),其中的數(shù)據(jù)被機(jī)器讀取時(shí)促使機(jī)器編制邏輯來執(zhí)行在此描述的技術(shù)。此類表示(即所知的“IP核”)可以存儲在有形的機(jī)器可讀介質(zhì)上并提供給各種顧客或制造商,以加載到實(shí)際制作該邏輯或處理器的編制機(jī)器中去。上述描述旨在說明本發(fā)明的優(yōu)選實(shí)施例。根據(jù)上述討論,還應(yīng)當(dāng)顯而易見的是,在發(fā)展迅速且進(jìn)一步的進(jìn)展難以預(yù)見的此技術(shù)領(lǐng)域中,本領(lǐng)域技術(shù)人員可在安排和細(xì)節(jié)上對本發(fā)明進(jìn)行修改,而不背離落在所附權(quán)利要求及其等價(jià)方案的范圍內(nèi)的本發(fā)明的原理。
權(quán)利要求
1.一種用于虛擬化可信任平臺模塊(TPM)訪問的裝置,所述裝置包括 處理器核邏輯,用于執(zhí)行軟件程序;可管理性引擎邏輯,用于接收由所述軟件程序所請求的可信任平臺模塊(TPM)命令, 并利用可管理性固件通過至少創(chuàng)建TPM網(wǎng)絡(luò)分組來處理所述TPM命令;網(wǎng)絡(luò)接口,用于將所述TPM網(wǎng)絡(luò)分組發(fā)送至所述裝置外部的遠(yuǎn)程TPM以進(jìn)行處理。
2.如權(quán)利要求1所述的裝置,其特征在于,還包括存儲器控制器,用于在存儲器映射輸入/輸出(MMIO)陷阱中截取由所述軟件程序所請求的TPM命令,并將所述TPM命令轉(zhuǎn)發(fā)至所述可管理性引擎。
3.如權(quán)利要求1-2所述的裝置,其特征在于,還包括被禁用的本地TPM,其中所述本地TPM如果被啟用則用于處理所述TPM命令。
4.如權(quán)利要求1-3所述的裝置,其特征在于,由所述軟件程序所請求的TPM命令試圖訪問存儲器映射輸入/輸出(MMIO)地址范圍0xraD4000至0xFED43F中的寄存器。
5.一種用于虛擬化可信任平臺模塊(TPM)訪問的系統(tǒng),所述系統(tǒng)包括 平臺,包括處理器核邏輯,用于執(zhí)行軟件程序,可管理性引擎,用于接收由所述軟件程序所請求的可信任平臺模塊(TPM)命令,并利用可管理性固件通過至少創(chuàng)建TPM網(wǎng)絡(luò)分組來處理所述TPM命令,網(wǎng)絡(luò)接口,用于將所述TPM網(wǎng)絡(luò)分組發(fā)送至裝置外部的遠(yuǎn)程TPM以進(jìn)行處理;以及耦合至所述網(wǎng)絡(luò)接口的管理控制臺,所述管理控制臺包括分組儲存器邏輯,用于存儲所接收的TPM網(wǎng)絡(luò)分組,路由信息儲存器邏輯,用于存儲與所接收的TPM網(wǎng)絡(luò)分組有關(guān)的信息,包括向哪里轉(zhuǎn)發(fā)所述TPM網(wǎng)絡(luò)分組,以及路由邏輯,用于路由所接收的TPM網(wǎng)絡(luò)分組。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述管理控制臺還包括本地TPM,用于處理所接收的TPM網(wǎng)絡(luò)分組,其中所述管理控制臺將與經(jīng)處理的所接收的TPM網(wǎng)絡(luò)分組相關(guān)聯(lián)的任何響應(yīng)發(fā)送至所述平臺。
7.如權(quán)利要求5-6所述的系統(tǒng),其特征在于,還包括耦合至所述管理控制臺的TPM服務(wù)器,用于處理所述管理控制臺所接收的TPM網(wǎng)絡(luò)分組,所述TPM服務(wù)器將與關(guān)聯(lián)的任何響應(yīng)發(fā)送至所述管理控制臺。
8.如權(quán)利要求5-7所述的系統(tǒng),其特征在于,所述管理控制臺從所接收的分組中清除地址信息,并在將TPM網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至所述TPM服務(wù)器之前添加新地址信息。
9.如權(quán)利要求5-8所述的系統(tǒng),其特征在于,所述平臺進(jìn)一步包括存儲器控制器,用于在存儲器映射輸入/輸出(MMIO)陷阱中截取由所述軟件程序所請求的TPM命令,并將所述TPM命令轉(zhuǎn)發(fā)至所述可管理性引擎。
10.如權(quán)利要求5-9所述的系統(tǒng),其特征在于,還包括 被禁用的本地TPM,其中本地TPM如果被啟用則處理TPM命令。
11.一種用于虛擬化可信任平臺模塊(TPM)訪問的方法,所述方法包括 在平臺的管理引擎處從運(yùn)行在所述平臺上的軟件程序接收TPM命令請求; 對TPM命令請求進(jìn)行分組化以使其能被發(fā)送至所述平臺外部的TPM ;向知道所述平臺外部的TPM的外部實(shí)體發(fā)送分組化的TPM命令請求,以處理分組化的 TPM命令請求;以及存儲與分組化的TPM命令請求相關(guān)聯(lián)的信息,以使任何響應(yīng)將與分組化的TPM命令請求相關(guān)聯(lián)。
12.如權(quán)利要求11所述的方法,其特征在于,還包括一旦出現(xiàn)存儲器映射輸入/輸出(MMIO)陷阱,就確定本地TPM無法處理TPM命令請求;以及將TPM命令請求轉(zhuǎn)發(fā)至管理引擎。
13.如權(quán)利要求11-12所述的方法,其特征在于,還包括 接收對分組化的TPM命令請求的響應(yīng);將所述響應(yīng)與所述分組化的TPM命令請求關(guān)聯(lián);以及將所述響應(yīng)轉(zhuǎn)發(fā)至作出所述請求的軟件程序。
14.如權(quán)利要求11-13所述的方法,其特征在于,與所述分組化的TPM命令請求相關(guān)聯(lián)的信息包括分組化的TPM請求的副本;所述分組化的TPM請求被發(fā)送至的實(shí)體的識別標(biāo)志;以及作出所述請求的軟件程序的識別標(biāo)志。
15.如權(quán)利要求11-14所述的方法,其特征在于,與所述分組化的TPM命令請求相關(guān)聯(lián)的信息包括所述分組化的TPM的識別標(biāo)志;所述分組化的TPM請求被發(fā)送至的實(shí)體的識別標(biāo)志;以及作出所述請求的軟件程序的識別標(biāo)志。
全文摘要
描述了用于虛擬化TPM訪問的系統(tǒng)、方法和裝置的實(shí)施例。在一些實(shí)施例中,利用一種裝置作為該虛擬化過程的一部分,該裝置包括CPU核,用于執(zhí)行軟件程序;耦合至CPU核的可管理性引擎,該可管理性引擎用于接收由軟件程序所請求的可信任平臺模塊(TPM)命令并利用可管理性固件通過至少創(chuàng)建TPM網(wǎng)絡(luò)分組來處理該TPM命令;以及耦合至可管理性引擎的網(wǎng)絡(luò)接口,用于將TPM網(wǎng)絡(luò)分組發(fā)送至該裝置外部的遠(yuǎn)程TPM以進(jìn)行處理。
文檔編號H04L29/08GK102271153SQ20111016155
公開日2011年12月7日 申請日期2011年6月2日 優(yōu)先權(quán)日2010年6月3日
發(fā)明者R·薩里帕利 申請人:英特爾公司