專利名稱:在一個往返行程中的密鑰認(rèn)證的制作方法
在一個往返行程中的密鑰認(rèn)證
背景技術(shù):
密碼密鑰的使用涉及到信任。當(dāng)A利用B的密鑰來加密數(shù)據(jù)時(shí),A期望只有B將能夠解密該數(shù)據(jù)。而當(dāng)A驗(yàn)證利用B的密鑰創(chuàng)建的簽名時(shí),A期望有效簽名的存在以表示B 實(shí)際上簽署了對其計(jì)算該簽名的數(shù)據(jù)。因而,當(dāng)A使用B的密鑰時(shí),A想知道A如何能夠肯定B的密鑰真正屬于B以及A如何能夠肯定B的密鑰還沒有被攻破是合法的。通常通過證書來建立對密鑰的信任。當(dāng)實(shí)體創(chuàng)建密鑰時(shí),該實(shí)體向機(jī)構(gòu)提交該密鑰以便認(rèn)證。該機(jī)構(gòu)確定該密鑰及其所有者是否符合該機(jī)構(gòu)用于認(rèn)證的標(biāo)準(zhǔn)。如果是這樣的話,該機(jī)構(gòu)為該密鑰頒發(fā)證書,其中該證書包含由該機(jī)構(gòu)簽署的密鑰。機(jī)構(gòu)是其服務(wù)的團(tuán)體(community)所知曉的并且該團(tuán)體信任其來認(rèn)證其他實(shí)體的密鑰的實(shí)體。如果公認(rèn)的機(jī)構(gòu)認(rèn)證密鑰,則信任該機(jī)構(gòu)的團(tuán)體將信任所認(rèn)證的密鑰。例如,瀏覽器定期接收更新的機(jī)構(gòu)的列表,并且這些瀏覽器將信任由該列表上的機(jī)構(gòu)頒發(fā)的證書。組織(例如,公司)可以具有被該組織內(nèi)的機(jī)器認(rèn)可并信任的證書頒發(fā)機(jī)構(gòu)(certificate authority)。可信平臺模塊(TPM)是能夠用于為機(jī)器提供各種形式的安全性的一種硬件。TPM 能夠做的一件事是圍繞密鑰來維護(hù)硬件安全,從而提供該密鑰將不被濫用的高保證措施。 在某些情況下,證書頒發(fā)機(jī)構(gòu)可能愿意僅認(rèn)證被綁定到特定TPM的密鑰,因?yàn)檫@種綁定確保該密鑰將只在包含那個特定TPM的機(jī)器上才被使用。因此,為了認(rèn)證這樣的密鑰,證書頒發(fā)機(jī)構(gòu)必須驗(yàn)證該密鑰實(shí)際上被綁定到特定機(jī)器上的TPM,并且不能被遷移到其他機(jī)器。通常,認(rèn)證這樣的密鑰的處理涉及到在證書頒發(fā)機(jī)構(gòu)和正請求認(rèn)證密鑰的客戶端 (client)之間的若干往返行程(round-trip)交換。當(dāng)客戶端想認(rèn)證利用該客戶端的TPM 所保護(hù)的新的不可遷移的密鑰時(shí),該客戶端請求TPM為該新密鑰創(chuàng)建被稱為證明身份密鑰 (Attestation Identity Key) (AIK)的密鑰。該客戶端隨后要求該證書頒發(fā)機(jī)構(gòu)認(rèn)證該 AIK,而該證書頒發(fā)機(jī)構(gòu)在驗(yàn)證該AIK實(shí)際上是由位于該客戶端的機(jī)器上的TPM生成之后認(rèn)證該AIK。該客戶端隨后要求該TPM利用該AIK來簽署新密鑰,而該TPM將在該密鑰是不可遷移的時(shí)候才這樣做。該客戶端然后向證書頒發(fā)機(jī)構(gòu)提交新密鑰和AIK生成的簽名。 該證書頒發(fā)機(jī)構(gòu)信任該TPM,并已將該AIK認(rèn)證為屬于該TPM。因此,基于該TPM已利用該 AIK簽署新密鑰,該證書頒發(fā)機(jī)構(gòu)將信任該新密鑰是不可遷移的,所以該證書頒發(fā)機(jī)構(gòu)將為該新密鑰頒發(fā)證書。然而,這種處理具有的問題是它涉及到在客戶端和證書頒發(fā)機(jī)構(gòu)之間的多個往返行程用于認(rèn)證AIK的一個行程(trip),以及用于認(rèn)證客戶端正在試圖認(rèn)證的新密鑰的另一個行程。
發(fā)明內(nèi)容
不可遷移的密鑰可以在證書頒發(fā)機(jī)構(gòu)和正在請求該密鑰的客戶端之間的一個往返行程中被認(rèn)證。在具有TPM的機(jī)器上,客戶端要求TPM創(chuàng)建新的不可遷移的密鑰(例如, RSA密鑰對)。TPM然后創(chuàng)建該密鑰,并將新密鑰的公用部分提供給客戶端??蛻舳穗S后為該新密鑰創(chuàng)建證書請求,并要求TPM創(chuàng)建被綁定到該證書請求的摘要(digest)的證明身份密鑰(AIK)。TPM創(chuàng)建AIK,并返回包含該AIK的公用部分、該摘要以及對AIK的該公用部分和該摘要兩者采用的簽名的身份綁定??蛻舳巳缓笠骉PM使用AIK來簽署新密鑰的公用部分作為該新密鑰是不可遷移的指示。TPM簽署該新密鑰的公用部分,并返回包含該新密鑰、該新密鑰是不可遷移的TPM聲明以及利用AIK的專用部分創(chuàng)建的簽名的密鑰認(rèn)證結(jié)構(gòu)。 客戶端隨后向證書頒發(fā)機(jī)構(gòu)發(fā)送證書請求;身份綁定;密鑰認(rèn)證結(jié)構(gòu);和TPM的簽注密鑰 (endorsement key)的公用密鑰證書。(簽注密鑰是每個TPM具有的識別特定TPM的密鑰)。當(dāng)證書頒發(fā)機(jī)構(gòu)從客戶端接收到這些項(xiàng)時(shí),它檢查TPM的簽注密鑰的公鑰證書, 以驗(yàn)證與該簽注密鑰相關(guān)聯(lián)的TPM是證書頒發(fā)機(jī)構(gòu)了解并信任的TPM。證書頒發(fā)機(jī)構(gòu)然后檢查該證書,以恢復(fù)客戶端正要求認(rèn)證的新密鑰。證書頒發(fā)機(jī)構(gòu)隨后驗(yàn)證身份綁定上的簽名、計(jì)算證書請求的摘要并比較所計(jì)算的摘要與包含在身份綁定中的摘要,以確保這兩個摘要相匹配。如果這些摘要相匹配的話,并且如果身份綁定的簽名是有效的話,這些事實(shí)證實(shí)身份綁定中所提及的AIK是特別地為證書頒發(fā)機(jī)構(gòu)已接收到的證書請求而創(chuàng)建的。假設(shè)這些摘要相匹配且身份綁定上的簽名正確地驗(yàn)證,證書頒發(fā)機(jī)構(gòu)檢查密鑰認(rèn)證結(jié)構(gòu),并驗(yàn)證該結(jié)構(gòu)上的簽名。密鑰認(rèn)證結(jié)構(gòu)表示由擁有AIK的專用部分的一方所作出的、包含在該結(jié)構(gòu)中的新密鑰是不可遷移的聲明。因而,如果密鑰認(rèn)證結(jié)構(gòu)提到位于證書請求中的相同的密鑰,并且如果該簽名驗(yàn)證,則證書頒發(fā)機(jī)構(gòu)知道擁有AIK的專用部分的一方已聲稱該密鑰是不可遷移的。在這一點(diǎn)上,證書頒發(fā)機(jī)構(gòu)為新密鑰創(chuàng)建證書并簽署該證書。但是,證書頒發(fā)機(jī)構(gòu)創(chuàng)建對稱密鑰并利用對稱密鑰來加密簽名,而不在證書中包括明文簽名(clear signature)。證書頒發(fā)機(jī)構(gòu)然后利用其隨證書請求一起接收到的公用簽注密鑰來加密該對稱密鑰,并將該證書(具有利用對稱密鑰加密的簽名)與利用TPM的公用簽注密鑰加密的對稱密鑰一起發(fā)送給客戶端。當(dāng)證書頒發(fā)機(jī)構(gòu)接收到用于TPM的簽注密鑰的公鑰證書,則它確定它信任與該簽注密鑰相關(guān)聯(lián)的特定TPM。只要該TPM呈現(xiàn)在該客戶端在其上面運(yùn)行的機(jī)器上(相對于具有不同簽注密鑰的其他一些TPM),通過首先要求TPM使用其簽注密鑰來解密對稱密鑰并隨后使用對稱密鑰來解密簽名,客戶端將能夠解密該證書中的簽名。當(dāng)客戶端利用明文簽名來替代加密簽名時(shí),該證書將變成可用的。如果不同的TPM呈現(xiàn)在客戶端上(例如,不被證書頒發(fā)機(jī)構(gòu)信任的TPM),那么該TPM將無法解密該對稱密鑰,這是因?yàn)樗鼘⒉痪哂袨槠浼用軐ΨQ密鑰的簽注密鑰。在那種情況下,客戶端將無法對該簽名進(jìn)行解密,并且該證書將是不可用的。提供這個發(fā)明內(nèi)容部分來以簡化的形式介紹下面在具體描述中將進(jìn)一步描述的概念的選擇。這個發(fā)明內(nèi)容部分并不打算標(biāo)識所請求保護(hù)的主題的關(guān)鍵特征或基本特征, 也不打算用于限制所請求保護(hù)的主題的范圍。
圖1是在客戶端請求證書頒發(fā)機(jī)構(gòu)認(rèn)證密鑰時(shí)可以使用的各個組件的框圖。圖2-5 —起是其中可以提出認(rèn)證密鑰的請求并對請求起作用的示例處理的流程圖。圖6是示例的身份綁定的框圖。圖7是示例的密鑰認(rèn)證結(jié)構(gòu)的框圖。
圖8是具有加密簽名的示例證書的框圖。圖9是可以結(jié)合此處描述的主題的實(shí)現(xiàn)方式來使用的示例組件的框圖。
具體實(shí)施例方式密碼密鑰用于計(jì)算機(jī)安全的各種應(yīng)用,諸如加密和數(shù)字簽署。加密是利用加密密鑰來加密消息的處理,以便只有擁有解密密鑰(其可以與加密密鑰相同或可以不相同)的一方才能譯碼該消息。數(shù)字簽署是實(shí)體(簽名者)用于作出有關(guān)數(shù)據(jù)塊的斷言并且其中簽名提供該斷言實(shí)際上是由擁有密鑰的實(shí)體作出的密碼強(qiáng)度保證(cryptographic-strength assurance) StJ^S0加密和數(shù)字簽署處理二者涉及到參與這些處理的各方之間的隱式信任關(guān)系。例如,當(dāng)A利用B的密鑰來加密數(shù)據(jù)時(shí),A正在隱式信任(a)A相信是B的密鑰的確是B的密鑰,和(b)利用B的密鑰來加密數(shù)據(jù)并通過不安全通道發(fā)送加密數(shù)據(jù)將不會導(dǎo)致加密數(shù)據(jù)以A不能接受的某種方式被使用。例如,對于點(diǎn)(a),A可能從不可靠的來源接收到B的密鑰,因而A相信屬于B的密鑰可能實(shí)際上是闖入者的密鑰?;蛘?,對于點(diǎn)(b),該密鑰可能的確是B的密鑰,但是B可能使用如此寬松的安全措施,以致該密鑰的安全性已被攻破,從而允許闖入者解密已利用B的密鑰加密的消息。類似地,當(dāng)A接收到據(jù)稱由B簽署的消息(例如,“事實(shí)F是真的,B簽署”)時(shí),如果A信賴這個消息,則A隱式信任該消息的確由B簽署 (即,A確實(shí)知道哪個密鑰是B的,并且B的密鑰還沒有被攻破)。此外,A也信任B將不會簽署該消息“事實(shí)F是真的”,除非到某種程度確定性B已驗(yàn)證事實(shí)F確實(shí)是真的。當(dāng)使用密鑰時(shí),對密鑰的信任通常通過使得機(jī)構(gòu)證明密鑰的可信性 (trustworthiness)來建立。這個證明以證書的形式來表示,由此該機(jī)構(gòu)簽署密鑰作為該機(jī)構(gòu)已發(fā)現(xiàn)該密鑰是可信的指示。當(dāng)然,對機(jī)構(gòu)的簽名的信賴涉及到上述的相同形式的信任,但是證書頒發(fā)機(jī)構(gòu)通常是在其中將建立信任的相關(guān)團(tuán)體所熟知的或者涉及返回到公知機(jī)構(gòu)的短信任鏈。因而,如果實(shí)體想使用密鑰來簽署或加密,該實(shí)體通常將該密鑰提交給合適的證書頒發(fā)機(jī)構(gòu)并請求該機(jī)構(gòu)簽署該密鑰。該機(jī)構(gòu)采取任何它認(rèn)為適當(dāng)?shù)拇胧﹣泶_定該密鑰是足夠可信的。例如,該機(jī)構(gòu)可以確定請求實(shí)體使用什么類型的安全措施來保護(hù)該密鑰(例如,該實(shí)體是使用硬件還是軟件保護(hù))。該機(jī)構(gòu)可以查詢請求實(shí)體將使用什么策略來確定能夠利用該密鑰來簽署什么?;蛘撸摍C(jī)構(gòu)可能只愿意為某些類型的實(shí)體認(rèn)證密鑰(例如,該機(jī)構(gòu)可能是公司或其他企業(yè)的證書頒發(fā)機(jī)構(gòu),并可能只愿意認(rèn)證由那個企業(yè)中的機(jī)器所使用的密鑰)。如果該機(jī)構(gòu)確定它能夠認(rèn)證該密鑰,則它頒發(fā)包含該密鑰和該機(jī)構(gòu)的簽名的證書。X. 509證書是這樣的證書的示例。機(jī)器能夠幫助確保其密鑰的可信性的一種方式是采用被綁定到該機(jī)器上的可信平臺模塊(Trusted Platform Module) (TPM)0 TPM是為其主機(jī)執(zhí)行某些密碼功能的芯片。 該主機(jī)能夠利用這些密碼功能來提供各式各樣的安全服務(wù)。例如,TPM能夠?qū)?shù)據(jù)密封到特定機(jī)器執(zhí)行狀態(tài),以便當(dāng)機(jī)器處于已知的安全狀態(tài)中時(shí)才給該機(jī)器提供該數(shù)據(jù)。這種技術(shù)時(shí)常用于保護(hù)主機(jī)上的密碼密鑰。利用這樣的技術(shù),主機(jī)使用TPM來密封密鑰,并且只有密封的密鑰才被存儲在機(jī)器的磁盤驅(qū)動器上。當(dāng)主機(jī)想使用該密鑰時(shí),該主機(jī)要求TPM啟封該密鑰,而在該機(jī)器處于該密鑰已被密封至的執(zhí)行狀態(tài)中時(shí),TPM才將啟封該密鑰。這個執(zhí)行狀態(tài)(其通常利用平臺配置寄存器(Platform Configuration Register)或“PCR”的特定值來表示)以前已被驗(yàn)證為提供足夠的保證以防止該密鑰的濫用的安全狀態(tài)。TPM能夠?yàn)槊荑€提供安全性的另一種方式是生成密鑰對,并且僅提供該密鑰對的公用部分給主機(jī), 以致涉及到那個密鑰對的所有的私鑰操作在TPM內(nèi)被執(zhí)行。TPM能夠?yàn)檫@樣的密鑰提供各種保證。例如,TPM能夠保證不離開TPM的密鑰是不可遷移的密鑰(S卩,該密鑰不能在除了采用已密封該密鑰的特定TPM的平臺之外的任何平臺上被使用)。由于不可遷移的密鑰利用TPM來保護(hù),所以在該密鑰不太可能被闖入者盜用并且也不太可能在主機(jī)平臺上被惡意軟件濫用的意義上,該密鑰是相當(dāng)可信的。為了對相關(guān)團(tuán)體的成員建立這種可信性,主機(jī)平臺可以將不可遷移的密鑰提交給機(jī)構(gòu),并請求該機(jī)構(gòu)認(rèn)證該密鑰為可信的指示。然而,在獲得這個認(rèn)證時(shí),問題出現(xiàn)。具體來說,在為這樣的密鑰頒發(fā)證書之前,證書頒發(fā)機(jī)構(gòu)必須確認(rèn)被提交用于簽名的密鑰實(shí)際上已利用TPM來保護(hù)。例如,主辦機(jī)構(gòu)(host authority)可能聲稱具有不可遷移的密鑰。然而,在認(rèn)證該密鑰是不可遷移的之前,證書頒發(fā)機(jī)構(gòu)將堅(jiān)持該TPM聲稱該密鑰是不可遷移的,而不僅僅是主機(jī)這樣聲稱。諸如“這個密鑰是不可遷移的”的聲明通常利用可信實(shí)體的簽署的聲明來建立。 TPM具有被稱為“簽注密鑰”(其被稱為“EK”,并且其公用部分和專用部分可以分別地被稱為“EK-public (ΕΚ公用部分)”和“EK-private (ΕΚ專用部分)”)的密鑰對。給定TPM的簽注密鑰將那個TPM與其他的TPM區(qū)分開來。TPM的公用EK對于信任那個特定TPM的證書頒發(fā)機(jī)構(gòu)是已知的。例如,公司可能操作服務(wù)器以充當(dāng)證書頒發(fā)機(jī)構(gòu),并且那個服務(wù)器可能知道該公司所擁有的所有筆記本計(jì)算機(jī)的ΕΚ。因而,如果主機(jī)平臺創(chuàng)建由TPM密封的密鑰,理論上該TPM能夠使用EK來簽署該密鑰作為該TPM相信該密鑰是安全的指示。由于證書頒發(fā)機(jī)構(gòu)知道它了解并信任的那些TPM的公用ΕΚ,所以證書頒發(fā)機(jī)構(gòu)能夠使用簽名來驗(yàn)證可信TPM已證明該密鑰是不可遷移的,并且證書頒發(fā)機(jī)構(gòu)能夠在此基礎(chǔ)上為該密鑰頒發(fā)證書。然而,實(shí)際上,TPM具有防止它利用EK簽署任意數(shù)據(jù)的策略。因而,TPM通常使用EK 來創(chuàng)建其它密鑰,并且TPM使用這些其它密鑰來簽署數(shù)據(jù)。這樣的“其它密鑰”的一個示例是證明身份密鑰(ΑΙΚ),其中TPM使用AIK來簽署其它密鑰。典型地,AIK用于以下列方式獲得密鑰的證書。主機(jī)平臺上的軟件要求TPM創(chuàng)建新的密鑰對,其中該軟件接收其公用部分。該軟件隨后要求TPM創(chuàng)建被綁定到新密鑰的公用部分的ΑΙΚ,并且然后請求證書頒發(fā)機(jī)構(gòu)(“CA”)簽署AIK的公用部分(即,“AIK-public”)。 在這個處理期間,CA驗(yàn)證該請求實(shí)際上來自它信任的TPM。例如,CA可能通過使用隨機(jī)數(shù) (nonce)來驗(yàn)證在它自己與TPM之間的通信信道的安全性。一旦使CA確信簽署AIK的請求來自CA信任的TPM,CA簽署AIK-public并將證書返回到主機(jī)平臺。主機(jī)平臺然后生成新密鑰,并請求TPM使用AIK的專用部分(“々11(- 1^^切”)來簽署新密鑰。使用AIK簽署新密鑰可能代表TPM作出的關(guān)于新密鑰的某個聲明,例如,利用AIK簽署新密鑰可能指示TPM宣稱該新密鑰是不可遷移的。主機(jī)然后向CA提交新密鑰;簽名;和CA頒發(fā)的AIK的證書;以及CA簽署新密鑰的請求。CA使用AIK-public來驗(yàn)證新密鑰上的簽名,并使用AIK-public 的證書來驗(yàn)證以前已建立對AIK的信任。CA隨后頒發(fā)新證書,并將其返回給主機(jī)。上述程序出現(xiàn)的問題是它使用去往CA的多個往返行程一個往返行程用于認(rèn)證 AIK,而另一個往返行程用于認(rèn)證TPM已利用AIK簽署的密鑰。此處描述的主題允許TPM的主機(jī)平臺請求CA在一個往返行程中認(rèn)證TPM保護(hù)的密鑰。此處描述的技術(shù)避免使用單獨(dú)的往返行程來認(rèn)證AIK。相反,主機(jī)平臺上的客戶端要求TPM創(chuàng)建新的不可遷移的密鑰,并要求CA認(rèn)證新密鑰而不首先建立CA信任該AIK。CA 通過認(rèn)證該密鑰來響應(yīng),但是以使得證書的后續(xù)使用視主機(jī)具有CA信任的TPM而定的方式來響應(yīng)。為了執(zhí)行這個程序,客戶端要求TPM創(chuàng)建客戶端希望認(rèn)證的新密鑰??蛻舳穗S后創(chuàng)建證書請求,即,使得CA簽署新密鑰的請求。在將該請求實(shí)際發(fā)送到CA之前,客戶端要求TPM創(chuàng)建被綁定到證書請求的AIK。TPM通過創(chuàng)建包含AIK的公用部分、證書請求的摘要以及簽名的身份綁定來響應(yīng)。客戶端隨后要求TPM簽署新密鑰。TPM通過創(chuàng)建包含將要認(rèn)證的密鑰、有關(guān)密鑰的聲明(例如,“這個密鑰是不可遷移的”)和利用AIK-private創(chuàng)建的簽名的密鑰認(rèn)證結(jié)構(gòu)來響應(yīng)??蛻舳巳缓髮⒆C書請求、身份綁定、密鑰認(rèn)證結(jié)構(gòu)和TPM的 EK-public的證書轉(zhuǎn)發(fā)到CL·CA隨后檢查EK-public的證書,以確保它屬于CA信任的TPM。CA隨后提取證書請求的摘要(digest),將該摘要與包含在身份綁定中的摘要進(jìn)行比較,并驗(yàn)證身份綁定上的簽名。假設(shè)這些摘要相匹配且該簽名驗(yàn)證,這些事實(shí)證實(shí)AIK針對CA接收到的證書請求而創(chuàng)建。接下來,CA從證書請求中恢復(fù)將認(rèn)證的密鑰,并將其與密鑰認(rèn)證結(jié)構(gòu)中識別的密鑰進(jìn)行比較,以確保該密鑰認(rèn)證結(jié)構(gòu)涉及在證書請求中指定的密鑰。CA然后檢查在密鑰認(rèn)證結(jié)構(gòu)中作出的聲明,以確保有關(guān)該密鑰的聲明與CA的證書頒發(fā)策略相一致(例如,如果CA的策略需要僅認(rèn)證不可遷移的密鑰,則CA驗(yàn)證該聲明證明該密鑰的不可遷移性)。CA隨后驗(yàn)證該密鑰認(rèn)證結(jié)構(gòu)上的簽名,以確保包含在那個結(jié)構(gòu)中的聲明由AIK-private的持有者作出。假設(shè)所有的上述驗(yàn)證已妥當(dāng),CA此時(shí)知道AIK的持有者正宣稱新密鑰是不可遷移的并正在請求用于那個密鑰的證書。CA不知道的是AIK是否與關(guān)聯(lián)于EK-public的可信TPM相關(guān)聯(lián)。因而,CA向客戶端頒發(fā)有條件的證書。在該證書僅在持有EK-private的TPM (CA信任其)將驗(yàn)證AIK由那個TPM頒發(fā)時(shí)才能夠使用的意義上,該證書是有條件的。為了使得該證書是有條件的,而不是以明文(in the clear)簽署該證書,CA創(chuàng)建對稱密鑰并利用該對稱密鑰來加密該證書的其簽名。因此,CA向客戶端提供包含加密簽名的證書,并且也提供利用EK-public加密的對稱密鑰。如果用于證書請求的AIK實(shí)際上由持有EK的可信TPM創(chuàng)建的話,則那個客戶端將能夠要求該TPM使用EK-private來解密該對稱密鑰,其中對稱密鑰反過來可以用于解密該證書上的簽名。否則,如果CA向沒有利用EK-public識別的可信TPM的機(jī)器上的客戶端提供該證書,則該客戶端將無法解密該簽名,并將無法使用該證書。這樣,CA將驗(yàn)證特定AIK的可信度的工作委派給可信TPM,從而避免在證書頒發(fā)機(jī)構(gòu)和客戶端之間單獨(dú)的往返來使得AIK被認(rèn)證?,F(xiàn)在轉(zhuǎn)向附圖,圖1顯示在客戶端請求證書頒發(fā)機(jī)構(gòu)認(rèn)證新密鑰時(shí)可以使用的各個組件以及這些組件之間的示例交互。在附圖中,并且在以下的描述中,客戶端正請求認(rèn)證的密鑰被稱為“新密鑰”。在一個示例中,這個密鑰是客戶端將用作簽署數(shù)據(jù)的處理的一部分的Rivest-aiamir-Adelman (RSA)密鑰的公用部分。因而,在典型的場景中,客戶端創(chuàng)建新的RSA簽署密鑰,并尋求使得該密鑰由CA認(rèn)證,以便該簽署密鑰能夠被其他實(shí)體信任。然而,在這里描述的技術(shù)并不限于簽署密鑰或RSA密鑰的認(rèn)證。通常,此處的技術(shù)在客戶端創(chuàng)建密鑰并尋求使之由CA認(rèn)證時(shí)適用。因而,客戶端正尋求認(rèn)證的密鑰在這里將被稱為“新密鑰”。此處所述的技術(shù)涉及各種密鑰的使用,并且這些密鑰在文本和附圖中將利用適當(dāng)?shù)臉?biāo)簽和/或修飾符來區(qū)分。機(jī)器102是提供一些計(jì)算能力的機(jī)器,諸如個人計(jì)算機(jī)、手持式計(jì)算機(jī)、機(jī)頂盒等等。機(jī)器102裝備有TPM 104。TPM 104是為TPM 104位于其上的機(jī)器102提供各種安全服務(wù)的組件。TPM 104具有簽注密鑰(EK)106,其是分別地具有各自的公用部分和專用部分 108和110 (在這里被稱為“EK-Public”和“EK-Private”)的非對稱密鑰對。每個TPM 104 具有它自己的不被其它TPM共享的EK。EK 106的一個方面是EK_private不暴露(expose) 在TPM 104之外。TPM 104暴露機(jī)器102能夠使用來請求TPM 104利用EK-private解密數(shù)據(jù)塊的接口,以便TPM 104能夠?yàn)闄C(jī)器102解密數(shù)據(jù)而不暴露EK-private的實(shí)際值。TPM 104也提供各種其它的安全功能。例如,TPM 104維護(hù)記錄該機(jī)器的當(dāng)前執(zhí)行狀態(tài)的測量的一組寄存器(被稱為平臺配置寄存器或PCR),并且TPM 104允許機(jī)器102將數(shù)據(jù)塊密封到特定的機(jī)器狀態(tài)。這樣,機(jī)器102能夠保持只有TPM 104能夠啟封的密封數(shù)據(jù)塊,并且TPM 104能夠通過拒絕啟封該數(shù)據(jù)來保護(hù)這個數(shù)據(jù),除非機(jī)器102當(dāng)前處于已知的“安全”狀態(tài)中。由TPM 104提供的另一個特征是在TPM 104內(nèi)部能夠用于存儲密鑰的少量的存儲器。 因而,TPM 104能夠生成密鑰對,并且能夠?qū)⒚荑€的專用部分保存在它自己的存儲器中,以致專用部分不暴露于機(jī)器102的非安全部分(即,機(jī)器102中位于TPM 104外部的那些部分)。在這個意義上,其私鑰被保存在TPM 104內(nèi)部的密鑰對是不可遷移的密鑰它不能被遷移到其他機(jī)器,這是因?yàn)樗槐┞队谔囟C(jī)器的TPM之外??蛻舳?12是為了某種目的(例如,簽署或加密)而想要創(chuàng)建新密鑰的軟件組件。 客戶端112可以是應(yīng)用、操作系統(tǒng)的組件或運(yùn)行在機(jī)器102上的任何其它類型的軟件組件。 當(dāng)客戶端112決定創(chuàng)建新密鑰時(shí),客戶端112發(fā)出TPM 104創(chuàng)建密鑰的請求114。TPM 104 創(chuàng)建所請求的密鑰,并返回能夠利用來識別該密鑰的密鑰句柄(key handle) 1160通常,請求114是創(chuàng)建諸如RSA密鑰對之類的非對稱密鑰對的請求,在這種情況下,密鑰句柄116包含新密鑰的公用部分(專用部分僅被保持在TPM 104內(nèi)部)。在這個示例中,RSA密鑰對的公用部分是客戶端正尋求認(rèn)證的“新密鑰”。(技術(shù)上,它是用于簽署數(shù)據(jù)的私鑰,而公鑰被其它各方用來驗(yàn)證簽名。由于利用某人稍后將驗(yàn)證簽名的期望來簽署數(shù)據(jù),所以為了此處的目的而能夠?qū)⒐€視為簽署數(shù)據(jù)的“處理的一部分”)。為了使得新密鑰被認(rèn)證,客戶端112創(chuàng)建證書請求118,其是請求證書頒發(fā)機(jī)構(gòu)認(rèn)證密鑰的正式數(shù)據(jù)結(jié)構(gòu)??蛻舳?12此時(shí)并不發(fā)送證書請求118給證書頒發(fā)機(jī)構(gòu)。在這么做之前,客戶端112安排由TPM創(chuàng)建各種數(shù)據(jù)塊,以便與證書請求一起發(fā)送。這些各種數(shù)據(jù)塊在下面進(jìn)行描述。首先,客戶端112向TPM 104發(fā)出對于證明身份密鑰(AIK)的請求119。TPM 104 暴露創(chuàng)建被綁定到任意數(shù)據(jù)塊的AIK的功能。例如,TPM 104可能暴露諸如“CreateAIK (blob)”的功能,其以被加密綁定到“blob (塊),,的方式返回AIK (其中“blob”是任意數(shù)據(jù)塊)。具體來說,當(dāng)客戶端112發(fā)出請求“CreateAIK (blob)”時(shí),TPM 104返回以下形式的數(shù)據(jù)塊
AIK-Public I blob | sig-AIK-Private (AIK-Public | blob) (關(guān)于記號,豎線符號“ I,,指的是級聯(lián)。此外,在整個說明書中,記號 "sig-<key-pair>-private (<data>),,將表示通過使用〈key pair (密鑰對)> 的專用部分在〈data (數(shù)據(jù))> 上創(chuàng)建的簽名)。當(dāng)客戶端112向TPM 104請求AIK時(shí),客戶端請求AIK被綁定至的“blob”是證書請求118的摘要。利用AIK創(chuàng)建功能返回的數(shù)據(jù)被稱為身份綁定120,并且身份綁定120的示例在圖6中顯示。具體來說,身份綁定120包含AIK-Public 602、證書請求的摘要604以及針對AIK-Public 602和摘要604采用的簽名606,其中簽名 606使用AIK-Private來創(chuàng)建。因而,客戶端112從TPM 104接收的身份綁定120是
AIK-Public I digest | sig-AIK-Private (AIK-Public | digest)
身份綁定所做的是將AIK綁定到特定的證書請求(經(jīng)由那個請求的摘要)。實(shí)際上,簽名意味著AIK-private的持有者(其是TPM 104)宣稱“摘要”是為之創(chuàng)建AIK的數(shù)據(jù)。具有身份綁定120的任何一方能夠使用AIK-public來驗(yàn)證該簽名。返回到圖1,客戶端112接下來向TPM 104發(fā)出請求122以使得新密鑰利用AIK來簽署。當(dāng)TPM 104利用AIK簽署密鑰時(shí),TPM 104返回指示適用于該密鑰的安全特征的結(jié)構(gòu)。例如,如上所述,客戶端112正尋求由CA認(rèn)證的新密鑰是由TPM創(chuàng)建的。在其中新密鑰是密鑰對的示例中,TPM 104在TPM 104內(nèi)部保存專用部分,并且不在TPM 104外部泄露該專用部分。在這個意義上,因?yàn)樾旅荑€的專用部分不能在除了包含TPM 104的特定機(jī)器 (即,機(jī)器102)之外的任何機(jī)器上使用,所以新密鑰是不可遷移的。因而,當(dāng)TPM 104利用 AIK簽署密鑰時(shí),它返回實(shí)際上包含以下信息的結(jié)構(gòu)
statement | new key | sig-AIK-Private (statement | new key)
其中“statement (聲明)”是有關(guān)新密鑰的聲明。例如,聲明可以實(shí)際上聲稱“正被簽署白勺密書月是不可遷移白勺密書月(The key that is being signed is a non-migratabIe key),,。 (以英文句子的形式寫出的聲明的示例僅用于說明。通常,該聲明可以使用代碼來作出?;蛘?,如果TPM具有已知的除非密鑰符合特定安全標(biāo)準(zhǔn)否則拒絕簽署該密鑰的策略,則該聲明可能隱含在TPM簽署了該密鑰的事實(shí)中。此外,注意“不可遷移性”是密鑰的示例特征, 并且在這里在整個說明書中使用這個示例。因而,說明書頻繁提及密鑰具有不可遷移的特征,或者AIK被用來簽署該密鑰是不可遷移的聲明,或者CA核實(shí)該密鑰符合不可遷移性的策略。然而,不可遷移性僅僅是這樣的特征的示例。一般而言,密鑰可以具有任何特征,在密鑰認(rèn)證結(jié)構(gòu)中包含的聲明能夠證明任何這樣的特征,并且CA能夠?qū)嵭行枰荑€具有任何集合的零個或更多特征的策略。因而,雖然這里的說明書提及不可遷移的密鑰,但是將明白密鑰認(rèn)證結(jié)構(gòu)僅證明密鑰的某一特征,而不論該特征是什么,并且如下所述,CA可以使用密鑰認(rèn)證結(jié)構(gòu)來確定AIK-Private是否已被用來證明CA的策略所需要的無論什么特征)。因而,當(dāng)TPM 104簽署該密鑰時(shí),它產(chǎn)生密鑰認(rèn)證結(jié)構(gòu)124,其示例顯示在圖7中。 示例的密鑰認(rèn)證結(jié)構(gòu)1 包含聲明702 (其可以顯式表示,如所示的,或可以隱式表示)。密鑰認(rèn)證結(jié)構(gòu)1 也包含將要認(rèn)證的新密鑰704以及使用AIK-Private創(chuàng)建并對該聲明和新密鑰計(jì)算的簽名706。密鑰認(rèn)證結(jié)構(gòu)IM證實(shí)無論什么實(shí)體控制AIK-Private,其聲稱新密鑰704是不可遷移的密鑰(或具有AIK-Private的持有者正在證明的無論什么特征)。任何的擁有AIK-public的實(shí)體(S卩,已接收到上述的身份綁定的任何實(shí)體)能夠使用該簽名來證實(shí)新密鑰704和聲明702是由擁有AIK-Private的實(shí)體簽署的。返回到圖1,證書頒發(fā)機(jī)構(gòu)(CA)U6是客戶端112想要求認(rèn)證新密鑰的實(shí)體。客戶端112現(xiàn)在已準(zhǔn)備好向CA 126請求證書。為了請求CA 126認(rèn)證新密鑰,客戶端112向CA 126發(fā)送證書請求118 ;身份綁定120 ;密鑰認(rèn)證結(jié)構(gòu)124 ;以及EK 106的證書128 (即,TPM 104的簽注密鑰的公鑰證書,其包含EK-Public)。這些項(xiàng)由CA 1 接收。在一個示例中,CA 1 是對頒發(fā)證書的請求起作用的服務(wù)器。例如,CA 1 可以是公司(或其他企業(yè))內(nèi)通過認(rèn)證新機(jī)器的密鑰而在企業(yè)中招收(enroll)新機(jī)器的服務(wù)器。 CA 1 包括發(fā)行組件130,其作出有關(guān)將認(rèn)證哪些密鑰的決定。CA 1 可以包含可信TPM 的列表132(例如,CA 1 信任的那些TPM的EK-public的列表)。CA 1 也可以具有包含據(jù)此將準(zhǔn)許或拒絕證書請求的規(guī)則的策略134。例如,CA 1 可能具有僅認(rèn)證不可遷移密鑰的策略,或可能具有某一其它策略。此外,CA 1 可以具有簽名驗(yàn)證器136,其允許它驗(yàn)證它接收到的各種數(shù)據(jù)塊上的密碼簽名。這些組件可以被發(fā)行組件130使用。例如,發(fā)行組件可以使用簽名驗(yàn)證器136來驗(yàn)證身份綁定和密鑰認(rèn)證結(jié)構(gòu)上的簽名。發(fā)行組件130也可以使用可信TPM的列表132來確定它愿意為哪些TPM認(rèn)證密鑰。此外,發(fā)行組件130可以使用策略134來確定它是否將認(rèn)證特定密鑰,即使證書請求來自可信TPM。(例如,發(fā)行組件可能信任TPM 104,但如果TPM 104沒有聲稱密鑰是不可遷移的話,該發(fā)行組件可能不愿意為TPM 104認(rèn)證該密鑰)。當(dāng)CA 126從客戶端112接收到上述項(xiàng)時(shí),它進(jìn)行以下動作。首先,CA 126檢查證書128 (其包含TPM 104的簽注密鑰的公用部分),以確定CA 1 是否了解并信任客戶端 112正在其上面運(yùn)行的機(jī)器上的TPM。例如,如果TPM 104對于CA 1 是未知的(這可以通過將證書1 與列表132進(jìn)行比較來確定),則CA 126可能不愿意認(rèn)證其上面安裝TPM 104 的機(jī)器上的密鑰。因而,如果證書1 指示正尋求其認(rèn)證的密鑰被綁定到未知TPM,則CA126 可以拒絕證書請求。假設(shè)CA 1 了解并信任其公用簽注密鑰出現(xiàn)在證書128中的TPM,CA 1 則檢查證書請求118,以恢復(fù)客戶端112正請求認(rèn)證的新密鑰(因?yàn)槟莻€密鑰被包含在該證書請求中)。接下來,CA 1 檢查身份綁定120,以找到證書請求的摘要。CA 1 然后計(jì)算證書請求的摘要(使用與用于創(chuàng)建身份綁定120中的摘要相同的摘要算法),并驗(yàn)證包含在身份綁定中的摘要與CA 1 計(jì)算的摘要相匹配。如果這些摘要匹配的話,則CA 1 從身份綁定120讀取AIK-public,并使用AIK-public來驗(yàn)證身份綁定120上的簽名。將回憶起 AIK在其創(chuàng)建時(shí)被綁定到特定的數(shù)據(jù)塊。簽名的驗(yàn)證證實(shí)為其創(chuàng)建這個特定AIK的數(shù)據(jù)塊是證書請求118的摘要。在摘要處理是安全的程度上,為摘要創(chuàng)建AIK的事實(shí)證實(shí)為證書請求118而創(chuàng)建該AIK。注意如果驗(yàn)證處理失敗的話(即,如果AIK是為某證書請求而非當(dāng)前正提出的這個證書請求而創(chuàng)建的話),這個事實(shí)將表明作為某種類型的重放攻擊的一部分而正在提出該證書請求,并且CA 1 可以拒絕該請求。接下來,CA 126檢查密鑰認(rèn)證結(jié)構(gòu),以確定AIK-Private的持有者對于包含在安全請求中的新密鑰正作出什么聲明。CA 1 使用AIK-public來驗(yàn)證密鑰認(rèn)證結(jié)構(gòu)上的簽名。如果該簽名不驗(yàn)證的話,則CA 1 不能得出AIK-Private的持有者已作出有關(guān)CA 126 的任何特別聲明的結(jié)論,所以CA 1 拒絕該證書請求。假設(shè)該簽名驗(yàn)證,CA 1 確定新密鑰的屬性是否與CA 126的策略134相一致。例如,如果CA 126具有僅驗(yàn)證不可遷移密鑰的策略,則它可能堅(jiān)持密鑰認(rèn)證結(jié)構(gòu)顯示AIK-Private的持有者聲稱該密鑰是不可遷移的。到目前為止,該處理的描述提到了 “AIK-Private的持有者”而不識別什么實(shí)體實(shí)際上持有那個密鑰。事實(shí)上,AIK-Private被TPM 104持有,這是因?yàn)檎荰PM 104創(chuàng)建了AIK0然而,這一事實(shí)對于CA 1 是未知的。CA 1 知道TPM 104的簽注密鑰的公用部分, 但是CA 1 不能僅從簽注密鑰中推導(dǎo)出特定TPM和特定AIK之間的關(guān)系。換言之,此時(shí)在該處理中,CA 1 知道某個實(shí)體已為CA 1 接收到的特定證書請求創(chuàng)建了 AIK,以及無論那個實(shí)體是誰都已作出了有關(guān)滿足CA 1 的頒發(fā)策略的將要認(rèn)證的密鑰的聲明。但是 CA 1 不知道該實(shí)體是誰。如上所述,CA 1 已檢查了 TPM 104的公用簽注密鑰,并已確定TPM 104是可信的,因此在控制AIK-Private的實(shí)體是TPM 104時(shí),CA 1 將愿意準(zhǔn)許該證書請求。但是CA 1 并不知道AIK-Private是由TPM 104還是由其一其他實(shí)體控制。 如下所述,CA 126能夠以僅在控制AIK-Private的實(shí)體實(shí)際上是TPM 104時(shí)才能夠使用的形式頒發(fā)有條件的證書。具體來說,該證書的形式是在該證書能夠被使用之前TPM 104將不得不執(zhí)行某個行動。特別地,證書上的簽名能夠以僅作為由TPM執(zhí)行的處理的結(jié)果才可解密的方式來加密(例如,由TPM進(jìn)行的簽名的解密,或由TPM進(jìn)行的稍后用于解密簽名的密鑰的解密)。為了頒發(fā)以特定TPM的存在為條件的證書,CA 126按照請求為新密鑰創(chuàng)建證書 (例如,X. 509證書)。證書包含將要認(rèn)證的密鑰以及認(rèn)證該密鑰的證書頒發(fā)機(jī)構(gòu)的簽名。通常,該簽名將以明文(即,不加密)的形式位于證書中。然而,當(dāng)CA 1 創(chuàng)建證書時(shí),它創(chuàng)建對稱密鑰,并使用該對稱密鑰來加密該簽名。加密的簽名替代明文簽名而被放置在證書中。 CA 126然后利用TPM 104的公用簽注密鑰(即,CA 126在證書128中接收的EK-Public)來加密對稱密鑰。只有EK-private的持有者(即,TPM 104)才能夠解密利用EK-Public加密的信息,所以只有TPM 104將能夠恢復(fù)對稱密鑰。因此,CA 1 向客戶端112發(fā)送(a)具有加密簽名的證書138,和(b)加密的對稱密鑰140 (利用EK-Public加密)。當(dāng)客戶端112 接收到加密的對稱密鑰時(shí),它能夠要求TPM 104利用EK-Public來解密它,從而允許客戶端 112利用對稱密鑰來解密該簽名??蛻舳?12隨后能夠?qū)⒆C書138中的加密簽名替換為明文簽名。在圖8中顯示證書138。證書138包含新密鑰704以及為sig-CA-Private (新密鑰)的利用對稱密鑰加密的加密簽名802。(“CA-Private”是CA 1 的私鑰)。注意CA 126只希望在TPM 104已證明CA 126正在認(rèn)證的密鑰符合由CA 126實(shí)行的適用標(biāo)準(zhǔn)(例如,不可遷移性)時(shí)才頒發(fā)可用的證書,這僅在TPM 104實(shí)際上是生成AIK 的實(shí)體時(shí)CA 1 才知道是真實(shí)的。理論上,AIK可能已由除了 TPM 104之外的某個實(shí)體生成了。在那種情況下,CA 1 將仍然頒發(fā)具有TPM 104能夠解密的加密簽名的證書138(因?yàn)槔脤ΨQ密鑰來加密該簽名,其中能夠利用TPM 104的專用簽注密鑰來恢復(fù)對稱密鑰)。 然而,當(dāng)CA 126將帶有加密簽名的證書發(fā)送給TPM 104時(shí),CA 126信賴TPM 104不創(chuàng)建具有明文簽名的證書,除非利用證書138認(rèn)證的新密鑰實(shí)際上是TPM 104利用AIK簽署的密鑰。實(shí)際上,CA 1 將這個確定委派給TPM 104,其中CA 1 因?yàn)樗炎C實(shí)TPM 104是CA 126信任的TPM而能夠這么做。因而,在TPM 104接收到具有加密簽名的證書138之后,TPM 104確定利用證書138認(rèn)證的新密鑰是否是TPM 104已利用AIK簽署的密鑰。如果是這樣的話,則TPM 104解密該簽名并利用明文簽名來替代加密簽名。否則,TPM 104不解密該簽名,從而使得該證書是不可用的。除非某一方能夠驗(yàn)證密鑰證書是由該方信任的適當(dāng)機(jī)構(gòu)簽署的,否則沒有一方將信任該密鑰證書。如果證書中的簽名不能被解密,該證書仍然保持是不可用的,這是因?yàn)樗荒苡糜谂c任何一方建立信任。圖2-5以流程圖的形式顯示可以用于提出認(rèn)證密鑰的請求并對請求起作用的示例處理。在轉(zhuǎn)至圖2-5的描述之前,注意包含在這些附圖中的流程圖參考圖1中顯示的組件通過示例來描述,盡管這個處理可以在任何系統(tǒng)中完成并且不限于圖1中所示的場景。 此外,圖2-5中的每個流程圖顯示其中處理的各階段以特定順序來完成的示例,如利用連接這些框的線所指示的,但是這些附圖中所示的各個階段能夠以任何順序或以任何組合或子組合來執(zhí)行。在202,客戶端請求TPM生成新密鑰。如上所述,新密鑰可以例如是RSA密鑰對,其可以用于諸如加密或簽署之類的任何密碼功能。在其中生成RSA密鑰對的示例中,流程圖中提及的“新密鑰”(即,將要認(rèn)證的密鑰)是密鑰對的公用部分。在204,創(chuàng)建對于新密鑰的證書請求。創(chuàng)建該請求的摘要(在206),并且客戶端然后請求TPM創(chuàng)建被綁定到該摘要的AIK (在208)。TPM隨后創(chuàng)建AIK (在210),并返回身份綁定。如上所述,該身份綁定包含AIK-public、摘要以及對AIK-public和摘要采用的簽名 (其中該簽名利用AIK-Private來創(chuàng)建)。在212,客戶端請求TPM利用AIK簽署新密鑰。TPM然后返回密鑰認(rèn)證結(jié)構(gòu)(在 214),其包含有關(guān)新密鑰(顯式或隱式)的聲明(例如,“這個密鑰為不可遷移的”)、新密鑰本身以及對聲明和新密鑰采用的簽名(其中該簽名利用AIK-Private來創(chuàng)建)。在216,客戶端向CA發(fā)送(a)證書請求;(b)身份綁定;(c)密鑰認(rèn)證結(jié)構(gòu);和(d)TPM的簽注密鑰的公鑰證書(EK-Public)。在218,這些項(xiàng)由CA來接收。在220,CA對照已知TPM的列表來檢驗(yàn)EK_Public。如果CA基于EK-Public確定與EK-Public相關(guān)聯(lián)的TPM或不為CA所知曉或已知來自不可信的TPM (如在222所確定的),則CA中止該處理(在224)并且不頒發(fā)證書。如果EK-Public來自已知的、可信的TPM, 則這個處理繼續(xù)至226,其中CA讀取證書請求以獲得正被要求認(rèn)證的新密鑰。CA隨后驗(yàn)證身份綁定上的簽名,從該綁定中恢復(fù)摘要,并且還從證書請求中計(jì)算摘要本身。如果身份綁定與證書請求不相匹配(即,如果包含在證書請求中的摘要與CA從證書請求計(jì)算的摘要不相同,如在2 所確定的),則該處理中止,并且CA不頒發(fā)證書(在 230)。否則,這個處理繼續(xù)至232。在232,CA確定密鑰認(rèn)證結(jié)構(gòu)是否證明新密鑰滿足適用策略(例如,不可遷移性的策略)。例如,通過驗(yàn)證密鑰認(rèn)證結(jié)構(gòu)上的簽名并且隨后檢查該結(jié)構(gòu)作出的關(guān)于該密鑰的聲明,CA可以作出這個確定。如果該簽名無法驗(yàn)證,或者如果該聲明指示該密鑰不滿足CA的認(rèn)證密鑰的策略,則該處理中止,并且CA不頒發(fā)證書(在234)。否則,該處理繼續(xù)至236,其中CA進(jìn)而頒發(fā)證書。在236,CA創(chuàng)建將用于加密證書上的簽名的對稱密鑰。在238,CA為新密鑰創(chuàng)建證書。在M0,CA為證書創(chuàng)建簽名。在242,CA利用對稱密鑰來加密簽名,并將加密的簽名(而非明文簽名)包括在證書中。在對4,CA利用EK-Public (位于將對其頒發(fā)證書的機(jī)器上的 TPM的簽注密鑰的公用部分)來加密對稱密鑰。在M6,CA向請求證書的客戶端發(fā)送該密鑰的證書(具有加密的簽名)以及利用EK-Public加密的對稱密鑰。在對8,這些項(xiàng)由客戶端來接收。在250,客戶端要求TPM利用EK-private解密對稱密鑰。假設(shè)包含在證書中的密鑰是TPM利用用于證書請求的AIK簽署的相同的密鑰,TPM解密對稱密鑰(在252),并將其返回給客戶端。客戶端然后使用對稱密鑰來解密簽名,并利用明文簽名來替換證書中的加密簽名(在256)。客戶端現(xiàn)在擁有用于新密鑰的可用證書(在258)。圖9顯示其中可以部署此處描述的主題的各方面的示例環(huán)境。計(jì)算機(jī)900包括一個或多個處理器902和一個或多個數(shù)據(jù)記憶組件904。(一個或多個)處理器902典型地是微處理器,諸如在個人臺式或膝上型計(jì)算機(jī)、服務(wù)器、手持式計(jì)算機(jī)或另一類型的計(jì)算設(shè)備中找到的那些微處理器。(一個或多個)數(shù)據(jù)記憶組件904是能夠或短期或長期存儲數(shù)據(jù)的組件。(一個或多個)數(shù)據(jù)記憶組件904的示例包括硬盤、可移動盤(包括光盤和磁盤)、易失性和非易失性隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、閃存、 磁帶等。(一個或多個)數(shù)據(jù)記憶組件是計(jì)算機(jī)可讀存儲媒體的示例。計(jì)算機(jī)900可以包括顯示器912或與顯示器912相關(guān)聯(lián),其中顯示器912可以是陰極射線管(CRT)監(jiān)視器、液晶顯示(IXD)監(jiān)視器或任何其它類型的監(jiān)視器。軟件可以存儲在(一個或多個)數(shù)據(jù)記憶組件904中,并且可以執(zhí)行在一個或多個處理器902上。這樣的軟件的示例是密鑰認(rèn)證軟件906,其可以實(shí)現(xiàn)上面結(jié)合附圖1-8所述的功能中的一些或全部功能,盡管能夠使用任何類型的軟件。軟件906可以例如通過一個或多個組件來實(shí)現(xiàn),其中組件可以是分布式系統(tǒng)中的組件、單獨(dú)的文件、單獨(dú)的功能、單獨(dú)的對象、單獨(dú)的代碼行等。其中程序被存儲在硬盤上、被加載到RAM中并在計(jì)算機(jī)的(一個或多個)處理器上執(zhí)行的個人計(jì)算機(jī)代表圖9所述的場景,盡管此處描述的主題并不限于這個示例。此處描述的主題能夠作為存儲在(一個或多個)數(shù)據(jù)記憶組件904之中的一個或多個數(shù)據(jù)記憶組件中且執(zhí)行在(一個或多個)處理器902之中的一個或多個處理器上的軟件來實(shí)現(xiàn)。作為另一示例,該主題可以作為存儲在一個或多個計(jì)算機(jī)可讀存儲媒體上的指令來實(shí)現(xiàn)。(有形媒體諸如光盤或磁盤是存儲媒體的示例)。這樣的指令當(dāng)由計(jì)算機(jī)或其他機(jī)器執(zhí)行時(shí)可以導(dǎo)致計(jì)算機(jī)或其他機(jī)器執(zhí)行方法的一個或多個動作。執(zhí)動這些動作的指令能夠存儲在一個介質(zhì)上或者能夠遍布于多個媒體上,以致這些指令可能一起出現(xiàn)在一個或多個計(jì)算機(jī)可讀存儲媒體上,而不管是否所有的指令碰巧位于同一介質(zhì)上。此外,此處描述的任何動作(不論是否在圖中顯示)可以由處理器(例如,一個或多個處理器902)作為方法的一部分來執(zhí)行。因而,如果此處描述動作A、B和C,則可以執(zhí)行包括A、B和C的動作的方法。此外,如果此處描述A、B和C的動作,則可以執(zhí)行包括使用處理器來執(zhí)行A、B和C的動作的方法。在一個示例環(huán)境中,計(jì)算機(jī)900可以通過網(wǎng)絡(luò)908而通信連接到一個或多個其他設(shè)備。在結(jié)構(gòu)上可以與計(jì)算機(jī)900相類似的計(jì)算機(jī)910是能夠連接到計(jì)算機(jī)900的設(shè)備的示例,盡管其他類型的設(shè)備也可以這樣進(jìn)行連接。盡管以結(jié)構(gòu)特征和/或方法動作特定的語言描述了該主題,但是將明白在所附的權(quán)利要求書中定義的主題不一定限于上述的特定特征或動作。相反,上述的特定特征和動作被披露為實(shí)現(xiàn)這些權(quán)利要求的示例形式。
權(quán)利要求
1.一種用于請求第一密鑰(704)的證書(138)的方法,該方法包括 創(chuàng)建(204)證書請求(118),以使得所述第一密鑰(704)被認(rèn)證;向可信平臺模塊(104)請求(208)被綁定到所述證書請求(118)的證明身份密鑰; 從所述可信平臺模塊(104)接收(210)將所述證明身份密鑰綁定到所述證書請求 (118)的身份綁定(120);請求(214)所述可信平臺模塊(104)利用所述證明身份密鑰來簽署所述第一密鑰 (704);從所述可信平臺模塊(104)接收(216)包含所述第一密鑰(704)并利用所述證明身份密鑰簽署的密鑰認(rèn)證結(jié)構(gòu)(IM);向證書頒發(fā)機(jī)構(gòu)(1 )發(fā)送(218)包括所述證書請求(118)、所述身份綁定(120)、所述密鑰認(rèn)證結(jié)構(gòu)(124)和所述可信平臺模塊(104)的公用簽注密鑰(108)的第一證書(1 ) 的信息;以及從所述證書頒發(fā)機(jī)構(gòu)(126)接收(248)所述第一密鑰(704)的第二證書(138),所述第二證書(138)采用僅在由所述可信平臺模塊(104)采取行動之后才是可用的形式。
2.權(quán)利要求1的方法,進(jìn)一步包括 計(jì)算所述證書請求的摘要;其中通過將所述證明身份密鑰綁定到所述摘要,將所述證明身份密鑰綁定到所述證書請求。
3.權(quán)利要求1的方法,其中所述第一證書包括所述證書頒發(fā)機(jī)構(gòu)的簽名,所述簽名是僅利用使用所述可信平臺模塊的專用簽注密鑰的處理才可解密的,其中所述行動包括使用所述可信平臺模塊的專用簽注密鑰。
4.權(quán)利要求3的方法,進(jìn)一步包括從所述證書頒發(fā)機(jī)構(gòu)接收利用所述可信平臺模塊的公用簽注密鑰加密的對稱密鑰; 其中所述第二證書以利用所述對稱密鑰加密的形式包含所述簽名,并且其中使用所述可信平臺模塊的專用簽注密鑰的所述處理包括使用所述可信平臺模塊的專用簽注密鑰來解密所述對稱密鑰;和使用所述對稱密鑰來解密所述簽名。
5.權(quán)利要求1的方法,其中所述第二證書包括以加密形式接收的簽名,并且其中所述行動進(jìn)一步包括利用采用明文形式的簽名來替換采用所述加密形式的所述簽名。
6.權(quán)利要求1的方法,其中所述第一密鑰是不可遷移的,并且其中所述密鑰認(rèn)證結(jié)構(gòu)包括所述第一密鑰是不可遷移的聲明。
7.權(quán)利要求1的方法,其中所述第一密鑰被用作在所述可信平臺模塊位于其上的機(jī)器上簽署數(shù)據(jù)的處理的一部分。
8.一種計(jì)算機(jī)可讀介質(zhì),其具有計(jì)算機(jī)可執(zhí)行指令來執(zhí)行權(quán)利要求1-7之中任一權(quán)利要求的方法。
9.一種對請求起作用以認(rèn)證第一密鑰的方法,該方法包括 從客戶端(112)接收(218)包括以下的信息認(rèn)證第一密鑰(704)的證書請求(118);由所述客戶端(112)在其上面運(yùn)行的機(jī)器(102)上的可信平臺模塊(104)創(chuàng)建的證明身份密鑰的身份綁定(120);使用所述證明身份密鑰來證明所述第一密鑰(704)的特征的密鑰認(rèn)證結(jié)構(gòu)(124);和所述可信平臺模塊(104)的公用簽注密鑰(108)的第一證書(1 );基于所述公用簽注密鑰(108),驗(yàn)證(222)所述可信平臺模塊(104)被執(zhí)行所述行動的證書頒發(fā)機(jī)構(gòu)(126)信任;驗(yàn)證(2 )所述身份綁定(120)將所述證明身份密鑰綁定到所述證書請求(118);由所述證明身份密鑰的專用部分的持有者驗(yàn)證(232)所述密鑰認(rèn)證結(jié)構(gòu)(124)代表所述第一密鑰(704)具有所述特征的聲明(702);和發(fā)送(246)所述第一密鑰(704)的第二證書(138)到所述客戶端(112),其中所述第二證書(704)的使用以所述可信平臺模塊(104)的存在為條件。
10.權(quán)利要求9的方法,其中通過使得所述證書僅在所述可信平臺模塊的專用簽注密鑰的使用之后才是可用的,使得所述第二證書的使用以所述可信平臺模塊的存在為條件。
11.權(quán)利要求9的方法,其中所述第二證書包括所述證書頒發(fā)機(jī)構(gòu)的簽名,所述簽名采用僅使用所述可信平臺模塊的專用簽注密鑰才可解密的形式。
12.權(quán)利要求9的方法,其中所述第二證書包括所述證書頒發(fā)機(jī)構(gòu)的簽名,所述簽名利用對稱密鑰來加密,并且其中該方法進(jìn)一步包括發(fā)送利用所述可信平臺模塊的公用簽注密鑰加密的所述對稱密鑰到所述客戶端。
13.權(quán)利要求9的方法,其中所述特征包括所述第一密鑰是不可遷移的,并且其中所述密鑰認(rèn)證結(jié)構(gòu)包含所述第一密鑰是不可遷移的顯式或隱式聲明。
14.權(quán)利要求9的方法,其中通過包含所述證書請求的第一摘要,所述身份綁定將所述證明身份密鑰綁定到所述證書請求,并且其中該方法進(jìn)一步包括計(jì)算所述證書請求的第二摘要;以及驗(yàn)證所述第二摘要與所述第一摘要相匹配。
15.一種計(jì)算機(jī)可讀介質(zhì),其具有計(jì)算機(jī)可執(zhí)行指令來執(zhí)行權(quán)利要求9-14之中的任一權(quán)利要求的方法。
全文摘要
可信平臺模塊(TPM)已證明為不可遷移的密鑰的認(rèn)證能夠在證書頒發(fā)機(jī)構(gòu)(CA)與請求證書的客戶端之間的單個往返行程中被執(zhí)行??蛻舳藙?chuàng)建證書請求,并隨后使得TPM創(chuàng)建被綁定到證書請求的證明身份密鑰(AIK)??蛻舳巳缓笠骉PM將新密鑰簽署為不可遷移性的證明??蛻舳穗S后將證書請求與不可遷移性的證明一起發(fā)送到CA。CA檢查證書請求以及不可遷移性的證明。然而,因?yàn)镃A并不知道該證明是否已由可信TPM作出,所以它認(rèn)證該密鑰僅僅在該證書中包括只能使用可信TPM的簽注密鑰來解密的加密簽名。
文檔編號H04L9/14GK102577229SQ201080048694
公開日2012年7月11日 申請日期2010年9月24日 優(yōu)先權(quán)日2009年10月28日
發(fā)明者E.L.霍爾特, S.D.安德森, S.托姆 申請人:微軟公司