Hello for Business не может проверить сертификат KDC. Проблема решена после повторной выдачи списка отзыва сертификатов. Пытаюсь понять, почему.

Вопрос или проблема

Я исследовал проблему на своем ноутбуке, когда вход с использованием моих учетных данных Hello for Business перестал работать и начал выдавать ошибку. Я смог решить это после нескольких недель устранения неполадок, но не знаю, почему мне пришлось исправить это таким образом и есть ли более простой способ.

У нас есть двухуровневая служба сертификатов Active Directory и отдельный сервер IIS для публикации нашего списка отозванных сертификатов. Мы используем смешанные устройства и WHfB настроен с использованием доверия к ключам.

Проблема началась с ошибки входа при использовании учетных данных WHfB:

Не удалось войти в систему. Свяжитесь с вашим системным администратором и сообщите им, что сертификат KDC не может быть проверен. Дополнительная информация может быть доступна в системном журнале событий.

Я просмотрел онлайн-блоги и статьи Microsoft, которые касаются обычных моментов, связанных с недействительным сертификатом контроллера домена или отсутствием конфигурации расширенного использования ключей (т.е. аутентификация KDC). Все было в порядке.

Также были системные журналы событий на моем ноутбуке с этой ошибкой:

Идентификатор события 9, Источник: Security-Kerberos.

Клиент не смог проверить сертификат контроллера домена для <контроллер домена>. Следующая ошибка была возвращена из процесса проверки сертификата: Функция отзывов не смогла проверить отзыв, так как сервер отзывов был недоступен.

Я проверил нашу конфигурацию CA, настройки отзыва и настройки CRL IIS, чтобы подтвердить, что они работают, и что CRL была разрешима и доступна. Все работало при тестировании в браузере, поэтому казалось, что CRL была в сети. Вопреки тому, что говорил Идентификатор события 9.

Я начал запускать захват пакетов и блокировал ноутбук, пытаясь выполнить аутентификацию WHfB. Я смог увидеть, как ноутбук пытается получить CRL:

GET /CertEnroll/CertAuthorityRoot.crl HTTP/1.1

Сервер IIS, размещающий CRL, возвращал ответ 304 Не изменено:

HTTP/1.1 304 Не изменено

Я понимаю, что 304 – это то, что сервер IIS возвращает, если файл не изменился и направляет запрашивающее устройство смотреть на кэшированные файлы.

Мой вывод в том, что мой ноутбук пытался получить CRL при входе, но сервер IIS говорил моему ноутбуку, что он не нуждается в этом, потому что он не был изменен. Поэтому мой ноутбук предположил, что не может связаться с сервером.

Мое решение заключалось в том, чтобы запустить нашу офлайн CA, опубликовать новый файл CRL и разместить его на нашем сервере CRL IIS. Когда мой ноутбук снова попытался аутентифицироваться, сервер IIS с радостью предоставил его.

Я хотел бы понять, почему мой ноутбук вдруг снова понадобился файл CRL после того, как он работал так долго, а затем почему сервер IIS отказался позволить моему ПК снова скачать его.

После повторной выдачи файла CRL я нашел команду certutil для перечисления кэшированных URL:

certutil -urlcache CRL

Интересно, не было ли какой-то поврежденной CRL, но сейчас нет возможности это проверить.

У кого-то еще была что-то подобное?

Самая очевидная причина – истекший CRL.

  1. У вас есть офлайн корневая CA (которая не может автоматически публиковать CRL в точках распространения)
  2. Ситуация начала исправляться после перезагрузки офлайн CA и публикации CRL

Это предполагает, что предыдущий CRL истек. Истекшие CRL вызывают то же сообщение об ошибке (отзыв не доступен).

Чтобы избежать этой проблемы в будущем, вам необходимо установить мониторинг и оповещение о CRL офлайн CA, чтобы заранее получать уведомления о CRL, которые вот-вот истекут, и внедрить процесс, который вы будете выполнять для продления CRL в точках распространения.

Я видел эту проблему из-за того, что ноутбук меняет сеть (DirectAccess VPN), и в течение короткого периода времени список CRL не будет работать из-за прерывания сети. Если конечный пользователь подождет немного, пока DA не будет в сети, все будет работать.

Ответ или решение

Проблема с проверкой KDC сертификата в Hello for Business: причины и решение

Введение

Недавний инцидент с использованием Windows Hello для бизнеса (WHfB) привел к возникновению ошибки при авторизации: "Не удалось войти. Свяжитесь с вашим системным администратором и сообщите, что сертификат KDC не может быть проверен." Данная проблема была решена после переиздания списка отзыва сертификатов (CRL), однако необходимо разобраться, почему это произошло и как избежать подобных ситуаций в будущем.

Контекст проблемы

Вы используете модель гибридного присоединения устройств к Active Directory с настроенной системой ключевого доверия (key trust). В вашей инфраструктуре развернута двухуровневая структура Центров сертификации (CA), и вы используете отдельный IIS сервер для публикации CRL. Проблема возникла, когда на ноутбуке была зафиксирована ошибка при аутентификации с использованием WHfB. Сообщение об ошибке указывало на невозможность проверки сертификата KDC и ссылалось на журнал событий.

Анализ проблемы

  1. Ошибка в журнале событий: Журнал событий на ноутбуке фиксировал ошибку:

    Event ID 9, Source: Security-Kerberos.
    The client has failed to validate the domain controller certificate for <domain controller>. 
    The following error was returned from the certificate validation process: 
    The revocation function was unable to check revocation because the revocation server was offline.

    Это указывает на то, что система не могла проверить статус сертификата, так как не могла обратиться к CRL.

  2. Проблемы с CRL: Проведенный вами анализ показал, что IIS сервер публиковал CRL, и доступ к нему был возможен через браузер. Однако во время аутентификации ноутбук получал ответ 304 Not Modified от IIS, что могло означать, что CRL не был обновлен, а значит, кэшированный статус мог оказаться устаревшим.

  3. Обновление CRL: После переиздания CRL и его размещения на IIS сервере, ноутбук смог успешно выполнить аутентификацию. Это подтверждает, что прежний CRL истек и система не обнаружила его в актуальном состоянии.

Возможные причины

  • Истечение сроков действия CRL: Наиболее вероятная причина данной проблемы — это истечение срока действия CRL. Оффлайн корневой CA не мог автоматически обновлять CRL, что и привело к необходимости ручного вмешательства.
  • Проблемы с сетью: Часто бывает, что при изменении сети (например, при использовании DirectAccess или VPN) происходит сбой в доступе к CRL. Это может вызвать временные проблемы, когда пользователь не может аутентифицироваться до восстановления сетевого соединения.

Рекомендации по предотвращению проблем

  1. Мониторинг и уведомления: Настройте систему мониторинга и алертинга для отслеживания сроков действия CRL на вашем оффлайн CA. Это позволит вам заранее получать уведомления об истечении сроков и принимать меры.

  2. Процедуры планирования обновления: Разработайте четкую процедуру обновления CRL на всех точках распространения. Это должно включать в себя регулярные проверки и автоматизацию, где это возможно.

  3. Проверка кэша CRL: Регулярно проверяйте кэшированный статус CRL на устройствах с помощью команды:

    certutil -urlcache CRL

    Это может помочь в обнаружении поврежденных или устаревших кэшей до возникновения проблем.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...