Ошибка «An authentication error has occurred»? Решаем одним твиком!
Если при подключении по RDP вы встречаете свирепое сообщение «An authentication error has occurred… CredSSP encryption oracle remediation», знайте: Windows пытается защитить ваши пароли, а вы пытаетесь попасть на сервер. Иногда эти цели оказываются несовместимы. Сегодня разберёмся, как — и главное, зачем — отключать CredSSP, чтобы вернуть себе доступ и при этом не устроить из сети решето.
CredSSP (Credential Security Support Provider) — это механизм, который передаёт ваши учётные данные на удалённые серверы для аутентификации. В 2018-м году уязвимость CVE-2018-0886 заставила Microsoft усилить проверки: система стала блокировать незащищённые подключения, что моментально породило море ошибок типа «Encryption Oracle Remediation» .
С тех пор у админа есть три пути:
Ниже рассмотрим все легальные методы, как временно (или насовсем) выключить CredSSP на клиенте и/или сервере.
Давайте сразу честно: «Отключу всё, потому что так быстрее» — плохой план. Ниже короткий чек-лист, когда радикальное отключение хоть как-то оправдано:
Во всех остальных случаях лучше настроить минимальный уровень защиты («Mitigated») или обновить ОС.
Классика жанра: открываем gpedit.msc
(или групповой объект в AD) и идём по пути:
Computer Configuration → Administrative Templates → System → Credentials Delegation
Двойной щелчок по параметру и далее три сценария:
После изменения не забываем:
gpupdate /force
или просто перезагрузку, если лень.
⚠️ Помните: в доменах политика «выше» перезатрёт локальную. Если у вас AD, редактируйте объект на уровне OU или домена, иначе толку ноль.
Метод «вшит наглухо»: подойдёт, если на Home-редакции нет gpedit.msc, или нужно быстро скриптом изменить пару десятков ПК.
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" ^
/v AllowEncryptionOracle /t REG_DWORD /d 2 /f
0
— Force Updated Clients (строгая проверка)1
— Mitigated2
— Vulnerable (полное снятие защиты)
Аналогичную команду можно запихнуть в .reg
-файл — пригодится для «массового врачевания».
Чтобы вернуть всё «как было», или ставим 0
, или удаляем параметр полностью:
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" ^
/v AllowEncryptionOracle /f
Disable-WSManCredSSP
Для тех, кто дружит с консолью (и любит IaC-манеру). Cmdlet доступен из модуля Microsoft.WSMan.Management
:
# Отключаем CredSSP на клиенте
Disable-WSManCredSSP -Role Client
# Отключаем на сервере
Disable-WSManCredSSP -Role Server
Работает в PowerShell 5.1+, включая Core 7.x, но только под Windows. Для автоматизации можно добавить -Force
, чтобы не ловить запрос подтверждения.
Get-WSManCredSSP
Команда вернёт Client None
и Server None
, если всё действительно отключено.
Безопасники не зря качают головой: передача паролей без CredSSP делает вас уязвимым для атаки «man-in-the-middle». Особенно опасно:
Если отключение — вынужденный временный шаг, зафиксируйте задачу «вернуть защиту» и обновите машины при первой возможности. С 2022 года даже Windows 8.1/Server 2012 R2 получили патчи, так что «не можем обновить» — всё чаще миф.
SecurityProtocol
на обоих.Disable-WSManCredSSP
+ Invoke-Command
) или GPO с шаблоном ADM-X.Отключение CredSSP — это не «волшебная таблетка», а скорее пластырь до похода к врачу. Да, иногда без него нельзя залогиниться, но злоупотреблять им — значит приглашать злоумышленников на вечеринку. Используйте методы из статьи, но держите в голове план: обновиться и вернуть защиту.