使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

摘要

特定的受信任的平台模块(TPM) 芯片集中存在安全漏洞。 漏洞会减弱密钥强度。

若要详细了解此漏洞,请转到 ADV170012

更多信息

概述

以下部分有助于识别和纠正受 Microsoft 安全公告 ADV170012 中描述的漏洞影响的 Active Directory (AD) 域和域控制器中的问题。

此缓解过程专注于以下 Active Directory 公钥方案:

  • 域加入计算机凭据密钥

有关撤销和颁发新的 KDC 证书的信息,请参阅针对基于 Active Directory 证书服务的方案的缓解计划

确定域加入计算机凭据密钥风险工作流

确定加入域的计算机凭据密钥风险工作流

是否有 Windows Server 2016(或更高版本)域控制器?

已为 Windows Server 2016 域控制器引入凭据密钥。 在使用凭据密钥进行身份验证时,域控制器将添加已知的 SID KEY_TRUST_IDENTITY (S-1-18-4)。 早期的域控制器不支持凭据密钥,因此 AD 不支持凭据密钥对象,且下层域控制器不能使用凭据密钥对主体进行身份验证。

以前,altSecurityIdentities(经常被称为 altSecID)属性可以用来提供类似的行为。 Windows 不支持在本机预配 altSsecID。 因此,需要一个提供此行为的第三方解决方案。 如果预配的密钥易受攻击,那么相应的 altSsecID 必须在 AD 中进行更新。

是否有任何域 Windows Server 2016(或更高版本)DFL?

Windows Server 2016 域控制器支持公钥加密,以便在 Kerberos (PKINIT) Freshness Extension [RFC 8070] 中进行初始身份验证,虽然不会默认进行验证。 在 Windows Server 2016 DFL 或更高版本域的域控制器上启用对 PKInit Freshness Extension 的支持时,如果成功使用此扩展,域控制器将会添加已知的 SID FRESH_PUBLIC_KEY_IDENTITY (S-1-18-3)。 有关详细信息,请参阅 Kerberos 客户端和对 RFC 8070 PKInit Freshness Extension 的 KDC 支持

修补计算机

为具有 2017 年 10 月安全更新的 Windows 10 计算机提供服务时,将删除现有的 TPM 凭据密钥。 Windows 将只预配受到 Credential Guard 保护的密钥,以确保为域加入设备密钥提供票据传递攻击保护。 由于许多客户在域加入其计算机之后会添加 Credential Guard,这一变化确保启用了 Credential Guard 的设备能够确保使用凭据密钥发布的任何 TGT 都受到 Credential Guard 的保护。

临时域保护

在 Microsoft 发布域控制器服务修补程序以及用户部署修补程序之前,攻击者可以使用 AD 中的错误凭据密钥来作为域加入设备进行身份验证。 严重程度取决于目标设备。 例如,你可能会决定优先保护域控制器计算机帐户,然后再保护其他类型的计算机帐户。

可以通过在 Active Directory 中的计算机对象上设置一个不可用的凭据密钥,来保护计算机帐户免受此漏洞的影响。 这将导致计算机使用凭据密钥进行身份验证失败。 计算机随后会使用密码进行身份验证,而不是凭据密钥。

注意,确保没有配置使用证书来强制设备身份验证的组策略。 有关详细信息,请参阅域加入设备公钥身份验证中的“配置设备仅使用公钥”。

首先,下载 Windows PowerShell 模块获取 Active Directory 计算机凭据密钥

接下来,使用以下示例来禁用 Active Directory 中计算机帐户上的计算机凭据密钥

例如: 在单个计算机帐户上禁用凭据密钥

在本例中,我们在 Active Directory 中的单个计算机对象上设置了一个不可用的凭据密钥:

Import-Module .\ADComputerKeys.psm1;

Set-DRComputerKey -SamAccountName "MyComputer$" -Domain "contoso.com" -ReplaceWithUnusableKey;

例如: 在多个计算机帐户上禁用凭据密钥

在本例中,我们在 Active Directory 中的多个计算机对象上设置了一个不可用的凭据密钥。 为此,我们将此模块与 ActiveDirectory PowerShell 模块相结合。

例如,将目标指向虚拟运输部门组织单元中的所有计算机。

Import-Module .\ADComputerKeys.psm1;

Import-Module ActiveDirectory;

$computers = Get-ADComputer -SearchBase "OU=Shipping Department,DC=contoso,DC=com" -LDAPFilter "(CN=*)" -Server "contoso.com";

foreach($comp in $computers)

{

    Set-DRComputerKey -SamAccountName $comp.SamAccountName -Domain "contoso.com" -ReplaceWithUnusableKey;

}

删除临时域保护

为 DC 提供服务后,可以从 Active Directory 中的所有计算机对象中删除不可用的密钥。 此操作允许计算机帐户生成一个可以使用的新凭据密钥,而不是密码身份验证。

首先,下载 Windows PowerShell 模块获取 Active Directory 计算机凭据密钥

接下来,按照此示例从计算机对象中删除凭据密钥:

例如: 从多个计算机帐户中删除凭据密钥

在本例中,我们从 Active Directory 中的多个计算机对象中删除了凭据密钥。 为此,我们将此模块与 ActiveDirectory PowerShell 模块相结合。

例如,将目标指向虚拟运输部门组织单元中的所有计算机。

Import-Module .\ADComputerKeys.psm1;

Import-Module ActiveDirectory;

$computers = Get-ADComputer -SearchBase "OU=Shipping Department,DC=contoso,DC=com" -LDAPFilter "(CN=*)" -Server "contoso.com";

foreach($comp in $computers)

{

    Set-DRComputerKey -SamAccountName $comp.SamAccountName -Domain "contoso.com" -RemoveKey

}

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×