TPM功能介绍
(文章來(lái)源:
TPM功能介紹_百度文庫(kù)
http://wenku.baidu.com/link?url=bQMQyb0A3gto0CCC2CN5ojpUrgHsh8BMXmejpFaqLS52v-013bXPHoRr36r0F0UrgPr8U6rvZluLHpr3wRAvOzxpJgqGPaKv4QjNsyeeqMG)
TPM功能簡(jiǎn)介?
?
1 TPM架構(gòu)?
TPM架構(gòu):非易失性存儲(chǔ)(Non-Volatile Storage);平臺(tái)配置寄存器PCR;身份認(rèn)證密鑰(Attes. Id. K.);程序代碼(Program Code);隨機(jī)數(shù)生成器RNG;SHA-1引擎;密鑰生成(Key Gen.);可選狀態(tài)配置(Opt-in);執(zhí)行引擎(Exec engine);輸入輸出I/O。
2 安全度量和報(bào)告?
因系統(tǒng)而異,平臺(tái)的運(yùn)行狀態(tài)主要包括內(nèi)核鏡像、進(jìn)程信息列表、應(yīng)用的二進(jìn)制可執(zhí)行程序。且因TPM存儲(chǔ)空間有限,不可能存放與運(yùn)行狀態(tài)相關(guān)的完整信息,而只能存儲(chǔ)其摘要。平臺(tái)狀態(tài)寄存器(PCR)是用來(lái)記錄系統(tǒng)運(yùn)行狀態(tài)的寄存器,TCG規(guī)范要求實(shí)現(xiàn)的一組寄存器,至少有16個(gè)(TCG 1.1規(guī)范),TCG 1.2規(guī)范中引進(jìn)了8個(gè)額外的平臺(tái)狀態(tài)寄存器用于實(shí)現(xiàn)動(dòng)態(tài)可信度量,平臺(tái)狀態(tài)信息的SHA-1散列值存儲(chǔ)在平臺(tái)狀態(tài)寄存器中,平臺(tái)狀態(tài)寄存器就能夠代表機(jī)器的運(yùn)行狀態(tài)。
2.1 PCR的安全訪問(wèn) ? ?
為了防止PCR值被惡意代碼隨便篡改或偽造,TPM限制對(duì)平臺(tái)狀態(tài)寄存器的操作,不能像普通字符設(shè)備的寄存器那樣通過(guò)端口映射來(lái)隨意進(jìn)行讀寫操作,平臺(tái)狀態(tài)寄存器位于TPM內(nèi)部,其內(nèi)部數(shù)據(jù)受到TPM的保護(hù)。對(duì)PCR內(nèi)容的讀取是不受限制的,TPM只允許兩種操作來(lái)修改PCR的值:重置操作(Reset)和擴(kuò)展操作(Extend),重置操作發(fā)生在機(jī)器斷電或者重新啟動(dòng)之后,PCR的值自動(dòng)重新清零(TCG 1.2新引入的寄存器除外)。?
系統(tǒng)運(yùn)行過(guò)程中,只能通過(guò)擴(kuò)展操作來(lái)改變PCR的內(nèi)容,擴(kuò)展操作:PCR[n] = SHA-1{PCR[n-1] || newMeasurement}。擴(kuò)展操作是不可逆的,即先擴(kuò)展度量值A(chǔ)再擴(kuò)展度量值B所得到的PCR值跟先擴(kuò)展B再擴(kuò)展A的結(jié)果是不同的。通過(guò)擴(kuò)展,PCR能夠記錄一個(gè)無(wú)限長(zhǎng)的度量值序列,這一系列度量值組成的序列反應(yīng)了系統(tǒng)狀態(tài)的變遷 ,這個(gè)擴(kuò)展序列中的某一個(gè)度量值被改變了,之后的度量序列都會(huì)受到影響。平臺(tái)狀態(tài)信息可以日志的形式放置在TPM外部的度量日志文件中。PCR中通過(guò)擴(kuò)展來(lái)記錄度量日志信息的摘要,以供以后對(duì)度量日志進(jìn)行驗(yàn)證。雖然理論上來(lái)說(shuō),一個(gè)PCR維護(hù)的度量序列就能夠記錄整個(gè)平臺(tái)的狀態(tài)值,但PCR并不只用于校驗(yàn)度量日志,因此在啟動(dòng)過(guò)程中用到了多個(gè)PCR。?
2.2 信任鏈產(chǎn)生與完整性度量?
惡意代碼能夠在這個(gè)啟動(dòng)序列中的某一個(gè)環(huán)節(jié)上截取控制權(quán),那么它就能夠任意篡改和控制之后的啟動(dòng)序列。必須有一種強(qiáng)有力的信任機(jī)制來(lái)評(píng)估系統(tǒng)啟動(dòng)過(guò)程是否已經(jīng)被攻擊者所篡改,TPM硬件提供的完整性度量機(jī)制能夠?yàn)閱?dòng)過(guò)程提供可信評(píng)估,讓機(jī)器使用者能夠在系統(tǒng)被篡改后能夠?qū)Υ俗鞒稣_判斷。?
信任傳遞機(jī)制:在信任當(dāng)前某一環(huán)節(jié)的前提下,由該環(huán)節(jié)去評(píng)估下一個(gè)環(huán)節(jié)的安全性,確定下一環(huán)節(jié)可信之后再將控制權(quán)轉(zhuǎn)交給下一環(huán)節(jié),然后依次向后推進(jìn)。整個(gè)啟動(dòng)序列中都遵循“先度量,再執(zhí)行”的原則,當(dāng)前階段的代碼負(fù)責(zé)度量下一階段即將要執(zhí)行的代碼,然后再將度量值擴(kuò)展到PCR寄存器中,這樣循環(huán)往復(fù),這就構(gòu)成了信任鏈。
源頭(BIOS啟動(dòng)模塊)在啟動(dòng)過(guò)程中是沒(méi)有受到度量,即存在一個(gè)假設(shè)—這個(gè)源頭是安全可信的。大多數(shù)PC系統(tǒng)使用的是可刷寫的BIOS固件,這就使得攻擊者有可能通過(guò)修改BIOS從而摧毀信任根。符合TCG規(guī)范的系統(tǒng)必須擁有不可更改的BIOS代碼,這段代碼可以是一段短小的固化BIOS代碼,它來(lái)度量其余的大段BIOS,但是最初執(zhí)行的代碼必須是固化不可修改的。?
各階段代碼的詳細(xì)配置信息和對(duì)PCR值擴(kuò)展的操作的歷史記錄是保存在度量日志中的,度量日志存儲(chǔ)在磁盤上,而磁盤屬于不可信的外存,因此度量日志是可能被攻擊者篡改的。對(duì)保存在磁盤上的度量日志并不需要進(jìn)行額外的保護(hù),攻擊者即使篡改了度量日志,但由于PCR中記錄的度量值是不可偽造的,用戶對(duì)度量日志進(jìn)行摘要就會(huì)發(fā)現(xiàn)與度量值不匹配。基于TPM的可信啟動(dòng)并不能強(qiáng)制保證啟動(dòng)過(guò)程是可信的,而只是忠實(shí)的記錄啟動(dòng)過(guò)程的完整性狀態(tài),交由用戶在啟動(dòng)完成之后做可信判斷,TPM本身并不能夠控制CPU的執(zhí)行過(guò)程。對(duì)啟動(dòng)過(guò)程完成了度量記錄之后,就必須將記錄的狀態(tài)信息安全地報(bào)告給要做可信判斷的挑戰(zhàn)者,以供進(jìn)一步根據(jù)狀態(tài)判斷啟動(dòng)過(guò)程是否可信狀態(tài)信息包括度量日志和相應(yīng)的PCR值。?
2.3 遠(yuǎn)程報(bào)告與本地報(bào)告?
根據(jù)挑戰(zhàn)者是處于遠(yuǎn)程還是本地,有不同的安全報(bào)告方式:遠(yuǎn)程報(bào)告和本地報(bào)告。可信平臺(tái)使用AIK對(duì)當(dāng)前平臺(tái)的PCR值進(jìn)行簽名,報(bào)告給遠(yuǎn)程挑戰(zhàn)者以證明其平臺(tái)狀態(tài)的可信性。 前者通過(guò)使用挑戰(zhàn)/應(yīng)答協(xié)議來(lái)完成,遠(yuǎn)程挑戰(zhàn)者產(chǎn)生一個(gè)隨機(jī)數(shù)nonce對(duì)某一可信平臺(tái)發(fā)起挑戰(zhàn)請(qǐng)求,最終獲取到可信平臺(tái)用自身AIK密鑰簽名的PCR值,由于簽名算法中加入了nonce,挑戰(zhàn)者可以知道簽名的新鮮性,以防止重放攻擊。 可信平臺(tái)除了發(fā)送已簽名的PCR外,還包括有度量日志和AIK證書,通過(guò)驗(yàn)證AIK證書、AIK簽名和nonce的合法性證實(shí)平臺(tái)的身份。挑戰(zhàn)者將PCR值與期望值比較可以驗(yàn)證被證明平臺(tái)的可信性。
在進(jìn)行遠(yuǎn)程證明時(shí),挑戰(zhàn)者是用另一臺(tái)安全的計(jì)算機(jī)來(lái)校驗(yàn)狀態(tài)信息,但當(dāng)挑戰(zhàn)者要判斷本地機(jī)器是否被攻陷,意味著本機(jī)有可能是不可信的。如果本機(jī)已經(jīng)被攻擊者控制,那么可信判斷所得到的結(jié)果就會(huì)被攻擊者篡改,挑戰(zhàn)者就會(huì)受到欺騙。?
Seal操作是將數(shù)據(jù)或密鑰與一組指定的PCR狀態(tài)綁定,只有當(dāng)這組PCR的值符合特定的一組值時(shí),這些數(shù)據(jù)和密鑰才能夠被釋放出來(lái)。將數(shù)據(jù)的可訪問(wèn)性與機(jī)器狀態(tài)綁定,操作系統(tǒng)或者用戶能夠在特定的機(jī)器狀態(tài)訪問(wèn)某些被Seal的數(shù)據(jù),機(jī)器狀態(tài)(PCR值)改變之后數(shù)據(jù)就不在可訪問(wèn)。當(dāng)要判斷機(jī)器是否可信,用戶可以要求TPM對(duì)這條秘密信息執(zhí)行Unseal操作。
3 遠(yuǎn)程證明?
? ? 遠(yuǎn)程證明是通過(guò)一個(gè)典型的“挑戰(zhàn)-應(yīng)答”協(xié)議來(lái)實(shí)現(xiàn)的,一個(gè)平臺(tái)(挑戰(zhàn)者)向另一個(gè)平臺(tái)(證明者)發(fā)送一個(gè)挑戰(zhàn)證明的消息和一個(gè)隨機(jī)數(shù)(nonce),要求獲得一個(gè)或者多個(gè)PCR值對(duì)證明者的平臺(tái)狀態(tài)進(jìn)行證明。每個(gè)TPM擁有唯一的背書密鑰(Endorsement Key),為了盡量減少隱私的泄漏,TCG規(guī)定不能使用EK用作身份認(rèn)證,而使用身份認(rèn)證密鑰AIK以作為EK的別名。TPM使用EK生成AIK,并通過(guò)PCA簽發(fā)的 AIK證書來(lái)完成身份認(rèn)證。
遠(yuǎn)程證明是一個(gè)綜合完整性校驗(yàn)和身份鑒別的過(guò)程,向驗(yàn)證者提供了一份可信的平臺(tái)狀態(tài)報(bào)告。遠(yuǎn)程證明流程:(1)遠(yuǎn)程挑戰(zhàn)者產(chǎn)生一個(gè)隨機(jī)數(shù)nonce對(duì)可信平臺(tái)客戶端發(fā)起挑戰(zhàn)請(qǐng)求,指定要求的PCR寄存器編號(hào)。(2)配備TPM的客戶端與TSS交互,載入AIK,調(diào)用Tspi_TPM_Quote接口對(duì)指定的PCR進(jìn)行簽名。Tspi_TPM_Quote接口的輸入包括TPM對(duì)象句柄,簽名密鑰對(duì)象的句柄, PCR組件對(duì)象(含需要簽名的PCR索引號(hào))以及對(duì)PCR簽名的相關(guān)信息。對(duì)PCR簽名的相關(guān)信息包含輸入數(shù)據(jù)和輸出數(shù)據(jù),輸入數(shù)據(jù)指定完成簽名需要的額外數(shù)據(jù)如nonce,輸出數(shù)據(jù)記錄簽名成功后獲取到的TSS_PCRS_STRUCT_INFO結(jié)構(gòu)和簽名的PCR值。(3)經(jīng)過(guò)簽名的PCR值和對(duì)應(yīng)的度量日志的摘要和AIK證書被反饋給挑戰(zhàn)者。(4)挑戰(zhàn)者驗(yàn)證摘要數(shù)據(jù)塊的簽名,檢查nonce。這一步驟驗(yàn)證AIK簽名的合法性。挑戰(zhàn)者從TSS_PCRS_STRUCT_INFO中獲取到PCR值,與nonce串聯(lián)后計(jì)算其哈希值,得到SHA1(PCR||nonce);另外使用AIK證書的公鑰解密已簽名的PCR值 ,得到RSA_DecAIK(Quote),如果SHA1(PCR||nonce)== RSA_DecAIK(Quote)則AIK簽名是合法的,否則PCR值是已被篡改的或者nonce不是新鮮的。(5)挑戰(zhàn)者驗(yàn)證AIK證書的合法性,是否為CA所簽發(fā),AIK證書是否仍在有效期內(nèi)。(6)挑戰(zhàn)者基于客戶端狀態(tài)做出下一步動(dòng)作的決定,即對(duì)比PCR摘要值是否與期望值相符,其關(guān)鍵是用戶讀取度量日志(SML)重新計(jì)算期望值的過(guò)程。
3.1 隱私CA(PCA)?
AIK證書是由PCA(Privacy CA,隱私CA)創(chuàng)建的,創(chuàng)建流程如下:配備TPM的客戶端調(diào)用TPM_MakeIdentity以創(chuàng)建AIK密鑰;TSS組織AIK請(qǐng)求,包括AIK公鑰部分和TPM的EK證書;客戶端用PCA公鑰對(duì)AIK請(qǐng)求進(jìn)行加密,并將加密數(shù)據(jù)發(fā)送給PCA;PCA驗(yàn)證AIK請(qǐng)求,包括檢查請(qǐng)求中EK證書的合法性;PCA簽署AIK證書,使用客戶端的EK公鑰進(jìn)行加密,然后將數(shù)據(jù)發(fā)送到客戶端;客戶端調(diào)用TPM_ActivateIdentity以獲得AIK證書。
?
區(qū)別傳統(tǒng)CA的證書離線創(chuàng)建,AIK證書的創(chuàng)建過(guò)程是在線、自動(dòng)進(jìn)行的。通常證書請(qǐng)求者需要向證書注冊(cè)機(jī)構(gòu)(Register Authority, RA)寄送書面請(qǐng)求報(bào)告,以便RA對(duì)證書進(jìn)行離線審核。AIK證書的在線創(chuàng)建基于“TPM是可信的”這個(gè)前提,從而免去了證書請(qǐng)求審核過(guò)程。使用PCA進(jìn)行遠(yuǎn)程證明也有不足之處:PCA與驗(yàn)證方合謀泄漏TPM平臺(tái)的身份,驗(yàn)證方進(jìn)行AIK證書驗(yàn)證時(shí)需要驗(yàn)證PCA證書的合法性,PCA了解AIK證書對(duì)應(yīng)的EK證書;AIK證書創(chuàng)建時(shí)的效率問(wèn)題,大量在線的AIK證書創(chuàng)建請(qǐng)求可能帶來(lái)瓶頸。
3.2直接匿名認(rèn)證(DAA)?
TPM平臺(tái)、DAA簽署方(Issuer)和DAA驗(yàn)證方。加入(Join)和簽名/驗(yàn)證(Sign/Verify)。Join:簽署方驗(yàn)證TPM平臺(tái),并為TPM平臺(tái)簽署DAA證書。Sign/Verify:TPM使用DAA證書與驗(yàn)證方進(jìn)行交互,驗(yàn)證方通過(guò)“零知識(shí)證明”可以在不違背TPM平臺(tái)隱私前提下對(duì)DAA進(jìn)行驗(yàn)證,DAA協(xié)議支持黑名單功能,識(shí)別被攻陷的TPM。匿名認(rèn)證的好處:DAA簽署方不能把AIK的簽署和EK聯(lián)系在一起;兩個(gè)DAA簽名不能夠區(qū)分是否來(lái)自同一TPM。DAA協(xié)議流程如下所示,它作為PCA的一種替代方案,驗(yàn)證方在進(jìn)行證書驗(yàn)證過(guò)程中不需要了解PCA的信息,避免了驗(yàn)證方和PCA的合謀,TPM和DAA簽署方交互一次,可生成多個(gè)AIK證書,解決了可擴(kuò)展性/可用性。
4 數(shù)據(jù)保護(hù) ?
可信平臺(tái)的基本原則:必須真實(shí)報(bào)告系統(tǒng)的狀態(tài),同時(shí)不能暴露密鑰和盡量不表露自己的身份。數(shù)據(jù)安全保護(hù)是可信平臺(tái)的核心功能之一 ,數(shù)據(jù)安全保護(hù)就是通過(guò)密鑰對(duì)數(shù)據(jù)采用特定的保護(hù)方式進(jìn)行處理,基本單元包括:密鑰、數(shù)據(jù)、數(shù)據(jù)保護(hù)方式。用于數(shù)據(jù)安全保護(hù)的密鑰分為對(duì)稱密鑰和非對(duì)稱密鑰,被保護(hù)的數(shù)據(jù)可以是任何數(shù)據(jù)。數(shù)據(jù)安全保護(hù)方式包括:數(shù)據(jù)加解密、數(shù)據(jù)封裝、數(shù)字信封等方式。?
保護(hù)區(qū)域:一塊可信平臺(tái)模塊中存放敏感信息的存儲(chǔ)區(qū),能夠安全操作敏感數(shù)據(jù)的地方。 可信平臺(tái)模塊提供的可以對(duì)被保護(hù)區(qū)域進(jìn)行訪問(wèn)的功能,以命令的形式提供。通過(guò)建立平臺(tái)的保護(hù)區(qū)域,實(shí)現(xiàn)對(duì)敏感數(shù)據(jù)的訪問(wèn)授權(quán),從而控制外部實(shí)體對(duì)這些敏感數(shù)據(jù)的訪問(wèn)。 ? ? 使用TPM內(nèi)部固件和邏輯電路來(lái)處理指令,所以它不依賴于操作系統(tǒng),也不會(huì)受到外部軟件漏洞的影響;TPM芯片具有很好的物理防篡改性;TPM支持綁定和密封等操作。
內(nèi)置了TPM的計(jì)算機(jī)能夠創(chuàng)建加密密鑰并對(duì)其進(jìn)行加密,以便只能由TPM解密,此過(guò)程通常稱為數(shù)據(jù)綁定,即將綁定密鑰與數(shù)據(jù)進(jìn)行綁定。主覆蓋/綁定密鑰:“存儲(chǔ)根密鑰(Storage Root Key,SRK)”,存儲(chǔ)在TPM的內(nèi)部。
內(nèi)置了TPM的計(jì)算機(jī)可以創(chuàng)建一個(gè)密鑰,該密鑰被關(guān)聯(lián)到特定硬件或軟件條件,這稱為密封密鑰。首次創(chuàng)建密封密鑰時(shí),TPM將記錄配置值和文件哈希的快照,僅在當(dāng)前系統(tǒng)值與快照中的值相匹配時(shí)才解密封或釋放密封密鑰。用戶在他的計(jì)算機(jī)上保存自己的日記,但是不希望其他的程序或計(jì)算機(jī)讀取,使用密封密鑰進(jìn)行密封操作,就能保證該日志只有在該計(jì)算機(jī)上的未被修改的日記軟件才可以打開,轉(zhuǎn)發(fā)到別的計(jì)算機(jī)或篡改用戶的日記軟件導(dǎo)致系統(tǒng)狀態(tài)的改變,無(wú)法獲得密鑰解密日志,該日志文件也不能被讀取。
不同類型密鑰具有不同的安全需求,體現(xiàn)在密鑰的產(chǎn)生、傳輸、存儲(chǔ)、備份、銷毀等主要環(huán)節(jié)。對(duì)密鑰按照功能劃分并限制它們的使用,很大程度上可以增強(qiáng)系統(tǒng)的安全性,存儲(chǔ)密鑰、簽名密鑰、平臺(tái)身份認(rèn)證密鑰、綁定密鑰、密封密鑰、派生密鑰、鑒別密鑰。 ? ? ? ? ??
可遷移密鑰與不可遷移密鑰,可遷移存儲(chǔ)密鑰并不局限于某個(gè)特定平臺(tái),可以由平臺(tái)用戶的控制下在平臺(tái)之間遷移。不可遷移密鑰則永久地與某個(gè)指定平臺(tái)關(guān)聯(lián),不可遷移密鑰能夠用來(lái)加密保護(hù)可遷移密鑰,反之則不行。可遷移密鑰用于在多個(gè)平臺(tái)上使用同一密鑰所加密的數(shù)據(jù),關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)平臺(tái)上使用。優(yōu)點(diǎn):單用戶多平臺(tái);多用戶多平臺(tái)的安全共享。可以將數(shù)據(jù)從一個(gè)發(fā)生故障的平臺(tái)備份并恢復(fù)到一個(gè)新的平臺(tái)上。不可遷移密鑰可用于一個(gè)并且只能用于一個(gè)TPM,如果系統(tǒng)或 TPM 發(fā)生故障,所有不可遷移密鑰以及與它們關(guān)聯(lián)的所有數(shù)據(jù)將不可訪問(wèn),而且無(wú)法恢復(fù),安全級(jí)別高。
每種類型都附加了一些約束條件以限制其應(yīng)用,TCG 的密鑰可以粗略的分類為簽名密鑰和存儲(chǔ)密鑰,更進(jìn)一步的分類有:平臺(tái)、身份認(rèn)證、綁定、普通和繼承密鑰,對(duì)稱密鑰被單獨(dú)分類為驗(yàn)證密鑰,非對(duì)稱密鑰大多要求 2048 位的RSA密鑰。在整個(gè)密鑰體系中,每個(gè)密鑰在被創(chuàng)建的時(shí)候都指定了固定的密鑰屬性。
存儲(chǔ)密鑰(Storage Keys) 用來(lái)加密數(shù)據(jù)和其它密鑰的通用非對(duì)稱密鑰,存儲(chǔ)密鑰可用來(lái)封裝外部管理的數(shù)據(jù)和密鑰,遵循PKCS#1版本2.0的規(guī)范。 ?存儲(chǔ)根密鑰(Storage Root Key,SRK)是存儲(chǔ)密鑰的一個(gè)特例,是整個(gè)系統(tǒng)中最高權(quán)限的存儲(chǔ)密鑰。在每個(gè)用戶創(chuàng)建的時(shí)候生成,管理著這個(gè)用戶的所有數(shù)據(jù),也就是存儲(chǔ)可信根 (Root of Trust for Storage,RTS)。它和簽署密鑰(Endorsement Key,EK)一起,是唯一存放在TPM內(nèi)部的密鑰。所有其他的密鑰都在存儲(chǔ)根密鑰的保護(hù)之下。
通用非對(duì)稱密鑰,用于對(duì)應(yīng)用數(shù)據(jù)和信息簽名,簽名密鑰可以是可遷移或者不可遷移的 ,遵循RSA簽名密鑰的標(biāo)準(zhǔn)。背書密鑰(Endorsement Key,EK)是TPM平臺(tái)的一個(gè)不可遷移的身份認(rèn)證密鑰,代表著每個(gè)平臺(tái)的真實(shí)身份,每個(gè)平臺(tái)都擁有唯一的一個(gè),它是TPM唯一的密碼身份標(biāo)識(shí),在確立平臺(tái)所有者時(shí),用于解密所有者的授權(quán)數(shù)據(jù),以及解密與生成AIK相關(guān)的數(shù)據(jù),背書密鑰從不用作數(shù)據(jù)加密和簽名,主要功能是生成身份證明密鑰(AIK)和建立TPM平臺(tái)的所有者,由TPM的所有者來(lái)生成存儲(chǔ)根密鑰。EK產(chǎn)生的條件:(1)EK在最初創(chuàng)建時(shí)就必須是保密的;(2)EK創(chuàng)建時(shí),設(shè)備必須是真實(shí)的,并且是沒(méi)有被篡改的;(3)密碼算法的缺點(diǎn)不會(huì)危及該私密信息的安全;(4)設(shè)備的各項(xiàng)操作不會(huì)導(dǎo)致EK泄露。EK產(chǎn)生方法:采用TPM命令,TCG規(guī)范定義了一組背書密鑰操作命令,創(chuàng)建背書密鑰對(duì)的命令為TPM_CreateEndorsementKeyPair;密鑰“注入”技術(shù),在信任制造商的前提下,由TPM制造商產(chǎn)生背書密鑰對(duì),然后采用人工方式注入,比如鍵盤輸入、軟盤輸入絕對(duì)可靠。采用密鑰槍或密鑰軟盤應(yīng)與鍵盤輸入的口令相結(jié)合,并建立一定的接口規(guī)范,只有在輸入了合法的加密操作口令后,才能激活密鑰槍或軟盤里的密鑰信息;密鑰裝入后,應(yīng)將使用過(guò)的存儲(chǔ)區(qū)清零,防止一切可能導(dǎo)出密鑰殘留信息的事件發(fā)生。
TPM硬件安全:在TPM中,可以采用篡改檢測(cè)電路和篡改檢測(cè)協(xié)議技術(shù),確保當(dāng)攻擊者試圖采用物理攻擊TPM內(nèi)的私密信息(包括EK)時(shí)能自動(dòng)銷毀;采用硬件鎖機(jī)制,建立受保護(hù)頁(yè)面以防止特權(quán)軟件盜取或者修改私密信息,保證私密信息的隱私性和完整性。?
平臺(tái)身份認(rèn)證密鑰AIK是不可遷移密鑰,專用于對(duì)TPM產(chǎn)生的數(shù)據(jù)(如TPM功能和PCR值等)進(jìn)行簽名,用來(lái)證明平臺(tái)的身份和平臺(tái)的環(huán)境配置,AIK產(chǎn)生過(guò)程中需要可信第三方PCA的支持。AIK證書產(chǎn)生:平臺(tái)必須設(shè)法將這些簽過(guò)名的聲明和Hash值與PCA信任的某些證書綁定。TPM背書證書(Endorsement Credential,EndCred):TPM制造商簽發(fā);平臺(tái)證書(Platform Credential,PlatCred):由計(jì)算機(jī)平臺(tái)制造商簽發(fā);一致性證書(Conformance Credential,ConCred):用來(lái)聲明和證實(shí)一類計(jì)算平臺(tái)的實(shí)現(xiàn)符合TCG的哪些規(guī)范,符合哪些安全要求。TPM→PCA:IdPub,EndCred,PlatCred,ConCred,Sign(IdPri,Hash);TPM←PCA:Enc(EndPub,IdCred)。
AIK在整個(gè)身份證明過(guò)程不能重復(fù),而且每次證明過(guò)程都需要重新生成新的AIK,所以AIK不需要常駐TPM,可以保存到密鑰庫(kù)服務(wù)器中。當(dāng)需要AIK時(shí),使之加載到TPM的易失性存儲(chǔ)設(shè)備中。當(dāng)AIK泄露,TPM EK遭受攻擊,安全性受到威脅,或者AIK證書泄露與相關(guān)EK證書的關(guān)系(實(shí)際上AIK不應(yīng)暴露EK的任何信息)等情況時(shí),AIK應(yīng)該被銷毀,同時(shí)相應(yīng)的證書應(yīng)該被撤銷。PCA應(yīng)該被告知該AIK已經(jīng)不再安全,更新證書CRL服務(wù)中的撤銷證書列表;與PKI不同的是,AIK證書與背書證書的關(guān)系密切,在AIK證書撤銷時(shí)要決定如何處理相關(guān)的證書,情況比較復(fù)雜。
綁定密鑰(Binding Keys):用于在一個(gè)平臺(tái)中加密小規(guī)模的數(shù)據(jù)。由于使用平臺(tái)所特有的密鑰進(jìn)行加密,所以與該平臺(tái)綁定。這個(gè)密鑰的用法同傳統(tǒng)非對(duì)稱密鑰加密相同?
內(nèi)置了TPM的計(jì)算機(jī)可以創(chuàng)建一個(gè)密鑰,該密鑰不僅被綁定,而且還被連接到特定硬件或軟件條件,這稱為密封密鑰。首次創(chuàng)建密封密鑰時(shí),TPM將記錄配置值和文件哈希的快照,僅在這些當(dāng)前系統(tǒng)值與快照中的值相匹配時(shí)才解封或釋放密封密鑰。 ?
派生密鑰(Legacy Keys)在TPM之外生成,它們被定義為可遷移的,在被用來(lái)簽名或加密之后才會(huì)載入TPM,用在一些需要在平臺(tái)之間傳遞數(shù)據(jù)的場(chǎng)合。鑒別密鑰(Authentication Keys)是用來(lái)保護(hù)涉及TPM傳輸會(huì)話的對(duì)稱密鑰。
由于TPM的空間有限,有些密鑰以加密的形式存放到外部存儲(chǔ)區(qū)中,當(dāng)要使用這些密鑰時(shí),首先通過(guò)TSS在密鑰緩沖池中查找并判斷此密鑰是否已經(jīng)存在。若存在,則說(shuō)明此密鑰信息已經(jīng)存在于TPM內(nèi)部,不需要重新加載,直接可以在TPM中使用;否則就需要進(jìn)行加載。TPM密鑰管理分為內(nèi)部密鑰管理和外部密鑰管理,它們的主要區(qū)別在于密鑰在TPM內(nèi)部是明文存儲(chǔ)的,而在外部是以密文存儲(chǔ)的。在所有密鑰中,只有兩組密鑰對(duì)永久的存儲(chǔ)在TPM內(nèi)部,即EK和SRK。其他密鑰在不使用時(shí)由父密鑰加密后存儲(chǔ)在外部存儲(chǔ)設(shè)備中,需要時(shí)加載到TPM的保護(hù)區(qū)域。TPM里面的密鑰生成器用于生成密鑰,可生成的密鑰包括非對(duì)稱密鑰和對(duì)稱密鑰,TPM可以向外部實(shí)體提供非對(duì)稱密鑰,也可以提供對(duì)稱密鑰,而隨機(jī)數(shù)生成器生成的隨機(jī)數(shù)將作為密鑰生成器生成密鑰的基礎(chǔ)。
TPM中的密碼協(xié)處理器實(shí)現(xiàn)密碼運(yùn)算操作,包括非對(duì)稱密碼運(yùn)算操作和對(duì)稱密碼運(yùn)算操作,但是對(duì)稱密碼運(yùn)算操作僅限于TPM內(nèi)部使用,TPM不對(duì)外提供對(duì)稱密碼運(yùn)算操作接口。協(xié)處理器作為硬件算法加速器,主要完成模冪,模乘,模加運(yùn)算。協(xié)處理器以改進(jìn)的蒙格馬利算法(Montgomery)為基礎(chǔ),以位加法器和位乘法器為核心,通過(guò)使用總線仲裁、總線凍結(jié)及流水線等設(shè)計(jì)手段和設(shè)計(jì)技術(shù)完成算法的硬件加速功能。為了在TPM內(nèi)部生成密鑰,必須有一個(gè)內(nèi)部的隨機(jī)數(shù)生成器(RNG),多數(shù)TPM用偽隨機(jī)數(shù)生成器(PRNG)代替真實(shí)的隨機(jī)數(shù)生成器,偽隨機(jī)數(shù)產(chǎn)生器周期性地從計(jì)時(shí)器或其他TPM熵源中獲取輸入,并將熵轉(zhuǎn)換為種子。?
TCG規(guī)范中外部實(shí)體是有密碼運(yùn)算能力的獨(dú)立的安全實(shí)體,需要具備密鑰、通過(guò)安全協(xié)議才能夠訪問(wèn)TPM的服務(wù)。授權(quán)數(shù)據(jù)是外部實(shí)體訪問(wèn)TPM過(guò)程中用于建立安全會(huì)話,保護(hù)通信過(guò)程的密鑰。
總結(jié)
- 上一篇: (精)广东工业大学 2018实时大数据分
- 下一篇: 工作十年的程序员,却拿着毕业三年的工资,