文档平台 云服务器 故障处理 实例相关故障 登录相关 Windows 实例远程登录时身份验证错误

Windows 实例远程登录时身份验证错误

最近更新时间:2018-11-28 16:40:38

查看pdf

问题描述

通过远程桌面连接登录 Windows 实例时,出现 “发生身份验证错误,给函数提供标志无效” 或 “发生身份验证错误。要求的函数不受支持” 的报错,如下图所示:
给函数提供标志无效
要求函数不支持

问题分析

由于微软于2018年3月发布了一个安全更新,此更新通过更正凭据安全支持提供程序协议(CredSSP)在身份验证过程中验证请求的方式来修复 CredSSP 存在的远程执行代码漏洞。客户端和服务器都需要安装此更新,否则可能出现问题描述中的情况。
客户端服务器匹配情况
如上图所示,以下三种情况会引起远程连接失败:

  • 情况一:客户端未修补,服务器安装了安全更新,并且策略配置为 “强制更新的客户端”。
  • 情况二:服务器未修补,客户端安装了安全更新,并且策略配置为 “强制更新的客户端”。
  • 情况三:服务器未修补,客户端安装了安全更新,并且策略配置为 “缓解”。

解决方案

方案一:安装安全更新(推荐)

安装安全更新,更新未修补的客户端/服务器端。不同系统对应的更新情况可参见 CVE-2018-0886 | CredSSP 远程执行代码漏洞

注意:

各操作系统进入【Windows 更新】的方法有所不同。本方案以 Windows server 2016 为例。

  • Windows Server 2012:【开始】- 【控制面板】-【系统与安全】-【Windows 更新】
  • Windows Server 2008:【开始】- 【控制面板】-【系统与安全】-【Windows Update】
  • Windows10:【开始】- 【设置】-【更新与安全】
  • Windows 7:【开始】- 【控制面板】-【系统与安全】-【Windows Update】

服务器端(即 CVM 实例)进行系统更新的操作步骤如下:

说明:

客户端本地的升级操作,请直接执行 步骤5

  1. 登录 云服务器控制台
  2. 在 “云主机” 页面中,找到目标 CVM 实例,单击【登录】。如下图所示:
    云服务器列表页
  3. 在弹出的 “登录Windows云服务器” 窗口中,选择 “浏览器 VNC 方式登录”,单击【立即登录】。如下图所示:
    VNC登录入口
  4. 在弹出的登录窗口中,选择左上角的 “发送远程命令”,单击 Ctrl-Alt-Delete 进入系统登录界面。如下图所示:
    Ctrl-Alt-Delete
  5. 在操作系统界面,选择【开始】> 【设置】。如下图所示:
    开始设置
  6. 在弹出的 “设置” 窗口中,选择【更新与安全】。如下图所示:
    更新与安全
  7. 在 “更新和安全” 中,选择 “Windows 更新”,单击【检查更新】。如下图所示:
    检查更新
  8. 根据界面提示,单击【开始安装】。
  9. 安装完成后,重启实例,完成更新。

方案二:修改策略配置

在已安装安全更新的机器中,将【加密 Oracle 修正】策略设置为 “易受攻击” 。操作步骤如下:

注意:

Windows 10 家庭版操作系统中,没有组策略编辑器,可通过修改注册表来实现。操作步骤请参见 方案三

  1. 在操作系统界面,选择【开始】>【运行】,输入 gpedit.msc。如下图所示:

    说明:

    也可使用 “Win+R” 快捷键打开运行界面。

    gpedit.msc

  2. Enter,打开本地组策略略编辑器。

  3. 在左侧导航树中,选择【计算机配置】>【管理模板】>【系统】>【凭据分配】,双击【Endcryption Oracle Remediation】。如下图所示:
    加密Oracle修正

  4. 在 “Endcryption Oracle Remediation” 窗口中,选择 “已启用”,并将 “Protection Level” 设置为 “Vulnerable”。如下图所示:
    易受攻击

  5. 单击【确定】,完成设置。

方案三:修改注册表

  1. 在操作系统界面,选择【开始】>【运行】,输入 regedit。如下图所示:

    说明:

    也可使用 “Win+R” 快捷键打开运行界面。

    注册表编辑器

  2. Enter,打开注册表编辑器。

  3. 在左侧导航树中,选择 “计算机 > HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System > CredSSP > Parameters”。如下图所示:

    说明:

    若该文件夹路径不存在,请手动创建。

    Parameters

  4. 右键单击 “Parameters”,选择【新建】>【DWORD(32位)】,并将文件名称命名为 “AllowEncryptionOracle”。

  5. 双击新建的 “AllowEncryptionOracle” 文件,将 “数值数据” 设置为 “2”,单击【确定】。如下图所示:
    AllowEncryptionOracle

  6. 重启本地计算机。

相关文档

CVE-2018-0886 | CredSSP 远程执行代码漏洞
CVE-2018-0886 的 CredSSP 更新

如果有其他疑问,您也可以在问答社区中寻求帮助。前往问答社区 >