專利名稱:可信和機密的遠程tpm初始化的制作方法
可信和機密的遠程TPM初始化背景可信平臺模塊(TPM)是存儲了密鑰、口令和數(shù)字證書的硬件微控制器。TPM還提供了允許對例如臺式計算機、膝上型計算機或蜂窩電話等設備進行認證的能力。一旦初始化,TPM就可以被用來生成數(shù)字簽名和加密密鑰,從而允許確認消息是來自于該消息聲稱是其來源的設備。TPM支持各個命令,包括例如用于初始化TPM的Init (初始化)、用于設置擁有者值的TakeOwnership (取得所有權)、以及用于在內(nèi)部生成密鑰對的 CreateEndorsementKey (創(chuàng)建背書密鑰)。TPM通常被用于企業(yè)環(huán)境以允許系統(tǒng)驗證信息源。在由設備提供的密鑰和服務可以被信任之前,TPM應該被安全地且機密地初始化。MM本文尤其描述了一種用于安全地且機密地遠程初始化可信平臺模塊的技術。例如,如果TPM沒有被安全地且機密地初始化,則惡意機器或操作系統(tǒng)會在軟件中植入一種仿真的TPM,由此欺騙用戶和應用程序使他們認為能夠信賴真實的TPM信任屬性。以這種方式仿真的TPM可以例如允許惡意軟件獲得對秘密的密鑰材料的訪問,或者錯誤地報告系統(tǒng)配置。在一種實施方式中,可以通過利用由設備制造商提供的密鑰來啟動安全通信。該安全通信可以接著允許系統(tǒng)管理員來遠程地執(zhí)行TakeOwnership操作,而不是在每個設備本地執(zhí)行并且沒有將敏感信息暴露給本地軟件的風險。
以下結合附圖提供的詳細描述旨在作為對各示例實現(xiàn)的描述,并且不旨在表示可以執(zhí)行TPM的可信和機密的遠程初始化的唯一形式。該描述闡述了各示例實現(xiàn)的功能以及用于構造和操作各示例的步驟序列。然而,相同的或者等價的功能和序列可以通過替換實施方式來實現(xiàn)。根據(jù)附圖閱讀以下詳細描述,將更好地理解本說明書,附圖中附
圖1是其中可以實現(xiàn)可信和機密的遠程TPM初始化的操作環(huán)境的示例。附圖2提供了附圖1的各部分的補充細節(jié),并增加了示例性數(shù)據(jù)流的指示。附圖3是示出了可信和機密的遠程TPM初始化的實現(xiàn)的一個示例的流程圖。附圖4示出了根據(jù)一個實施例的計算設備的組件圖。詳細描述本文尤其描述了允許可信和機密的遠程TPM初始化的各種方法和技術的示例。盡管各示例在本文中被描述為并被示為是在個人計算機系統(tǒng)中實現(xiàn)的,但所描述的系統(tǒng)是作為而非限制來提供的。如本領域技術人員將理解的,本發(fā)明的各示例適于各種不同類型的系統(tǒng)中的應用。在附圖中,相同的參考數(shù)字在全部若干附圖中被用來表示相似的組件。附圖1是其中可以實現(xiàn)可信和機密的遠程TPM初始化的操作環(huán)境100的示例。服
3務器150包括由客戶機110、120和130的制造商提供的背書密鑰(Endorsement Key)列表 155。該EK(背書密鑰)列表155允許服務器150在局域網(wǎng)170上安全地通信,以遠程地初始化 TPM 115、125 和 135。在附圖2中可以看到附加細節(jié),其中示出了在服務器150和TPM 115之間的數(shù)據(jù)流的示例。在這個示例中,服務器150使用TPM 115的EK的公鑰來加密模板數(shù)據(jù)來作為 TakeOwnership指令200的一部分,并將它提交到TPM 115。雖然該示例使用由客戶機110、120和130的制造商提供的背書密鑰列表155,但在其它實施方式中,它可以是來自可信TPM供應商的單獨證書。該領域技術人員將認識到,可以有若干種用來認證TPM的技術。附圖3是提供了與這一過程的一個可能的實現(xiàn)有關的更多細節(jié)的流程圖。客戶機通過將EK證書從TPM發(fā)送310到服務器來啟動該過程。服務器使用客戶機的制造商提供的EK信息來確認320該證書。服務器接著計算330Take0wnerShip命令,包括TPM的 OwnerAuth (所有者授權值)和SRKAuth (SRK授權值)的服務器指定值,并利用TPM的EK的公鑰部分加密該命令。服務器接著將該經(jīng)加密的命令發(fā)送到客戶機,該客戶機將它傳遞340 到TPM??蛻魴C軟件不能讀取該數(shù)據(jù),因為它用受保護的TPM密鑰加密了。TPM接著利用EK私鑰來解密該經(jīng)加密的數(shù)據(jù),并執(zhí)行350 TakeOwnership命令。 TPM接著創(chuàng)建存儲根密鑰(SRK),計算鍵控散列消息認證碼(HMAC),并將該數(shù)據(jù)發(fā)送360回到服務器。因為它僅僅是摘要,所以即使客戶機是惡意的,該客戶機也不能讀取它。通過使用370由制造商提供的EK,服務器可以校驗該HMAC (因為它包含SRK的共享秘密),并信任該數(shù)據(jù)是機密的且信任該數(shù)據(jù)是來自從制造商獲得的EK證書指定的TPM。在該過程中的這一時刻,客戶機不能在TPM上使用或者創(chuàng)建密鑰,因為該SRK被設置為秘密值。為了解決這個問題,服務器利用SRK公鑰啟動到TPM的加密隧道??蛻魴C不能假裝作為TPM,因為它不具有SRK私鑰。一旦建立了該隧道,服務器可以生成密鑰、創(chuàng)建身份、并建立委托表。服務器還可以生成能夠被用于TPM操作CertifyKey (證明密鑰)的可信簽署密鑰,這將允許該服務器確認任何將來的密鑰實際上是來自TPM的。一旦服務器已經(jīng)完成了初始化TPM所需要的操作,它會將SRKAuth重置380回到全零的公知值,使得客戶機可以使用TPM來生成并使用密鑰,但是防止了客戶機執(zhí)行所有者(Owner)特權操作。在初始配置成功之后,服務器還可以在隨后的時間再次打開加密的通道并修改TPM的配置。附圖4示出了根據(jù)一個實施例的計算設備的組件圖。計算設備600可以被用來實現(xiàn)這里所述的一個或多個計算設備、計算機過程或者軟件模塊。在一個示例中,計算設備 600可以被用來處理計算、執(zhí)行指令、接收和傳送數(shù)字信號。在另一個示例中,視服務器150 或客戶機110、120和130的需要,該計算設備600可以被用來處理計算、執(zhí)行指令、接收和傳送數(shù)字信號、接收和傳送搜索查詢以及超文本、編譯計算機代碼。計算設備600可以是能夠以軟件、硬件、固件或其組合中執(zhí)行本文中描述的步驟和/或執(zhí)行本文中描述的功能的目前已知或將要變得已知的任何通用或專用計算機。在其最基本配置中,計算設備600典型地包括至少一個中央處理單元(CPU)602和存儲器604。取決于計算設備的確切配置和類型,存儲器604可以是易失性的(例如RAM)、 非易失性的(例如ROM、閃存等)或者二者的某種組合。另外,計算設備600還可以具有附加特征/功能。例如,計算設備600可以包括多個CPU。所描述的方法可以由計算設備600 中的任何處理單元以任何方式來執(zhí)行。例如,所描述的過程可以由多個CPU來并行執(zhí)行。計算設備600還可以包括附加存儲(可移動的和/或不可移動的),包括但不限于,磁盤或光盤或者磁帶。這些附加存儲在附圖6中由存儲206示出。計算機存儲介質(zhì)包括以用于存儲例如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù)等信息的任何方式或技術實現(xiàn)的易失性的和非易失性的、可移動的和不可移動的介質(zhì)。存儲器604和存儲606都是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括但不限于,RAM、R0M、EEPR0M、閃存或其它存儲器技術,CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲器,磁帶盒、磁帶、磁盤存儲或其它磁存儲設備,或者可以被用來存儲所需信息并能夠被計算設備600訪問的任何其它介質(zhì)。任何這種計算機存儲介質(zhì)可以是計算設備600的一部分。計算設備600還可以包括允許該設備與其它設備進行通信的(諸)通信設備612。 (諸)通信設備612是通信介質(zhì)的示例。通信介質(zhì)通常以例如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),并包括任何信息傳遞介質(zhì)。術語“已調(diào)制數(shù)據(jù)信號”指的是其特征中的一個或多個以在該信號中編碼信息的方式被設置或改變的信號。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),例如有線網(wǎng)絡或直接線連接,以及無線介質(zhì),例如聲學、RF、紅外和其它無線介質(zhì)。這里所用的術語計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)兩者。所描述的方法可以按例如數(shù)據(jù)、計算機可執(zhí)行指令編碼等任何形式來編碼在任何計算機可讀介質(zhì)中。計算設備600還可以具有(諸)輸入設備610,例如鍵盤、鼠標、筆、語音輸入設備、 觸摸輸入設備等。還可以包括(諸)輸出設備608,例如顯示器、揚聲器、打印機等。所有這些設備在本領域是公知的,因而不需要詳細論述。計算設備600還可以具有可信平臺模塊(TPM)。本領域技術人員會認識到,用于存儲程序指令的存儲設備可以分布在網(wǎng)絡中。例如,遠程計算機可以存儲該過程的被描述為軟件的示例。本地或終端計算機可以訪問遠程計算機,并下載該軟件的一部分或者全部來運行程序?;蛘撸镜赜嬎銠C可以按需下載該軟件的各段,或者在本地終端執(zhí)行一些軟件指令并在遠程計算機(或計算機網(wǎng)絡)執(zhí)行一些軟件指令。本領域技術人員還會認識到,通過利用本領域技術人員已知的常規(guī)技術,這些軟件指令的全部或者部分可以通過例如DSP、可編程邏輯陣列等專用電路來執(zhí)行。
權利要求
1.一種從第一設備(150)供應耦合到第二設備(110、120、130)的可信平臺模塊的方法,包括接收所述可信平臺模塊的背書密鑰的公共部分(步驟310); 利用來自可信源的數(shù)據(jù)來驗證背書密鑰的真實性(步驟320); 利用臨時授權值來格式化所述可信平臺模塊的TPiLTakeOwnership命令(步驟330); 利用所述可信平臺模塊的背書密鑰的公共部分來加密經(jīng)格式化的TPiLTakeOwnership 命令;將經(jīng)加密的格式化的TPiLTakeOwnership命令發(fā)送到所述可信平臺模塊(步驟340); 從所述可信平臺模塊接收消息(步驟360);以及驗證所接收到的消息源于所述可信平臺模塊(步驟370)。
2.如權利要求1的方法,其特征在于,所接收的消息是散列摘要。
3.如權利要求1的方法,其特征在于,所述可信源是由所述可信平臺模塊的所有者收集的列表(115)。
4.如權利要求1的方法,其特征在于,還包括發(fā)送命令來將所述可信平臺模塊的存儲根密鑰(250)授權值全部重置為零(步驟 380)。
5.一種供應可信平臺模塊(11 的方法,包括從遠程設備接收經(jīng)加密的格式化的TPiLTakeOwnership命令(步驟310); 利用背書密鑰驗證所述TPiLTakeOwnership命令的真實性(步驟320); 執(zhí)行所述TPM_TakeOwnership命令(步驟350);以及向遠程設備發(fā)送消息(步驟380)。
6.如權利要求5的方法,其特征在于,還包括從存儲根密鑰(250)計算散列摘要。
全文摘要
提供了一種允許對可信平臺模塊遠程初始化的技術。即使目標設備具有正在運行的惡意操作系統(tǒng)或其它軟件,結果也是可信的和機密的。
文檔編號G06F9/44GK102177678SQ200980140559
公開日2011年9月7日 申請日期2009年10月7日 優(yōu)先權日2008年10月10日
發(fā)明者E·L·霍特, K·M·利特瓦克, S·湯姆, S·艾澤霍夫, Y·甘迪 申請人:微軟公司