用于移除 Microsoft Entra 身份验证中的 KDFv1 算法支持的安全更新
Microsoft 在移除对密钥派生函数版本 1 (KDFv1) 算法的支持,该算法用于在 2021 年 7 月之前发布的 Windows 版本中对已加入或已混合加入 Microsoft Entra 的设备进行身份验证。
KDFv1 算法以前用于早期 Windows 版本中的设备身份验证。 我们发现了一个允许未经授权的身份验证的关键安全漏洞,如 CVE-2021-33781 中所述。 为了解决此漏洞,Microsoft 于 2021 年 7 月发布了一个 Windows 安全更新。 2021 年 7 月之后发布的所有 Windows 版本都不再使用 KDFv1 算法。
为了持续致力于增强安全性,Microsoft 会逐步推出一项安全更新,来阻止使用 KDFv1 算法通过 Microsoft Entra 进行身份验证。
使用 Microsoft Entra 进行身份验证的所有 Windows 设备都必须应用安全修补程序或运行 2021 年 7 月之后发布的 Windows 版本。 在全面推出此更改后,未修补的 Windows 设备不会通过 Microsoft Entra 进行身份验证。
未修补设备上的用户将在尝试登录时遇到以下错误消息:
登录错误代码: 5000611
失败原因: 对称密钥派生函数版本 1 无效。 请使用最新的更新来更新设备。
此错误消息还会出现在 Microsoft Entra 登录日志中,使管理员能够识别由于已弃用的 KDFv1 算法而导致的身份验证失败。
备注
由于安全更新是逐步推出的,未修补的 Windows 设备上的身份验证失败最初可能是短暂或间歇性出现。 在推出的早期,重新尝试身份验证可能会成功。 请务必及时应用 Windows 安全更新来解决这些问题,以便保持无缝身份验证体验。
Microsoft Entra 管理员应主动识别并解决其租户中可能受此安全更新影响的设备。 建议执行以下步骤:
- 监视身份验证失败事件:定期检查 Microsoft Entra 登录日志中是否存在错误代码 5000611,并了解相应的失败原因。
- 更新设备:如果用户报告身份验证失败且显示的错误消息中提及了 KDFv1 算法,请使用其 Windows 版本的最新安全更新来更新其设备。
- 搜索受影响的版本:使用 CVE 记录 CVE-2021-33781 中提供的指南搜索租户中可能正在运行受影响版本的 Windows 设备。 用于发现需要进行更新的设备的 PowerShell 脚本。
- 与用户沟通:向用户说明及时对设备进行更新的重要性,并提供有关如何应用必要更新的说明。
# Script to discover devices requiring an update to address KDFv1 vulnerability
Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scope "Device.Read.All"
Import-Module Microsoft.Graph.Identity.DirectoryManagement
# Define the output file
$file = ".\AffectedDevices.txt"
# Calculate the date for stale devices. Stale devices won't be listed
# Change this to a period you want to cover
$staleDate = (Get-Date).AddDays(-30)
Write-Host "Stale Date = $($staleDate)"
# Retrieve all Windows devices
$WinDevices = Get-MgDevice -Property "id,displayName,operatingSystem,approximateLastSignInDateTime" -All -ErrorAction Stop | Where-Object {
$_.operatingSystem -eq "Windows" -and $_.approximateLastSignInDateTime -gt $staleDate
}
# Check if there are any devices in the $WinDevices array
if ($WinDevices.Count -eq 0) {
Write-Host "No Windows devices found."
} else {
Write-Host "Found $($WinDevices.Count) Windows devices."
# Initialize an array to hold the output lines
$outputLines = @()
# Iterate through each device in the $WinDevices array
foreach ($device in $WinDevices) {
Write-Host "Processing device ID: $($device.id)"
# Retrieve the device details including LastSignInDateTime
$deviceDetails = Get-MgDevice -DeviceId $device.id -Property "id,deviceId,displayName,operatingSystem,operatingSystemVersion,approximateLastSignInDateTime" -ErrorAction Stop
# Check if the device matches the filter for affected devices and LastSignInDateTime
if (($deviceDetails.operatingSystemVersion -ge '10.0.22000' -and $deviceDetails.operatingSystemVersion -lt '10.0.22000.258') -or
($deviceDetails.operatingSystemVersion -ge '10.0.19041' -and $deviceDetails.operatingSystemVersion -lt '10.0.19044') -or
($deviceDetails.operatingSystemVersion -ge '10.0.18363' -and $deviceDetails.operatingSystemVersion -lt '10.0.18363.1679') -and
($deviceDetails.approximateLastSignInDateTime -ge $staleDate)){
Write-Host "Device matches filter: $($deviceDetails.displayName)"
$outputLines += "ID: $($deviceDetails.id)"
$outputLines += "Device ID: $($deviceDetails.deviceId)"
$outputLines += "Display Name: $($deviceDetails.displayName)"
$outputLines += "Operating System: $($deviceDetails.operatingSystem)"
$outputLines += "Operating System Version: $($deviceDetails.operatingSystemVersion)"
$outputLines += "Last Sign-In DateTime: $($deviceDetails.approximateLastSignInDateTime)"
$outputLines += "-----"
} else {
Write-Host "Device does not match filter: $($deviceDetails.displayName) OS Version $($deviceDetails.operatingSystemVersion) Last Sign-In DateTime $($deviceDetails.approximateLastSignInDateTime)"
}
}
# Write the output lines to the file
$outputLines | Out-File -FilePath $file -Encoding UTF8
Write-Host "AffectedDevices.txt file has been created."
}
主动监视和更新设备对于避免身份验证中断至关重要。 Microsoft Entra 管理员可以使用以下策略:
- 自动更新:实施自动更新策略,确保所有设备都可及时收到最新的安全修补程序。
- 定期审核:对设备进行定期审核,以确保符合安全更新要求。
- 用户培训:告知用户及时更新的重要性以及如何检查和应用更新。
有关移除 KDFv1 算法和相关安全更新的更多详细信息,请参阅以下资源: