Особенности аутентификации контроллера домена с использованием двух разных сертификатов

в 13:03, , рубрики: ldaps, winlogon, Блог компании INLINE Technologies, информационная безопасность, сертификаты x.509

Как правило, аутентификация контроллера домена в среде Windows представляет собой стандартную задачу. Однако, в некоторых ситуациях эта типовая процедура может быть осложнена необходимостью одновременного использования двух сертификатов для различных сервисов. Данная проблема может возникать, к примеру, если сервер должен предоставлять один сертификат пользователям домена, а другой – для сервисов.

image

Схожая проблема возникла в одном из наших проектов, где заказчику необходимо было организовать аутентификацию пользователей в домене Microsoft Windows по сертификатам ГОСТ. Обычно подобные задачи решаются путем использования специализированного средства компании «КРИПТО-ПРО», а именно «КриптоПро Winlogon». Данный продукт существует на рынке достаточно давно и максимально проработан, но иногда могут возникать непредвиденные сложности при его внедрении, с которыми нашей компании и пришлось столкнуться. Для его функционирования необходимо соответствующим образом настроить рабочую станцию, домен и контроллеры домена. Одним из требований при настройке контроллера домена в данном случае является выпуск сертификата на ГОСТ.

В случае с нашим заказчиком возникла ситуация, при которой для доступа к контроллеру домена используется, кроме протокола LDAP, еще и LDAP через SSL (LDAPS) с использованием уже установленного на контроллере сертификата RSA.

Небольшое отступление: по умолчанию трафик LDAP не защищен, что предоставляет возможность осуществлять мониторинг трафика между LDAP–клиентом и сервером. Чтобы обеспечить передачу трафика LDAP в безопасном режиме, необходимо использовать технологию SSL/TLS, сокращенно такая технология называется LDAPS.

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

  • если приложения используют аутентификацию Active Directory Domain Services через простое связывание (simple bind). Simple bind передает данные пользователя в открытом виде, поэтому рекомендуется использовать шифрование данных при аутентификации;
  • если используется аутентификация через прокси-связывание;
  • если приложения требуют защиты данных при интеграции с LDAP.

Таким образом, в нашей ситуации для работы LDAP over SSL/TLS (LDAPS) требуется установить сертификат на контроллер домена. Для активации LDAPS необходимо установить доверенный сертификат, выданный центром сертификации (которому доверяют контроллер домена и клиенты LDAPS) в хранилище сертификатов локального компьютера.
В связи с этим и возник вопрос совместного использования двух сертификатов, причем на различных криптографических алгоритмах при условии использования решения КриптоПро Winlogon, которое не предполагает одновременного использования двух сертификатов на контроллере домена.

Комментарий из инструкции:

image

Так как данная проблема не является распространенной, и, учитывая, что добавляется российская криптография, то для ее решения пришлось искать новые подходы. Изучение инструкций и тематических форумов ответа не дало. В итоге, чтобы решить данную задачу, пришлось углубиться в ее изучение и разобраться, каким именно образом контроллер домена использует сертификаты.

Итак, как же работает выбор сертификата контроллером домена?

При необходимости выбрать сертификат, контроллер обращается к хранилищу сертификатов локального компьютера и использует сертификат из этого хранилища. В большинстве случаев там будет один сертификат, и тогда проблем не возникнет. Если же в хранилище находится больше одного сертификата, то контроллер возьмет первый валидный сертификат для аутентификации сервера. Таким образом, использование одновременно двух (или более) сертификатов для различных целей в хранилище нежелательно.

Однако в Windows Server существует возможность легитимного использования нескольких сертификатов. Для этого используется отдельное хранилище Active Directory Domain Services (NTDSPersonal), в котором хранится сертификат для доступа по LDAPS.

В таком случае процесс выбора сертификата можно описать более подробно: контроллер домена сначала обращается за сертификатом к специализированному хранилищу, а в случае неудачной попытки уже обращается к хранилищу локальной машины.

Чтобы просмотреть хранилище сертификатов сервисов на контролере домена, необходимо запустить консоль управления (MMC) и добавить оснастку «Сертификаты». Далее с помощью диспетчера сертификатов следует выбрать тип управления сертификатами.

image

Затем необходимо выбрать учетную запись Active Directory Domain Services.

image

Такой тип использования имеет ряд ограничений, накладываемых Windows. К примеру, невозможность автоматического обновления таких сертификатов для сервисов или управления сертификатами из данного хранилища через командную строку.

Возвращаясь к нашей проблеме, далее для ее решения нам оставалось только создать стенд с использованием двух сертификатов на основе отечественного и западного криптографических алгоритмов.

image

В ходе стендирования были сделаны следующие шаги:

  • в хранилище сертификатов локальной машины добавлен сертификат ГОСТ для аутентификации сервера при входе пользователей в домен;
  • в хранилище сертификатов NTDSPersonal — сертификат RSA контроллера;
  • проверено подключение по LDAPS (оно оказалось успешным);
  • аналогично проверен процесс аутентификации пользователей в домене с помощью сертификата (на этом этапе проблем тоже не возникло).

После успешно проведенного стендирования, вооружившись данным решением, наша компания отправилась к заказчику и в нерабочие часы провела аналогичные испытания уже на «боевой схеме», которые также оказались успешными. С момента внедрения прошло достаточно времени, предложенное нами решение оказалось «рабочим», никаких проблем при его функционировании у заказчика не возникло.

Автор: bryzga

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js