当用户尝试使用远程桌面协议连接Windows服务器或工作站时,可能会遇到“由于CredSSP加密Oracle修正,身份验证失败”的错误提示。这一问题的根源在于微软为解决安全漏洞而发布的安全更新在不同版本操作系统间的策略不一致,导致客户端与服务器在身份验证协议协商时失败。
CredSSP是Windows系统中用于远程桌面、Windows远程管理等服务的关键身份验证安全支持提供程序。它在客户端和服务器之间建立信任,并处理用户凭证的传递。2018年,微软公开了CredSSP协议中的一个安全漏洞,攻击者可能利用此漏洞在中间人攻击中执行远程代码执行。作为响应,微软发布了安全更新,对CredSSP协议的实现进行了修正,这就是“加密Oracle修正”。
问题的核心在于,这个安全修正引入了新的策略控制机制。微软为CredSSP协议设置了三种不同的策略模式:“强制更新的客户端”、“缓解”和“易受攻击”。当客户端和服务器通过CredSSP进行身份验证协商时,双方会交换各自支持的模式。如果双方模式不兼容,连接就会失败,并显示上述错误信息。
具体来说,如果一台计算机(通常是客户端)已安装相关安全更新并设置为“强制更新的客户端”或“缓解”模式,而另一台计算机(通常是服务器)未安装更新或仍设置为“易受攻击”模式,那么连接尝试将被主动阻止,以防止潜在的安全风险。这种策略不匹配是导致远程桌面连接失败的直接技术原因。
用户通常会看到明确的错误对话框,其中包含“发生身份验证错误。要求的函数不受支持。远程计算机:[计算机名]。这可能是由于CredSSP加密Oracle修正”等信息。在某些版本的Windows中,错误信息可能略有不同,但都会提及“CredSSP加密Oracle修正”。
要确认问题确实是由此引起,可以检查事件查看器中的相关日志。在服务器端,可以查看“Windows日志”下的“应用程序和服务日志”中的“Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational”日志。通常会找到事件ID为1149的警告,其中明确描述“远程桌面服务:用户身份验证失败。原因:由于CredSSP加密Oracle修正,服务器不支持请求的协议”。
解解决此问题需要在客户端、服务器或双方同时调整CredSSP加密Oracle修正的策略设置,使两端模式兼容。微软提供了四种策略选项,通过注册表或组策略进行配置:
1. 易受攻击:允许使用存在漏洞的CredSSP版本。计算机会接受来自任何客户端的未修补CredSSP连接请求,同时也可能向服务器发送未修补的请求。此设置安全性最低,仅在必要时临时使用。
2. 缓解:已更新CredSSP的计算机不会接受来自未修补客户端的连接请求,但会向服务器发送未修补的请求。未修补的计算机不会接受来自已更新客户端的连接请求,但会向服务器发送未修补的请求。
3. 强制更新的客户端:已更新CredSSP的计算机不会接受来自未修补客户端的连接请求,也不会向服务器发送未修补的请求。未修补的计算机无法连接到已更新的服务器。
4. 未配置:系统将默认使用“缓解”模式。
单机环境下的注册表修改方法:
对于独立计算机,可以通过修改注册表来调整策略。需要定位到路径“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters”。如果“CredSSP”或“Parameters”键不存在,需要手动创建。然后在“Parameters”键下新建一个名为“AllowEncryptionOracle”的DWORD值,根据需求将其设置为:
- 0:对应“强制更新的客户端”
- 1:对应“缓解”
- 2:对应“易受攻击”
修改完成后,需要重启计算机使设置生效。在进行注册表修改前,务必先备份相关键值或创建系统还原点,以防操作失误导致系统问题。
企业环境下的组策略配置:
在域环境中,建议使用组策略对象统一管理此设置,确保域内计算机策略一致。可以通过组策略管理控制台,在“计算机配置”>“管理模板”>“系统”>“凭据分配”中找到“加密Oracle修正”策略。将其设置为“已启用”,然后在下拉菜单中选择适当的安全级别。
需要特别强调的是,“易受攻击”设置会降低系统安全性,应仅作为临时故障排除手段。长期解决方案应该是确保所有需要远程连接的计算机都安装最新的安全更新,并配置适当、一致的CredSSP策略。
对于系统管理员,建议采取以下预防措施避免此类问题:在企业内部建立统一的Windows更新管理流程,确保关键安全更新及时部署;通过组策略集中管理CredSSP等安全相关设置;在部署可能影响身份验证协议的系统更新前,先在测试环境中验证兼容性。
与CredSSP加密Oracle修正相关的安全更新影响多个Windows版本,包括Windows 7、Windows 8.1、Windows 10、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2和Windows Server 2016。对于已结束主流支持的操作系统版本,管理员需要特别留意此类兼容性问题,并考虑升级到受支持的版本。
此外,这种协议协商问题不仅限于远程桌面连接,也可能影响依赖CredSSP的其他服务,如PowerShell远程处理、某些配置下的WinRM连接等。如果这些服务在安全更新后出现类似的身份验证失败,也可以参考相同的解决思路。
推荐文章
