Rdp windows 7 указанная функция не поддерживается. Исправить когда ошибка произошла проверки подлинности RDP

Данная ошибка связана с установкой обновлений CredSSP для CVE-2018–0886 . Проблема решается установкой обновления.

Введение

13 марта 2018 г. выпущено обновление безопасности Windows протокола проверки подлинности CredSSP закрывающее уязвимость CVE-2018–0886 . Уязвимость в протоколе Credential Security Support Provider (CredSSP - провайдер поддержки безопасности учетных данных) допускала удаленный запуск произвольного кода на уязвимой системе.

8 мая 2018 г. Microsoft изменила уровень безопасности подключения с Vulnerable на Mitigated и начались проблемы подключения к удаленному рабочему столу по RDP.

После ввода учетных данных появляется ошибка:

Произошла ошибка при проверке подлинности.
Указанная функция не поддерживается.
Причиной ошибки может быть исправление шифрования CredSSP

Решение 1. Установить обновление безопасности Windows на сервере.

  • Зайдите на страницу уязвимости CVE-2018–0886
  • В секции Affected Products из столбца Downloads выберите подходящий файл, скачайте и установите.

Решение 2. Удалить обновление безопасности Windows на клиенте.

Решение 3. Отредактировать политику безопасности на клиенте/сервере.

Использовать стоит, если нет возможности подключитсья к серверу и установить обновление. После установки обновления, политику нужно вернуть в исходное состояние.

Откройте редактор локальной групповой политики:

  • Нажмите Win+R
  • Введите команду gpedit.msc и нажмите Enter

Измените параметры безопасности:

  • Конфигурация компьютера (Computer Configuration) > Административные шаблоны (Administrative Templates) > Система (System) > Передача учетных данных (Credentials Delegation)
  • Откройте параметр «Исправление уязвимости шифрующего оракула» (Encryption Oracle Remediation)
  • Выберите «Включено» («Enabled»).
  • Уровень защиты установить «Оставить уязвимость» («Vulnerable»).

У политики присутствует 3 опции:

  • Vulnerable – клиенты могут подключаться на уязвимые машины.
  • Mitigated – клиенты не могут подключаться к уязвимым серверам, но серверы могут принимать уязвимые клиенты.
  • Force Updated Clients – безопасный уровень взаимодействия клиентов.

Если на клиентской машине отсутствует редактор локальной групповой политики, изменение вносятся в реестр.

После установки майских обновлений безопасности (от 8 мая 2018 г. на платформы Windows 7/8/10 и серверные платформы на ОС Windows Server 2008 R2 / 2012 R2 / 2016) пользователи не получают доступ к удаленной машине посредством RDP и RemoteApp, и происходит следующая ошибка:

Скриншот: окно ошибки CredSSP после выполнения подключения RDP к серверу с клиентской машины.

В начале весны 2018 года Microsoft выпустила обновление, предотвращающее удалённое выполнение кода с помощью уязвимости в протоколе CredSSP, и в мае было выложено обновление после установки которого по умолчанию клиентским машинам запрещено подключение к удаленным RDP-серверам с уязвимой версией протокола CredSSP. Соответственно если на клиентах весенние обновления установлены, а на серверах с ОС Windows Server — не установлены, то мы получим ошибку при подключении:

«Произошла ошибка при проверке подлинности. Указанная функция не поддерживается. Причиной ошибки может быть исправление CredSSP.»

Или английский вариант:

«This could be due to CredSSP encryption oracle remediation.»

Ошибка клиента RDP появляется после установки обновлений безопасности:

  • Windows 7 / Windows Server 2008 R2 - обновление KB4103718
  • Windows 8.1 / Windows Server 2012 R2 - обновление KB4103725
  • Windows 10 1803 - обновление KB4103721
  • Windows 10 1709 - обновление KB4103727
  • Windows 10 1703 - обновление KB4103731
  • Windows 10 1609 - обновление KB4103723
  • Windows Server 2016 - обновление KB4103723

Для восстановления подключения можно просто удалить вышеуказанные обновления, но это действие откроет найденную уязвимость, поэтому план действий для решения проблемы будет такой:

  1. Мы временно, на компьютере с которого подключаемся по RDP, уберем уведомление безопасности, которое блокирует подключение;
  2. Подключимся к нему по уже восстановленному RDP-подключению, и установим необходимый патч безопасности;
  3. Включим обратно уведомление безопасности которое временно отключали в первом пункте плана действий.
  • Открываем редактор локальных групповых политик: Пуск — Выполнить — gpedit.msc;
  • Переходим в раздел Конфигурация компьютера — Административные шаблоны — Система — Передача учетных данных (Computer Configuration — Administrative Templates — System — Credentials Delegation — англ.);
  • Находим политику с именем Исправление уязвимости шифрующего оракула (Encryption Oracle Remediation- англ.). Включите политику Включено (Enabled — англ.), в качестве параметра в выпадающем списке выберите Оставить уязвимость (Vulnerable — англ.);

Скриншот: включение опции GPO — Исправление уязвимости шифрующего оракула
  • Осталось обновить политики на компьютере (для этого открываем Cmd и используем команду gpupdate/force) и попробовать подключится по RDP. При включенной политике клиентские приложения с поддержкой CredSSP смогут подключаться даже к непропатченным Remote Desktop серверам.

Если это домашний компьютер с урезанной версией Windows, и у вас нет доступа к консоли локальных групповых политик — не беда, воспользуемся редактором реестра (Regedit). Запускаем его, и проходим по пути:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters

и установить значение параметра AllowEncryptionOracle в значение 2 (0х00000002).

Затем, необходимо скачать и установить обновления безопасности, подходящие для вашей системы (публикую прямые ссылки на обновления для Windows Server для вашего удобства, которые очень рекомендую установить):

  • Windows Server 2016 / Windows 10 1607 — KB4103723
  • Windows Server 2012 R2 / Windows 8 —

После установки обновления KB4103718 на моем компьютере с Windows 7 я не могу удаленно подключится к серверу c Windows Server 2012 R2 через удаленный рабочий стол RDP. После того, как я указываю адрес RDP сервера в окне клиента mstsc.exe и нажимаю «Подключить», появляется ошибка:

Подключение к удаленному рабочему столу

Произошла ошибка проверки подлинности.

Указанная функция не поддерживается.
Удаленный компьютер: computername

После того, как я удалил обновление KB4103718 и перезагрузил компьютер, RDP подключение стало работать нормально. Если я правильно понимаю, это только временное обходное решение, в следующем месяце приедет новый кумулятивный пакет обновлений и ошибка вернется? Можете что-нибудь посоветовать?

Ответ

Вы абсолютно правы в том, что бессмысленно решать проблему , ведь вы тем самым подвергаете свой компьютер риску эксплуатации различных уязвимостей, которые закрывают патчи в данном обновлении.

В своей проблеме вы не одиноки. Данная ошибка может появится в любой операционной системе Windows или Windows Server (не только Windows 7). У пользователей английской версии Windows 10 при попытке подключится к RDP/RDS серверу аналогичная ошибка выглядит так:

An authentication error has occurred.

The function requested is not supported.

Remote computer: computername

Ошибка RDP “An authentication error has occurred” может появляться и при попытке запуска RemoteApp приложений.

Почему это происходит? Дело в том, что на вашем компьютере установлены актуальные обновления безопасности (выпущенные после мая 2018 года), в которых исправляется серьёзная уязвимость в протоколе CredSSP (Credential Security Support Provider), использующегося для аутентификации на RDP серверах (CVE-2018-0886) (рекомендую познакомится со статьей ). При этом на стороне RDP / RDS сервера, к которому вы подключаетесь со своего компьютера, эти обновления не установлены и при этом для RDP доступа включен протокол NLA (Network Level Authentication / Проверку подлинности на уровне сети). Протокол NLA использует механизмы CredSSP для пре-аутентификация пользователей через TLS/SSL или Kerberos. Ваш компьютер из-за новых настроек безопасности, которые выставило установленное у вас обновление, просто блокирует подключение к удаленному компьютеру, который использует уязвимую версию CredSSP.

Что можно сделать для исправления эту ошибки и подключиться к вашему RDP серверу?

  1. Самый правильный способ решения проблемы – установка последних обновлений безопасности Windows на компьютере / сервере, к которому вы подключаетесь по RDP;
  2. Временный способ 1 . Можно отключить проверку подлинности на уровне сети (NLA) на стороне RDP сервера (описано ниже);
  3. Временный способ 2 . Вы можете на стороне клиента разрешить подключение к RDP серверам с небезопасной версией CredSSP, как описано в статье по ссылке выше. Для этого нужно изменить ключ реестра AllowEncryptionOracle (команда REG ADD
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2) или изменить настройки локальной политики Encryption Oracle Remediation / Исправление уязвимости шифрующего оракула), установив ее значение = Vulnerable / Оставить уязвимость).

    Это единственный способ доступа к удаленному серверу по RDP, если у вас отсусвует возможность локального входа на сервер (через консоль ILO, виртуальной машины, облачный интерфейс и т.д.). В этом режиме вы сможете подключиться к удаленному серверу и установить обновления безопасности, таким образом перейдете к рекомендуемому 1 способу. После обновления сервера не забудьте отключить политику или вернуть значение ключа AllowEncryptionOracle = 0: REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 0

Отключение NLA для протокола RDP в Windows

Если на стороне RDP сервера, которому вы подключаетесь, включен NLA, это означает что для преаутентификации RDP пользователя используется CredSPP. Отключить Network Level Authentication можно в свойствах системы на вкладке Удаленный доступ (Remote ) , сняв галку «Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети / Allow connection only from computers running Remote Desktop with Network Level Authentication (recommended)» (Windows 10 / Windows 8).

В Windows 7 эта опция называется по-другому. На вкладке Удаленный доступ нужно выбрать опцию «Разрешить подключения от компьютеров с любой версией удаленного рабочего стола (опасный) / Allow connections from computers running any version of Remote Desktop (less secure)».

Также можно отключить проверку подлинности на уровне сети (NLA) с помощью редактора локальной групповой политики - gpedit .msc (в Windows 10 Home редактор политик gpedit.msc можно запустить ) или с помощью консоли управления доменными политиками – GPMC.msc. Для этого перейдите в разделе Конфигурация компьютера –> Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов –> Безопасность (Computer Configuration –> Administrative Templates –> Windows Components –> Remote Desktop Services – Remote Desktop Session Host –> Security), отключите политику (Require user authentication for remote connections by using Network Level Authentication).

Также нужно в политике «Требовать использования специального уровня безопасности для удаленных подключений по протоколу RDP » (Require use of specific security layer for remote (RDP) connections) выбрать уровень безопасности (Security Layer) - RDP .

Для применения новых настроек RDP нужно обновить политики (gpupdate /force) или перезагрузить компьютер. После этого вы должны успешно подключиться к удаленному рабочему столу сервера.