命令封鎖
為了保留作業的完整性,平臺上的軟體不允許執行某些 TPM 命令。 例如,某些命令只會由系統軟體執行。 當 TBS 封鎖命令時,會視需要傳回錯誤。 根據預設,TBS 會封鎖可能會影響系統隱私權、安全性和穩定性的命令。 TBS 也假設軟體堆疊的其他部分可能會限制對授權實體的特定命令的存取。
針對 TPM 1.2 版命令,有三個封鎖命令清單:由群組原則控制的清單、本機系統管理員所控制的清單,以及預設清單。 如果 TPM 命令位於任何清單上,就會遭到封鎖。 不過,有群組原則旗標允許 TBS 忽略本機清單和預設清單。 您可以透過群組原則物件編輯器直接編輯或存取群組原則旗標。
注意
升級至作業系統之後,不會保留本機封鎖命令的清單。 會保留群組原則清單上封鎖的命令。
針對 TPM 2.0 版命令,會反轉封鎖的邏輯;它會使用允許的命令清單。 此邏輯會自動封鎖第一次建立清單時不知道的命令。 當命令在 Windows 版本隨附之後新增至 TPM 規格時,這些新命令會自動遭到封鎖。 只有登錄的更新會將這些新命令新增至允許的命令清單。
從 Windows 10 1809 (Windows Server 2019) 開始,允許的 TPM 2.0 命令無法再透過登錄設定操作。 針對這些Windows 10版本,TPM 驅動程式中會修正允許的 TPM 2.0 命令。 TPM 1.2 命令仍然可以透過登錄變更遭到封鎖和解除封鎖。
直接登錄存取
群組原則旗標位於HKEY_LOCAL_MACHINE\軟體\原則\Microsoft\Tpm\BlockedCommands的登錄機碼底下。
若要判斷應該使用哪些清單來封鎖 TPM 命令,有兩個 DWORD 值會當做布林旗標使用:
「IgnoreDefaultList」
如果設定 (值存在且為非零) ,TBS 會忽略預設的 blocked-commands 清單。
「IgnoreLocalList」
如果設定 (值存在,且為非零) ,TBS 會忽略本機封鎖命令清單。
群組原則物件編輯器
存取群組原則物件編輯器
- 按一下 [啟動]。
- 按一下 [執行] 。
- 在 [開啟舊檔] 方塊中,輸入 gpedit.msc。 按一下 [確定]。 群組原則物件編輯器隨即開啟。
- 展開 [電腦設定]。
- 展開 [系統管理範本]。
- 展開 [系統]。
- 展開 [信任的平臺模組服務]。
您可以直接在下列位置編輯特定封鎖的 TPM1.2 命令清單。
群組原則清單:
HKEY_LOCAL_MACHINE Software Policies Microsoft Tpm BlockedCommands List
本機清單:
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services SharedAccess Parameters Tpm BlockedCommands List
預設清單:
HKEY_LOCAL_MACHINE Software Microsoft Tpm BlockedCommands List
在這些登錄機碼的每一個下,都有一份REG_SZ類型的登錄值清單。 每個值都代表封鎖的 TPM 命令。 每個登錄機碼都有 「值名稱」欄位和「值資料」欄位。 這兩個欄位 (「值名稱」和「值資料」) ,應該完全符合要封鎖之 TPM 命令序數的十進位值。
您可以直接在下列位置編輯特定允許的 TPM 2.0 命令清單。 在登錄機碼下,有REG_DWORD類型的登錄值清單。 每個值都代表允許的 TPM 2.0 命令。 每個登錄值都有名稱和值欄位。 名稱符合應該允許的十六進位 TPM 2.0 命令序數。 如果允許命令, 此值 的值為 1。 如果命令序數不存在或值為 0,則會封鎖命令。
預設清單:
HKEY_LOCAL_MACHINE Software Microsoft Tpm AllowedW8Commands List
針對Windows 8、Windows Server 2012和更新版本,BlockedCommands和AllowedW8Commands登錄機碼分別決定系統管理員帳戶的封鎖或允許的 TPM 命令。 使用者帳戶分別在 BlockedUserCommands 和 AllowedW8UserCommands 登錄機碼中有封鎖或允許的 TPM 命令清單。 在 Windows 10 1607 版中,已針對 AppContainer 應用程式引進新的登錄機碼:BlockedAppContainerCommands和AllowedW8AppContainerCommands。