什么是 AD FS 的 KDFv2?

2021 年 7 月 13 日,AD FS 发布了更新以解决令牌重播攻击,如 CVE-2021-33779 中所述。 这些更新引入了新的设置,用于启用和控制名为“KDFv2”的新密钥派生函数 (KDF)。 此新版 KDF 比上一版本更安全。 本文档介绍 CVE-2021-33779 安全修复中启用的新设置,以及如何在不同的部署方案中启用这些设置。 有关特定于产品的知识库编号和相关下载,请参阅 CVE 一文中提供的链接。

KDFv2 设置:

AD FS 服务器上的管理员可将 KDFv2 配置为在以下模式中运行:

  • 无 -(默认值)用于跟踪 KDFv2 设置值是否已更改。 此值可能不是由管理员设置的。
  • 已禁用 - 如果启用 KDFv2 时遇到任何问题,可以设置此值,以便还原密钥派生函数的原始行为。
  • 已启用 - 启用 KDFv2 支持。 ADFS 服务器将播发其支持的新功能。 如果使用原始 KDF 版本从客户端发送初始主刷新令牌 (PRT) 请求,ADFS 将接受请求并使用原始 KDF。 这样就能够支持未修补的客户端。
  • 已强制启用 - 启用 KDFv2 支持并禁止(拒绝)使用原始 KDF 的初始 PRT 请求。 管理员确认所有客户端都得到修补后,此函数的模式可能会切换到已强制启用。

AD FS 服务器上的管理员可通过以下 PowerShell 命令更改 KDFv2 模式:

  • 启用 KDFv2:
Set-AdfsProperties -KdfV2Support enable 
  • 禁用 KDFv2:
Set-AdfsProperties -KdfV2Support disable 
  • 强制启用 KDFv2:
Set-AdfsProperties -KdfV2Support enforce  

管理员可以运行 Get-AdfsProperties 来检查当前的 KDFv2 设置。 返回的 KdfV2Support 值将与配置的模式匹配。

部署方案

根据 AD FS 服务器在修补支持 KDFv2 时运行的 OS 版本,可能会自动启用 KDFv2。 此外,可能会记录与 OS 版本相关的事件,以指示场中 KDFv2 的状态。 下面是可能的部署方案和预期行为。

方案 1:场中所有 AD FS 服务器上都安装了 Windows Server 2019 或更高版本。 存在一个或多个场节点未进行修补。

预期行为:如果未修补场中所有节点,会记录以下错误事件,并指示建议的修正操作。 此事件每隔 24 小时记录一次,直到已修补场中所有节点。 修补所有节点后,将通过“启用”模式自动为场中所有系统启用 KDFv2。

 Source: AD FS  
 Level: Error 
 ID: 181 
 Message: AD FS could not enable the new KDFv2 feature automatically because of missing Windows Updates on one or more nodes of the farm. Please make sure that all the farm nodes are patched with the latest Windows Updates. AD FS checks regularly for the required updates to enable the new KDFv2 feature. An event 182 will be logged when a check is successful. For more information on this, please see  https://go.microsoft.com/fwlink/?linkid=2153807. 

方案 2:场中一个或多个服务器上安装了 Windows Server 2016。 所有服务器都运行 Windows 2016 或更高版本。 存在一个或多个场节点未进行修补。

预期行为:如果未修补场中所有节点,会记录以下错误事件,并指示建议的修正操作。 此事件每隔 24 小时记录一次,直到已修补场中所有节点。 修补所有节点后,必须在场中所有服务器上手动启用 KDFv2。

 Source: AD FS  
 Level: Error 
 ID: 185 
 Message: KDFv2 feature is not enabled on AD FS farm. Please make sure that all the farm nodes are patched with latest Windows Updates and the KDFv2 feature is enabled to enhance the security of the farm. For more information on this, please see  https://go.microsoft.com/fwlink/?linkid=2153807. 

方案 3:场中所有 ADFS 服务器上都安装了 Windows Server 2019 或更高版本。 场中所有服务器都得到了修补。

预期行为:如上面方案 1 中所述,在场上自动启用 KDFv2 后,会记录以下事件。

 Source: AD FS 
 Level: Information 
 ID: 182 
 Message: AD FS enabled the new KDFv2 feature successfully. For more information on this, please see https://go.microsoft.com/fwlink/?linkid=2153807. 

注意

如果场中有任何服务器在运行 Windows Server 2016,将不会记录事件 182。

方案 4:管理员在其环境中的一个或多个服务器上已禁用 KDFv2。

预期行为:ADFS 服务启动时,将在场中已禁用 KDFv2 的每个系统上记录以下日志消息。

 Source: AD FS 
 Level: Warning 
 ID: 183 
 Message: KDFv2 feature is disabled on AD FS farm. Please make sure that all the farm nodes are patched with latest Windows Updates and the KDFv2 feature is enabled to enhance the security of the farm. For more information on this, please see https://go.microsoft.com/fwlink/?linkid=2153807. 

下一步