Указанная функция не поддерживается. Произошла ошибка проверки подлинности. Указанная функция не поддерживается Rdp требуется проверка на уровне сети

После установки обновления 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) или перезагрузить компьютер. После этого вы должны успешно подключиться к удаленному рабочему столу сервера.

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

В чем же разница этих моделей?
Раньше, при подключении к службам терминалов, пользователь создавал сеанс связи с сервером, через который последний загружал экран ввода учетных данных для пользователя. Этот метод расходует ресурсы сервера еще до того, как пользователь подтвердил свою легальность, что дает возможность нелегальному пользователю полностью загрузить ресурсы сервера множественными запросами на вход. Сервер, не способный обработать эти запросы, отказывает в обработке запросов легальным пользователям (DoS-атака).


Проверка подлинности на уровне сети (Network-Level Authentication, NLA) заставляет пользователя вводить учетные данные в диалоговом окне на стороне клиента. По умолчанию, если на клиентской части нет проверки сертификата подлинности на уровне сети, то сервер не разрешит подключение, и оно не произойдет. NLA запрашивает клиентский компьютер предоставить свои учетные данные для проверки подлинности, еще до создания сеанса с сервером. Этот процесс еще называют фронтальной проверкой подлинности.



NLA была представлена еще в версии RDP 6.0 и поддерживалась изначально Windows Vista. С версии RDP 6.1 - поддерживается серверами под управлением операционной системой Windows Server 2008 и выше, а клиентская поддержка осуществляется у операционных систем Windows XP SP3 (необходимо в реестре разрешить нового провайдера безопасности) и выше. Метод использует поставщика безопасности CredSSP (Credential Security Support Provider). При использовании клиента удаленного рабочего стола для другой операционной системы - нужно узнать о ее поддержке NLA.


Преимущества NLA:
  • Не требует значительных ресурсов сервера.
  • Дополнительный уровень для защиты от DoS-атак.
  • Ускоряет процесс посредничества между клиентом и сервером.
  • Позволяет расширить технологию NT "единого логина" на работу с терминальным сервером.
Недостатки NLA:
  • Не поддерживаются другие поставщики безопасности.
  • Не поддерживается версиями клиента ниже Windows XP SP3 и сервера ниже Windows Server 2008.
  • Необходима ручная настройка реестра на каждом клиенте Windows XP SP3.
  • Как любая схема "единого логина" уязвима перед кражей "ключей от всей крепости".
  • Нет возможности использовать функцию "Требовать смену пароля при следующем входе в систему".

Если при подключении к серверу Вы используете Windows XP, то у Вас может возникнуть ошибка: «Удаленный компьютер требует проверки подлинности на уровне сети, которую данный компьютер не поддерживает».

Данная ошибка возникает в следствии того, что изначально в ОС Windows XP не была реализована проверка подлинности на уровне сети, данную возможность разработчики реализовали в последующих ОС. Так же позднее был выпущен файл обновления KB951608 который исправлял данную ошибку и позволял ОС Windows XP реализовать проверку подлинности на уровне сети.

Для того, чтобы Вы могли со своего компьютера под управлением ОС Windows XP подключиться к удаленному рабочему столу сервера необходимо установить Service Pack 3 (SP3), а после сделать следующее:

На официальном сайте Microsoft на русскоязычной странице https://support.microsoft.com/ru-ru/kb/951608 скачать файл автоматического исправления. Пролистайте страницу чуть ниже и нажмите кнопку «Скачать» в разделе «Помощь в решении проблемы».

Так же Вам доступна англоязычная страница https://support.microsoft.com/en-us/kb/951608 на которой Вы можете скачать данный файл нажав кнопку «Download» в разделе «How to turn on CredSSP»

После того как загрузка файла будет закончена запустите его на выполнение. После запуска данного файла Вы увидите окно программы. В нем на первом шаге установите галочку на «Принимаю». На втором шаге нажмите кнопку «Далее»

По выполнению установки Вы увидите следующее окно с уведомлением «Это исправление Microsoft Fix it было обработано» Вам остается только нажать «Закрыть».

После того как Вы нажали кнопку «Закрыть» программа укажет Вам чтобы изменения вступили в силу необходима перезагрузка компьютера, нажмите «Да» чтобы перезагрузить.

Решить проблему самостоятельно без загрузки файла

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

1. Нажмите кнопку Пуск (Start) , выберите пункт Выполнить (Run) , введите команду regedit и нажмите клавишу Ввод (Enter)