摘要
凭据安全支持提供程序协议 (CredSSP) 是处理其他应用程序的身份验证请求的身份验证提供程序。
未修补的 CredSSP 版本中存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以中继用户凭据,以在目标系统上执行代码。 依赖于 CredSSP 进行身份验证的任何应用程序都容易受到此类攻击。
此安全更新通过更正 CredSSP 在身份验证过程中验证请求的方式来解决漏洞。
若要了解有关漏洞的详细信息,请参阅 CVE-2018-0886。
更新
2018 年 3 月 13 日
初始版本 2018 年 3 月 13 日更新所有受影响平台的 CredSSP 身份验证协议和远程桌面客户端。
缓解措施包括在所有符合条件的客户端和服务器操作系统上安装更新,然后使用包含组策略设置或基于注册表的等效项来管理客户端和服务器计算机上的设置选项。 我们建议管理员尽快在客户端和服务器计算机上应用策略并将其设置为“强制更新的客户端”或“已缓解”。 这些更改需要重新启动受影响的系统。
请密切关注组策略或注册表设置对,这些设置对会导致客户端和服务器之间的“阻止”交互(在本文后面的兼容表中)。
2018 年 4 月 17 日
KB 4093120 中的远程桌面客户端 (RDP ) 更新将增强更新客户端无法连接到尚未更新的服务器时显示的错误消息。
2018 年 5 月 8 日
将默认设置从“ 易受攻击” 更改为 “缓解”的更新。
CVE-2018-0886 中列出了相关Microsoft知识库编号。
默认情况下,安装此更新后,修补的客户端无法与未修补的服务器通信。 使用本文中所述的互操作性矩阵和组策略设置启用“允许”配置。
组策略
| 策略路径和设置名称 | 说明 |
|---|---|
| 策略路径: 计算机配置 -> 管理模板 -> 系统 -> 凭据委派 设置名称:加密 Oracle 修正 |
加密 oracle 修正 此策略设置适用于使用 CredSSP 组件 (的应用程序,例如远程桌面连接) 。 某些版本的 CredSSP 协议容易受到针对客户端的加密 Oracle 攻击。 此策略控制与易受攻击的客户端和服务器的兼容性。 此策略允许你为加密 Oracle 漏洞设置所需的保护级别。 如果启用此策略设置,则会根据以下选项选择 CredSSP 版本支持: 强制更新的客户端 - 使用 CredSSP 的客户端应用程序将无法回退到不安全的版本,使用 CredSSP 的服务将不接受未修补的客户端。 注意 在所有远程主机都支持最新版本之前,不应部署此设置。 减轻– 使用 CredSSP 的客户端应用程序将无法回退到不安全的版本,但使用 CredSSP 的服务将接受未修补的客户端。 脆弱– 使用 CredSSP 的客户端应用程序将通过支持回退到不安全的版本来使远程服务器受到攻击,而使用 CredSSP 的服务将接受未修补的客户端。 |
加密 Oracle 修正组策略支持以下三个选项,这些选项应应用于客户端和服务器:
| 策略设置 | 注册表值 | 客户端行为 | 服务器行为 |
|---|---|---|---|
| 强制更新的客户端 | 0 | 使用 CredSSP 的 客户端应用程序将无法回退到不安全的版本。 | 使用 CredSSP 的服务 不接受 未修补的客户端。 注意在所有 Windows 和第三方 CredSSP 客户端都支持最新的 CredSSP 版本之前,不应部署此设置。 |
| 缓解 | 1 | 使用 CredSSP 的 客户端应用程序将无法回退到不安全的版本。 | 使用 CredSSP 的服务 将接受未修补的 客户端。 |
| 易受攻击 | 2 | 使用 CredSSP 的客户端应用程序 将通过 支持回退到不安全的版本来使远程服务器受到攻击。 | 使用 CredSSP 的服务 将接受未修补的 客户端。 |
将于 2018 年 5 月 8 日发布的第二个更新会将默认行为更改为“已缓解”选项。
注意 对加密 Oracle 修正的任何更改都需要重新启动。
注册表值
注意
警告 如果使用注册表编辑器或其他方法修改注册表不当,可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 无法保证可以解决这些问题。 修改注册表的风险由您自行承担。
此更新引入了以下注册表设置:
| 注册表路径 | HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters |
|---|---|
| 值 | AllowEncryptionOracle |
| 日期类型 | DWORD |
| 需要重新启动? | 是 |
互操作性矩阵
客户端和服务器都需要更新,或者 Windows 和第三方 CredSSP 客户端可能无法连接到 Windows 或第三方主机。 有关易受攻击或导致操作失败的方案,请参阅以下互操作性矩阵。
注意 连接到 Windows 远程桌面服务器时,可以将服务器配置为使用采用 TLS 协议进行身份验证的回退机制,并且用户可能会获得与本矩阵中所述不同的结果。 此矩阵仅描述 CredSSP 协议的行为。
| 服务器 | |||||
|---|---|---|---|---|---|
| 未修补 | 强制更新的客户端 | 缓解 | 易受攻击 | ||
| 客户端 | 未修补 | 允许 | 封锁 | 允许 | 允许 |
| 强制更新的客户端 | 封锁 | 允许 | 允许 | 允许 | |
| 缓解 | 封锁 | 允许 | 允许 | 允许 | |
| 易受攻击 | 允许 | 允许 | 允许 | 允许 |
| 客户端设置 | CVE-2018-0886 修补程序状态 |
|---|---|
| 未修补 | 易受攻击 |
| 强制更新的客户端 | 安全 |
| 缓解 | 安全 |
| 易受攻击 | 易受攻击 |
Windows 事件日志错误
如果在阻止的配置中配置了客户端和远程主机,则会在修补的 Windows 客户端上记录事件 ID 6041。
| 事件日志 | 系统 |
|---|---|
| 事件源 | LSA (LsaSrv) |
| 事件 ID | 6041 |
| 事件消息文本 | 对主机名的 CredSSP 身份验证<未能协商通用协议版本。> 加密 Oracle 修正不允许的远程主机提供的协议版本<>。 |
由已修补的 Windows RDP 客户端阻止的 CredSSP 配置对生成的错误
远程桌面客户端在没有 2018 年 4 月 17 日修补程序 (KB 4093120)
| 未修补的预Windows 8.1和Windows Server 2012 R2 客户端与配置了“强制更新的客户端”的服务器配对 | 由已修补的 Windows 8.1/Windows Server 2012 R2 及更高版本的 RDP 客户端阻止的 CredSSP 配置对生成的错误 |
|---|---|
| 发生了身份验证错误。 提供给函数的令牌无效 |
发生了身份验证错误。 不支持请求的函数。 |
远程桌面客户端在 2018 年 4 月 17 日修补程序 (KB 4093120)
| 未修补的预Windows 8.1和Windows Server 2012 R2 客户端与配置了“强制更新的客户端”的服务器配对 | 这些错误是由已修补的 Windows 8.1/Windows Server 2012 R2 及更高版本的 RDP 客户端由 CredSSP 阻止的配置对生成的。 |
|---|---|
| 发生了身份验证错误。 提供给函数的令牌无效。 |
发生了身份验证错误。 不支持请求的函数。 远程计算机: <主机名> 这可能由 CredSSP 加密 oracle 修正引起的。 有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=866660 |
第三方远程桌面客户端和服务器
所有第三方客户端或服务器都必须使用最新版本的 CredSSP 协议。 请联系供应商以确定其软件是否与最新的 CredSSP 协议兼容。
可以在 Windows 协议文档站点上找到协议更新。
文件更改
此更新中已更改以下系统文件。
- tspkg.dll
credssp.dll 文件保持不变。 有关详细信息,请查看文件版本信息 的相关文章 。