После установки обновления KB4103718 на моем компьютере с Windows 7 я не могу удаленно подключится к серверу c Windows Server 2012 R2 через удаленный рабочий стол RDP. После того, как я указываю адрес RDP сервера в окне клиента mstsc.exe и нажимаю «Подключить», появляется ошибка:
Подключение к удаленному рабочему столу
Произошла ошибка проверки подлинности.
Указанная функция не поддерживается.
Удаленный компьютер: computername
После того, как я удалил обновление KB4103718 и перезагрузил компьютер, RDP подключение стало работать нормально. Если я правильно понимаю, это только временное обходное решение, в следующем месяце приедет новый кумулятивный пакет обновлений и ошибка вернется? Можете что-нибудь посоветовать?
Ответ
Вы абсолютно правы в том, что бессмысленно решать проблему удалением обновлений Windows, ведь вы тем самым подвергаете свой компьютер риску эксплуатации различных уязвимостей, которые закрывают патчи в данном обновлении.
В своей проблеме вы не одиноки. Данная ошибка может появится в любой операционной системе 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 подключения: CredSSP encryption oracle remediation). При этом на стороне RDP / RDS сервера, к которому вы подключаетесь со своего компьютера, эти обновления не установлены и при этом для RDP доступа включен протокол NLA (Network Level Authentication / Проверку подлинности на уровне сети). Протокол NLA использует механизмы CredSSP для пре-аутентификация пользователей через TLS/SSL или Kerberos. Ваш компьютер из-за новых настроек безопасности, которые выставило установленное у вас обновление, просто блокирует подключение к удаленному компьютеру, который использует уязвимую версию CredSSP.
Что можно сделать для исправления эту ошибки и подключиться к вашему RDP серверу?
- Самый правильный способ решения проблемы – установка последних кумулятивных обновлений безопасности Windows на компьютере / сервере, к которому вы подключаетесь по RDP;
- Временный способ 1. Можно отключить проверку подлинности на уровне сети (NLA) на стороне RDP сервера (описано ниже);
- Временный способ 2. Вы можете на стороне клиента разрешить подключение к RDP серверам с небезопасной версией CredSSP, как описано в статье по ссылке выше. Для этого нужно изменить ключ реестра AllowEncryptionOracle (команда
REG ADD
HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
) или изменить настройки локальной политики Encryption Oracle Remediation / Исправление уязвимости шифрующего оракула), установив ее значение = Vulnerable / Оставить уязвимость).Это единственный способ доступа к удаленному серверу по RDP, если у вас отсусвует возможность локального входа на сервер (через консоль ILO, виртуальной машины, облачный интерфейс и т.д.). В этом режиме вы сможете подключиться к удаленному серверу и установить обновления безопасности, таким образом перейдете к рекомендуемому 1 способу. После обновления сервера не забудьте отключить политику или вернуть значение ключа AllowEncryptionOracle = 0 :
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /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) или перезагрузить компьютер. После этого вы должны успешно подключиться к удаленному рабочему столу сервера.
При попытке подключения к серверу через протокол удалённого рабочего стола (RPD) пользователь может столкнуться с ошибкой подключения, сопровождающейся сообщением «Произошла ошибка проверки подлинности. Указанная функция не поддерживается». Возникновение данной проблемы обычно связано с отсутствием необходимых обновлений на ПК клиента. А также рядом настроек на машинах сервера или клиента, блокирующих отдалённое подключение к ПК. Разберём, что является причиной проблемы, и как её исправить.
Содержание
- В чем суть ошибки проверки подлинности RDP
- Установка апдейта, если указанная функция не поддерживается
- Изменение настроек групповых политик
- Отключение NLA для решения ошибки проверки RPD
- Заключение
В чем суть ошибки проверки подлинности RDP
В марте 2018 года компания Microsoft выпустила обновление протокола CredSSP для CVE-2018-0886. Последний до того обладал критической уязвимостью, позволяющей отдалённому злоумышленнику выполнять необходимые ему команды в непропатченной версии CredSSP.
В апреле «Майкрософт» выпустила следующий апдейт, снабжающий пользователя более детальной информацией об ошибке во время использования клиента удалённого рабочего стола (RDP).
В мае 2018 года вышел финальный Update, изменяющий настройки сессии RDP c использованием CredSSP по умолчанию с «Vulnerable» (Уязвимый) до «Mitigated» (Смягчённый). Также это означало, что любое клиентское приложение, задействующее «CredSSP», будет невозможно откатить до небезопасной версии.
Если ваша рабочая станция получила майское обновление, а сервер его не получал, тогда рабочая станция (клиент) будет отображать сообщение об ошибке при попытке подключения к серверу с использованием RDP.
Разберём перечень способов, позволяющих эффективно избавиться от проблемы проверки подлинности RDP.
Читайте также: Windows не удается запустить это устройство, так как информация о его конфигурации в реестре неполна или повреждена (Код 19).
Установка апдейта, если указанная функция не поддерживается
Соответственно, основным способом, позволяющим исправить ошибку проверки подлинности RPD, является установка необходимого обновления (CVE-2018-0886) как на клиентскую, так и на серверную ОС.
Выберите свою версию OS из списка снизу, и установите на вашу машину необходимый ей апдейт CVE-2018-0886:
- Апдейт для Виндовс Сервер 2016 1803
- Апдейт для Виндовс Сервер 2016 1709
- Апдейт для Виндовс Сервер 2016 1703
- Апдейт для Виндовс Сервер 2016 1607
- Апдейт для Виндовс Сервер 2016 1511
- Апдейт для Виндовс Сервер 2016
- Апдейт для Виндовс 10 1803 ARM64
- Апдейт для Виндовс 10 1803 x86
- Апдейт для Виндовс 10 1803 x64
- Апдейт для Виндовс 10 1709 ARM
- Апдейт для Виндовс 10 1709 x86
- Апдейт для Виндовс 10 1709 x64
- Апдейт для Виндовс 10 1703 ARM
- Апдейт для Виндовс 10 1703 x86
- Апдейт для Виндовс 10 1703 x64
- Апдейт для Виндовс 10 1607 ARM
- Апдейт для Виндовс 10 1607 x86
- Апдейт для Виндовс 10 1607 x64
- Апдейт для Виндовс 10 x86
- Апдейт для Виндовс 10 x64
- Апдейт для Виндовс Сервер 2012 R2
- Апдейт для Виндовс 8.1 x86
- Апдейт для Виндовс 8.1 x64
- Апдейт для Виндовс Сервер 2012
- Апдейт для Виндовс Сервер 2008 R2
- Апдейт для Виндовс 7 x86
- Апдейт для Виндовс 7 x64
Также можно перейти на сайт Майкрософта (при необходимости поставьте галочку и нажмите «Accept»), слева отыскать версию вашей системы (если не знаете, нажмите Win+Pause). Далее нажать справа на «Security Update», после чего вы получите возможность скачать нужное обновление.
Рекомендуем к прочтению: Unknown Device скачать драйвер бесплатно Windows 7 (32,64 bit).
Изменение настроек групповых политик
Если вы по каким-либо причинам не можете установить требуемые апдейты, существует паллиативное решение проблемы проверки подлинности RPD, состоящее в изменении настроек групповых политик. Не рекомендуется рассматривать его как основной вариант, так как таким образом вы сохраняете уязвимость вашей системы для действий злоумышленников.
Выполните следующее:
- Нажмите на клавиши Win+R, наберите gpedit.msc и нажмите ввод;
- Кликните слева на «Конфигурация компьютера», затем на «Административные шаблоны», потом «Система» и «Передача учетных данных»;
- Справа найдите параметр «Исправление системы шифрующего оракула», и дважды кликните на нём;
- В появившемся окне данной опции выбираем «Включено» слева, а уровень защиты внизу ставим на значение «Оставить уязвимость»;
- Сохраняем изменения нажав на «Ок».
Установите указанные параметры
Также вы можете осуществить данную операцию с помощью специальной команды, выполненной в командной строке с правами админа:
REG ADD HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
Это может быть полезным: Как обновить функции Windows 10 до версии 1809.
Отключение NLA для решения ошибки проверки RPD
Ещё одним способом решить ошибку проверки подлинности RPD является отключение NLA (аутентификации на уровне сети).
Для этого:
- Нажмите на Win+R, введите там sysdm.cpl и нажмите ввод;
- Перейдите на вкладку «Удалённый доступ», и снимите галочку с параметра «Разрешить подключение только с компьютеров…»;
- Нажмите на «Ок» для сохранения изменений.
Заключение
Появление сообщения «Произошла ошибка проверки подлинности RDP. Указанная функция не поддерживается» обычно связано с отсутствием на ПК (обычно клиентском) необходимого обновления CVE-2018-0886, позволяющего ликвидировать ряд уязвимостей в системе. Необходимо установить требуемые обновления для вашей системы, а если такое временно невозможно – просто переключите параметр шифрующего оракула на «Vulnerable» (т.е. «Оставить уязвимость»), что позволит решить ошибку.
Некоторые пользователи, которые подключаются через удаленный доступ 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, чтобы открыть редактор реестра. В реестре перейдите по пути:
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters
- Справа дважды щелкните по AllowEncryptionOracle и поставьте значение 2.
- Перезагрузите ПК и надеюсь, что проблема с проверки подлинности RDP при подключении удаленного доступа решена.
Если вы не делали способ 2, то у вас не будет папки
CredSSPParameters
. Проделайте способ 2 или создайте вручную папкуCredSSP
с подпапкойParameters
и ключом AllowEncryptionOracle со значением 2.
Смотрите еще:
- Подключение к удаленному рабочему столу в Windows
- Служба профилей пользователей не удалось войти в систему windows 10
- Произошла неустранимая ошибка при выполнении программы sysprep
- Операционная система не найдена при включении компьютера
- Не найден сетевой путь ошибка 0x80070035
[ Telegram | Поддержать ]
Windows, Windows 10, Windows 7, Windows 8, Windows Server, Безопасность
- 10.05.2018
- 142 539
- 59
- 23.05.2022
- 34
- 31
- 3
- Содержание статьи
- Общая информация
- Способ 1: Установка обновления для исправления шифрования CreedSSP
- Способ 2: Отключение уведомления об ошибке шифрования CreedSSP через групповые политики
- Способ 3: Отключение уведомления об ошибке шифрования CreedSSP путем правки реестра
- Комментарии к статье ( 59 шт )
- Добавить комментарий
После 8 мая 2018 года, многие пользователи операционных систем Windows столкнулись с проблемой, в результате которой при попытке зайти через удаленный рабочий стол на другой компьютер под управлением ОС Windows (или же при использовании remoteapp), они получают следующую ошибку:
Произошла ошибка при проверке подлинности.
Указанная функция не поддерживается
Причиной ошибки может быть исправление шифрования CredSSP.
Общая информация
Скриншот с текстом ошибки
В данной статье мы рассмотрим 3 способа исправления этой ошибки. Первый способ — является наиболее правильным и именно его необходимо использовать, в случае, если вы столкнулись с данной проблемой. Второй и третий способ, хоть и позволяет убрать ошибку, но пользоваться им стоит только если нет возможности установить патч.
Способ 1: Установка обновления для исправления шифрования CreedSSP
Причиной данной ошибки является отсутствие обновления CVE-2018-0886 на стороне сервера или того компьютера, на который вы пытаетесь подключиться, используя удаленный рабочий стол (RDP). Для её устранения достаточно просто установить данное обновление на компьютере, который выступает в роли сервера, а так же на компьютере, который выступает в роли клиента.
Взять обновление для необходимой версии ОС можно по ссылкам ниже:
- Обновление CVE-2018-0886 для Windows Server 2016 1803
- Обновление CVE-2018-0886 для Windows Server 2016 1709
- Обновление CVE-2018-0886 для Windows Server 2016 1703
- Обновление CVE-2018-0886 для Windows Server 2016 1607
- Обновление CVE-2018-0886 для Windows Server 2016 1511
- Обновление CVE-2018-0886 для Windows Server 2016
- Обновление CVE-2018-0886 для Windows 10 1803 ARM64
- Обновление CVE-2018-0886 для Windows 10 1803 x86
- Обновление CVE-2018-0886 для Windows 10 1803 x64
- Обновление CVE-2018-0886 для Windows 10 1709 ARM
- Обновление CVE-2018-0886 для Windows 10 1709 x86
- Обновление CVE-2018-0886 для Windows 10 1709 x64
- Обновление CVE-2018-0886 для Windows 10 1703 ARM
- Обновление CVE-2018-0886 для Windows 10 1703 x86
- Обновление CVE-2018-0886 для Windows 10 1703 x64
- Обновление CVE-2018-0886 для Windows 10 1607 ARM
- Обновление CVE-2018-0886 для Windows 10 1607 x86
- Обновление CVE-2018-0886 для Windows 10 1607 x64
- Обновление CVE-2018-0886 для Windows 10 1511 ARM
- Обновление CVE-2018-0886 для Windows 10 1511 x86
- Обновление CVE-2018-0886 для Windows 10 1511 x64
- Обновление CVE-2018-0886 для Windows 10 x86
- Обновление CVE-2018-0886 для Windows 10 x64
- Обновление CVE-2018-0886 для Windows Server 2012 R2
- Обновление CVE-2018-0886 для Windows 8.1 x86
- Обновление CVE-2018-0886 для Windows 8.1 x64
- Обновление CVE-2018-0886 для Windows Server 2012
- Обновление CVE-2018-0886 для Windows Server 2008 R2
- Обновление CVE-2018-0886 для Windows 7 x86
- Обновление CVE-2018-0886 для Windows 7 x64
Способ 2: Отключение уведомления об ошибке шифрования CreedSSP через групповые политики
Если же установить обновления по какой-то причине невозможно, то можно отключить данное уведомление об ошибке. Для этого, на компьютере, который выступает в роли клиента, проводим следующие действия:
- В окне «Выполнить«, «Командной строке» или PowerShell нужно выполнить команду
gpedit.msc
. После этого произойдет загрузка консоли управления групповыми политиками. - В ней нужно перейти по следующему пути: Конфигурация компьютера — Административные шаблоны — Система — Передача учетных данных. Для английской версии данный путь выглядит следующим образом: Computer Configuration — Administrative Templates — System — Credentials Delegation.
- Открываем параметр «Исправление уязвимости шифрующего оракула» («Encryption Oracle Remediation» в англ. версии), и нажимаем «Включено» («Enabled»). Уровень защиты ставим как «Оставить уязвимость» («Vulnerable»).
- Нажимаем «ОК», и выходим из управления групповыми политиками.
Способ 3: Отключение уведомления об ошибке шифрования CreedSSP путем правки реестра
В том случае, если в вашей редакции Windows отсутствует редактор групповых политик (например Windows 10 Домашняя), то тогда придется внести нужные правки в реестр вручную. Для этого, на компьютере, который выступает в роли клиента, проводим следующие действия:
- Открываем редактор реестра, и переходим по следующему пути (в случае его отсутствия, его необходимо создать):
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters
- Ищем параметр DWORD под названием AllowEncryptionOracle, и ставим значение 2. Если такого параметра нет, то создаем его.
- Перезагружаем компьютер
Для тех, кто не хочет возиться с реестром, достаточно просто выполнить команду приведенную ниже, в командной строке с правами администратора:
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
Обновлено 25.11.2019
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org, в прошлый раз мы с вами чинили HDD с поврежденной файловой системой и состоянием RAW уверен, что вам удалось это сделать. Сегодня я в очередной раз переведу наш вектор траблшутера в сторону терминальных столов, а именно мы рассмотрим ситуацию, что когда вы пытаетесь подключиться к удаленному серверу по RDP протоколу, а у вас после ввода логина и пароля, выскакивает ошибка, что вы не прошли проверку подлинности и причиной ошибки может быть исправление шифрования CredSSP. Давайте разбираться, что за зверь, этот CredSSP и как вам получить доступ к вашему серверу.
Как выглядит ошибка credssp
Перед тем, как я покажу вам известные мне методы ее устранения, я бы как обычно хотел подробно описать ситуацию. Вчера при попытке подключиться к своему рабочему компьютеру, работающему на Windows 10 1709, с терминального стола, входящего в RDS ферму на Windows Server 2012 R2, я получил ошибку после ввода логина и пароля:
An authentication error has occurred. The function requested is not supported. Remote computer name. This coild be to CredSSP encryption oracle remediation.
Ну и конечно в русском исполнении:
Произошла ошибка при проверке подлинности. Указанная функция не поддерживается. Удаленный компьютер имя. Причиной ошибки может быть исправление шифрования CredSSP
Получается двоякая ситуация, что RDP как бы работает, но вот по какой-то причине ваши учетные данные на принимающей стороне не соответствуют, каким-то критериям, давайте разбираться, что это за зверь CredSSP.
Назначение CredSSP
Что такое CredSSP — это Win32 API, используемый системами Microsoft Windows для выполнения различных операций, связанных с безопасностью, таких как аутентификация. SSPI функционирует, как общий интерфейс для нескольких поставщиков поддержки безопасности (SSP). Поставщик поддержки безопасности — это библиотека динамической компоновки (DLL), которая делает один или несколько пакетов безопасности доступными для приложений.
CredSSP позволяет приложению делегировать учетные данные пользователя от клиента целевому серверу для удаленной аутентификации. CredSSP предоставляет зашифрованный канал протокола безопасности транспортного уровня . Клиент проходит проверку подлинности по зашифрованному каналу с использованием протокола SPNEGO (Simple and Protected Negotiate) с Microsoft Kerberos или Microsoft NTLM.
После проверки подлинности клиента и сервера клиент передает учетные данные пользователя на сервер. Учетные данные дважды шифруются с использованием ключей сеанса SPNEGO и TLS. CredSSP поддерживает вход в систему на основе пароля, а также вход в систему с использованием смарт-карт на основе X.509 и PKINIT.
Подробнее на Microsoft https://docs.microsoft.com/en-us/windows/desktop/secauthn/credential-security-support-provider
Windows SSP
Следующие поставщики общих служб устанавливаются вместе с Windows:
- NTLM (Представлено в Windows NT 3.51 ) (msv1_0.dll) — обеспечивает проверку подлинности NTLM с запросом/ответом для клиент-серверных доменов до Windows 2000 и для не доменной аутентификации (SMB /CIFS).
- Kerberos (Представлен в Windows 2000 и обновлен в Windows Vista для поддержки AES ) (kerberos.dll). Предпочтителен для взаимной аутентификации клиент-серверного домена в Windows 2000 и более поздних версиях.
- Согласование (введено в Windows 2000) (secur32.dll) — выбирает Kerberos и, если не доступно, протокол NTLM. SSP обеспечивает возможность единого входа , иногда называемую встроенной аутентификацией Windows (особенно в контексте IIS). В Windows 7 и более поздних версиях представлен NEGOExts, в котором согласовывается использование установленных пользовательских SSP, которые поддерживаются на клиенте и сервере для аутентификации.
- Безопасный канал (он же SChannel) — Представлен в Windows 2000 и обновлен в Windows Vista и выше для поддержки более надежного шифрования AES и ECC. Этот поставщик использует записи SSL/TLS для шифрования полезных данных. (Schannel.dll)
- PCT (устарел) реализация Microsoft TLS/SSL — криптография SSP с открытым ключом, которая обеспечивает шифрование и безопасную связь для аутентификации клиентов и серверов через Интернет. Обновлено в Windows 7 для поддержки TLS 1.2.
- Digest SSP (Представлено в Windows XP ) (wdigest.dll) — Обеспечивает проверку подлинности HTTP и SASL на основе запросов/ответов между системами Windows и не-Windows, где Kerberos недоступен.
- Учетные данные (CredSSP) (Представлено в Windows Vista и доступно в Windows XP с пакетом обновления 3 (SP3)) (credssp.dll) — обеспечивает SSO и проверку подлинности на уровне сети для служб удаленных рабочих столов.
- Аутентификация с распределенным паролем (DPA) — (Представлено в Windows 2000) (msapsspc.dll) — Обеспечивает аутентификацию через Интернет с использованием цифровых сертификатов.
- Криптография с открытым ключом «пользователь-пользователь» (PKU2U) (представлена в Windows 7 ) (pku2u.dll) — обеспечивает одноранговую аутентификацию с использованием цифровых сертификатов между системами, которые не являются частью домена.
Подробнее на https://en.wikipedia.org/wiki/Security_Support_Provider_Interface
Причины ошибки шифрования CredSSP
В марте 2018 года, компания Microsoft выпустила обновление безопасности для устранения уязвимостей для протокола поставщика поддержки безопасности учетных данных (CredSSP) под именем CVE-2018–0886 (https://support.microsoft.com/en-us/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018), используемого подключениями по протоколу удаленного рабочего стола (RDP) для клиентов Windows и Windows Server. Как только пользователи и системные администраторы произвели установку апдейтов, то по всему миру начались массовые жалобы, что люди не могут подключаться по протоколу RDP к серверам, компьютерам, получая ошибку, что причиной ошибки может быть шифрование CredSSP.
К сожалению 99% людей и администраторов совершают одну и туже ошибку, они сразу ставят обновления, не дождавшись пары дней после их выхода. Обычно этого времени хватает, чтобы вендор определил проблемы и отозвал глючное обновление.
Уязвимость в протоколе Credential Security Support Provider (CredSSP — провайдер поддержки безопасности учетных данных) допускала удаленный запуск произвольного кода на уязвимой системе и 8 мая 2018 г. Microsoft изменила уровень безопасности подключения с Vulnerable
на Mitigated
и начались проблемы подключения к удаленному рабочему столу по RDP. Ранее вы могли удаленно подключаться с обновленной машины к машинам без обновления безопасности, так сказать в мягком режиме. Однако с последним обновлением, Microsoft усилила безопасность, и вы больше не можете подключаться к компьютерам без обновления закрывающего брешь CVE-2018–0886.
Под раздачу попали буквально все, клиентские ОС Windows 7, Windows 8.1, Windows 10 с которых были попытки подключиться к RDS ферме или RemoteApp приложениям работающим на Windows Server 2008 R2 и выше. Если бы вы читали ветки обсуждений в эти дни, то вы бы поняли все негодование людей, особенно с запада.
Варианты исправления ошибки CredSSP
На самом деле вариантов много, есть правильные, есть и временные и обходные, которые нужно сделать быстро, чтобы хоть как-то работало, так как бизнес может в этот момент простаивать и терять деньги.
- Вы можете удалить новое обновление безопасности, самый плохой вариант, но в ответственные моменты, иногда используется, чтобы перенести работы на вечер или ночь
- Если нужно быстро получить доступ к серверу и избежать проверку подлинности credssp, то я вам советую отключить на принимающем подключении сервере галку NLA (Network Level Authentication) в русском варианте «Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети»
- То же быстрый метод и на массовое применение, это использование групповой политики, которая изменит шифрование Oracle Remediation
- Ну и самый правильный метод, это установка обновлений на все ваши системы
Отключаем credssp в Windows через NLA
Данный метод выхода из ситуации я бы рассматривал, как быстрое, временное решение, до того, как вы установите обновления безопасности. Чтобы разрешить удаленное подключение к серверу и избегать ситуации, что произошла ошибка при проверке подлинности credssp, сделайте вот что. Откройте свойства моего компьютера, попав в систему, так же можно нажать одновременно WIN+Pause Breake или как вариант в командной строке ввести control /name Microsoft.System. В окне «Система» находим пункт меню «Настройка удаленного доступа»
Снимите галку «Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети»
После этого вы легко сможете подключиться к данному компьютеру или серверу, но как быть что вы не можете туда попасть и снять эту галку, тут нам на помощь придет реестр Windows. Вы можете удаленно создать нужные ключи реестра, которые отключат галку NLA или политику CredSSP. Для этого вы можете пойти двумя путями:
- Использовать сетевой реестр Windows
- Использовать удаленное управление компьютером, например PsExec.exe, я вам с помощью него уже показывал, как открывать порты в брандмауэре, удаленно.
Давайте попробуем через удаленный реестр, для этого открываем Regedit, через окно «Выполнить».
Из меню «Файл» выберите пункт «Подключить сетевой реестр», далее найдите нужный вам сервер.
У вас подключится дополнительный реестр с двумя кустами. Переходите по пути (Если у вас не будет CredSSPParameters, то нужно будет их создать):
HKLMSoftwareMicrosoftWindowsCurrentVersion PoliciesSystemCredSSPParameters
Тут вам необходимо создать REG_DWORD ключ с именем AllowEncryptionOracle и значением 2. В данном варианте политика CredSSP выставит Уязвимый уровень — это самый низкий уровень защиты. Это позволит вам подключаться к серверам удаленно, используя RDP. Однако это подвергнет серверы атакам.
Или можно так же отключить NLA, для этого найдите ветку реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl Terminal ServerWinStationsRDP-Tcp
Найдите там ключ SecurityLayer и выставите ему значение 0, чтобы деактивировать Network Level Authentication.
Теперь то же самое вы можете выполнить и через PsExec.exe, выставив для CredSSP минимальный уровень защиты или же отключить NLA, для этого находясь в cmd в режиме администратора введите команду:
PsExec.exe \w10-cl01 -u rootАдминистратор -p пароль cmd
w10-cl01 — это имя компьютера.
Далее имея запущенный сеанс cmd для удаленного компьютера, выполните команду:
REG ADD HKLMSoftwareMicrosoftWindows CurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)
Аналогично можно сделать и для отключения Network Level Authentication, команда будет такой:
REG ADD «HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlTerminal ServerWinStationsRDP-Tcp» /v SecurityLayer /t REG_DWORD /d 0
Еще раз обращаю ваше внимание, что данный метод временный и самый не безопасный, применяемый в случаях, когда уже ничего сделать нельзя или дольше, а нужно уже вчера, обязательно установите все нужные обновления.
Отключаем шифрование credssp через GPO
Если у вас большая инфраструктура, в которой сотни компьютеров и сотни серверов, то вы можете до установки нужных обновлений в вечернее время, временно отключить новый уровень шифрования CredSSP и убрать ошибку «Удаленный компьютер имя. Причиной ошибки может быть исправление шифрования CredSSP». Для этого мы можем воспользоваться всеми плюсами доменной инфраструктуры Active Directory. Тут два варианта, вы можете создать массовую политику для распространения ее на нужные OU или если у вас требование для одного или двух локальных компьютеров, то на них можно запустить локальный редактор групповых политик, тем самым внеся изменения только на них.
Напоминаю, что оснастку управление групповой политикой вы можете найти на контроллере домена или компьютере с установленным пакетом RSAT, открыть ее можно через команду в окне «Выполнить» gpmc.msc. Если нужно открыть локальный редактор групповых политик, то в окне «Выполнить» введите gpedit.msc.
Вам необходимо перейти в ветку:
Конфигурация компьютера — Административные шаблоны — Система — Передача учетных данных — Исправление уязвимости шифрующего оракула (Computer Configuration — Administrative Templates — System — Credentials Delegation — Encryption Oracle Remediation
Открываем настройку «Исправление уязвимости шифрующего оракула (Encryption Oracle Remediation)». Включаем политику, у вас активируется опция «Уровень защиты», на выбор будет три варианта:
- Принудительно применять обновленные клиенты (Force Updated Clients) — она будет стоять по умолчанию из-за максимального уровня защиты, вам данную опцию нужно сменить. Это так сказать максимально безопасный уровень взаимодействия клиент, он должен быть в идеале, после установки обновлений на все сервера и компьютеры.
- Оставить уязвимость (Vulnerable) – клиенты могут подключаться на уязвимые машины.
- Уменьшить риск (Mitigated) – клиенты не могут подключаться к уязвимым серверам, но серверы могут принимать уязвимые клиенты.
Выбираем на время пункт «Оставить уязвимость (Vulnerable)». Сохраняем настройки.
После чего вам нужно обновить политику, для этого откройте командную строку и введите gpupdate /force. Если у вас не доменный компьютер, да и еще Windows 10 Home, которая не имеет встроенного локального редактора политик, то вам как я описывал выше, нужно производить правку реестра
REG ADD HKLMSoftwareMicrosoftWindows CurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)
На просторах интернета ходит скрипт PowerShell, который поможет включить данную политику на всех компьютерах в Active Directory
Import-Module ActiveDirectory
$PSs = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $PCs) {
Invoke-Command -ComputerName $computer -ScriptBlock {
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}
Самый правильный метод, это установка обновлений
Когда вам удалось везде подключиться и подошло время обслуживания ваших серверов, быстренько производим установку обновлений закрывающих брешь (CVE-2018-0886 | CredSSP Remote Code Execution Vulnerability).
https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-0886
Раньше были вот такие KB, но они со временем могут меняться свой номер, поэтому пройдите по ссылке выше, так будет надежнее.
- Windows Server 2012 R2 / Windows 8: KB4103715
- Windows Server 2008 R2 / Windows 7: KB4103712
- Windows Server 2016 / Windows 10 1607 — KB4103723
- Windows Server 2016 / Windows 10 1703 — KB4103731
- Windows Server 2016 / Windows 10 1709 — KB4103727
- Windows Server 2016 / Windows 10 1803 — KB4103721
На этом у меня все, надеюсь, что вы разобрались в работе CredSSP и научились ей управлять. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
13 марта Microsoft опубликовал описание уязвимости CVE-2018-0886 в протоколе проверки подлинности CredSSP, который в частности используется при подключении по RDP к терминальным серверам. Позже Microsoft опубликовал, что будет блокировать подключения к необновлённым серверам, где присутствует данная уязвимость. В связи с чем многие заказчики столкнулись с проблемами подключения по RDP.
В частности, в Windows 7 можно увидеть ошибку: «Произошла ошибка проверки подлинности. Указанная функция не поддерживается»
В Windows 10 ошибка расписана более подробно, в частности сказано «Причиной ошибки может быть исправление шифрования CredSSP»:
Для обхода ошибки со стороны клиента многие советуют отключить групповую политику, путём установки значения Encryption Oracle Remediation в Vulnerable:
с помощью gpedit.msc в Конфигурация компьютера / Административные шаблоны / Система / Передача учётных данных, слева выбрать «Исправление уязвимости шифрующего оракула» (забавный конечно перевод), в настройках поставить «Включено» и выбрать «Оставить уязвимость».
или через реестр (т.к., например, в Windows Home нет команды gpedit.msc):
REG ADD HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
НО! Так делать не нужно! Т.к. таким образом вы оставляете уязвимость и риски перехвата вашего трафика и пр. конфиденциальные данные, включая пароли. Единственный случай, когда это может быть необходимо, это когда у вас вообще нет другой возможности подключиться к удалённому серверу, кроме как по RDP, чтобы установить обновления (хотя у любого облачного провайдера должна быть возможность подключения к консоли сервера). Сразу после установки обновлений, политики нужно вернуть в исходное состояние.
Если доступ к удалённому серверу есть, то ещё, как временная мера, можно отключить требование NLA (Network Level Authentication), и сервер перестанет использовать CredSSP. Для этого достаточно в Свойствах системы, на вкладке удалённые подключения снять соответствующую галку «Разрешить подключения только с компьютеров, на которых работает удалённый рабочий стол с проверкой подлинности на уровне сети»:
Но, это тоже неправильный подход.
Правильный подход — это всего-лишь установить нужные обновления на операционную систему, закрывающие уязвимость CVE-2018-0886 в CredSSP, причём, как серверную, куда вы подключаетесь, так и клиентскую, с которой вы подключаетесь.
Список обновлений для всех операционных систем, начиная с Windows 7 и Windows Server 2008 доступен по ссылке: https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-0886
Выбираете нужную версию операционной системы, скачиваете соответствующее обновление из каталога, устанавливаете и перезагружаетесь. После этого ошибка должна пропасть.
Например, на Windows Server 2016 ссылка на скачивание будет такой: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4103723
Данная ошибка связана с установкой обновлений 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
– безопасный уровень взаимодействия клиентов.
Если на клиентской машине отсутствует редактор локальной групповой политики, изменение вносятся в реестр:
- Запустите командную строку под администратором, для этого нажмите правой кнопкой мыши на кнопке «Пуск» и выберите пункт меню запуска командной строки под администратором.
- Введите команду и нажмите
Enter
REG ADD HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
- Может потребоваться перезагрузка.
Для возвращения в исходное состояние, выполните команду:
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 0
- CredSSP updates for CVE-2018–0886
- CVE-2018–0886 | CredSSP Remote Code Execution Vulnerability
Как обновить npm и пакеты npm ?
Обновление npm через npm + команда для обновления пакета на примере angular cli (глобально).
Open with Code
Добавление пункта Open with Code после установки VS Code
Добавить в PATH (окружение)
Добавить папку в переменную среды PATH для текущей сессии
Windows. Docker не может занять свободный порт
net stop winnat
docker start ...
net start winnat
Утро пятницы началось с жалоб некоторых пользователей на невозможность подключится к удаленному рабочему столу Windows Server 2008 R2 и Windows Server 2012 R2.
Произошла ошибка при проверке подлинности. Указанная функция не поддерживается.
Причиной ошибки может быть исправление шифрования CredSSP. Дополнительные сведения см. статье https://go.microsoft.com/fwlink/?linkid=866660
Причиной отказа в подключении послужило обновление безопасности Windows, закрывающее уязвимости в протоколе CredSSP (бюллетень CVE-2018-0886), в результате чего клиентам запрещалось подключаться к удаленным RDP серверам с непропатченой версией CredSSP. Таким образом, клиентские машины, установившие майские обновления остались не при делах.
Есть несколько путей решения проблемы. Наиболее правильным я считаю всё-таки установку обновления для закрытия уязвимости CredSSP на сервере, однако такое решение может выйти боком в некоторых случаях. Приведу простой пример когда не стоит гнаться за обновлениями.
В сети имеются компьютеры на старой версии Mac OS X (10.7.5), для которых не существует свежей версии RDP-клиента и после такого обновления теряется возможность работы с сервером. Вопрос безопасности соединения мобильных пользователей в таком случае решается VPN туннелем.
Так что, для начала рассмотрим вариант, позволяющий убрать уведомление безопасности и блокировку подключения с установленным обновлением безопасности без обновления самого сервера. Удаление самого обновления, конечно решает проблему, но неужели вы будете заниматься этим постоянно?
Отключение уведомления об ошибке шифрования CreedSSP на клиенте
Можно пойти двумя путями — внести изменения через редактор локальных групповых политик (не прокатит в редакциях Windows Home), либо напрямую в реестр с помощью командной строки. Второй способ более быстрый и универсальный — в командной строке, запущенной от имени администратора, выполним:
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
Если же вам удобнее использовать редактор локальных групповых политик, то запустив редактор gpedit.msc, переходим в раздел:
Конфигурация компьютера -> Административные шаблоны -> Система -> Передача учетных данных
(Computer Configuration -> Administrative Templates -> System -> Credentials Delegation)
Открываем параметр с именем «Исправление уязвимости шифрующего оракула» (Encryption Oracle Remediation), и нажимаем «Включено» («Enabled»). Уровень защиты ставим как «Оставить уязвимость» (Vulnerable).
Обновить политики на компьютере можно командой, после чего подключение по RDP должно заработать:
gpupdate /force
Установка обновления для исправления шифрования CreedSSP на сервере
Установить отсутствующие обновления безопасности на сервере можно через службу 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
Учтите, что после установки обновления сервер уйдет в перезагрузку.
Подписывайтесь на канал
Яндекс.Дзен
и узнавайте первыми о новых материалах, опубликованных на сайте.