远程桌面连接失败:身份验证出错,由于CredSSP加密Oracle修正(Encryption oracle remediation)

时间:2024-04-08 22:32:17

适用于:所有云平台,包括但不限于Azure, 阿里云,AWS

问题症结

你的本地机器或者远程机器, 只有一方安装了远程桌面CredSSP漏洞补丁。并且这台安装了补丁的机器,禁止不安全的远程桌面连接。

背景

远程桌面CredSSP漏洞补丁在2018年3月13号发布。这个补丁修复了漏洞,并且新增加了一个组策略项:Encryption oracle remediation,来控制是否允许不安全的远程连接。默认是允许的。

微软在5月8号发布了的新的CredSSP漏洞补丁,并且把这个默认值改成禁止不安全的远程连接。所以可能大量云平台,比如阿里云,Azure, AWS的虚拟机无法通过远程桌面访问。具体报错如下:

* [CN-ZH]出现身份验证错误。要求的函数不受支持远程计算机:<IP>。这可能是由于CredSSP加密Oracle修正。若要了解详细信息,请访问:https://go.microsoft.com/fwlink/?linkid=866660.

* [EN-US]An authentication error has occurred. The function requested is not supported. Remote computer: IP. This could be due to CredSSP encryption oracle remediation. For more information, see https://go.microsoft.com/fwlink/?linkid=866660

如何解决

方案一

客户端和远程机器都打上CredSSP漏洞补丁。下面表格列出不同操作系统对应的CredSSP漏洞补丁。这个补丁主要更新了TSpkg.dll文件。下面也列出了更新后的版本号。

系统 TSpkg.dll 版本号 CredSSP 补丁
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1 6.1.7601.24117 KB4103718 (Monthly Rollup)
KB4103712
Windows Server 2012 6.2.9200.22432 KB4103730
KB4103726)
Windows 8.1 / Windows Sever 2012 R2 6.3.9600.18999 KB4103725
KB4103715
RS1 - Windows 10 Version 1607 / Windows Server 2016 10.0.14393.2248 KB4103723
RS2 - Windows 10 Version 1703 10.0.15063.1088 KB4103731
RS3 - Windows 10 1709 10.0.16299.431 KB4103727

方案二

如果你暂时不想打这个补丁,可以通过设置组策略项Encryption oracle remediation或者直接修改注册表,来允许不安全的远程桌面连接。

使用组策略:

1. 找到组策略项Encryption oracle remediation.在组策略里的地址如下:

  • CN: 计算机配置>管理模板 > 系统 > Credentials Delegation > Encryption oracle remediation

  • EN: Computer Configuration > Administrative Templates > System > Credentials Delegation > Encryption oracle remediation

  • 我的:计算机配置>管理模板>系统>凭据分配>加密 Oracle 修正

2. 把Encryption oracle remediation改成启用(Enable),保护级别( Protection Level)改成 易受攻击(Vulnerable).远程桌面连接失败:身份验证出错,由于CredSSP加密Oracle修正(Encryption oracle remediation)

使用注册表:

1. 打开注册表,寻找到路径:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters

2. 如果System 后就没有CredSSP和Parameters目录, 自己创建这两个目录就好。 3. 在Parameters里, 新建如**册表键值:

注册表类型:DWORD(32-bit)
名字:AllowEncryptionOracle
值: 2