摘要
为了帮助客户识别受 TPM 漏洞影响的孤立 Windows Hello 企业版 (WHfB) 密钥,Microsoft 发布了一个可供管理员运行的 PowerShell 模块。 本文介绍了如何解决 ADV190026 |“清理在易受攻击的 TPM 上生成并用于 Windows Hello 企业版的孤立密钥的 Microsoft 指南”中描述的问题。
重要注意事项 在使用 WHfBTools 删除孤立密钥之前,应遵循 ADV170012 中的指南来更新任何易受攻击的 TPM 的固件。 如果未遵循本指南,则在固件尚未更新的设备上生成的任何新 WHfB 密钥仍会受到 CVE-2017-15361 (ROCA) 的影响。
如何安装 WHfBTools PowerShell 模块
通过运行以下命令安装模块:
安装 WHfBTools PowerShell 模块 |
通过 PowerShell 安装 PS> Install-Module WHfBTools PS> # Save the current execution policy so it can be reset later PS> $SaveExecutionPolicy = Get-ExecutionPolicy PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser PS> Import-Module WHfBTools 或使用 PowerShell 库中的下载进行安装
启动 PowerShell,复制并运行以下命令: PS> # Save the current execution policy so it can be reset later PS> $SaveExecutionPolicy = Get-ExecutionPolicy PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser PS> CD C:\ADV190026\WHfBTools PS> Import-Module .\WHfBTools.psd1 |
安装使用模块的依赖项:
安装使用 WHfBTools 模块的依赖项 |
如果要在 Azure Active Directory 中查询孤立密钥,请安装 MSAL.PS PowerShell 模块 通过 PowerShell 安装 PS> Install-Module -Name MSAL.PS -RequiredVersion 4.5.1.1 PS> Import-Module MSAL.PS 或使用 PowerShell 库的下载进行安装
启动 PowerShell,复制并运行以下命令: PS> CD C:\MSAL.PS PS> Import-Module .\MSAL.PS.psd1 如果要在 Active Directory 中查询孤立密钥,请安装远程服务器管理工具 (RSAT): Active Directory 域服务和轻型目录服务工具 通过设置安装(Windows 10 版本 1809 或更高版本)
或通过 PowerShell 安装 PS> dism /online /Add-Capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 或通过下载安装
|
运行 WHfBTools PowerShell 模块
如果你的环境中有加入 Azure Active Directory 或混合 Azure Active Directory 的设备,请按照 Azure Active Directory 步骤识别和删除密钥。 Azure 中的密钥删除将通过 Azure AD Connect 同步到 Active Directory。
如果环境仅位于本地,请按照 Active Directory 步骤识别和删除密钥。
查询孤立密钥和受 CVE-2017-15361 (ROCA) 影响的密钥 |
使用以下命令在 Azure Active Directory 中查询密钥: PS> Get-AzureADWHfBKeys -Logging -Report -Tenant contoso.com -All | Export-Csv C:\AzureKeys.csv 此命令将查询“contoso.com”租户以获取所有已注册的 Windows Hello 企业版公钥,并将该信息输出到 C:\AzureKeys.csv。 将 contoso.com 替换为你的租户名称以查询你的租户。 Csv 输出 AzureKeys.csv 将包含每个密钥的以下信息:
Get-AzureADWHfBKeys 还将输出已查询密钥的摘要。 此摘要提供以下信息:
注意 Azure AD 租户中可能有陈旧设备,并且有 Windows Hello 企业版密钥与其关联。 即使未主动使用这些设备,这些密钥也不会报告为孤立密钥。 我们建议遵循操作方法: 在 Azure AD 中管理陈旧设备,以在查询孤立密钥之前清理陈旧设备。
使用以下命令在 Active Directory 中查询密钥: PS> Get-ADWHfBKeys -Logging -Report -Domain contoso | Export-Csv C:\ADKeys.csv 此命令将查询 contoso 域以获取所有已注册的 Windows Hello 企业版公钥,并将该信息输出到 C:\ADKeys.csv。 将 contoso 替换为你的域名以查询你的域。 Csv 输出 ADKeys.csv 将包含每个密钥的以下信息:
Get-ADWHfBKeys 还将输出已查询密钥的摘要。 此摘要提供以下信息:
注意: 如果你的混合环境中具有加入 Azure AD 的设备,并且在本地域中运行“Get-ADWHfBKeys”,则孤立密钥的数量可能不准确。 这是因为加入 Azure AD 的设备不在 Active Directory 中,并且与加入 Azure AD 的设备关联的密钥可能显示为孤立设备。 |
从目录中删除孤立的 ROCA 易受攻击密钥 |
使用以下步骤删除 Azure Active Directory 中的密钥:
PS> Import-Csv C:\ROCAKeys.csv | Remove-AzureADWHfBKeys -Tenant contoso.com -Logging 此命令会导入孤立的 ROCA 易受攻击密钥列表,并从 contoso.com 租户中删除它们。 将 contoso.com 替换为你的租户名称以从你的租户中删除密钥。 注意 如果删除尚未孤立的 ROCA 易受攻击的 WHfB 密钥,将会导致用户中断。 在将这些密钥从目录中删除之前,应确保这些密钥是孤立的。
使用以下步骤删除 Active Directory 中的密钥: 注意 在混合环境中从 Active Directory 中删除孤立密钥将导致密钥作为 Azure AD Connect 同步过程的一部分重新创建。 如果你处于混合环境中,请仅从 Azure AD 中删除密钥
PS> Import-Csv C:\ROCAKeys.csv | Remove-ADWHfBKeys -Logging 此命令会导入孤立的 ROCA 易受攻击密钥的列表,并从你的域中删除它们。 注意 如果删除尚未孤立的 ROCA 易受攻击的 WHfB 密钥,将会导致用户中断。 在将这些密钥从目录中删除之前,应确保这些密钥是孤立的。 |