Назад | Перейти на главную страницу

Присоединение к домену AD с Windows 10 с помощью смарт-карты

Моя «доменно-ориентированная» компания Windows внезапно решила перейти с Windows 7 на Windows 10, и моей задачей стало заставить их подготовленный образ присоединиться к нашему домену с нашей системой аутентификации на основе смарт-карт / токенов. Это была проблема для Windows 7, однако ее легко исправить, построив цепочку доверия сертификатов. Я не отвечал за его полную настройку в Windows 7, поэтому я не уверен в внутренней работе всего процесса Kerberos.

Однако с Windows 10 это стало кошмаром. Я отразил весь свой процесс от 7 до 10, включая все отсутствующие сертификаты (мы используем netdom для добавления через командную строку с помощью / securepasswordprompt), но что бы я ни делал, мои компьютеры не присоединятся к домену со смарт-картой. Они добавляют без проблем, используя имя пользователя / пароль (без 2FA), но со смарт-картой я получаю следующую ошибку:

The KDC certificate for the domain controller does not contain the KDC Extended Key Usage (EKU): 1.3.6.1.5.2.3.5: Error Code 0xc0000320. The domain administrator will need to obtain a certificate with the KDC EKU for the domain controller to resolve this error. When using Windows Server Certificate Services create a certificated based on the Kerberos Authentication Template.

Насколько я понимаю, этот конкретный OID предназначен для аутентификации сервера, а корневые сертификаты и сертификаты CA, которые я добавил в учетную запись компьютера, имеют соответствующие цели. Я перешел непосредственно к нашему серверу CA в домене и получил корневые сертификаты, а также списки отзыва сертификатов, которых у меня не было, но ошибка осталась той же. Сегодня я больше прочитал и включил раздел реестра отладки Kerberos, и после повторной попытки добавления контроллер домена вернул KDC_ERR_ETYPE_NOTSUPP.

Это побудило меня исследовать методы шифрования, используемые между двумя машинами: в Windows 7 включен RC4, включен AES128 / 256, а в Windows 10 включены только AES128 / 256 и «будущие типы». Естественно, я включил RC4, чтобы между двумя машинами была согласованность, и я обнаружил, что в журнале событий появилась новая ошибка: KDC_ERR_PREAUTH_REQUIRED - это наводит меня на мысль, что методы шифрования теперь работают во взаимодействии друг с другом.

Читая онлайн, я обнаружил, что это KDC_ERR_PREAUTH_REQUIRED Ошибка обычно является либо просто предупреждением, либо «ложным срабатыванием», и ее можно игнорировать (когда машина находится в домене). Перед присоединением к домену эта ошибка означает, что пользователь ввел неправильный пароль (я точно знаю, что моя смарт-карта использует правильный ПИН-код) или неверно настроен ключ шифрования между машиной и контроллером домена. Я также отключил Kerberos pre-authentication required в моей учетной записи в AD, но когда я попытался добавить машину, возникла ошибка smartcard logon is required and was not used. Я протестировал это с помощью Wireshark и получил ту же ошибку в 4 кадрах в последовательности AS_REQ -> KDC_ERR_PREAUTH_REQ -> AS_REQ -> AS_REP.

После всего этого я не смог выплюнуть другую ошибку, поэтому я фактически застрял. Я попытался изменить время на компьютере с Windows 10 на часы, опережающие DC, и DC правильно сообщил, что не смог подключиться из-за временного сдвига, который, как я ожидал, должен был произойти, поэтому я знаю, что идет какое-то общение на. Я могу выполнить nslookup / ping DC по его полному доменному имени, и я не могу проверить его, используя только его имя. Есть ли какой-нибудь другой метод, который я мог бы использовать для исследования этой проблемы, или кто-нибудь сталкивался с этим раньше?

Обновить: Изменено PREAUTH_FAILED к PREAUTH_REQUIRED.

update2:

После выполнения захвата Wireshark при присоединении компьютера с Windows 7 к домену я вижу следующий исходный результат шаблона (cli для клиента и srv для сервера):

(cli)AS-REQ
(srv)AS-REP
(cli)TGS-REQ
(srv)TGS-REP
(cli)TGS-REQ
(srv)TGS-REP

В приведенном выше журнале намного больше, но это первый раздел, который отличается. Напротив, на компьютере с Windows 10 я вижу:

(cli)AS-REQ
(srv)KRB Error: KRB5KDC_ERR_PREAUTH_REQUIRED
(cli)AS-REQ
(srv)AS-REP

... и здесь журнал останавливается с ошибкой в ​​журнале событий. Я прочитал сообщение, в котором обсуждалось изменение ключа реестра Security Packages под HKLM\SYSTEM\CurrentControlSet\Control\LSA, иметь kerberos msv1_0 schannel wdigest tspkg pku2u, что было на моем компьютере с Windows 7. На компьютере с Windows 10 было только две кавычки, так как "". Однако добавление этого, похоже, не помогает.

У нас была такая же проблема, и мы решили ее, повторно выполнив сертификаты контроллеров домена с требуемым KDC EKU. Наши сертификаты контроллеров домена теперь имеют четыре EKU: клиент, сервер, KDC и смарт-карту. Нам также пришлось настроить SAN для сертификатов наших контроллеров домена.

Если вы не хотите этого делать, вы можете поэкспериментировать с отключением параметра «Требовать строгую проверку KDC» на клиенте, чтобы посмотреть, поможет ли это. Кажется, что это не слишком хорошо задокументированное изменение поведения по сравнению с Windows 7, или, по крайней мере, оно не согласуется с тем, как параметр задокументирован в электронной таблице / документации параметров групповой политики.

https://technet.microsoft.com/en-us/library/hh831747.aspx

«Строгая проверка KDC - это более строгий набор критериев, который обеспечивает соблюдение всех следующих условий:

  • Контроллер домена имеет закрытый ключ для предоставленного сертификата.

  • Для систем, присоединенных к домену, центр сертификации (ЦС), выдавший сертификат KDC, находится в хранилище NTAuth.

  • Для систем, не подключенных к домену, корневой ЦС сертификата KDC находится в Стороннем корневом ЦС или хранилище доверенных корневых сертификатов смарт-карты.

  • Сертификат KDC имеет KDC EKU.

  • Поле DNSName сертификата KDC расширения subjectAltName (SAN) совпадает с DNS-именем домена.

Для входа с помощью смарт-карты без присоединения к домену требуется строгая проверка KDC.

Чтобы отключить это поведение по умолчанию, отключите параметр групповой политики Требовать строгую проверку KDC ».


Больше информации:

Что нового в аутентификации Kerberos
https://technet.microsoft.com/en-us/library/hh831747(v=ws.11).aspx

Изменения по умолчанию при строгой проверке KDC

"Для входа с помощью смарт-карты без присоединения к домену требуется строгая проверка KDC.

«Чтобы отключить это поведение по умолчанию, отключите параметр групповой политики Требовать строгую проверку KDC».