TPM 基礎

本文提供 TPM 1.2 和 TPM 2.0) 元件 (信賴平臺模組的說明,並說明如何使用它們來減輕字典攻擊。

TPM 是設計來提供基本安全性相關功能的微晶片,主要涉及加密密鑰。 TPM 會安裝在電腦的主機板上,並使用硬體總線與系統的其餘部分通訊。

納入 TPM 的裝置可以建立密碼編譯密鑰並加以加密,讓密鑰只能由 TPM 解密。 此程式通常稱為「包裝」或「系結」金鑰,可協助保護密鑰免於洩漏。 每個 TPM 都有一個主要包裝密鑰,稱為儲存在 TPM 本身內的 記憶體根密鑰。 在 TPM 中建立之記憶體根金 鑰或簽署金鑰的私人部分永遠不會公開給任何其他元件、軟體、進程或使用者。

您可以指定是否可以移轉 TPM 建立的加密金鑰。 如果您指定可以移轉它們,則密鑰的公用和私用部分可以公開給其他元件、軟體、進程或使用者。 如果您指定無法移轉加密金鑰,則不會在 TPM 外部公開金鑰的私用部分。

納入 TPM 的裝置也可以建立包裝並系結至特定平臺度量的密鑰。 只有當這些平臺度量的值與建立索引鍵時的值相同時,才能解除包裝這種類型的索引鍵。 此程式稱為 將金鑰密封至 TPM。 解密金鑰稱為 「解除密封」。 TPM 也可以密封在 TPM 外部產生的非密封數據。 使用密封金鑰和軟體,例如 BitLocker 磁碟驅動器加密,數據可以鎖定,直到符合特定硬體或軟體條件為止。

使用 TPM 時,金鑰組的私用部分會與作業系統所控制的記憶體分開。 密鑰可以密封至 TPM,而系統狀態的特定保證 (定義系統) 可信度的保證,可以在密鑰解除密封並釋出以供使用之前進行。 TPM 會使用自己的內部韌體和邏輯線路來處理指示。 因此,它不會依賴作業系統,也不會暴露於可能存在於操作系統或應用程式軟體中的弱點。

版本中可用的功能是由信賴運算群組 (TCG) 所定義。 如需詳細資訊,請參閱信賴運算群組網站上的 [ 信賴平臺模組] 頁面

下列各節提供支援 TPM 的技術概觀:

已測量的開機與證明支援

「測量開機」功能提供具有受信任 (的反惡意代碼軟體,可抵禦所有開機組件的詐騙和竄改) 記錄。 反惡意代碼軟體可以使用記錄檔來判斷在它之前執行的元件是否值得信任或受到惡意代碼感染。 它也可以將測量的開機記錄傳送至遠端伺服器進行評估。 遠端伺服器可以視需要與用戶端上的軟體互動,或透過頻外機制來啟動補救動作。

TPM 型虛擬智慧卡

警告

Windows Hello 企業版 和 FIDO2 安全性金鑰是適用於 Windows 的新式雙因素驗證方法。 建議使用虛擬智慧卡的客戶移至 Windows Hello 企業版 或 FIDO2。 針對新的 Windows 安裝,建議您 Windows Hello 企業版 或 FIDO2 安全性密鑰。

虛擬智慧卡會模擬傳統智慧卡的功能。 虛擬智慧卡使用 TPM 晶片,而不是使用個別的實體智慧卡和讀取器。 這可大幅降低企業智慧卡的管理和部署成本。 對終端使用者而言,虛擬智慧卡一律可在裝置上使用。 如果使用者需要使用多個裝置,則必須針對每個裝置向使用者發出虛擬智慧卡。 在多個使用者之間共用的計算機可以裝載多個虛擬智慧卡,每個使用者各一張。

TPM 型憑證記憶體

TPM 會保護憑證和 RSA 金鑰。 TPM 金鑰儲存提供者 (KSP) 可讓您輕鬆且方便地使用 TPM 作為強式保護私鑰的方式。 當組織註冊憑證時,TPM KSP 會產生密鑰。 TPM 也會保護從外部來源匯入的憑證。 TPM 型憑證是標準憑證。 憑證永遠無法離開產生密鑰的 TPM。 TPM 也可以透過密碼編譯 API 來用於密碼編譯作業 :新一代 (CNG)

TPM Cmdlet

您可以使用 Windows PowerShell 來管理 TPM。 如需詳細資訊,請參閱 Windows PowerShell 中的 TPM Cmdlet

實體目前狀態介面

針對 TPM 1.2,TPM 的 TCG 規格通常需要實體存在 (、按鍵) 以開啟 TPM、關閉或清除 TPM。 除非個別的 OEM 提供這些動作,否則這些動作通常無法使用腳本或其他自動化工具自動化。

TPM 1.2 狀態和初始化

TPM 1.2 有多個可能的狀態。 Windows 會自動初始化 TPM,使其變成已啟用、已啟用和擁有的狀態。

簽署金鑰

只有當 TPM 包含簽署金鑰,也就是 RSA 金鑰組時,受信任的應用程式才能使用 TPM。 密鑰組的私用部分會保留在 TPM 內,而且永遠不會在 TPM 外部顯示或存取。

金鑰證明

TPM 金鑰證明可讓證書頒發機構單位確認私鑰受到 TPM 保護,且 TPM 是證書頒發機構單位信任的私鑰。 已證明有效的簽署金鑰可用來將使用者身分識別系結至裝置。 具有 TPM 證明金鑰的用戶憑證提供更高的安全性保證,由 TPM 所提供的密鑰的不可匯出、反鐵製化和隔離來備份。

反鐵制

當 TPM 處理命令時,它會在受保護的環境中執行。 例如,離散晶元上的專用微控制器,或主要CPU上受硬體保護的特殊模式。 TPM 可用來建立不會在 TPM 外部揭露的密碼編譯密鑰。 在提供正確的授權值之後,就會在 TPM 中使用它。

TPM 具有反鐵制保護,其設計目的是要防止暴力密碼破解攻擊,或是更複雜的字典攻擊,這些攻擊會嘗試判斷使用密鑰的授權值。 基本方法是讓 TPM 在防止更多嘗試使用金鑰和鎖定之前,只允許有限數量的授權失敗。 提供個別密鑰的失敗計數在技術上並不實用,因此 TPM 在發生太多授權失敗時會有全域鎖定。

由於許多實體都可以使用 TPM,因此單一授權成功無法重設 TPM 的反鐵制保護。 這可防止攻擊者建立具有已知授權值的密鑰,然後使用它來重設 TPM 的保護。 TPM 的設計目的是要在一段時間后忘記授權失敗,讓 TPM 不會不必要地進入鎖定狀態。 TPM 擁有者密碼可用來重設 TPM 的鎖定邏輯。

TPM 2.0 反鐵制

TPM 2.0 具有妥善定義的反鐵製化行為。 相較於 TPM 1.2,製造商已實作反鐵制保護,而整個產業的邏輯也各不相同。

針對具有 TPM 2.0 的系統,Windows 會將 TPM 設定為在 32 次授權失敗后鎖定,並忘記每隔 10 分鐘發生一次授權失敗。 這表示使用者可以快速嘗試使用授權值錯誤 32 次的金鑰。 在 32 次嘗試中,TPM 會記錄授權值是否正確。 這會在嘗試 32 次失敗之後,不小心導致 TPM 進入鎖定狀態。

嘗試在接下來的 10 分鐘內使用具有授權值的金鑰不會傳回成功或失敗。 相反地,回應會指出 TPM 已鎖定。 10 分鐘後,會忘記一個授權失敗,而 TPM 記住的授權失敗數目會降到 31。 TPM 會離開鎖定狀態,並回到正常作業。 使用正確的授權值時,如果在接下來的 10 分鐘內沒有發生授權失敗,則可以正常使用密鑰。 如果經過 320 分鐘的期間且沒有授權失敗,TPM 就不會記住任何授權失敗,而且可能會再次發生 32 次失敗的嘗試。

當系統完全關閉或系統休眠時,Windows 不需要 TPM 2.0 系統忘記授權失敗。 當系統正常執行、處於睡眠模式,或處於關閉以外的低電源狀態時,Windows 會要求忘記授權失敗。 如果 TPM 2.0 的 Windows 系統已鎖定,如果系統保留 10 分鐘,TPM 就會離開鎖定模式。

TPM 2.0 的反哈希防護可以立即完全重設,方法是將重設鎖定命令傳送至 TPM,並提供 TPM 擁有者密碼。 根據預設,Windows 會自動布建 TPM 2.0,並儲存 TPM 擁有者密碼供系統管理員使用。

在某些實作中,TPM 擁有者授權值會集中儲存在 Active Directory 中,而不是儲存在本機系統上。 系統管理員可以執行 tpm.msc 並選擇重設 TPM 鎖定時間。 如果 TPM 擁有者密碼儲存在本機,則會用來重設鎖定時間。 如果本機系統上無法使用 TPM 擁有者密碼,系統管理員必須提供該密碼。 如果系統管理員嘗試使用錯誤的 TPM 擁有者密碼重設 TPM 鎖定狀態,則 TPM 不允許另一次嘗試重設鎖定狀態 24 小時。

TPM 2.0 允許建立某些密鑰,而不需要與其相關聯的授權值。 這些金鑰可以在 TPM 鎖定時使用。 例如,具有預設僅限 TPM 設定的 BitLocker 能夠使用 TPM 中的密鑰來啟動 Windows,即使 TPM 已鎖定也一樣。

默認值背後的原理

一開始,PIN 允許 4 到 20 個字元的 BitLocker。 Windows Hello 有自己的 PIN 碼進行登入,可以是 4 到 127 個字元。 BitLocker 和 Windows Hello 使用 TPM 來防止 PIN 暴力密碼破解攻擊。

Windows 10 1607 版和更早版本使用字典攻擊防護參數。 字典攻擊防護參數可讓您平衡安全性需求與可用性。 例如,當 BitLocker 與 TPM + PIN 組態搭配使用時,PIN 猜測數目會隨著時間限制。 在此範例中,TPM 2.0 可以設定為只立即允許 32 個 PIN 猜測,然後每兩小時再多猜測一次。 這總計每年最多約 4415 次猜測。 如果 PIN 是四位數,則在兩年內可以嘗試所有 9999 可能的 PIN 組合。

從 Windows 10 1703 版開始,BitLocker PIN 的最小長度已增加到六個字元,以更符合其他使用 TPM 2.0 的 Windows 功能,包括 Windows Hello。 增加 PIN 長度需要有更多攻擊者的猜測。 因此,每個猜測之間的鎖定持續時間已縮短,可讓合法使用者更快重試失敗的嘗試,同時維持類似的保護層級。 如果需要使用鎖定閾值和復原時間的舊版參數,請確定已啟用 GPO,並將系統設定 為使用 TPM 2.0 的舊版字典攻擊防護參數設定

TPM 型智慧卡

Windows TPM 型智慧卡是虛擬智慧卡,可以設定為允許登入系統。 相較於實體智慧卡,登入程式會使用具有授權值的 TPM 金鑰。 下列清單顯示虛擬智慧卡的優點:

  • 實體智慧卡只能針對實體智慧卡 PIN 強制鎖定,而且可以在輸入正確的 PIN 後重設鎖定。 使用虛擬智慧卡時,TPM 的反鐵擊保護不會在驗證成功之後重設。 TPM 進入鎖定之前允許的授權失敗數目包含許多因素。
  • 硬體製造商和軟體開發人員可以使用 TPM 的安全性功能來符合其需求。
  • 選取 32 個失敗作為鎖定閾值的目的是要避免用戶鎖定 TPM (即使學習輸入新密碼,或他們經常鎖定並解除鎖定計算機) 。 如果使用者鎖定 TPM,則必須等候 10 分鐘,或使用其他認證登入,例如使用者名稱和密碼。