系統防護:硬體型信任根目錄如何協助保護 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 處理程序的行為,並證明沒有任何 OS 擁有的記憶體遭到竄改。

在 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
    • 野田
    • 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更新系統韌體。