信賴平台模組

安全密码处理器的国际标准 来自维基百科,自由的百科全书

信賴平台模組

信賴平台模組,或受信任的平台模組(英語:Trusted Platform Module,縮寫:TPM),是一項安全密碼處理器英語Secure cryptoprocessor國際標準,旨在使用裝置中整合的專用微控制器(安全硬體)處理裝置中的加密金鑰。TPM的技術規範英語Specification (technical standard)由稱為可信計算組織英語Trusted Computing Group(TCG)的資訊業聯合體編寫。國際標準化組織(ISO)和國際電工委員會(IEC)已於2009年將規範標準化為ISO/IEC 11889[1]

Thumb
符合TPM 1.2版標準的受信任的平台模組的組件

中華人民共和國商用密碼產品銷售管理以前規定「任何單位或個人不得銷售境外的密碼產品」,因此早期市場銷售的資訊裝置不搭載TPM。[2]

歷史

信賴平台模組(TPM)由一個名為可信計算組織英語Trusted_Computing_Group(TCG)的資訊業聯合體構思。它發展成為《TPM主要規範版本1.2》(英語:TPM Main Specification Version 1.2),該規範於 2009 年由國際標準化組織(ISO)和國際電工委員會(IEC)標準化,編號為ISO/IEC 11889:2009。[3]《TPM主要規範版本1.2》版本修訂116於2011年3月3日完成修訂並最終確定。[4][5]

2014 年4月9日,可信計算組織英語Trusted_Computing_Group宣布對其規範進行重大升級,命名為《TPM媒體櫃規範2.0》(英語:TPM Library Specification 2.0)。[6]該組織繼續致力於該標準的工作,包括勘誤表、演算法添加和新命令,其最新版本於2019年11月發布,版本號為2.0。[7]該版本成為ISO/IEC 11889:2015標準。

當新版本發布時,可信計算組織將其分為多個部分。每個部分都包含一個文件,這些文件構成了新TPM規範的全部內容。

  • 第1部分:架構(更名自「設計原則」)
  • 第2部分:TPM的結構
  • 第3部分:命令
  • 第4部分:支援常式(增加於TPM 2.0)

概述

信賴平台模組(TPM)提供:

  • 硬體亂數生成器[8][9]
  • 用於安全生成有限用途的加密金鑰的設施。
  • 遠端認證: 建立硬體和軟體組態的幾乎不可偽造的雜湊金鑰摘要。可以使用雜湊值來驗證硬體和軟體是否已被更改。負責對設定進行雜湊處理的軟體決定摘要的範圍。
  • 繫結英語Late_binding: 資料使用TPM繫結金鑰進行加密,TPM繫結金鑰是從儲存金鑰衍生的唯一RSA金鑰。包含TPM的電腦可以建立加密金鑰並對其進行加密,以便只有TPM才能解密它們。此過程通常稱為包裝或繫結金鑰,有助於保護金鑰不被洩露。每個TPM都有一個主包裝金鑰,稱為儲存根金鑰,它儲存在TPM本身中。使用者級RSA金鑰容器與特定使用者的Windows使用者設定檔一起儲存,可用於加密和解密在該特定使用者身分下執行的應用程式的資訊。[10][11]
  • 密封儲存英語Sealed storage: 指定要解密(解封)資料的TPM狀態。[12][13]
  • 其他可信計算功能,用於解密(解封)資料。[14]

電腦程式可以使用TPM進行硬體裝置的身分驗證,因為每個TPM晶片在生產時都燒錄了一個唯一的金鑰背書金鑰 (EK)。嵌入硬體的安全性比純軟體解決方案提供了更多保護。[15]在某些國家/地區,其使用受到限制。[16]

用途

平台完整性

TPM的主要用途是確保平台的完整性。在這種情況下,「完整性」意味著「按預期執行」,「平台」是指任何電腦裝置,無論其作業系統如何。這是為了確保引導過程從硬體和軟體的可信組合開始,並持續到作業系統完全啟動並執行應用程式

當使用TPM時,韌體和作業系統負責確保完整性。

例如,統一可延伸韌體介面(UEFI)可以使用TPM來形成信任根英語Trust_anchor:TPM包含多個平台組態暫存器(PCR),允許安全儲存和報告與安全相關的指標。這些指標可用於檢測先前組態的更改並決定如何繼續。此類用例可以在Linux統一金鑰設定(LUKS)、 [17]BitLocker[18]和PrivateCore vCage主記憶體加密中找到。(見下文。)

通過TPM實現平台完整性的另一個範例是使用Microsoft Office 365許可和Outlook Exchange。[19]

TPM 用於平台完整性的另一個例子是可信執行技術英語Trusted_Execution_Technology(TXT),它建立了一個信任鏈。它可以遠端證明電腦正在使用指定的硬體和軟體。[20]

磁碟加密

全磁碟加密實用程式(例如dm-crypt)可以使用此技術來保護用於加密電腦儲存裝置的金鑰,並為包括韌體和引導磁區在內的可信引導路徑提供完整性身分驗證[21]

其他用途和問題

任何應用程式都可以將TPM晶片用於:

還存在其他用途,其中一些用途引發了隱私問題。TPM的「物理存在」功能通過要求對諸如啟用、停用、清除或更改 TPM 所有權等操作進行 BIOS/UEFI 級別的確認來解決其中一些問題,該確認由實際出現在機器控制台的人員執行。[24][25]

機構使用

美國國防部(DoD)規定「為支援國防部而採購的新電腦資產(例如,伺服器、桌上型電腦、筆記型電腦、瘦客戶端、平板電腦、智慧型手機、個人數字助理、行動電話)將包括TPM 1.2或更高版本,其中國防資訊系統局英語Defense_Information_Systems_Agency(DISA)安全技術實施指南英語Security_Technical_Implementation_Guide(STIG)要求,並且此類技術可用。」國防部預計TPM將用於裝置辨識、身分驗證、加密和裝置完整性驗證。[26]

TPM實現

Thumb
安裝在主機板上的ASUS信賴平台模組

筆記型電腦

2006年,開始銷售內建TPM晶片的新筆記型電腦。未來,這個概念可以與電腦中現有主機板晶片或可以使用 TPM 功能的任何其他裝置(例如手機)共存。在PC上,LPC匯流排串行外設介面(SPI)匯流排用於連接到TPM晶片。

可信計算組織英語Trusted_Computing_Group(TCG)已經認證了由英飛凌科技新唐科技意法半導體製造的TPM晶片,[27]並已將TPM供應商ID分配給超威半導體愛特梅爾博通IBM、英飛凌、英特爾聯想美國國家半導體、Nationz Technologies、新唐科技、高通瑞昱半導體標準微系統公司、意法半導體、三星、Sinosun、德州儀器華邦電子[28]

TPM 2.0 實現

TPM 2.0有五種不同實現類型(按安全性從高到低排列):[29][30]

  • 獨立TPM 是在其自己的防篡改半導體封裝中實現TPM功能的專用晶片。它們是最安全的,通過了 FIPS-140 認證,具有3級物理安全[31],相對於軟體中實現的常式,它們對攻擊的抵抗力更強,並且它們的封裝需要實現一定的防篡改能力。例如,汽車制動控制器中的TPM通過複雜的方法防止駭客入侵。[32]
  • 整合TPM 是另一個晶片的一部分。雖然它們使用可以抵抗軟體錯誤的硬體,但它們不需要實現防篡改功能。英特爾已在其部分晶片組中整合了TPM。
  • 韌體TPM(fTPM)是基於韌體(例如 UEFI)的解決方案,在 CPU 的可信執行環境中執行。英特爾、AMD 和高通已經實現了韌體 TPM。
  • 虛擬TPM(vTPM)由虛擬機器內部執行的軟體隱藏的隔離執行環境中的虛擬機器監控程式提供並依賴於該程式,以保護其程式碼免受虛擬機器中軟體的攻擊。它們可以提供與韌體 TPM 相當的安全級別。谷歌雲平台已經實現了vTPM。[33]
  • 軟體TPM 是 TPM 的軟體仿真器,其執行時獲得的保護不超過作業系統中常規程式獲得的保護。它們完全依賴於執行環境,因此它們提供的安全性不超過正常執行環境可以提供的安全性。它們對於開發目的很有用。

開源實現

TPM 2.0規範的官方TCG參考實現由微軟開發。它在BSD許可證下獲得許可,並且原始碼可在GitHub上獲得。[34]

2018 年,英特爾開源了其信賴平台模組2.0(TPM2)軟體棧,支援Linux和Microsoft Windows。[35]原始碼代管在GitHub上,並在BSD許可證下獲得許可。[36][37]

英飛凌資助開發了一個開源TPM中介軟體,該中介軟體符合TCG的軟體棧(TSS)增強系統API(ESAPI)規範。[38]它由弗勞恩霍夫協會安全資訊科技研究所(SIT)開發。[39]

IBM的軟體TPM 2.0是TCG TPM 2.0規範的實現。它基於TPM規範第3部分和第4部分以及微軟捐贈的原始碼。它包含完成實現的其他檔案。原始碼代管在 SourceForge[40]GitHub[41] 上,並在 BSD 許可證下獲得許可。

2022 年,AMD宣布,在某些情況下,他們的fTPM實現會導致效能問題。BIOS更新中提供了修復程式。[42][43]

TPM 1.2與TPM 2.0

雖然TPM 2.0涵蓋了許多相同的用例並具有相似的功能,但細節有所不同。TPM 2.0不向下相容TPM 1.2。[44][45][46]

更多資訊 規範, TPM 1.2 ...
規範 TPM 1.2 TPM 2.0
架構 完整的規範旨在包含一個特定於平台的保護設定檔,該設定檔參照了一個通用的三部分TPM 1.2 媒體櫃。[5]實際上,只為TPM 1.2建立了一個PC客戶端保護設定檔。PDA蜂窩的保護設定檔原本打算定義,[5]但從未發布。 完整的規範包含一個特定於平台的規範,該規範參照了一個通用的四部分TPM 2.0媒體櫃。[47][7] 特定於平台的規範定義了該平台的媒體櫃的哪些部分是強制性的、可選的或禁止的;並詳細說明了該平台的其他要求。[47] 特定於平台的規範包括PC客戶端,[48]行動裝置,[49]和Automotive-Thin。[50]
演算法 SHA-1RSA是必需的。[51] AES 是可選的。[51]三重DES曾經是早期版本TPM 1.2中的可選演算法,[52] 但已從TPM 1.2版本103中刪除。[53] PKCS#1中定義的MGF1基於雜湊的遮罩生成函式是必需的。[51] PC客戶端平台TPM設定檔(PTP)規範要求使用SHA-1SHA-256進行雜湊處理;RSA、使用NIST P-256曲線的ECC用於公鑰密碼學和非對稱數位簽章生成和驗證;HMAC 用於對稱數位簽章生成和驗證;128位元AES用於 對稱金鑰演算法;TCG PC客戶端平台 TPM 設定檔(PTP)規範要求使用PKCS#1中定義的MGF1基於雜湊的遮罩生成函式。[54]還定義了許多其他演算法,但它們是可選的。[55]請注意,三重DES已添加到 TPM 2.0媒體櫃中,但有限制以拒絕弱金鑰英語Weak_key[56]此外,在早期版本中強制要求的、使用 Barreto-Naehrig ECC曲線的橢圓密碼學直接匿名證明英語Direct_Anonymous_Attestation(ECDAA)在PC客戶端設定檔版本 1.59 中已變為可選。[54]
密碼原語 亂數生成器公鑰加密演算法加密雜湊函式、遮罩生成函式、數位簽章 生成和驗證以及直接匿名證明英語Direct_Anonymous_Attestation是必需的。[51]對稱金鑰演算法互斥或 是可選的。[51]金鑰生成也是必需的。[57] TCG PC客戶端平台TPM設定檔(PTP)規範要求使用亂數生成器公鑰加密演算法加密雜湊函式對稱金鑰演算法數位簽章生成和驗證、遮罩生成函式和互斥或[54]對於TCG PC客戶端平台TPM設定檔(PTP)規範,使用Barreto–Naehrig 256位曲線的基於ECC直接匿名證明英語Direct_Anonymous_Attestation是可選的。[54]TPM 2.0通用媒體櫃規範還要求金鑰生成金鑰衍生函式[58]
層級 一個(儲存) 三個(平台、儲存和背書)
根金鑰 一個(SRK RSA-2048) 每個層級多個金鑰和演算法
授權 HMAC、PCR、局部性、物理存在 密碼、HMAC和策略(涵蓋 HMAC、PCR、局部性和物理存在)。
NVRAM 非結構化資料 非結構化資料、計數器、點陣圖、擴充、PIN通過與否。
關閉

TPM 2.0策略授權包括1.2 HMAC、局部性、物理存在和PCR。它添加了基於非對稱數位簽章的授權、對另一個授權金鑰的間接授權、計數器和時間限制、NVRAM值、特定命令或命令參數以及物理存在。它允許對這些授權原語進行AND和OR運算以構建複雜的授權策略。[59]

接受度

中華人民共和國商用密碼產品銷售管理以前規定「任何單位或個人不得銷售境外的密碼產品」,因此早期市場銷售的資訊裝置不搭載TPM。[2]2005年前後,中國開始推行國產密碼技術TCM系統(Trusted Cryptographic Module)。[60]

可信計算組織英語Trusted_Computing_Group(TCG)在某些領域推廣這項技術時遇到了阻力,一些作者認為這項技術可能存在與可信計算無關的用途,這可能會引發隱私問題。這些擔憂包括濫用軟體遠端驗證來決定允許執行哪些軟體,以及可能以使用者完全無法察覺的方式將使用者採取的操作記錄到資料庫中。[61]

TrueCrypt磁碟加密實用程式及其衍生產品VeraCrypt不支援TPM。最初的TrueCrypt開發人員認為,TPM的唯一目的是「防止需要攻擊者擁有管理員權限或物理訪問電腦的攻擊」。對電腦擁有物理或管理存取權限的攻擊者可以繞過TPM,例如,通過安裝硬體擊鍵記錄器、重設TPM或擷取主記憶體內容並檢索TPM發出的金鑰。譴責性文字甚至聲稱TPM完全是多餘的。[62]VeraCrypt發布者複製了最初的說法,除了將「TrueCrypt」替換為「VeraCrypt」之外沒有任何更改。[63]作者的觀點是正確的,即在獲得不受限制的物理存取權限或管理員權限後,繞過現有的其他安全措施只是時間問題。[64][65]但是,阻止擁有管理員權限的攻擊者從來都不是TPM的目標之一(有關詳細資訊,請參閱§ 用途),並且TPM可以阻止某些物理篡改[17][20][23][24][25]

2015 年,理察·斯托曼建議將「可信計算」一詞替換為「背叛計算」,因為如果密碼金鑰對使用者保密,則電腦可能會被設定為系統地不服從其所有者。他還認為,2015年用於PC的TPM目前並不危險,並且沒有理由在電腦中包含TPM或在軟體中支援TPM,因為業界嘗試使用該技術進行DRM的嘗試失敗了,但2022年發布的TPM2正是他警告過的「背叛計算」威脅。[66]

攻擊

2010年,克里斯多福·塔爾諾夫斯基英語Christopher_Tarnovsky黑帽大會上展示了針對TPM的攻擊,他聲稱能夠從單個TPM中提取秘密。在對Infineon SLE 66 CL PC插入探針並監視內部匯流排進行6個月的研究後,他成功實現了這一點。[67][68]

如果存在物理存取權限,則配備TPM 1.2的電腦容易受到冷啟動攻擊,只要系統處於開啟狀態或可以在不輸入密碼的情況下從關機、睡眠休眠狀態啟動即可,這是使用BitLocker全磁碟加密的Windows電腦的預設設定。[69]有人提出了一種修複方法,該方法已在TPM 2.0規範中採用。

2009 年,TPM 1.2中共享授權資料的概念被發現存在缺陷。獲得資料存取權限的攻擊者可以欺騙來自TPM的回應。[70]有人提出了一種修複方法,該方法已在TPM 2.0規範中採用。

2015年,作為史諾登事件英語2010s_global_surveillance_disclosures的一部分,據透露,美國中央情報局的一個團隊在2010年的一次內部會議上聲稱,他們對TPM進行了差分功率分析攻擊,並成功提取了秘密。[71][72]

2017年11月之前的主要可信啟動英語Trusted_Execution_Technology#TBOOT行版都受到測量動態信任根(DRTM)攻擊(CVE-2017-16837)的影響,該攻擊會影響在英特爾可信執行技術(TXT)英語Trusted_Execution_Technology#TBOOT上執行啟動常式的電腦。[73]

2018年,有人報告了用於測量靜態信任根(SRTM)的TPM 2.0規範中的一個設計缺陷(CVE-2018-6622)。它允許攻擊者重設和偽造平台組態暫存器,這些暫存器旨在安全地儲存用於啟動電腦的軟體測量值。[74]修復它需要特定於硬體的韌體修補程式。[74]攻擊者濫用電源中斷和TPM狀態恢復來欺騙TPM,使其誤以為它在未被篡改的組件上執行。[73]

2021年,Dolos Group展示了對獨立TPM的攻擊,其中TPM晶片本身具有一定的防篡改能力,但其通訊匯流排的其他端點卻沒有。他們在全磁碟加密金鑰通過主機板傳輸時讀取了它,並使用它解密了筆記型電腦的SSD。[75]

2017年弱金鑰生成爭議

2017年10月,據報道,由英飛凌開發並在其TPM中廣泛使用的程式碼媒體櫃包含一個名為ROCA的漏洞,該漏洞會生成弱RSA金鑰對,從而允許從公鑰推斷出私鑰。因此,所有依賴此類弱金鑰的隱私的系統都容易受到攻擊,例如身分盜竊或欺騙。[76]

將加密金鑰直接儲存在TPM中而不進行盲化英語Blinding_(cryptography)的密碼系統可能特別容易受到此類攻擊,因為如果攻擊者可以提取加密金鑰,則密碼和其他因素將毫無意義。[77]

英飛凌已向使用其TPM的製造商發布了韌體更新。[78]

可用性

目前,幾乎所有PC和筆記型電腦製造商都在其產品中提供了TPM。

TPM

TPM 由多家供應商提供:

  • 英飛凌提供TPM晶片和TPM軟體,它們作為 OEM 版本隨新電腦一起交付,英飛凌還單獨提供符合TCG標準的TPM技術產品。例如,英飛凌在2004年向Broadcom公司授權了TPM管理軟體。[79]
  • 微芯(前身為 Atmel)製造的TPM裝置聲稱符合信賴平台模組規範1.2版修訂版116,並提供多種介面(LPC、SPI 和 I2C)、模式(FIPS 140-2 認證和標準模式)、溫度等級(商用和工業級)和封裝(TSSOP和QFN)。[80][81][82] 其TPM支援PC和嵌入式裝置。[80]它還提供 TPM 開發套件,以支援將其TPM裝置整合到各種嵌入式設計中。[83]
  • 新唐科技為PC應用程式提供 TPM 裝置。新唐還通過 I2C 和 SPI 主機介面為嵌入式系統和物聯網(IoT)應用程式提供TPM裝置。新唐的TPM符合共同準則(CC),保證等級為EAL 4,並增加了ALC_FLR.1、AVA_VAN.4 ALC_DVS.2,FIPS_140-2英語FIPS_140-2等級為2,物理安全性和EMI/EMC等級為3,並符合可信計算組織英語Trusted_Computing_Group的要求,所有這些都在一個裝置中得到支援。華邦電子生產的TPM現在是新唐的一部分。[84]
  • 意法半導體自2005年以來一直為PC平台和嵌入式系統提供TPM。產品包括[85]具有多個介面的獨立裝置,支援串行外設介面(SPI)和I²C以及不同的認證等級(消費級、工業級和汽車級)。TPM產品已通過共同準則(CC)認證EAL4+,並增加了ALC_FLR.1和 AVA_VAN.5,FIPS_140-2英語FIPS_140-2 2級認證,物理安全等級為3,並且還通過了可信計算組織英語Trusted_Computing_Group(TCG)認證。

還有混合類型;例如,TPM 可以整合到乙太網路控制器中,從而無需單獨的主機板組件。[86][87]

現場升級

現場升級是TCG用於更新TPM韌體的術語。更新可以在TPM 1.2和TPM 2.0之間,或在韌體版本之間進行。一些供應商限制了1.2和2.0之間的轉換次數,而一些供應商則限制轉返到以前的版本。[來源請求]平台OEM(如惠普[88]提供升級工具。

自2016年7月28日起,所有新的Microsoft裝置型號、系列或系列(或通過重大更新(如 CPU、顯示卡)更新現有型號、系列或系列的硬體組態)都預設實現並啟用了TPM 2.0。

雖然TPM 1.2部件是獨立的矽組件,通常焊接到主機板上,但TPM 2.0可以作為獨立的(dTPM)矽組件在一個半導體封裝中使用,也可以作為整合組件併入一個或多個半導體封裝中——與同一封裝中的其他邏輯單元一起使用,還可以作為基於韌體(fTPM)的組件在通用片上系統(SoC)上的可信執行環境(TEE)中執行。[89]

虛擬TPM

  • Google計算引擎將虛擬化TPM(vTPM)作為Google Cloud的Shielded VM產品的一部分提供。[90]
  • libtpms 媒體櫃提供了信賴平台模組(TPM 1.2 和 TPM 2.0)的軟體仿真。它的目標是將 TPM 功能整合到虛擬機器管理程式中,主要是整合到Qemu中。[91]

作業系統

平台

  • 谷歌在其安全模型中將TPM包含在Chromebook中。[99]
  • 甲骨文在其 X 系列和T系列系統(如 T3 或 T4 系列伺服器)中提供TPM。[100]Solaris 11中包含對此的支援。[101]
  • 2006年,隨著首批採用英特爾處理器的Macintosh機型的推出,蘋果開始在Mac中配備TPM。蘋果從未提供過官方驅動程式,但有一個GPL下的埠可用。[102]自2006年以來,蘋果就沒有推出過配備TPM的電腦。[103]
  • 2011年,台灣製造商微星推出了其Windpad 110W平板電腦,該平板電腦配備了AMD CPU和英飛凌安全平台TPM,並預裝了3.7版控制軟體。該晶片預設情況下處於禁用狀態,但可以使用隨附的預安裝軟體啟用。[104]

虛擬化

  • VMware ESXi虛擬機器管理程式自4.x版本開始支援TPM,從5.0版本開始預設啟用。[105][106]
  • Xen虛擬機器管理程式支援虛擬化TPM。每個guest都獲得其自己唯一的、類比的軟體TPM。[107]
  • KVMQEMU結合使用,支援虛擬化 TPM。截至2012年 (2012-Missing required parameter 1=month!),它支援將物理TPM晶片直通到單個專用guest。2017年12月發布的QEMU 2.11還為guest提供了類比 TPM。[108]
  • VirtualBox從2022年10月發布的7.0版本開始支援虛擬TPM 1.2和2.0裝置。[109]

軟體

  • 微軟作業系統Windows Vista及更高版本將該晶片與其包含的名為BitLocker的磁碟加密組件結合使用。微軟曾宣布,從2015年1月1日起,所有電腦都必須配備TPM 2.0模組才能通過Windows 8.1硬體認證英語Hardware_certification[110]但是,在2014 年 12月對Windows認證計劃的審查中,這成為了一項可選要求。但是,連接待機英語InstantGo系統需要TPM 2.0。[111] 從Windows 10 1511和Windows Server 2016開始,在 Hyper-V 上執行的虛擬機器可以擁有自己的虛擬 TPM 模組。[112] Microsoft Windows 包含兩個與 TPM 相關的命令tpmtool(可用於檢索有關 TPM 資訊的實用程式)和tpmvscmgr(允許在電腦上建立和刪除TPM虛擬智慧卡命令列工具)。[113][114]

參見

參考資料

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.