Сотрудник Microsoft Мэтт Хэмрик подтвердил, что изменения в использовании протокола Transport Layer Security (TLS) 1.3 по умолчанию в Windows 11 влияют на обработку запросов клиентских сертификатов службами IIS (IIS) и IIS Express.
Проблема связана с отсутствием в TLS 1.3 поддержки функции, известной как «повторное согласование», чтобы «гарантировать постоянную конфиденциальность аутентификации клиента» и «сократить количество циклов передачи данных и нагрузку на процессор».
Похоже, Microsoft ускорила и повысила безопасность в ущерб совместимости, по крайней мере, в отношении некоторых аспектов ОС.
Повторное согласование TLS, доступное в TLS 1.2 и более ранних версиях, позволяет серверу инициировать его в рамках существующего зашифрованного сеанса для запроса клиентского сертификата. В Windows этим процессом управляет драйвер устройства режима ядра, называемый HTTP-стеком (или http.sys), в сочетании с пакетом безопасности Schannel, при этом IIS или IIS Express получают управление только после завершения согласования.
В версиях до Windows 11 24H2 и Windows Server 2022 http.sys разрывает соединение, если клиентский сертификат запрошен, но изначально не согласован, когда клиент не поддерживает аутентификацию после согласования. Начиная с Windows 11 24H2 и Windows Server 2025, http.sys вместо этого возвращает ошибку «not support» (не поддерживается), позволяя IIS отправлять ответ HTTP 500 с кодом ошибки 0x80070032, что технически означает «ERROR_NOT_SUPPORTED».
Microsoft пояснила, что в TLS 1.3 повторное согласование не допускается. Хотя протокол определяет альтернативу, называемую аутентификацией клиента после установления связи (post-handshake), компания отмечает, что большинство клиентов, включая основные браузеры, её не реализовали.
Таким образом, если клиентский сертификат не запрошен во время начального согласования TLS, его невозможно получить позже в ходе сеанса. Для IIS и IIS Express, которые работают после обработки согласования http.sys, требуется предварительная настройка для предварительного запроса сертификатов.
По состоянию на конец августа 2025 года Microsoft не анонсировала исправление для IIS Express, и Хэмрик задаётся вопросом, будет ли оно когда-либо выпущено. Он отмечает, что, «честно говоря, не уверен, будет ли исправление и как оно будет выглядеть, если будет».
При этом сотрудник предложил несколько обходных путей, включая отключение TLS 1.3 для входящих сеансов, изменение привязок http.sys через netsh для запроса сертификатов во время начального согласования или удаление требований к клиентским сертификатам из конфигураций приложений.
Службы IIS (IIS) — это полнофункциональный расширяемый веб-сервер Microsoft для размещения веб-сайтов и приложений в Windows. IIS использует драйвер ядра Windows HTTP.sys для обработки шифрования и дешифрования TLS/SSL. При настройке HTTPS-привязки IIS сохраняет её в файле applicationHost.config и передаёт в HTTP.sys, который использует соответствующий сертификат для согласования TLS с клиентами перед передачей расшифрованных HTTP-запросов в IIS для обработки.
IIS Express — это облегчённая, автономная версия на базе IIS 7 и более поздних версий, оптимизированная для разработки и тестирования. В отличие от IIS, который использует службу активации процессов Windows для управления сайтами и предназначен для производственной эксплуатации, IIS Express работает без прав администратора для выполнения различных задач и предлагает упрощённую настройку.
Источник: habr.com