Моя «доменно-ориентированная» компания 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».