日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TPM功能介绍

發布時間:2023/12/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TPM功能介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(文章來源:

TPM功能介紹_百度文庫
http://wenku.baidu.com/link?url=bQMQyb0A3gto0CCC2CN5ojpUrgHsh8BMXmejpFaqLS52v-013bXPHoRr36r0F0UrgPr8U6rvZluLHpr3wRAvOzxpJgqGPaKv4QjNsyeeqMG)



TPM功能簡介?
?
1 TPM架構?
TPM架構:非易失性存儲(Non-Volatile Storage);平臺配置寄存器PCR;身份認證密鑰(Attes. Id. K.);程序代碼(Program Code);隨機數生成器RNG;SHA-1引擎;密鑰生成(Key Gen.);可選狀態配置(Opt-in);執行引擎(Exec engine);輸入輸出I/O。


2 安全度量和報告?
因系統而異,平臺的運行狀態主要包括內核鏡像、進程信息列表、應用的二進制可執行程序。且因TPM存儲空間有限,不可能存放與運行狀態相關的完整信息,而只能存儲其摘要。平臺狀態寄存器(PCR)是用來記錄系統運行狀態的寄存器,TCG規范要求實現的一組寄存器,至少有16個(TCG 1.1規范),TCG 1.2規范中引進了8個額外的平臺狀態寄存器用于實現動態可信度量,平臺狀態信息的SHA-1散列值存儲在平臺狀態寄存器中,平臺狀態寄存器就能夠代表機器的運行狀態。

2.1 PCR的安全訪問 ? ?
為了防止PCR值被惡意代碼隨便篡改或偽造,TPM限制對平臺狀態寄存器的操作,不能像普通字符設備的寄存器那樣通過端口映射來隨意進行讀寫操作,平臺狀態寄存器位于TPM內部,其內部數據受到TPM的保護。對PCR內容的讀取是不受限制的,TPM只允許兩種操作來修改PCR的值:重置操作(Reset)和擴展操作(Extend),重置操作發生在機器斷電或者重新啟動之后,PCR的值自動重新清零(TCG 1.2新引入的寄存器除外)。?
系統運行過程中,只能通過擴展操作來改變PCR的內容,擴展操作:PCR[n] = SHA-1{PCR[n-1] || newMeasurement}。擴展操作是不可逆的,即先擴展度量值A再擴展度量值B所得到的PCR值跟先擴展B再擴展A的結果是不同的。通過擴展,PCR能夠記錄一個無限長的度量值序列,這一系列度量值組成的序列反應了系統狀態的變遷 ,這個擴展序列中的某一個度量值被改變了,之后的度量序列都會受到影響。平臺狀態信息可以日志的形式放置在TPM外部的度量日志文件中。PCR中通過擴展來記錄度量日志信息的摘要,以供以后對度量日志進行驗證。雖然理論上來說,一個PCR維護的度量序列就能夠記錄整個平臺的狀態值,但PCR并不只用于校驗度量日志,因此在啟動過程中用到了多個PCR。?

2.2 信任鏈產生與完整性度量?
惡意代碼能夠在這個啟動序列中的某一個環節上截取控制權,那么它就能夠任意篡改和控制之后的啟動序列。必須有一種強有力的信任機制來評估系統啟動過程是否已經被攻擊者所篡改,TPM硬件提供的完整性度量機制能夠為啟動過程提供可信評估,讓機器使用者能夠在系統被篡改后能夠對此作出正確判斷。?
信任傳遞機制:在信任當前某一環節的前提下,由該環節去評估下一個環節的安全性,確定下一環節可信之后再將控制權轉交給下一環節,然后依次向后推進。整個啟動序列中都遵循“先度量,再執行”的原則,當前階段的代碼負責度量下一階段即將要執行的代碼,然后再將度量值擴展到PCR寄存器中,這樣循環往復,這就構成了信任鏈。

源頭(BIOS啟動模塊)在啟動過程中是沒有受到度量,即存在一個假設—這個源頭是安全可信的。大多數PC系統使用的是可刷寫的BIOS固件,這就使得攻擊者有可能通過修改BIOS從而摧毀信任根。符合TCG規范的系統必須擁有不可更改的BIOS代碼,這段代碼可以是一段短小的固化BIOS代碼,它來度量其余的大段BIOS,但是最初執行的代碼必須是固化不可修改的。?
各階段代碼的詳細配置信息和對PCR值擴展的操作的歷史記錄是保存在度量日志中的,度量日志存儲在磁盤上,而磁盤屬于不可信的外存,因此度量日志是可能被攻擊者篡改的。對保存在磁盤上的度量日志并不需要進行額外的保護,攻擊者即使篡改了度量日志,但由于PCR中記錄的度量值是不可偽造的,用戶對度量日志進行摘要就會發現與度量值不匹配。基于TPM的可信啟動并不能強制保證啟動過程是可信的,而只是忠實的記錄啟動過程的完整性狀態,交由用戶在啟動完成之后做可信判斷,TPM本身并不能夠控制CPU的執行過程。對啟動過程完成了度量記錄之后,就必須將記錄的狀態信息安全地報告給要做可信判斷的挑戰者,以供進一步根據狀態判斷啟動過程是否可信狀態信息包括度量日志和相應的PCR值。?

2.3 遠程報告與本地報告?
根據挑戰者是處于遠程還是本地,有不同的安全報告方式:遠程報告和本地報告。可信平臺使用AIK對當前平臺的PCR值進行簽名,報告給遠程挑戰者以證明其平臺狀態的可信性。 前者通過使用挑戰/應答協議來完成,遠程挑戰者產生一個隨機數nonce對某一可信平臺發起挑戰請求,最終獲取到可信平臺用自身AIK密鑰簽名的PCR值,由于簽名算法中加入了nonce,挑戰者可以知道簽名的新鮮性,以防止重放攻擊。 可信平臺除了發送已簽名的PCR外,還包括有度量日志和AIK證書,通過驗證AIK證書、AIK簽名和nonce的合法性證實平臺的身份。挑戰者將PCR值與期望值比較可以驗證被證明平臺的可信性。
在進行遠程證明時,挑戰者是用另一臺安全的計算機來校驗狀態信息,但當挑戰者要判斷本地機器是否被攻陷,意味著本機有可能是不可信的。如果本機已經被攻擊者控制,那么可信判斷所得到的結果就會被攻擊者篡改,挑戰者就會受到欺騙。?
Seal操作是將數據或密鑰與一組指定的PCR狀態綁定,只有當這組PCR的值符合特定的一組值時,這些數據和密鑰才能夠被釋放出來。將數據的可訪問性與機器狀態綁定,操作系統或者用戶能夠在特定的機器狀態訪問某些被Seal的數據,機器狀態(PCR值)改變之后數據就不在可訪問。當要判斷機器是否可信,用戶可以要求TPM對這條秘密信息執行Unseal操作。

3 遠程證明?
? ? 遠程證明是通過一個典型的“挑戰-應答”協議來實現的,一個平臺(挑戰者)向另一個平臺(證明者)發送一個挑戰證明的消息和一個隨機數(nonce),要求獲得一個或者多個PCR值對證明者的平臺狀態進行證明。每個TPM擁有唯一的背書密鑰(Endorsement Key),為了盡量減少隱私的泄漏,TCG規定不能使用EK用作身份認證,而使用身份認證密鑰AIK以作為EK的別名。TPM使用EK生成AIK,并通過PCA簽發的 AIK證書來完成身份認證。

遠程證明是一個綜合完整性校驗和身份鑒別的過程,向驗證者提供了一份可信的平臺狀態報告。遠程證明流程:(1)遠程挑戰者產生一個隨機數nonce對可信平臺客戶端發起挑戰請求,指定要求的PCR寄存器編號。(2)配備TPM的客戶端與TSS交互,載入AIK,調用Tspi_TPM_Quote接口對指定的PCR進行簽名。Tspi_TPM_Quote接口的輸入包括TPM對象句柄,簽名密鑰對象的句柄, PCR組件對象(含需要簽名的PCR索引號)以及對PCR簽名的相關信息。對PCR簽名的相關信息包含輸入數據和輸出數據,輸入數據指定完成簽名需要的額外數據如nonce,輸出數據記錄簽名成功后獲取到的TSS_PCRS_STRUCT_INFO結構和簽名的PCR值。(3)經過簽名的PCR值和對應的度量日志的摘要和AIK證書被反饋給挑戰者。(4)挑戰者驗證摘要數據塊的簽名,檢查nonce。這一步驟驗證AIK簽名的合法性。挑戰者從TSS_PCRS_STRUCT_INFO中獲取到PCR值,與nonce串聯后計算其哈希值,得到SHA1(PCR||nonce);另外使用AIK證書的公鑰解密已簽名的PCR值 ,得到RSA_DecAIK(Quote),如果SHA1(PCR||nonce)== RSA_DecAIK(Quote)則AIK簽名是合法的,否則PCR值是已被篡改的或者nonce不是新鮮的。(5)挑戰者驗證AIK證書的合法性,是否為CA所簽發,AIK證書是否仍在有效期內。(6)挑戰者基于客戶端狀態做出下一步動作的決定,即對比PCR摘要值是否與期望值相符,其關鍵是用戶讀取度量日志(SML)重新計算期望值的過程。


3.1 隱私CA(PCA)?
AIK證書是由PCA(Privacy CA,隱私CA)創建的,創建流程如下:配備TPM的客戶端調用TPM_MakeIdentity以創建AIK密鑰;TSS組織AIK請求,包括AIK公鑰部分和TPM的EK證書;客戶端用PCA公鑰對AIK請求進行加密,并將加密數據發送給PCA;PCA驗證AIK請求,包括檢查請求中EK證書的合法性;PCA簽署AIK證書,使用客戶端的EK公鑰進行加密,然后將數據發送到客戶端;客戶端調用TPM_ActivateIdentity以獲得AIK證書。

?
區別傳統CA的證書離線創建,AIK證書的創建過程是在線、自動進行的。通常證書請求者需要向證書注冊機構(Register Authority, RA)寄送書面請求報告,以便RA對證書進行離線審核。AIK證書的在線創建基于“TPM是可信的”這個前提,從而免去了證書請求審核過程。使用PCA進行遠程證明也有不足之處:PCA與驗證方合謀泄漏TPM平臺的身份,驗證方進行AIK證書驗證時需要驗證PCA證書的合法性,PCA了解AIK證書對應的EK證書;AIK證書創建時的效率問題,大量在線的AIK證書創建請求可能帶來瓶頸。

3.2直接匿名認證(DAA)?
TPM平臺、DAA簽署方(Issuer)和DAA驗證方。加入(Join)和簽名/驗證(Sign/Verify)。Join:簽署方驗證TPM平臺,并為TPM平臺簽署DAA證書。Sign/Verify:TPM使用DAA證書與驗證方進行交互,驗證方通過“零知識證明”可以在不違背TPM平臺隱私前提下對DAA進行驗證,DAA協議支持黑名單功能,識別被攻陷的TPM。匿名認證的好處:DAA簽署方不能把AIK的簽署和EK聯系在一起;兩個DAA簽名不能夠區分是否來自同一TPM。DAA協議流程如下所示,它作為PCA的一種替代方案,驗證方在進行證書驗證過程中不需要了解PCA的信息,避免了驗證方和PCA的合謀,TPM和DAA簽署方交互一次,可生成多個AIK證書,解決了可擴展性/可用性。


4 數據保護 ?
可信平臺的基本原則:必須真實報告系統的狀態,同時不能暴露密鑰和盡量不表露自己的身份。數據安全保護是可信平臺的核心功能之一 ,數據安全保護就是通過密鑰對數據采用特定的保護方式進行處理,基本單元包括:密鑰、數據、數據保護方式。用于數據安全保護的密鑰分為對稱密鑰和非對稱密鑰,被保護的數據可以是任何數據。數據安全保護方式包括:數據加解密、數據封裝、數字信封等方式。?
保護區域:一塊可信平臺模塊中存放敏感信息的存儲區,能夠安全操作敏感數據的地方。 可信平臺模塊提供的可以對被保護區域進行訪問的功能,以命令的形式提供。通過建立平臺的保護區域,實現對敏感數據的訪問授權,從而控制外部實體對這些敏感數據的訪問。 ? ? 使用TPM內部固件和邏輯電路來處理指令,所以它不依賴于操作系統,也不會受到外部軟件漏洞的影響;TPM芯片具有很好的物理防篡改性;TPM支持綁定和密封等操作。

內置了TPM的計算機能夠創建加密密鑰并對其進行加密,以便只能由TPM解密,此過程通常稱為數據綁定,即將綁定密鑰與數據進行綁定。主覆蓋/綁定密鑰:“存儲根密鑰(Storage Root Key,SRK)”,存儲在TPM的內部。

內置了TPM的計算機可以創建一個密鑰,該密鑰被關聯到特定硬件或軟件條件,這稱為密封密鑰。首次創建密封密鑰時,TPM將記錄配置值和文件哈希的快照,僅在當前系統值與快照中的值相匹配時才解密封或釋放密封密鑰。用戶在他的計算機上保存自己的日記,但是不希望其他的程序或計算機讀取,使用密封密鑰進行密封操作,就能保證該日志只有在該計算機上的未被修改的日記軟件才可以打開,轉發到別的計算機或篡改用戶的日記軟件導致系統狀態的改變,無法獲得密鑰解密日志,該日志文件也不能被讀取。

不同類型密鑰具有不同的安全需求,體現在密鑰的產生、傳輸、存儲、備份、銷毀等主要環節。對密鑰按照功能劃分并限制它們的使用,很大程度上可以增強系統的安全性,存儲密鑰、簽名密鑰、平臺身份認證密鑰、綁定密鑰、密封密鑰、派生密鑰、鑒別密鑰。 ? ? ? ? ??
可遷移密鑰與不可遷移密鑰,可遷移存儲密鑰并不局限于某個特定平臺,可以由平臺用戶的控制下在平臺之間遷移。不可遷移密鑰則永久地與某個指定平臺關聯,不可遷移密鑰能夠用來加密保護可遷移密鑰,反之則不行。可遷移密鑰用于在多個平臺上使用同一密鑰所加密的數據,關鍵數據復制到另一個平臺上使用。優點:單用戶多平臺;多用戶多平臺的安全共享。可以將數據從一個發生故障的平臺備份并恢復到一個新的平臺上。不可遷移密鑰可用于一個并且只能用于一個TPM,如果系統或 TPM 發生故障,所有不可遷移密鑰以及與它們關聯的所有數據將不可訪問,而且無法恢復,安全級別高。

每種類型都附加了一些約束條件以限制其應用,TCG 的密鑰可以粗略的分類為簽名密鑰和存儲密鑰,更進一步的分類有:平臺、身份認證、綁定、普通和繼承密鑰,對稱密鑰被單獨分類為驗證密鑰,非對稱密鑰大多要求 2048 位的RSA密鑰。在整個密鑰體系中,每個密鑰在被創建的時候都指定了固定的密鑰屬性。

存儲密鑰(Storage Keys) 用來加密數據和其它密鑰的通用非對稱密鑰,存儲密鑰可用來封裝外部管理的數據和密鑰,遵循PKCS#1版本2.0的規范。 ?存儲根密鑰(Storage Root Key,SRK)是存儲密鑰的一個特例,是整個系統中最高權限的存儲密鑰。在每個用戶創建的時候生成,管理著這個用戶的所有數據,也就是存儲可信根 (Root of Trust for Storage,RTS)。它和簽署密鑰(Endorsement Key,EK)一起,是唯一存放在TPM內部的密鑰。所有其他的密鑰都在存儲根密鑰的保護之下。

通用非對稱密鑰,用于對應用數據和信息簽名,簽名密鑰可以是可遷移或者不可遷移的 ,遵循RSA簽名密鑰的標準。背書密鑰(Endorsement Key,EK)是TPM平臺的一個不可遷移的身份認證密鑰,代表著每個平臺的真實身份,每個平臺都擁有唯一的一個,它是TPM唯一的密碼身份標識,在確立平臺所有者時,用于解密所有者的授權數據,以及解密與生成AIK相關的數據,背書密鑰從不用作數據加密和簽名,主要功能是生成身份證明密鑰(AIK)和建立TPM平臺的所有者,由TPM的所有者來生成存儲根密鑰。EK產生的條件:(1)EK在最初創建時就必須是保密的;(2)EK創建時,設備必須是真實的,并且是沒有被篡改的;(3)密碼算法的缺點不會危及該私密信息的安全;(4)設備的各項操作不會導致EK泄露。EK產生方法:采用TPM命令,TCG規范定義了一組背書密鑰操作命令,創建背書密鑰對的命令為TPM_CreateEndorsementKeyPair;密鑰“注入”技術,在信任制造商的前提下,由TPM制造商產生背書密鑰對,然后采用人工方式注入,比如鍵盤輸入、軟盤輸入絕對可靠。采用密鑰槍或密鑰軟盤應與鍵盤輸入的口令相結合,并建立一定的接口規范,只有在輸入了合法的加密操作口令后,才能激活密鑰槍或軟盤里的密鑰信息;密鑰裝入后,應將使用過的存儲區清零,防止一切可能導出密鑰殘留信息的事件發生。

TPM硬件安全:在TPM中,可以采用篡改檢測電路和篡改檢測協議技術,確保當攻擊者試圖采用物理攻擊TPM內的私密信息(包括EK)時能自動銷毀;采用硬件鎖機制,建立受保護頁面以防止特權軟件盜取或者修改私密信息,保證私密信息的隱私性和完整性。?
平臺身份認證密鑰AIK是不可遷移密鑰,專用于對TPM產生的數據(如TPM功能和PCR值等)進行簽名,用來證明平臺的身份和平臺的環境配置,AIK產生過程中需要可信第三方PCA的支持。AIK證書產生:平臺必須設法將這些簽過名的聲明和Hash值與PCA信任的某些證書綁定。TPM背書證書(Endorsement Credential,EndCred):TPM制造商簽發;平臺證書(Platform Credential,PlatCred):由計算機平臺制造商簽發;一致性證書(Conformance Credential,ConCred):用來聲明和證實一類計算平臺的實現符合TCG的哪些規范,符合哪些安全要求。TPM→PCA:IdPub,EndCred,PlatCred,ConCred,Sign(IdPri,Hash);TPM←PCA:Enc(EndPub,IdCred)。


AIK在整個身份證明過程不能重復,而且每次證明過程都需要重新生成新的AIK,所以AIK不需要常駐TPM,可以保存到密鑰庫服務器中。當需要AIK時,使之加載到TPM的易失性存儲設備中。當AIK泄露,TPM EK遭受攻擊,安全性受到威脅,或者AIK證書泄露與相關EK證書的關系(實際上AIK不應暴露EK的任何信息)等情況時,AIK應該被銷毀,同時相應的證書應該被撤銷。PCA應該被告知該AIK已經不再安全,更新證書CRL服務中的撤銷證書列表;與PKI不同的是,AIK證書與背書證書的關系密切,在AIK證書撤銷時要決定如何處理相關的證書,情況比較復雜。



綁定密鑰(Binding Keys):用于在一個平臺中加密小規模的數據。由于使用平臺所特有的密鑰進行加密,所以與該平臺綁定。這個密鑰的用法同傳統非對稱密鑰加密相同?
內置了TPM的計算機可以創建一個密鑰,該密鑰不僅被綁定,而且還被連接到特定硬件或軟件條件,這稱為密封密鑰。首次創建密封密鑰時,TPM將記錄配置值和文件哈希的快照,僅在這些當前系統值與快照中的值相匹配時才解封或釋放密封密鑰。 ?
派生密鑰(Legacy Keys)在TPM之外生成,它們被定義為可遷移的,在被用來簽名或加密之后才會載入TPM,用在一些需要在平臺之間傳遞數據的場合。鑒別密鑰(Authentication Keys)是用來保護涉及TPM傳輸會話的對稱密鑰。

由于TPM的空間有限,有些密鑰以加密的形式存放到外部存儲區中,當要使用這些密鑰時,首先通過TSS在密鑰緩沖池中查找并判斷此密鑰是否已經存在。若存在,則說明此密鑰信息已經存在于TPM內部,不需要重新加載,直接可以在TPM中使用;否則就需要進行加載。TPM密鑰管理分為內部密鑰管理和外部密鑰管理,它們的主要區別在于密鑰在TPM內部是明文存儲的,而在外部是以密文存儲的。在所有密鑰中,只有兩組密鑰對永久的存儲在TPM內部,即EK和SRK。其他密鑰在不使用時由父密鑰加密后存儲在外部存儲設備中,需要時加載到TPM的保護區域。TPM里面的密鑰生成器用于生成密鑰,可生成的密鑰包括非對稱密鑰和對稱密鑰,TPM可以向外部實體提供非對稱密鑰,也可以提供對稱密鑰,而隨機數生成器生成的隨機數將作為密鑰生成器生成密鑰的基礎。

TPM中的密碼協處理器實現密碼運算操作,包括非對稱密碼運算操作和對稱密碼運算操作,但是對稱密碼運算操作僅限于TPM內部使用,TPM不對外提供對稱密碼運算操作接口。協處理器作為硬件算法加速器,主要完成模冪,模乘,模加運算。協處理器以改進的蒙格馬利算法(Montgomery)為基礎,以位加法器和位乘法器為核心,通過使用總線仲裁、總線凍結及流水線等設計手段和設計技術完成算法的硬件加速功能。為了在TPM內部生成密鑰,必須有一個內部的隨機數生成器(RNG),多數TPM用偽隨機數生成器(PRNG)代替真實的隨機數生成器,偽隨機數產生器周期性地從計時器或其他TPM熵源中獲取輸入,并將熵轉換為種子。?
TCG規范中外部實體是有密碼運算能力的獨立的安全實體,需要具備密鑰、通過安全協議才能夠訪問TPM的服務。授權數據是外部實體訪問TPM過程中用于建立安全會話,保護通信過程的密鑰。











總結

以上是生活随笔為你收集整理的TPM功能介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。