共用方式為


裝置健康情況證明

Windows 10 (版本 1507) 已引進「裝置健康情況證明」(DHA),其中包括:

  • 與 Windows 10「行動裝置管理」(MDM) 架構整合,且符合 Open Mobile Alliance (OMA) 標準

  • 支援以韌體或特定格式佈建「信賴模組平台」(TPM) 的裝置。

  • 讓企業能夠提升其組織的安全性基準提升至硬體監視和安全性證明,而不影響作業成本或只有些微影響。

從 Windows Server 2016 開始,您現在可以將 DHA 服務當作組織內的伺服器角色來執行。 使用本文來了解如何安裝及設定「裝置健康情況證明」伺服器角色。

Overview

您可以使用 DHA 評估下列裝置健康情況:

  • 支援 TPM 1.2 或 2.0 的 Windows 10 和 Windows 10 行動裝置版裝置。
  • 由使用具備網際網路存取的 Active Directory 管理的內部部署裝置、由使用不具備網際網路存取的 Active Directory 管理的裝置、由 Microsoft Entra ID 管理的裝置,或者是使用 Active Directory 和 Microsoft Entra ID 兩者的混合式部署。

DHA 服務

DHA 服務會驗證裝置的 TPM 和 PCR 記錄,然後發行 DHA 報告。 Microsoft 以三種方式提供 DHA 服務︰

  • DHA 雲端服務。 Microsoft 管理的免費 DHA 服務,已進行地理區域負載平衡,並且已針對從世界各地進行存取最佳化。

  • DHA 內部部署服務。 Windows Server 2016 中引進的新伺服器角色。 擁有 Windows Server 2016 授權的客戶可以免費取得。

  • DHA Azure 雲端服務。 Microsoft Azure 中的虛擬主機。 若要這樣做,您需要 DHA 內部部署服務的虛擬主機和授權。

DHA 服務與 MDM 解決方案整合,並提供下列功能︰

  • 將它們從裝置收到的資訊 (透過現有裝置管理通訊通道) 與 DHA 報告結合
  • 根據硬體證明和受保護的資料,做出更安全且可靠的安全性決策

以下範例說明您可以如何使用 DHA 來協助提升您組織資產的安全性保護基準。

  1. 您可以建立會檢查下列開機組態/屬性的原則:
    • 安全開機
    • BitLocker
    • ELAM
  2. MDM 解決方案會強制執行此原則並根據 DHA 報告資料觸發矯正動作。 例如,它可以驗證下列項目:
    • 已啟用「安全開機」、裝置已載入經驗證且可信任的程式碼,且 Windows 開機載入器未遭竄改。
    • 「信任式開機」已成功驗證 Windows 核心的數位簽章及裝置啟動時載入的元件。
    • 「測量開機」已建立受 TPM 保護的稽核線索,並可從遠端驗證。
    • 已啟用 BitLocker,且它會在裝置關閉時保護資料。
    • ELAM 會在早期開機階段啟用並且會監視執行階段。

DHA 雲端服務

DHA 雲端服務提供下列優點:

  • 檢閱從在 MDM 解決方案中註冊的裝置處收到的 TCG 和 PCR 裝置開機記錄。
  • 根據裝置的 TPM 晶片所收集並保護的資料,建立描述裝置啟動方式,且可以防止竄改及可辨識其是否遭竄改的報告 (DHA 報告)。
  • 在已受保護的通訊通道中將 DHA 報告傳遞給要求該報告的 MDM 伺服器。

DHA 內部部署服務

DHA 內部部署服務提供所有 DHA 雲端服務提供的功能。 它也可讓客戶︰

  • 在您自有的資料中心執行 DHA 服務以獲得最佳效能
  • 確保 DHA 報告不會離開您的網路

DHA Azure 雲端服務

此服務會提供等同 DHA 內部部署服務的功能,不過 DHA Azure 雲端服務是在 Microsoft Azure 中以虛擬主機的方式執行。

DHA 驗證模式

您可以將 DHA 內部部署服務設定為以 EKCert 或 AIKCert 其中一種驗證模式執行。 當 DHA 服務發出報告時,它會指出報告是以 AIKCert 或 EKCert 驗證模式發出。 只要 EKCert 的信任鏈結維持在最新狀態,AIKCert 和 EKCert 驗證模式就能提供相同的安全性保證。

EKCert 驗證模式

EKCert 驗證模式已經針對未連線到網際網路的組織最佳化。 連接到以 EKCert 驗證模式運行的 DHA 服務的裝置 無法 直接訪問互聯網。

當 DHA 以 EKCert 驗證模式執行時,它是依賴企業管理的信任鏈結,必須偶爾更新 (每年大約 5-10 次)。

Microsoft 會在 .cab 封存中可公開存取的封存中,針對核准的 TPM 製造商發行 (在它們可用時) 受信任的根憑證和中繼 CA 的可彙總套件。 您需要下載該摘要,驗證其完整性,並將其安裝在執行「裝置健康情況證明」的伺服器上。

封存的範例為 https://go.microsoft.com/fwlink/?linkid=2097925

AIKCert 驗證模式

AIKCert 驗證模式已經針對可存取網際網路的作業環境最佳化。 連線到 DHA 服務且執行 AIKCert 驗證模式的裝置必須可以直接存取網際網路,並且能從 Microsoft 取得 AIK 憑證。

在 Windows Server 2016 上安裝和設定 DHA 服務

使用以下章節在 Windows Server 2016 上安裝和設定 DHA。

Prerequisites

為了設定和驗證 DHA 內部部署服務,您需要:

  • 執行 Windows Server 2016 的伺服器。

  • 一或多個 Windows 10 用戶端裝置,其具有執行最新 Windows Server 2025 組建的 TPM(1.2 或 2.0)處於清除/就緒狀態。

  • 決定您要以 EKCert 或 AIKCert 驗證模式執行。

  • 下列憑證:

    • DHA SSL 憑證。 鏈結到受信任的企業根憑證,且包含可匯出私密金鑰的 x.509 SSL 憑證。 此憑證會保護 DHA 資料傳輸,包括伺服器對伺服器 (DHA 服務和 MDM 伺服器),以及伺服器對用戶端 (DHA 服務和 Windows 10 裝置) 之間的通訊。
    • DHA 簽署憑證。 鏈結到受信任的企業根憑證,且包含可匯出私密金鑰的 x.509 憑證。 DHA 服務將此憑證用於數位簽署。
    • DHA 加密憑證。 鏈結到受信任的企業根憑證,且包含可匯出私密金鑰的 x.509 憑證。 DHA 服務也將此憑證用於加密。

安裝 Windows Server 2016

使用您想要的安裝方式 (例如「Windows 部署服務」) 安裝 Windows Server 2016,或從開機媒體、USB 磁碟機或本機檔案系統執行安裝程式。 如果這是您第一次設定 DHA 內部部署服務,您應該使用 [桌面體驗 ] 安裝選項來安裝 Windows Server 2016。

新增裝置健康情況證明伺服器角色

您可以使用「伺服器管理員」來安裝「裝置健康情況證明」伺服器角色和其相依性。

安裝 Windows Server 2016 之後,裝置會重新啟動並開啟「伺服器管理員」。 如果伺服器管理員未自動啟動,請按兩下 [ 開始],然後按下 [ 伺服器管理員]。

  1. 按一下 [新增角色及功能]
  2. 在 [在您開始前] 頁面上,按一下 [下一步]
  3. 在 [選取安裝類型] 頁面上,按一下 [角色型或功能型安裝] ,然後按 [下一步]
  4. 在 [選取目的地伺服器] 頁面上,按一下 [從伺服器集區選取伺服器],選取伺服器然後按一下 [下一步]
  5. 在 [選取伺服器角色] 頁面上,選取 [裝置健康情況證明] 核取方塊。
  6. 按兩下 [新增功能 ] 以安裝其他必要的角色服務和功能。
  7. [下一步]。
  8. 在 [ 選取功能] 頁面上,按 [ 下一步]。
  9. 在 [網頁伺服器 (IIS) 角色] 頁面上,按一下 [下一步]
  10. 在 [選取角色服務] 頁面上,按 [下一步]
  11. 在 [裝置健全狀況證明服務] 頁面上,按一下 [下一步]
  12. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  13. 安裝完成時,按兩下 [ 關閉]。

安裝簽署和加密憑證

使用下列 Windows PowerShell 指令碼安裝簽署和加密憑證。 如需指紋的詳細資訊,請參閱作法:擷取憑證的指紋

$key = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Thumbprint -like "<thumbprint>"}
$keyname = $key.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keypath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\" + $keyname
icacls $keypath /grant <username>`:R

#<thumbprint>: Certificate thumbprint for encryption certificate or signing certificate
#<username>: Username for web service app pool, by default IIS_IUSRS

安裝受信任的 TPM 根憑證封裝

若要安裝受信任的 TPM 根憑證封裝,您必須將它解壓縮,移除任何您的組織不信任的信任鏈結,然後執行 setup.cmd。

下載受信任的 TPM 根憑證封裝

安裝憑證封裝之前,您可以從 https://go.microsoft.com/fwlink/?linkid=2097925 下載最新的受信任 TPM 根清單。

重要: 安裝套件之前,請確認它已由 Microsoft 進行數字簽署。

解壓縮受信任的憑證封裝

執行下列命令來將受信任的憑證封裝解壓縮。

mkdir .\TrustedTpm
expand -F:* .\TrustedTpm.cab .\TrustedTpm

移除貴組織不受信任的 TPM 廠商的信任鏈結(可選)

刪除您的組織不信任的任何 TPM 廠商信任鏈結的資料夾。

注意: 如果使用 AIK 憑證模式,則需要Microsoft資料夾來驗證Microsoft核發的 AIK 憑證。

安裝受信任的憑證封裝

執行 .cab 檔案中的設定指令碼來安裝受信任的憑證封裝。

.\setup.cmd

設定裝置健康情況證明服務

您可以使用 Windows PowerShell 來設定 DHA 內部部署服務。

Install-DeviceHealthAttestation -EncryptionCertificateThumbprint <encryption> -SigningCertificateThumbprint <signing> -SslCertificateStoreName My -SslCertificateThumbprint <ssl> -SupportedAuthenticationSchema "<schema>"

#<encryption>: Thumbprint of the encryption certificate
#<signing>: Thumbprint of the signing certificate
#<ssl>: Thumbprint of the SSL certificate
#<schema>: Comma-delimited list of supported schemas including AikCertificate, EkCertificate, and AikPub

設定憑證鏈結原則

執行以下 Windows PowerShell 指令碼來設定憑證鏈結原則:

$policy = Get-DHASCertificateChainPolicy
$policy.RevocationMode = "NoCheck"
Set-DHASCertificateChainPolicy -CertificateChainPolicy $policy

DHA 管理命令

以下是一些 Windows PowerShell 範例,可協助您管理 DHA 服務。

首次設定 DHA 服務

Install-DeviceHealthAttestation -SigningCertificateThumbprint "<HEX>" -EncryptionCertificateThumbprint "<HEX>" -SslCertificateThumbprint "<HEX>" -Force

移除 DHA 服務設定

Uninstall-DeviceHealthAttestation -RemoveSslBinding -Force

取得作用中簽署憑證

Get-DHASActiveSigningCertificate

設定作用中簽署憑證

Set-DHASActiveSigningCertificate -Thumbprint "<hex>" -Force

注意: 此憑證必須部署在執行 LocalMachine\My 證書存儲中 DHA 服務的伺服器上。 設定作用中簽署憑證之後,現有的作用中簽署憑證會移動到非作用中簽署憑證清單。

列出非作用中簽署憑證

Get-DHASInactiveSigningCertificate

移除任何非作用中簽署憑證

Remove-DHASInactiveSigningCertificate -Force
Remove-DHASInactiveSigningCertificate  -Thumbprint "<hex>" -Force

注意: 服務中隨時只能有 一個 非使用中憑證(任何類型) 存在。 當憑證已不再需要時,應將它們從非作用中憑證清單中移除。

取得作用中加密憑證

Get-DHASActiveEncryptionCertificate

設定作用中加密憑證

Set-DHASActiveEncryptionCertificate -Thumbprint "<hex>" -Force

憑證必須部署在 LocalMachine\My 證書儲存的裝置上。

設定作用中加密憑證之後,現有的作用中加密憑證會移動到非作用中加密憑證清單。

列出非作用中加密憑證

Get-DHASInactiveEncryptionCertificate

移除任何非作用中加密憑證

Remove-DHASInactiveEncryptionCertificate -Force
Remove-DHASInactiveEncryptionCertificate -Thumbprint "<hex>" -Force

取得 X509ChainPolicy 組態

Get-DHASCertificateChainPolicy

變更 X509ChainPolicy 組態

$certificateChainPolicy = Get-DHASInactiveEncryptionCertificate
$certificateChainPolicy.RevocationFlag = <X509RevocationFlag>
$certificateChainPolicy.RevocationMode = <X509RevocationMode>
$certificateChainPolicy.VerificationFlags = <X509VerificationFlags>
$certificateChainPolicy.UrlRetrievalTimeout = <TimeSpan>
Set-DHASCertificateChainPolicy = $certificateChainPolicy

DHA 服務報告

以下是 DHA 服務向 MDM 解決方案所回報訊息的清單:

  • 200 HTTP 確定。 傳回憑證。
  • 400 不正確的要求。 無效的要求格式、無效的健康情況憑證、憑證簽署不相符、無效的健康情況證明 Blob,或無效的健全狀態 Blob。 如回應結構描述所述,回應也包含訊息,其中包含可用於診斷的錯誤碼和錯誤訊息。
  • 500 內部伺服器錯誤。 如果有導致服務無法發出憑證的問題,就可能會發生此情況。
  • 503 節流正在拒絕要求,以防止伺服器多載。