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

Открываем редактор реестра.

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

Открываем параметр Security Packages и ищем там слово tspkg. Если его нет, добавляем к уже существующим параметрам.

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders

Открываем параметр SecurityProviders и добавляем к уже существующим провайдерам credssp.dll, если таковой отсутствует.

Закрываем редактор реестра.

Теперь надо перезагрузиться. Если этого не сделать, то компьютер запросит у нас имя пользователя и пароль, но вместо удаленного рабочего стола ответит следующее:

Вот, собственно и все.

Администраторам серверов на базе Windows 2008 возможно придется столкнуться со следующей проблемой:

Подключение по rdp протоколу к любимому серверу со станции Windows XP SP3 проваливается со следующей ошибкой:

Удаленный рабочий стол отключен.

Удаленный компьютер требует проверки подлинности на уровне сети, которую данный компьютер не поддерживает. Обратитесь за помощью к системному администратору или в службу технической поддержки.

И хотя многообещающая Win7 грозит со временем заменить свою бабушку WinXP, еще годик-другой проблема будет актуальной.

Вот что необходимо предпринять для включения механизма проверки подлинности на сетевом уровне:

Открываем редактор реестра.

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

Открываем параметр Security Packages и ищем там слово tspkg . Если его нет, добавляем к уже существующим параметрам.

Ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders

Открываем параметр SecurityProviders и добавляем к уже существующим провайдерам credssp.dll , если таковой отсутствует.

Закрываем редактор реестра.

Теперь надо перезагрузиться. Если этого не сделать, то при попытке подключения компьютер запросит у нас имя пользователя и пароль, но вместо удаленного рабочего стола ответит следующее:

Подключение к удаленному рабочему столу

Ошибка при проверке подлинности(код 0x507)

Вот, собственно и все.