共用方式為


系統防護:硬體型信任根目錄如何協助保護 Windows

若要保護重要資源,例如 Windows 驗證 堆疊、單一登錄令牌、Windows Hello 生物特徵辨識堆疊和虛擬信任平臺模組,系統韌體和硬體必須值得信任。

系統防護 在一個車頂下重新組織現有的 Windows 系統完整性功能,並設定下一組 Windows 安全性投資。 其設計目的是要提供下列安全性保證:

  • 保護和維護系統啟動時的完整性
  • 驗證系統完整性確實已透過本機和遠端證明來維護

維護系統啟動時的完整性

(SRTM) 的靜態信任根目錄

使用 Windows 7 時,攻擊者用來保存和規避偵測的其中一個方法,就是在系統上安裝通常稱為 bootkit 或 rootkit 的裝置。 此惡意軟體會在 Windows 啟動之前啟動,或在開機程式本身期間啟動,使其以最高層級的許可權開始。

隨著 Windows 10 在現代化硬體上執行,硬體型信任根目錄有助於確保在 Windows 開機載入器之前,無法啟動任何未經授權的韌體或軟體 (,例如 bootkit) 。 此硬體型信任根源來自裝置的安全開機功能,這是整合可延伸韌體介面 (UEFI) 的一部分。 此測量靜態早期開機 UEFI 元件的技術稱為「度量的靜態信任根目錄」 (SRTM) 。

由於有數千家計算機廠商會產生許多具有不同 UEFI BIOS 版本的模型,因此在開機時會產生非常大量的 SRTM 測量。 此處有兩種建立信任的技術:維護已知「不正確的」SRTM 測量清單 (也稱為封鎖清單) ,或是已知「良好」SRTM 度量的清單 (也稱為允許清單) 。

每個選項都有缺點:

  • 已知「不正確的」SRTM 測量清單可讓駭客只變更元件中的 1 位,以建立需要列出的全新 SRTM 哈希。 這表示 SRTM 流程原本就很 Brittle - 次要變更可能會使整個信任鏈結失效。
  • 已知「良好」SRTM 測量的清單需要謹慎新增每個新的 BIOS/PC 組合度量,速度很慢。 此外,UEFI 程式代碼的錯誤修正可能需要很長的時間來設計、建置、重新測試、驗證和重新部署。

安全啟動— 適用於度量的動態信任根 (DRTM)

系統防護 安全啟動 Windows 10 版本 1809 中首次推出,旨在使用稱為「測量的動態信任根目錄」 (DRTM) 來減輕這些問題。 DRTM 一開始可讓系統自由開機進入不受信任的程式代碼,但在啟動系統之後,藉由控制所有 CPU 並強制系統關閉已知且測量的程式代碼路徑,以進入受信任的狀態。 這可讓不受信任的早期 UEFI 程式代碼開機系統,但能夠安全地轉換成受信任且測量的狀態。

系統防護 安全啟動。

安全啟動可簡化 SRTM 度量的管理,因為啟動程式代碼現在與特定硬體組態無關。 這表示有效的程式代碼測量數目很小,而且未來更新可以更廣泛且快速地部署。

SMM) 保護 (系統管理模式

系統管理模式 (SMM) 是 x86 微控制器中的特殊用途 CPU 模式,可處理電源管理、硬體設定、熱監視,以及製造商認為有用的任何其他專案。 每當要求其中一個系統作業時,便會在運行時間叫用不可遮罩的中斷 (SMI) ,這會執行 BIOS 所安裝的 SMM 程式代碼。 SMM 程式代碼會以最高許可權層級執行,而且OS看不到它,因此成為惡意活動的吸引人目標。 即使 系統防護 安全啟動用於延遲啟動,SMM 程式代碼仍可能存取 Hypervisor 記憶體並變更 Hypervisor。

為了防禦這種情況,使用兩種技術:

  • 分頁保護以防止不當存取程式代碼和數據
  • SMM 硬體監督和證明

您可以實作分頁保護,將特定程式代碼數據表鎖定為只讀,以防止竄改。 這可防止存取任何尚未指派的記憶體。

稱為監督員 SMI 處理程式的硬體強制處理器功能可以監視 SMM,並確保它不會存取它不應該存取的任何位址空間部分。

SMM 保護是以安全啟動技術為基礎,需要它才能運作。 未來,Windows 10 也會測量此 SMI 處理程序的行為,並證明沒有作系統擁有的記憶體遭到竄改。

在 Windows 執行 (運行時間之後驗證平臺完整性)

雖然 系統防護 提供進階保護,可協助保護及維護平臺在開機期間和運行時間的完整性,但事實上,我們必須將「假設缺口」的風險套用到我們最複雜的安全性技術。 我們可以信任技術已成功執行其工作,但我們也需要能夠確認它們已成功達成其目標。 針對平臺完整性,我們無法只信任可能遭到入侵的平臺,以自我證明其安全性狀態。 因此 系統防護 包含一系列技術,可讓您遠端分析裝置的完整性。

當 Windows 開機時,系統防護 會使用裝置的信賴平臺模組 2.0 (TPM 2.0) 來進行一系列完整性測量。 系統防護 安全啟動不支援舊版 TPM,例如 TPM 1.2。 此程式和數據會與 Windows 隔離硬體,以協助確保度量數據不受限於平臺遭入侵時可能發生的竄改類型。 從這裡開始,度量可用來判斷裝置韌體、硬體組態狀態和 Windows 開機相關元件的完整性,僅舉幾例。

開機時間完整性。

系統開機之後,系統防護 使用 TPM 簽署並密封這些度量。 如有要求,Intune 或 Microsoft Configuration Manager 等管理系統可以取得這些管理系統以進行遠端分析。 如果 系統防護 表示裝置缺乏完整性,則管理系統可以採取一系列動作,例如拒絕裝置存取資源。

Windows 版本和授權需求

下表列出支援 系統防護 的 Windows 版本:

Windows 專業版 Windows 企業版 Windows 專業教育版/SE Windows 教育版

系統防護 授權權利由下列授權授與:

Windows 專業版/專業教育版/SE Windows 企業版 E3 Windows 企業版 E5 Windows 教育版 A3 Windows 教育版 A5

如需 Windows 授權的詳細資訊,請參閱 Windows 授權概觀

系統防護的系統需求

這項功能適用於下列處理器:

  • Intel® vPro™ 處理器,開頭為 Intel® Coffeelake、Writereylake 或更新版本晶片
  • 從 Zen2 或更新版本晶片開始的 AMD® 處理器
  • 具有 SD850 或更新版本晶片組的 Qualcomm® 處理器

Intel® vPro™ 處理器從 Intel® Coffeelake、Lake 或更新版本晶片開始的需求

名稱 描述
64 位元 CPU Hypervisor 和虛擬式安全性 (VBS) 需要至少四個核心 (邏輯處理器) 的 64 位計算機。 如需 Hyper-V 的詳細資訊,請參閱 Windows Server 2016 上的 Hyper-VWindows 10 上的 Hyper-V 簡介。 如需 Hypervisor 的詳細資訊,請參閱 Hypervisor 規格
信賴平臺模組 (TPM) 2.0 平台必須支援離散 TPM 2.0。 不支援整合式/韌體 TPM,但支援平臺信任技術的 Intel 晶片 (PTT) ,這是符合 TPM 2.0 規格的整合式硬體 TPM 類型。
Windows DMA 保護 平台必須符合 Windows DMA 保護規格 (所有外部 DMA 埠都必須預設為關閉,直到 OS 明確地將它們) 。
SMM 通訊緩衝區 所有 SMM 通訊緩衝區都必須在 EfiRuntimeServicesData、EfiRuntimeServicesCode、EfiACPIMemoryNVS 或 EfiReservedMemoryType 記憶體類型中實作。
SMM 分頁表 不得包含對 EfiConventionalMemory (的任何對應,例如沒有 OS/VMM 擁有的記憶體) 。
不得包含任何對應到 EfiRuntimeServicesCode 內的程式碼區段。
不得具有相同頁面的執行和寫入許可權
必須只允許 TSEG 頁面可以標示為可執行檔,而且記憶體對應必須報告 TSEG EfiReservedMemoryType。
必須實作 BIOS SMI 處理程式,以便在每個 SMM 專案上鎖定 SMM 分頁表。
新式/連線待命 平台必須支援新式/連線待命。
TPM AUX 索引 平台必須設定具有索引、屬性和原則的 AUX 索引,其與 TXT DG 中指定的 AUX 索引完全對應,而 SHA256 AUX 數據) 的數據大小剛好為 104 位元組 (。 (NameAlg = SHA256)
平台必須使用下列項目設定 PS (Platform Supplier) 索引:
  • 建立時完全是 「TXT PS2」 樣式屬性,如下所示:
    • AuthWrite
    • PolicyDelete
    • WriteLocked
    • WriteDefine
    • AuthRead
    • WriteDefine
    • NoDa
    • PlatformCreate
  • 完全為 PolicyCommandCode (CC = TPM2_CC_UndefineSpaceSpecial) (SHA256 NameAlg 和 Policy)
  • 大小剛好是 70 個字節
  • NameAlg = SHA256
  • 此外,它必須在OS啟動時初始化並鎖定 (TPMA_NV_WRITTEN = 1,TPMA_NV_WRITELOCKED = 1) 。
必須0x00 PS 索引數據 DataRevocationCounters、SINITMinVersion 和 PolicyControl
AUX 原則 所需的 AUX 原則必須如下所示:
  • A = TPM2_PolicyLocality (Locality 3 & Locality 4)
  • B = TPM2_PolicyCommandCode (TPM_CC_NV_UndefineSpecial)
  • authPolicy = {A} OR {{A} AND {B}}
  • authPolicy 摘要 = 0xef、0x9a、0x26、0xfc、0x22、0xd1、0xae、0x8c、0xec、 0xff、0x59、0xe9、0x48、0x1a、0xd1、0x1a、0xd1、0xae、0x8c、0xec、 0xff、0x59、0xe9、0xe9、0x48、0x1a、0x48、0x1a、0xc1、0xec、0x53、0x3d、0xbe、0x22、0x8b、0xec、0x6d、0x17、0x93、0x0f、0x4c、0xb2、0xcc、0x5b、0x97 0x24
TPM NV 索引 平台韌體必須設定 TPM NV 索引,以供作系統搭配下列專案使用:
  • 句柄:0x01C101C0
  • 屬性:
    • TPMA_NV_POLICYWRITE
    • TPMA_NV_PPREAD
    • TPMA_NV_OWNERREAD
    • TPMA_NV_AUTHREAD
    • TPMA_NV_POLICYREAD
    • TPMA_NV_NO_DA
    • TPMA_NV_PLATFORMCREATE
    • TPMA_NV_POLICY_DELETE
  • 下列原則:
    • A = TPM2_PolicyAuthorize (MSFT_DRTM_AUTH_BLOB_SigningKey)
    • B = TPM2_PolicyCommandCode (TPM_CC_NV_UndefineSpaceSpecial)
    • authPolicy = {A} OR {{A} AND {B}}
    • 0xcb、0x45、0xc8、0x1f、0xf3、0x4b、0xcf、0x0a、0xfb、0x9e的摘要值 0x1a、0x80、0x29、0xfa、0x23、0x1c 0xcf、0x0a、0xfb、0x9e的摘要值 0x1a、0x80、0x29、0xfa、0x23、0xfa、0x29、0xfa、0x23、0xcf、0x4b、0xcf、0x0a、0x0a、0xfb、0x9e的摘要值 0x1a、0x80、0x80、0x29、0xfa、0x23、0xf3、0x4b、0xcf、0x0a、0x0a、0x7c、0x87、0x27、0x30、0x3c、0x09、0x22、0xdc、0xce、0x68、0x4b、0xe3、0xdb、0x81、0x7c、0x20、0xe1
平臺韌體 平台韌體必須包含執行 Intel® 信任執行技術安全啟動所需的所有程式代碼:
  • Intel® SINIT ACM 必須包含在 OEM BIOS 中
  • 平台必須隨附由平臺正確生產 Intel® ACM 簽署者簽署的生產 ACM
平臺韌體更新 建議您在 Windows Update 中透過UpdateCapsule更新系統韌體。

從 Zen2 或更新版本晶片開始的 AMD® 處理器需求

名稱 描述
64 位元 CPU Hypervisor 和虛擬式安全性 (VBS) 需要至少四個核心 (邏輯處理器) 的 64 位計算機。 如需 Hyper-V 的詳細資訊,請參閱 Windows Server 2016 上的 Hyper-VWindows 10 上的 Hyper-V 簡介。 如需 Hypervisor 的詳細資訊,請參閱 Hypervisor 規格
信賴平臺模組 (TPM) 2.0 平台必須支援離散 TPM 2.0 或Microsoft體 TPM。
Windows DMA 保護 平台必須符合 Windows DMA 保護規格 (所有外部 DMA 埠都必須預設為關閉,直到 OS 明確地將它們) 。
SMM 通訊緩衝區 所有 SMM 通訊緩衝區都必須在 EfiRuntimeServicesData、EfiRuntimeServicesCode、EfiACPIMemoryNVS 或 EfiReservedMemoryType 記憶體類型中實作。
SMM 分頁表 不得包含對 EfiConventionalMemory (的任何對應,例如沒有 OS/VMM 擁有的記憶體) 。
不得包含任何對應到 EfiRuntimeServicesCode 內的程式碼區段。
不得具有相同頁面的執行和寫入許可權
必須實作 BIOS SMI 處理程式,以便在每個 SMM 專案上鎖定 SMM 分頁表。
新式/連線待命 平台必須支援新式/連線待命。
TPM NV 索引 平台韌體必須設定 TPM NV 索引,以供作系統搭配下列專案使用:
  • 句柄:0x01C101C0
  • 屬性:
    • TPMA_NV_POLICYWRITE
    • TPMA_NV_PPREAD
    • TPMA_NV_OWNERREAD
    • TPMA_NV_AUTHREAD
    • TPMA_NV_POLICYREAD
    • TPMA_NV_NO_DA
    • TPMA_NV_PLATFORMCREATE
    • TPMA_NV_POLICY_DELETE
  • 下列原則:
    • A = TPM2_PolicyAuthorize (MSFT_DRTM_AUTH_BLOB_SigningKey)
    • B = TPM2_PolicyCommandCode (TPM_CC_NV_UndefineSpaceSpecial)
    • authPolicy = {A} OR {{A} AND {B}}
    • 0xcb、0x45、0xc8、0x1f、0xf3、0x4b、0xcf、0x0a、0xfb、0x9e的摘要值 0x1a、0x80、0x29、0xfa、0x23、0x1c 0xcf、0x0a、0xfb、0x9e的摘要值 0x1a、0x80、0x29、0xfa、0x23、0xfa、0x29、0xfa、0x23、0xcf、0x4b、0xcf、0x0a、0x0a、0xfb、0x9e的摘要值 0x1a、0x80、0x80、0x29、0xfa、0x23、0xf3、0x4b、0xcf、0x0a、0x0a、0x7c、0x87、0x27、0x30、0x3c、0x09、0x22、0xdc、0xce、0x68、0x4b、0xe3、0xdb、0x81、0x7c、0x20、0xe1
平臺韌體 平台韌體必須包含執行安全啟動所需的所有程式代碼:
  • AMD® 安全啟動平台必須隨附已公開的 AMD® DRTM 驅動程式 devnode 並安裝 AMD® DRTM 驅動程式

平台必須啟用 AMD® 安全處理器韌體反回復保護
平台必須啟用 AMD® 記憶體防護。
平臺韌體更新 建議您在 Windows Update 中透過UpdateCapsule更新系統韌體。

具有 SD850 或更新版本晶片組的 Qualcomm® 處理器需求

名稱 描述
監視模式通訊 所有監視模式通訊緩衝區都必須在 EfiRuntimeServicesData (建議的) 中實作,EfiRuntimeServicesCode 的數據區段,如記憶體屬性數據表、EfiACPIMemoryNVS 或 EfiReservedMemoryType 記憶體類型所述
監視模式頁面數據表 所有監視模式頁面資料表都必須:
  • 不包含對 EfiConventionalMemory (的任何對應,例如沒有 OS/VMM 擁有的記憶體)
  • 他們必須沒有相同頁面的執行和寫入許可權
  • 平臺只能允許標示為可執行檔的監視模式頁面
  • 記憶體對應必須將監視模式報告為 EfiReservedMemoryType
  • 平台必須提供機制來保護監視模式頁面數據表免於修改
新式/連線待命 平台必須支援新式/連線待命。
平臺韌體 平臺韌體必須包含啟動所需的所有程序代碼。
平臺韌體更新 建議您在 Windows Update 中透過UpdateCapsule更新系統韌體。