Как делать диагностику WIFI подключения 802.1x в Windows

Как делать диагностику WIFIВсем, добрый день. У меня в компании семимильными шагами идет трек по переходу с Windows 10 на Windows 11, так как Microsoft 15 октября перестанет предоставлять обновления безопасности, только если вы докупите расширенный пакет на год, и более. Но как по мне 11-я версия и быстрее и более безопасная под капотом, так что если есть возможность ставьте ее. В сегодняшней статье я поделюсь методом диагностирования WIFI подключения, поговорим про 802.1x и TPM модуль. Будет интересно.

⚠️Проблема подключения к WIFI после обновления до Windows 11

Я всегда сторонник чистой установки Windows, но в рамках крупной компании это сделать очень сложно, поэтому чаще всего используется процедура апгрейда системы с помощью SCCM. Принцип такой, что на текущую Windows 10 в виде обновления прилетает Windows 11, делает подготовительные действия, обновляет и на выходе вы получаете туже рабочую станцию, включенную в домен и привычными для пользователя приложениями. Да меняется интерфейс ОС, но работать можно сразу.

В 1-2% случаев данная процедура обновления поверх несет непонятные, порой неочевидные ошибки, которые даже не всегда сразу себя проявляют. В моем случае это невозможность произвести подключение к корпоративному WIFI подключения.

Ошибка была формата:

Не удалось подключиться к этой сети

Не удалось подключиться к этой сети

Быстрая диагностика встроенной утилитой

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

Параметры Windows - Система - Устранение неполадок - Другие средства устранения неполадок - Сеть и Интернет

Сеть и Интернет

Запустите сетевые тесты.

Запустить сетевые тесты

📶Как посмотреть логи WiFi подключения в Windows

В Windows существует отдельный журнал в просмотре событий. Откройте его через правый клик по кнопке Пуск.

Запуск просмотра событий в Windows 11

Далее переходим в журнал:

Microsoft - Windows - WLAN-AutoConfig - Operational

Тут было три события:

ID 11006:Проверка безопасности для беспроводной сети не удалась.

Сетевой адаптер: Intel(R) Wi-Fi 6 AX201 160MHz
GUID интерфейса: {a8cdab34-8729-488e-8ce2-5f36392d82a9}
Локальный MAC-адрес:
SSID сети: Pyatilistnik
Тип BSS: Infrastructure
Одноранговый MAC-адрес:
Причина: Получена явная ошибка EAP
Ошибка: 0x2B3

ID 11006

ID 8002:Службе автонастройки беспроводной сети не удалось подключиться к беспроводной сети.

Сетевой адаптер: Intel(R) Wi-Fi 6 AX201 160MHz
GUID интерфейса: {a8cdab34-8729-488e-8ce2-5f36392d82a9}
Режим подключения: Подключение к защищенной сети без профиля
Имя профиля: Pyatilistnik
SSID: Pyatilistnik
Тип BSS: Infrastructure
Причина сбоя:Указанная сеть недоступна.
RSSI: -49

ID 8002

ID 12013:Не удалось выполнить проверку подлинности по протоколу 802.1x для беспроводной сети.

Сетевой адаптер: Intel(R) Wi-Fi 6 AX201 160MHz
GUID интерфейса: {a8cdab34-8729-488e-8ce2-5f36392d82a9}
Локальный MAC-адрес:
SSID сети: pyatilistnik
Тип BSS: Infrastructure
Одноранговый MAC-адрес:
Удостоверение: pyatilistnik.local\sem
Пользователь: sem
Домен: Pyatilistnik
Причина: Получена явная ошибка EAP
Ошибка: 0x2B3
Причина EAP: 0x2B3
Строка корневой причины: Не удалось выполнить проверку подлинности сети\nПредоставлены неправильные учетные данные.

Ошибка EAP: 0x80420112

id-12013

Для более легкого восприятия данных логов я вам рекомендую сделать отчет в формате HTML, через команду netsh. Запустите командную строку в режиме администратора и выполните:

netsh wlan show wlanreport

Создание отчета ...
Запрашиваются события беспроводной сети…
Выполняется команда ipconfig…
Выполняется команда netsh wlan show all…
Запрашиваются профили беспроводной связи ...
Запрашиваются сертификаты системы и пользователей ...
Запрашиваются сведения о пользователях ...
Запрашиваются сетевые устройства ...

Отчет записан в это расположение: C:\ProgramData\Microsoft\Windows\WlanReport\wlan-report-latest.html
готово.

Создание отчета WIFI через netsh

Открываем отчет, он будет удобно отображен в браузере. Мотайте в самый низ, чтобы по шагам понять как происходила попытка подключения и более. Все ошибки будут отображены красным.  По логу видно:

  1. Служба автонастройки WLAN начала подключение к беспроводной сети.
  2. Связь с беспроводной сетью запущена.
  3. Связь с беспроводной сетью установлена успешно.
  4. Проверка безопасности для беспроводной сети запущена.
  5. Проверка подлинности по протоколу 802.1x для беспроводной сети запущена.
  6. Пользователь использует сохраненные учетные данные.
  7. Сеанс EAP завершается во время проверочной фазы.
  8. Произошел сбой проверки подлинности для типа метода EAP 13. Ошибка: 0x80090305.
  9. Функция EapHostPeerGetResult вернула сбой
  10. Удаление кэшированных учетных данных из-за сбоя проверки подлинности для типа метода EAP 13.
  11. Проверка подлинности по протоколу 802.1x для беспроводной сети перезапущена.
  12. Не удалось выполнить проверку подлинности по протоколу 802.1x для беспроводной сети.
  13. Проверка безопасности для беспроводной сети не удалась.
  14. Проверка безопасности для беспроводной сети остановлена.
  15. Службе автонастройки беспроводной сети не удалось подключиться к беспроводной сети

Изучение лога WiFI в Windows 11

Обратите внимание, что вы более детально можете посмотреть каждую из ошибок, раскрыв "+". Тут я вижу, хотя бы коды ошибок, за что потом можно зацепиться при поиске проблем и их устранение.

ID 2086: Функция EapHostPeerGetResult вернула сбой.
Понятное имя метода EAP: Microsoft: Смарт-карта или другой сертификат (EAP-TLS)
Код причины: 2148074245
Строка корневой причины: Затребованный пакет безопасности не существует

Ошибка 2148074245 при подключении к Wi-Fi в Windows 11 обычно связана с проблемами сертификатов или параметрами безопасности.

Причина ошибкиСуть проблемыВаши действия
Проблемы с сертификатомНеправильная установка, истекший срок действия или отсутствие корневого сертификата УЦ.Проверить наличие и срок действия сертификатов на клиенте.
Несоответствие параметров безопасностиКлиент и сервер не могут договориться об общем алгоритме шифрования (например, при настройках TLS 1.3).Сверить методы аутентификации и версии TLS/SSL на клиенте и сервере.
Ошибка после обновления ОСКонфликт после установки обновления Windows (например, KB5033375), особенно с PEAP.

🔐Что такое 802.1x

IEEE 802.1X — это стандарт протокола контроля доступа к сетям, основанный на портах. Он обеспечивает аутентификацию устройств, прежде чем им будет разрешено получить доступ к локальной сети (LAN) или беспроводной сети (WLAN). Его главная цель — защитить периметр сети, не позволяя неавторизованным устройствам подключаться и потенциально наносить вред.

802.1X не будет пускать в сеть кого попало, пока устройство не докажет, что оно имеет на это право.

Ключевые компоненты 802.1x

Вся схема описанная выше состоит из трех основных ролей:

  1. Supplicant  - Устройство, которое хочет получить доступ к сети (ноутбук, смартфон, IP-телефон, принтер и т.д.). он предоставляет свои учетные данные для проверки.

  2. Authenticator (Аутентификатор) - Сетевое устройство, которое контролирует физический доступ к сети. Оно выступает в роли посредника. Оно принимает запрос от Supplicant, пересылает его серверу авторизации и, получив ответ, открывает или блокирует порт. Например, коммутатор (switch), точка доступа Wi-Fi (Wi-Fi Access Point) или контроллер беспроводной сети (WLC).

  3. Authentication Server (AS — Сервер Аутентификации) - Сервер, который проверяет учетные данные клиента. Принимает запрос от Authenticator, проверяет логин и пароль/сертификат в своей базе данных и сообщает Authenticator, разрешить или запретить доступ. Чаще всего это сервер RADIUS (FreeRADIUS, Cisco ISE, Microsoft NPS).

Как работает процесс на примере EAP-MD5

  1. Инициализация: Клиент (Supplicant) подключается к порту коммутатора (Authenticator). Порт находится в "неавторизованном" состоянии и пропускает только трафик протокола 802.1X (EAPOL).

  2. Запрос идентичности: Authenticator отправляет запрос "Кто ты?" клиенту.

  3. Ответ идентичности: Клиент отправляет свой идентификатор (например, имя пользователя).

  4. Пересылка на сервер: Authenticator упаковывает этот идентификатор в формат RADIUS и отправляет на сервер аутентификации.

  5. Запрос аутентификации: Сервер аутентификации отправляет обратно "вызов" (challenge).

  6. Ответ клиента: Клиент шифрует свой пароль с помощью этого вызова и отправляет ответ.

  7. Проверка: Сервер аутентификации проверяет полученный ответ. Если он совпадает с его собственными расчетами, доступ разрешен.

  8. Решение: Сервер отправляет Authenticator сообщение "Access-Accept" (доступ разрешен).

  9. Открытие порта: Authenticator переводит порт в "авторизованное" состояние, и клиент получает полный доступ к сети.

➡️Что-то не то с суппликантом

В Windows 11 есть встроенный суппликант для сетевой аутентификации, который является частью архитектуры EAPHost. Этот компонент операционной системы отвечает за обработку запросов на аутентификацию по протоколу IEEE 802.1X при подключении к проводным и беспроводным сетям, а также VPN. Основными функциями суппликанта являются:

  • Поддержка режимов аутентификации: Проведение аутентификации пользователя, компьютера или комбинированной проверки.

  • Обработка учетных данных: Работа с различными методами аутентификации (EAP-TLS, PEAP-MSCHAPv2 и другими).

  • Единый вход (SSO): Функция Single Sign On позволяет выполнить аутентификацию до входа пользователя в систему

Когда я начал исследование всех попавших под эту ошибку ноутбуков, их объединяло две вещи, первое это обновление Windows 11 поверх десятки, и на каждом из них был установлен КриптоПРО. У КриптоПРО давно в моей практике был шлейф, что он мог вызывать неочевидные проблемы по разным направлениям, например, "Произошла внутренняя ошибка RDP".

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

  • Поддержка протокола TLS: КриптоПро CSP включает в себя реализацию протокола КриптоПро TLS, который используется для защиты интернет-соединений. Этот протокол обеспечивает аутентификацию, конфиденциальность и целостность данных, передаваемых по сети, используя российские алгоритмы шифрования ГОСТ.

  • Интеграция с ОС: В комплект поставки программы входит модуль сетевой идентификации, который интегрируется с операционной системой для обеспечения защищенных соединений. При установке предлагается опция "TLS-интеграция с ОС", что указывает на глубокую связь с сетевым стеком Windows.

Именно его глубокая интеграция и неправильная работа после обновления до Windows 11 приводила к невозможности подключения к WiFi.

Поэтому удаляем КриптоПРО, как это делать я рассказывал, почитайте.

Удаление КриптоПРО в Windows 11

После удаления КриптоПРО обязательно произведите перезагрузку компьютера. Теперь у вас не должна появиться ошибка "Понятное имя метода EAP: Microsoft: Смарт-карта или другой сертификат (EAP-TLS). Код причины: 2148074245".

🔒Обновление прошивки TPM модуля

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

tpm.msc

tpm.msc

Смотрим тут текущую версию, далее идем на сайт производителя и ищем там свежую прошивку для этого дела, тут уже зависит от вашей модели. Пример для ThinkBool 14s Yoga.

Пакет обновления BIOS Lenovo

🚫Отключение устаревших шифров

Эти протоколы были настоящими героями своего времени. Однако их уязвимости напрямую связаны с устаревшими алгоритмами шифрования и аутентификации, которые они используют. Многие из этих алгоритмов сегодня считаются криптографически небезопасными.

Вот лишь некоторые из проблемных алгоритмов, поддерживаемых в TLS 1.0/1.1:

КатегорияАлгоритм / МетодОписание проблемы и уязвимости
Слабые алгоритмы шифрованияRivest Cipher 4 (RC4)Псевдослучайный генератор предсказуем, что позволяет восстановить зашифрованные данные (пароли, cookies). Катастрофические уязвимости.
NULL EncryptionНе обеспечивает шифрования. Данные передаются в открытом виде.
Rivest Cipher 2 (RC2)Блочный шифр с очень маленьким размером ключа, который легко подобрать полным перебором (brute-force).
Ненадежные алгоритмы хеширования и аутентификацииMessage Digest 5 (MD5)Возможно создание коллизий (двух сообщений с одинаковой хеш-суммой), что позволяет подделывать цифровые сертификаты и данные.
NULL AuthenticationПолное отсутствие аутентификации. Невозможно проверить подлинность сервера.
Устаревшие методы обмена ключамиDiffie-Hellman (DH) с ключами < 1024 битИспользование коротких ключей делает алгоритм уязвимым к атакам, позволяющим вычислить общий секретный ключ.
Kerberos 5 (KRB5) в TLSРеализация в TLS имеет ограничения и уязвимости. Не получил широкого распространения для использования в интернете.
Есть интересное исследование, где у человека не устанавливалось безопасное соединение, и виной всему был алгоритм подписи RSA-PSS. В результате он его выключил и все нормализовалось.

Первоначально проблема была обнаружена при аутентификации EAP-TLS для туннеля IPSec. Однако она также возникает при аутентификации клиентских сертификатов на сайтах с протоколом https, поскольку в обоих случаях для подтверждения соединения используется TLS.

https://call4cloud.nl/securechannelfailure-apps-install-failed/

Запустите PowerShell от имени администратора и введите команду показывающую текущие поддерживаемые

Get-TlsCipherSuite | Format-Table Name

Она выведет список поддерживаемых шифров в TLS, это еще называется cipher suites. Эти наборы определяют алгоритмы шифрования, аутентификации и обмена ключами, используемые для защиты TLS-соединений (например, при подключении к веб-сайтам по HTTPS).

cipher suites

Найти данный список можно в реестре Windows, для этого откройте ветку:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010003

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

cipher suites regedit

В случае с клюком TPM модуля, который нельзя прошить, как костыль удалите RSAE-PSS/SHA256, RSAE-PSS/SHA384, RSAE-PSS/SHA512. После чего обязательно перезагрузите систему.

Cipher SuiteУязвимый?Причина и комментарий
RSAE-PSS/SHA256НетСовременный и безопасный алгоритм. RSA-PSS устойчив к ряду атак, а SHA256 считается надежным.
RSAE-PSS/SHA384НетАналогично выше, с использованием еще более стойкого хэша SHA384.
RSAE-PSS/SHA512НетАналогично выше, с использованием хэша SHA512.
RSA/SHA256Условно нет
(но устаревший)
Алгоритм подписи RSA (без PSS) все еще считается безопасным, но схема RSA-PSS является более предпочтительной и современной. Не используется в TLS 1.3.
RSA/SHA384Условно нет
(но устаревший)
Аналогично RSA/SHA256.
RSA/SHA1ДаХэш-функция SHA1 считается криптографически сломанной из-за практических атак нахождения коллизий. Категорически не должен использоваться.
ECDSA/SHA256НетСовременный и безопасный алгоритм. ECDSA эффективнее RSA и обеспечивает аналогичную безопасность при меньшей длине ключа. Широко используется в TLS 1.3.
ECDSA/SHA384НетАналогично выше, с использованием еще более стойкого хэша SHA384.
ECDSA/SHA1ДаКомбинация безопасного ECDSA со сломанным хэшем SHA1 делает весь cipher suite уязвимым. Не должен использоваться.
DSA/SHA1ДаDSA считается устаревшим (особенно с короткими ключами), а в сочетании со SHA1 является двойной уязвимостью. Категорически не должен использоваться.
RSA/SHA512Условно нет
(но устаревший)
Аналогично RSA/SHA256. Безопасность зависит от длины RSA-ключа, но схема подписи устарела по сравнению с PSS.
ECDSA/SHA512НетБезопасная комбинация.

SHA1 - это красный флаг. Любой cipher suite, использующий SHA1 для подписи, является уязвимым и должен быть отключен.

Как только вы сможете обновить ваш TPM модуль, данные протоколы нужно вернуть RSAE-PSS/SHA256, RSAE-PSS/SHA384, RSAE-PSS/SHA512

Есть бесплатная утилита IIS Crypto 4, которая вам одной кнопкой позволит убрать все устаревшие алгоритмы TLS.

https://www.nartac.com/Products/IISCrypto/Download

Скачивание IIS Crypto GUI

Запустите IIS Crypto 4. Зайдите в раздел cipher suites и нажмите кнопку "Best Practices" после чего выставите галку "Reboot" и кнопку "Apply" для применения.

Best practice cipher suites

📜Локальное отключение старых версий TLS

Если вы используете утилиту IIS Crypto 4, то на вкладке Shannel так же нажмите кнопку "Best Prictice", это уберет огромное количество галочек со старых протоколов. Обязательно произведите перезагрузку устройства.

SCHANNEL (Secure Channel) - это встроенный поставщик безопасности (Security Support Provider) в операционных системах Windows, который реализует протоколы SSL/TLS и другие связанные протоколы для защищенной интернет-коммуникации. Тут вы избавитесь от:

  • SSL 2.0
  • SSL 3.0
  • TLS 1.0
  • TLS 1.1

IIS Crypto 4 отключение Schannel

🛡️Где используется SCHANNEL?

┌─────────────────┐
│   Приложения    │  ← IIS, Internet Explorer, Edge,
└─────────────────┘     Exchange Server, SQL Server, etc.
          │
          ↓
┌─────────────────┐
│     SSPI API    │  ← Security Support Provider Interface
└─────────────────┘
          │
          ↓
┌─────────────────┐
│    SCHANNEL     │  ← Наш поставщик безопасности
└─────────────────┘
          │
          ↓
┌─────────────────┐
│  Сетевой стек   │  ← Winsock, TCP/IP
└─────────────────┘

Все cipher suites из вашего списка обрабатываются именно через SCHANNEL, когда:

  • Браузер устанавливает HTTPS-соединение

  • IIS обслуживает защищенные веб-сайты

  • Любое приложение Windows использует TLS/SSL

Именно поэтому важно избавляться от старых SCHANNEL и cipher suites. Настраивая протоколы SCHANNEL вы можете управлять поведением своего приложения.

⚙️Управление протоколами TLS через групповую политику

Создайте групповую политику, перейдите в раздел:

Конфигурация компьютера - Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Internet Explorer - Панель управления браузером - Вкладка "Дополнительно" - Выключить поддержку шифрования

Computer Configuration - Administrative Templates - Windows Components - Internet Explorer - Internet Explorer Control Panel - Advanced Page - Turn Off Encryption Support

Обратите внимание, что тут огромное количество вариаций, многие из них устарели.

Сочетание безопасных протоколов

 

Включаем политику и выбираем "Использовать протоколы TLS 1.2 и TLS 1.3"

Если данный параметр включен, то браузер будет согласовывать туннель шифрования со способами шифрования, выбранными в раскрывающемся списке, либо не будет выполнять эту процедуру

Использовать протоколы TLS 1.2 и TLS 1.3

Перезагружаем конечные устройства, чтобы применились настройки. Теперь если открыть на клиенте оснастку inetcpl.cpl, и пройти на вкладку "Дополнительно", то вы увидите, что галок нет на против протоколов SSL 3.0, TLS 1.0, TLS 1.1 и проставлены галочки TLS 1.2, TLS 1.3. Так же обратите внимание, что теперь для пользователя запрещено в целом редактирование настроек на данной вкладке. Об этом говорит уведомление "Некоторыми параметрами управляет системный администратор".

inetcpl.cpl

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

Далее скачайте admx шаблон для управления шифрами и Schannel.

http://github.com/Crosse/SchannelGroupPolicy

Кладем файл schannel.admx и папку en-US в центральное хранилище групповых политик, чтобы данный шаблон был виден всеми контроллерами домена.

Скачивание SchannelGroupPolicy-master

В созданной ранее политике перейдите в раздел:

Конфигурация компьютера - Административные шаблоны - Сеть - Параметры конфигурации SSL

Computer Configuration - Administrative Templates - Network - SSL Configuration

Управление шифрами через GPO

В Weak Chiphers вы можете управлять включением и отключением DES 56/56, RC2 128/128, RC2 40/128, RC2 56/128, RC4 128/128, RC4 40/128, RC4 56/128, RC4 64/128, AES 128/128, AES 256/256

Управление Weak Chiphers GPO

В Hashes вы можете включать или отключать использование алгоритмов хэширования: MD5, SHA, SHA-256, SHA-384, SHA-512.

Управление Hashes через GPO

Вкладка Protocols позволит вам управлять включением/выключением протоколами TLS/SSL: DTLS 1.0, Multi-Protocol Unified Hello, PCT 1.0, SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, DTLS 1.2, TLS 1.2, TLS 1.3.

Управление Weak Protocols GPO

На вкладке Key Exchanges можно включать и отключать разные варианты алгоритмов обмена ключами (Подписи шиврования), например они используются в сертификатах. Тут вы будите управлять PKCS, его размером ключа на стороне клиента, ECDH, Diffie-Hellman.

Я вам ранее рассказывал как менять тип сертификата, и там была конвертация Signature на Exchange

Управление PKCS через GPO

🔧Управление протоколами TLS через реестр

Знание данных ключей реестра, так же вам поможет распространить их через SCCM или те же групповые политики. Для настроек параметров протоколов в SCHANNEL есть ветка реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\

Зайдите туда, тут нужно будет создавать продразделы SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3. так же тут стоит учитывать, что есть клиентская часть и серверная, поэтому будут дополнительные подкаталоги. Предположим, мне необходимо отключить полностью TLS 1.1. Для этого нужно будет по пути:

  • Для клиентской части

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client

  • Для серверной части

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server

Создать по два ключа с типом DWORD (32 бита).

  • DisabledByDefault - значение 1 - означает "Да". Этот параметр указывает системе, что протокол TLS 1.0 по умолчанию должен быть отключен, даже если он технически доступно.
  • Enabled - значение 0 означает "Нет". Этот параметр явно и окончательно отключает возможность использования протокола. Даже если приложение захочет его принудительно использовать, оно не сможет.

Проще всего это сделать с помощью PowerShell:

@("Client","Server") | ForEach-Object {
$p = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\$_";
if (!(Test-Path $p)) { New-Item -Path $p -Force | Out-Null };
Set-ItemProperty -Path $p -Name "DisabledByDefault" -Value 1 -Type DWORD;
Set-ItemProperty -Path $p -Name "Enabled" -Value 0 -Type DWORD;
}
Write-Host "TLS 1.1 отключен для Client и Server" -ForegroundColor Green

Отключение LTS 1.1 PowerShell

В результате будут созданы так два подраздела с нужными ключами.

Ключи реестра отключения TLS 1.1

Логично предположить, что для других версий TLS/SSL нужно просто внести небольшие изменения в скрипт выше. Мне больше нравится использовать функцию PowerShell, для этого дела, как ее сохранить читайте по ссылке. Вот ее пример.

function Set-TLSProtocol {
param(
[string]$Protocol,
[string]$Role,
[ValidateSet("Enable", "Disable")]
[string]$Action = "Disable",
[switch]$Force
)

$path = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$Protocol\$Role"

# Создаем путь если не существует
if (!(Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
Write-Host "Создан ключ: $path" -ForegroundColor Cyan
}

# Устанавливаем значения в зависимости от действия
switch ($Action) {
"Disable" {
Set-ItemProperty -Path $path -Name "Enabled" -Value 0 -Type DWORD
Set-ItemProperty -Path $path -Name "DisabledByDefault" -Value 1 -Type DWORD
Write-Host "Отключен $Protocol для $Role" -ForegroundColor Red
}
"Enable" {
Set-ItemProperty -Path $path -Name "Enabled" -Value 1 -Type DWORD
Set-ItemProperty -Path $path -Name "DisabledByDefault" -Value 0 -Type DWORD
Write-Host "Включен $Protocol для $Role" -ForegroundColor Green
}
}
}

У функции есть возможность как включать нужный протокол, так и отключать.

Set-TLSProtocol -Protocol "TLS 1.0" -Role "Client" -Action "Disable"

Set-TLSProtocol -Protocol "TLS 1.2" -Role "Server" -Action "Enable"

  • -Protocol - тут указываем нужный протокол, например "TLS 1.0"
  • -Role - Клиентский раздел или серверный "Client"/"Server"
  • -Action - Тут включение или отключение "Disable"/Enable"

Enable - включает принудительное использование выбранного протокола. На всякий случай если вам это необходимо для определенного приложения.
Тут ключи имеют значения "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

Использование функции по отключению TLS 1.0

Ну и если вам нужно централизованно распространить ключи реестра, то так же это легко сделать с помощью групповой политики, создав их там.

Конфигурация компьютера - Настройка - Конфигурация Windows - Реестр

Создание ключа реестра в gpo

В итоге получится, что-то подобное. Единственное не забудьте прилинковать политику к нужному организационному подразделению.

Создание ключей реестра в GPO

🔄Ключи реестра для Net 3.5 и 2.0 и Net 4.х

Старые приложения, скомпилированные под .NET Framework версий 2.0 - 4.0, по умолчанию используют устаревший и небезопасный протокол SSL 3.0 или TLS 1.0, которые сегодня считаются уязвимыми. Многие современные серверы (например, веб-сайты, API) просто отказываются принимать соединения по таким старым протоколам. Существуют два ключа реестра позволяющих это исправить.

ПараметрЗначение 1За что отвечаетРешаемая проблема
SystemDefaultTlsVersions1Использовать актуальные, системные настройки TLSПриложения используют устаревшие TLS 1.0/SSL 3.0 вместо современных TLS 1.2/1.3
SchUseStrongCrypto1Включить современные, стойкие алгоритмы шифрованияПриложения используют слабые, взломанные шифры, что небезопасно

Включить системные протоколы шифрования для .Net 3.5 и 2.0

  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\ 
  • Название ключа SystemDefaultTlsVersions
  • Тип DWORD
  • Значение 1, для включения
  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727
  • Название ключа SystemDefaultTlsVersions
  • Тип DWORD
  • Значение 1, для включения
  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
  • Название ключа SchUseStrongCrypto
  • Тип DWORD
  • Значение 1, для включения
  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727
  • Название ключа SchUseStrongCrypto
  • Тип DWORD
  • Значение 1, для включения

Включить системные протоколы шифрования для .Net 4.х:

  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
  • Название ключа SystemDefaultTlsVersions
  • Тип DWORD
  • Значение 1, для включения
  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
  • Название ключа SystemDefaultTlsVersions
  • Тип DWORD
  • Значение 1, для включения

Включить использование TLS 1.2 для WinHTTP:

  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
  • Название ключа DefaultSecureProtocols
  • Тип DWORD
  • Значение 800, для включения
  • Путь - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
  • Название ключа DefaultSecureProtocols
  • Тип DWORD
  • Значение 800, для включения

Дополнительные ссылки

  • https://learn.microsoft.com/en-us/answers/questions/467673/windows-10-tpm-2-0-client-authentication-in-tls-1
  • https://github.com/ToddMaxey/SChannel-settings
  • https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings
  • https://learn.microsoft.com/en-us/windows/win32/secauthn/secure-channel
  • https://winitpro.ru/index.php/2022/03/02/otklyuchenie-versii-tls-gpo/
Оцените статью
Настройка серверов windows и linux
Добавить комментарий