После установки последних обновлений безопасности, вышедших 8 мая 2018 года, на Windows 10 и 7, пользователи стали жаловаться, что при попытке подключится к RemoteApp на RDS серверах под Windows Server 2016 / 2012 R2 / 2008 R2, или удаленным рабочим столам других пользователей по протоколу RDP (на Win 10/8/7), появляется ошибка:
Подключение к удаленному рабочему столу
Произошла ошибка при проверке подлинности.
Указанная функция не поддерживается.
Причиной ошибки может быть исправление шифрования CredSSP.
Для восстановления удаленного подключения к рабочему столу можно удалить указанное обновление (но это не рекомендуется и делать этого не стоит, есть более правильное решение).
Для решения проблемы нужно временно на компьютере, с которого вы подключаетесь по RDP, убрать данное уведомление безопасности, блокирующее подключение.
Это можно сделать через редактор локальных групповых политик. Для этого:
- Запустите редактор локальных GPO: gpedit.msc ;
- Перейдите в раздел Computer Configuration -> Administrative Templates -> System -> Credentials Delegation (Конфигурация компьютера -> Административные шаблоны -> Система -> Передача учетных данных);
- Найдите политику с именем Encryption Oracle Remediation (Исправление уязвимости шифрующего оракула). Включите политику (Enabled/ Включено), а в качестве параметра в выпадающем списке выберите Vulnerable / Оставить уязвимость;
- Осталось обновить политики на компьютере (команда
gpupdate /force
) и попробовать подключится по RDP. При включенной политике клиентские приложения с поддержкой CredSSP смогут подключаться даже к непропатченным RDS серверам.
В том случае, если у вас отсутствует редактор локальных 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