Ошибка RDP подключения: Указанная функция не поддерживается, ошибка шифрования CredSSP
После установки последних обновлений безопасности, вышедших 8 мая 2018 года, на Windows 10 и 7, пользователи стали жаловаться, что при попытке подключится к RemoteApp на RDS серверах под Windows Server 2016 / 2012 R2 / 2008 R2, или удаленным рабочим столам других пользователей по протоколу RDP (на Win 10/8/7), появляется ошибка:
Remote Desktop connection
An authentication error has occurred.
The function is not supported.
Remote Computer: hostname
This could be due to CredSSP encryption oracle remediation.
Подключение к удаленному рабочему столу
Произошла ошибка при проверке подлинности.
Указанная функция не поддерживается.
Причиной ошибки может быть исправление шифрования CredSSP.
Данная ошибка связана с тем, что на Windows Server или обычных десктопных версиях Windows, к котором вы пытаетесь подключится по RDP, с марта 2018 года не устанавливались обновления безопасности. Дело в том, что еще в марте 2018 Microsoft выпустила обновление, закрывающее возможность удаленного выполнения кода с помощью уязвимости в протоколе CredSSP (бюллетень CVE-2018-0886). В мае 2018 было опубликовано дополнительное обновление, в котором по-умолчанию клиентам запрещается подключаться к удаленным RDP серверам с уязвимой (непропатченной) версией протокола CredSSP.
Таким образом, если вы не устанавливали накопительные обновления безопасности на RDS серверах Windows с марта этого года, а клиенты (Win 10 / 8 / 7) установили майские обновления, то на них при попытке подключится к RDS серверам с непропатченной версией 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 Server 2016 — KB4103723
- Windows 10 1803 — KB4103721
- Windows 10 1709 — KB4103727
- Windows 10 1703 — KB4103731
- Windows 10 1609 — KB4103723
Для восстановления удаленного подключения к рабочему столу можно удалить указанное обновление (но это не рекомендуется и делать этого не стоит, есть более правильное решение).
Для решения проблемы нужно временно на компьютере, с которого вы подключаетесь по RDP, убрать данное уведомление безопасности, блокирующее подключение.
Это можно сделать через редактор локальных групповых политик. Для этого:
- Запустите редактор локальных GPO: gpedit.msc ;
В том случае, если у вас отсутствует редактор локальных GPO (например, в Home редакциях Windows), вы можете внести изменение, разрешающее RDP подключение к серверам с непропатченной версия CredSSP, напрямую в реестр с помощью команды:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
Можно внести изменения сразу на множестве компьютеров в AD с помощью доменной GPO или такого PowerShell скрипта (список компьютеров в домене можно получить с помощью командлета Get-ADComputer ):
Import-Module ActiveDirectory
$PSs = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $PCs) <
Invoke-Command -ComputerName $computer -ScriptBlock <
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
>
>
После успешного подключения к удаленному RDP серверу (компьютеру) нужно установить на нем отсутствующие обновления безопасности через службу Windows Update (проверьте, что служба включена) или вручную. Ниже представлены прямые ссылки на обновления для Windows Server, которые обязательно нужно установить:
- Windows Server 2012 R2 / Windows 8: KB4103715
- Windows Server 2008 R2 / Windows 7: KB4103712
- Windows Server 2016 / Windows 10 1607 = KB4103723
После установки обновлений и перезагрузки сервера, не забудьте отключить политику на клиентах (либо выставить ее на Force Updated Clients), или вернуть значение 0 у ключа реестра AllowEncryptionOracle. В этом случае, ваш компьютер не будет подвержен риску подключения к незащищенным хостам с CredSSP и эксплуатации уязвимости.
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 0
Произошла ошибка проверки подлинности. Указанная функция не поддерживается
После установки обновления KB4103718 на моем компьютере с Windows 7 я не могу удаленно подключится к серверу через удаленный рабочий стол RDP. После того, как я указываю адрес RDP сервера в окне клиента mstsc.exe и нажимаю «Подключить», появляется ошибка:
Подключение к удаленному рабочему столу
Произошла ошибка проверки подлинности.
Указанная функция не поддерживается.
После того, как я удалил обновление KB4103718 и перезагрузил компьютер, RDP подключение стало работать нормально. Но, как я понимаю, это только временное обходное решение, в следующем месяце приедет новый патч и ошибка вернется. Можете что-нибудь посоветовать?
Ответ
Вы абсолютно правы в том, что бессмысленно решать проблему удалением обновлениq Windows, ведь вы тем самым подвергаете свой компьютер риску эксплуатации различных уязвимостей, которые закрывает данное обновление.
В своей проблеме вы не одиноки. У пользователей английской версии Windows при попытке подключится к RDP/RDS серверу появляется ошибка:
An authentication error has occurred.
The function requested is not supported.
Почему это происходит? В первую очередь рекомендую познакомится со статьей Ошибка RDP подключения: CredSSP encryption oracle remediation . В ней я подробно описывал, почему после установки последних (май 2018 года) обновлений безопасности на Windows клиентах, у пользователей могут появится проблемы с подключением к удаленным компьютерам / серверам по RDP. Дело в том, что в майских обновлениях безопасности Microsoft исправила серьезную уязвимость в протоколе CredSSP, использующегося для аутентификации на RDP серверах(CVE-2018-0886). В том случае, если на RDP сервере не установлены последние обновления и на нем используется устаревшая версия протокола CredSSP, такое подключение блокируется клиентом.
Что можно сделать для исправления данной проблемы
- Самый правильный способ решения проблемы – установка актуальных кумулятивных обновлений безопасности на компьютере / сервере, к которому вы подключаетесь по RDP.
- Временный способ 1 . Можно отключить NLA (Network Level Authentication / Проверку подлинности на уровне сети) на стороне RDP сервера (описано ниже).
- Временный способ 2 . Вы можете разрешить на стороне клиентов подключаться к RDP с небезопасной версией CredSSP, как описано в статье по ссылке выше (ключ реестра AllowEncryptionOracle или локальная политика Encryption Oracle Remediation / Исправление уязвимости шифрующего оракула) = Vulnerable / Оставить уязвимость).
Отключение NLA для протокола RDP в Windows
В том случае, если на стороне RDP сервера включен NLA, то это означает что для преаутентификации используется CredSPP. Отключить Network Level Authentication можно в свойствах системы на вкладке Удаленный доступ , сняв галку « Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети / 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 –> Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов –> Безопасность (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) или перезагрузить компьютер. После этого вы должны успешно подключиться к удаленному рабочему столу.
Произошла ошибка проверки подлинности RDP
Некоторые пользователи, которые подключаются через удаленный доступ RDP в Windows 10/7, получают ошибку «Произошла ошибка проверки подлинности. Указанная функция не поддерживается» может быть комментарий, что «Причиной ошибки может быть исправление шифрования CredSPP«. Большинство пользователей столкнулись с этой ошибкой после обновления системы Windows 10/7. Дело в том, что Microsoft выпустила микро-патч для удаления уязвимости в RDP. По этому CredSPP должен быть обновлен на обоих ПК и всех устройствах, к которым вы пытаетесь подключиться удаленно. Другие сообщили, что в групповых политик сбросились значения. И лично я столкнулся с этой проблемой, и решил её редактированием реестра. Разберем основные решения, чтобы исправить ошибку проверки подлинности при подключении удаленного доступа RDP.
1. Снять ограничения
В большинстве случаев нужно всего-лишь снять галочку на проверку подлинности. Нажмите сочетание кнопок на клавиатуре Win+R и введите sysdm.cpl, чтобы открыть свойства системы. Перейдите во вкладку «Удаленный доступ«, ниже установите «Разрешить удаленные подключения к этому компьютеру» и снимите галочку «Разрешить подключения только с компьютеров, на которых работает проверка подлинности«.
2. Обновление Windows 10/7 и обновление CredSPP
Во первых, обновите все свои устройства в «Центре обновления Windows«, которые подключаются через удаленный доступ. Во вторых, проверьте специальные патчи обновления, которые устраняли уязвимость в RDP, их можно посмотреть на официальном сайте Microsoft CVE-2018-0886, и обновите свои Windows 10/7, Server, RT, LTSB для всех ПК. Тем самым вы обновите CredSPP.
3. Групповые политики
Нажмите Win + R и введите gpedit.msc, чтобы открыть редактор групповых политик. В политиках перейдите «Конфигурация компьютера» > «Административные шаблоны» > «Система» > «Передача учетных данных» > справа найдите «Защита от атак с использованием криптографического оракула» (Oracle Remediation) и нажмите по этой политике два раза мышкой, чтобы открыть свойства.
- В свойствах выберите «Включено» и ниже в графе «уровень защиты» поставьте «Оставить уязвимость«. Нажмите применить и следуйте сразу ниже пункту.
- Запустите теперь командную строку от имени администратора и введите gpupdate /force , чтобы обновить политики и применения вступили в силу. Проверьте устранена ли ошибка проверки подлинности RDP, если нет, то перезагрузите ПК.
4. Редактор реестра
Нажмите Win + R и введите regedit, чтобы открыть редактор реестра. В реестре перейдите по пути:
- HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
- Справа дважды щелкните по AllowEncryptionOracle и поставьте значение 2.
- Перезагрузите ПК и надеюсь, что проблема с проверки подлинности RDP при подключении удаленного доступа решена.
Если вы не делали способ 2, то у вас не будет папки CredSSP\Parameters . Проделайте способ 2 или создайте вручную папку CredSSP с подпапкой Parameters и ключом AllowEncryptionOracle со значением 2.