共用方式為


TPM 2.0 裝置上的 PCR 銀行

如需如何在計算機上的 TPM 2.0 裝置上切換 PCR 銀行的步驟,您應該連絡您的 OEM 或 UEFI 廠商。 本文提供在 TPM 2.0 裝置上切換 PCR 銀行時所發生情況的背景。

平台設定快取器 (PCR) 是 TPM 中具有一些唯一屬性的記憶體位置。 可儲存在 PCR 中的值大小取決於相關聯哈希演算法所產生的摘要大小。 SHA-1 PCR 可以儲存 20 個字節 - SHA-1 摘要的大小。 與相同哈希演算法相關聯的多個 PCR 稱為 PCR 銀行

若要將新值儲存在 PCR 中,現有的值會以新值擴充,如下所示: PCR[N] = HASHalg( PCR[N] || ArgumentOfExtend)

現有的值會與 TPM 擴充作業的 自變數串連。 接著,產生的串連會作為相關聯哈希演算法的輸入,以計算輸入的摘要。 計算摘要會成為 PCR 的新值。

TCG 計算機用戶端平臺 TPM 配置檔規格會定義包含至少一個具有 24 個註冊的 PCR 銀行。 重設前 16 個 PCR 的唯一方法是重設 TPM 本身。 這項限制有助於確保只能透過 TPM 擴充作業修改這些 PCR 的值。

某些 TPM PCR 會當做記錄事件的總和檢查碼使用。 當事件發生時,記錄事件會在 TPM 中擴充。 稍後,稽核員可以從記錄中計算預期的 PCR 值,並將其與 TPM 的 PCR 值進行比較,以驗證記錄。 由於無法任意修改前 16 個 TPM PCR,因此該範圍中預期的 PCR 值與實際 TPM PCR 值之間的比對可保證未修改的記錄。

Windows 如何使用 PCR?

若要將 TPM 金鑰的使用系結至裝置的特定狀態,金鑰可以密封成一組預期的 PCR 值。 例如,載入 OS 時,PCR 0 到 7 在開機程式之後會有定義完善的值。 當機器的硬體、韌體或開機載入器變更時,可以在 PCR 值中偵測到變更。 Windows 會使用這項功能,只在開機程式的特定時間提供特定密碼編譯密鑰。 例如,BitLocker 金鑰可以在開機的特定時間點使用,但不能在開機前後使用。

請務必注意,此 PCR 值系結也包含用於 PCR 的哈希演算法。 例如,如果使用SHA-256 PCR銀行,即使使用相同的系統設定,金鑰也可以繫結至 的 SHA-1 PCR[12]特定值。 否則,PCR 值將不相符。

切換 PCR 銀行時會發生什麼事?

切換 PCR 銀行時,用來計算擴充作業期間儲存在 PCR 中哈希值的演算法會變更。 每個哈希演算法都會針對相同的輸入傳回不同的密碼編譯簽章。

因此,如果目前使用的 PCR 銀行已切換,所有系結至先前 PCR 值的密鑰將無法再運作。 例如,如果您有系結至 PCR[12] SHA-1 值的密鑰,且之後將 PCR 銀行變更為 SHA-256,銀行就不會相符,而且您將無法使用該密鑰。 BitLocker 金鑰是使用 PCR 銀行來保護,如果在啟用 BitLocker 時切換 PCR 銀行,Windows 就無法將它解壓縮。

當 BitLocker 已在使用中時,我可以如何切換 PCR?

切換 PCR 銀行之前,您應該暫停或停用 BitLocker,或備妥修復密鑰。 如需如何在計算機上切換 PCR 銀行的步驟,請連絡您的 OEM 或 UEFI 廠商。

如何識別正在使用哪個 PCR 銀行?

您可以將 TPM 設定為讓多個 PCR 銀行使用中。 當 BIOS 執行度量時,它會根據其進行這些測量的功能,在所有作用中的 PCR 銀行中執行。 BIOS 可以選擇停用不支援的 PCR 銀行,或藉由擴充分隔符來 限制 其不支援的 PCR 銀行。 下列登錄值會識別作用中的 PCR 銀行:

  • 登入機碼: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
  • DWORD: TPMActivePCRBanks
  • 定義目前作用中的 PCR 銀行。 此值應該解譯為位圖,其位定義於修訂 1.27 的 TCG 演算法登錄 表 21 中。

Windows 會檢查哪些 PCR 銀行作用中且受到 BIOS 支援。 Windows 也會檢查測量的開機記錄是否支援所有作用中 PCR 銀行的測量。 Windows 偏好使用 SHA-256 銀行進行測量,如果不符合其中一個先決條件,則會回復為 SHA1 PCR 銀行。

您可以檢視登錄來識別 Windows 目前使用的 PCR 銀行:

  • 登入機碼: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
  • DWORD: TPMDigestAlgID
  • Windows 目前使用之 PCR 銀行的演算法識別碼。 這個值代表演算法識別碼,如修訂 1.27 的 TCG 演算法登錄 表 3 中所定義。

Windows 只會使用一個 PCR 銀行來繼續開機測量。 所有其他作用中的 PCR 銀行都會使用分隔符來擴充,以指出 Windows 不會使用它們,而且應該信任看似來自 Windows 的度量。