Ввиду недостаточного уровня безопасности, обеспечиваемого устаревшими протоколами TLS 1.0 и TLS 1.1, их рекомендуется отключать и использовать более новые версии TLS 1.2 и TLS 1.3. В статье мы кратко проговорим отличия старых и новых реализаций этого протокола, а также разберём три способа отключения TLS 1.0 и TLS 1.1: через реестр, команды PowerShell или командную строку.
Растущая активность кибератак вынуждает системных администраторов реализовывать всё более безопасные протоколы связи с целью защиты ресурсов и сетей. Наиболее же важную роль в этом процессе играет TLS. TLS – это протокол безопасности транспортного уровня, используемый для шифрования коммуникаций между клиентами и серверами. Последними версиями этого протокола являются TLS 1.2 и TLS 1.3, которые предлагают множество преимуществ относительно предыдущих.
Сегодня чаще всего используется версия 1.2, но 1.3 тоже набирает популярность благодаря своей эффективности и высокой скорости работы. Как системному администратору для повышения безопасности подотчётной инфраструктуры вам следует задействовать в Windows Server именно TLS 1.2 или TLS 1.3, но одного этого будет недостаточно. Также необходимо отключить TLS 1.0 и TLS 1.1, поскольку на сегодня их уровень защищённости уже недостаточен.
Прежде чем переходить к способам отключения TLS 1.0 и TLS 1.1 в Windows Server, мы разберём особенности этих версий и уточним причины для их отключения.
Содержание
- Немного об особенностях TLS 1.0 и TLS 1.1
- Почему нужно отключать TLS 1.0 и TLS 1.1 в Windows Server?
- Уязвимости TLS 1.0 и TLS 1.1
- Какая есть альтернатива TLS 1.0 и TLS 1.1?
- Как отключить TLS 1.0 и TLS 1.1 в Windows Server?
- Способ 1: отключение вручную через реестр
- Способ 2: отключение с помощью команд PowerShell
- Способ 3: отключение через командную строку
Немного об особенностях TLS 1.0 и TLS 1.1
TLS – это криптографический протокол, обеспечивающий безопасность передачи данных через интернет.
Версия TLS 1.0 была выпущена в 1999 году, а TLS 1.1 вышла в качестве её обновления в 2006. Сегодня обе этих версии являются устаревшими и уже не обеспечивают должный уровень безопасности.
Почему следует отключать TLS 1.0 и TLS 1.1 в Windows Server?
Для отключения TLS 1.0 и TLS 1.1 есть несколько причин:
- Эти версии больше не считаются безопасными ввиду своей уязвимости к различным атакам, например, POODLE.
- Отключение TLS 1.0 и TLS 1.1 на сервере вынудит клиентов использовать более безопасную версию TLS 1.2.
- Некоторые правительственные агентства, например, Агентство национальной безопасности (NSA), рекомендуют отключать TLS 1.0 и TLS 1.1.
- Microsoft прекратили предоставлять обновления безопасности для Windows Server, где используется TLS 1.0 или TLS 1.1.
- Многие ведущие поставщики ПО, включая Google, Microsoft, Mozilla и Apple, остановили поддержку этих версий.
Уязвимости TLS 1.0 и TLS 1.1
В TLS 1.0 и TLS 1.1 есть целый ряд известных уязвимостей, которые могут быть эксплуатированы хакерами. К ним относятся:
- POODLE (Padding Oracle On Downgraded Legacy Encryption),
- BEAST (Browser Exploit Against SSL/TLS),
- CRIME (Compression Ratio Info-leak Made Easy),
- FREAK (Factoring Attack on RSA-EXPORT Keys),
- LOGJAM (Diffie-Hellman Key Exchange Weakness).
Эти уязвимости позволяют выполнять атаки по типу «человек посередине», расшифровывать чувствительную информацию и перехватывать сеансы пользователей. Отключая на своём сервере TLS 1.0 и TLS 1.1, вы можете защитить себя от этих атак.
Какая есть альтернатива для TLS 1.0 и TLS 1.1?
Последней версией протокола является TLS 1.3. Она была выпущена в 2018 году и включает ряд доработок безопасности. Мы рекомендуем использовать эту версию вместо устаревших TLS 1.0 и TLS 1.1.
Что касается TLS 1.2, то она превосходит TLS 1.1 поддержкой эллиптической криптографии (ECC) и наличием новых криптографических наборов, которые обеспечивают более высокий уровень безопасности. TLS 1.3, в свою очередь, превосходит TLS 1.2 тем, что упрощает процесс рукопожатия и делает его более устойчивым к атакам «человек посередине». Кроме того, в этой версии задействуются новые криптографические наборы, обеспечивающие ещё более высокий уровень безопасности.
И TLS 1.2, и TLS 1.3 являются обратно совместимыми с TLS 1.0 и TLS 1.1. Это означает, что клиент, использующий TLS 1.2, может взаимодействовать с сервером, использующим TLS 1.1 и наоборот. Но при этом сами TLS 1.2 и TLS 1.3 между собой несовместимы.
Как уже было сказано, последняя версия протокола постепенно набирает популярность. Многие ведущие браузеры, включая Chrome, Firefox и Edge, уже её поддерживают. Кроме того, основные провайдеры интернет-услуг, такие как Cloudflare и Akamai, тоже начали поддерживать TLS 1.3 на своих серверах.
Если вас интересует более подробное сравнение реализаций этого протокола для разных серверов и клиентов, рекомендую заглянуть на эту страницу.
А ниже я приведу серию статей, посвящённых особенностям TLS 1.2 и TLS 1.3:
- What Is SSL/TLS? How SSL, TLS 1.2, And TLS 1.3 Differ From Each Other?
- Decoding TLS v1.2 protocol Handshake with Wireshark
- Decoding TLS 1.3 Protocol Handshake With Wireshark
- How to Enable TLS 1.3 in Standard Web Browsers?
- How to Enable TLS 1.3 on Popular Web Servers?
- How to Enable TLS 1.2 and TLS 1.3 on Windows Server?
- How to Disable TLS 1.0 and TLS 1.1 on Your Apache Server?
- How to Disable TLS 1.0 and TLS 1.1 on Your Nginx Server?
Как отключить TLS 1.0 и TLS 1.1 в Windows Server?
Далее мы рассмотрим 3 способа отключения TLS 1.0 и TLS 1.1 в Windows Server. Вы можете выбрать наиболее подходящий в зависимости от ваших технических навыков и навыков автоматизации.
- Отключение вручную через реестр.
- Отключение с помощью команд PowerShell.
- Отключение через командную строку.
Примечание: в Microsoft открыто заявили, что больше не поддерживают TLS 1.0 и TLS 1.1 в операционных системах Windows и патчи для этих версий не предоставляют. Можете ознакомиться с этой таблицей, где отражена поддержка TLS в различных ОС Windows.
▍ Способ 1: ручное отключение TLS 1.0 и TLS 1.1 через реестр
Потребуется 15 минут.
1. Запуск утилиты regedit.
Откройте окно Run, введите
regedit
и кликните OK
.2. Создание нового раздела.
В редакторе реестра перейдите по пути:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols.
Создайте новый раздел, кликнув правой кнопкой по Protocols –> New –> Key.
3. Именование раздела реестра TLS 1.0.
Назовите созданный раздел TLS 1.0.
4. Создание в TLS 1.0 раздела реестра Client.
В дополнение к шагу выше создайте в TLS 1.0 раздел Client, как показано на скриншоте.
5. Создание нового параметра DWORD (32-bit) Value в Client.
Создайте новый параметр через правый клик по Client –> New –> DWORD (32-bit) Value.
6. Именование параметра DWORD (32-bit) Value как Enabled.
Присвойте параметру DWORD (32-bit) Value имя Enabled, установив для него шестнадцатеричное значение
0
.7. Создание в TLS 1.0 параметра DisabledByDefault.
Аналогичным образом создайте параметр DisabledByDefault с шестнадцатеричным значением
1
.8. Создание раздела Server и соответствующих параметров.
По аналогии с шагами выше создайте в Protocols раздел Server, а также параметры реестра DWORD (32-bit) Value и Enabled, как показано ниже.
9. Отключение TLS 1.1 в Windows Server.
Для отключения TLS 1.1 создайте в Protocols раздел TLS 1.1, а в нём разделы и параметры, приведённые ниже:
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client\Enabled с шестнадцатеричным значением 0
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client\DisabledByDefault с шестнадцатеричным значением 1
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server\Enabled с шестнадцатеричным значением 0
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server\DisabledByDefault с шестнадцатеричным значением 1
▍ Способ 2: отключение TLS 1.0 и TLS 1.1 с помощью команд PowerShell
Описанная ниже простая процедура позволит отключить TLS 1.0 и TLS 1.1 командами Powershell.
1. Откройте Powershell от имени администратора.
2. Выполните следующие команды для создания записей реестра.
- New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' –PropertyType 'DWORD' -Name 'Enabled' -Value '0'
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' –PropertyType 'DWORD' -Name 'DisabledByDefault' -Value '1'
- New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -PropertyType 'DWORD' -Name 'Enabled' -Value '0'
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' –PropertyType 'DWORD' -Name 'DisabledByDefault' -Value '1'
- New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' –PropertyType 'DWORD' -Name 'Enabled' -Value '0'
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' –PropertyType 'DWORD' -Name 'DisabledByDefault' -Value '1'
- New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -PropertyType 'DWORD' -Name 'Enabled' -Value '0'
- New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' –PropertyType 'DWORD' -Name 'DisabledByDefault' -Value '1'
До выполнения команд вы увидите, что в Protocols никаких параметров нет.
После их выполнения будут созданы два раздела: TLS 1.0 и TLS 1.1. Под каждым протоколом присутствуют разделы Client и Server, внутри которых есть два параметра: DisableByDefault и Enabled.
▍ Способ 3: отключение TLS 1.0 и TLS 1.1 в Windows Server через командную строку
1. Откройте командную строку от имени администратора.
2. Выполните следующие команды для создания записей реестра.
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v DisabledByDefault /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" /v Enabled /t REG_DWORD /d 0 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" /v DisabledByDefault /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 0 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v DisabledByDefault /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v Enabled /t REG_DWORD /d 0 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v DisabledByDefault /t REG_DWORD /d 1 /f
Надеюсь, эта статья помогла вам разобраться, как отключать TLS 1.0 и TLS 1.1 в Windows Server.
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ????️
Комментарии (25)
Antiokh
02.04.2023 10:42+3Теоретически сейчас при установке как раз эти протоколы выключены. А потом выясняется, что какое-то чудо, без которого жить никак нельзя, не умеет работать на свежем TLS.
DikSoft
02.04.2023 10:42+7Отключение TLS 1.0 приводит к полной неработоспособности связки ADFS - WAP, при этом отваливается оно не сразу, а через некоторое время. Диагностируется проблема не самым очевидным путём. Актуально для всех версий ADFS, включая последнюю. Уже не помню, у кого из них должна остаться поддержка TLS 1.0 клиентом, а у кого сервером. Но суть в том, что это не стороннее легаси, а родная роль. И вот такая оказия...
Больнее всего наступать на детские грабли. Просто для информации, может кому поможет.
Mnemonic0
02.04.2023 10:42Тут вы немного не правы. Столкнулся с такой же проблемой, надо было взять вайршарк в руки. WAP Windows Server 2019 по дефолту выключены TLS 1.0 и TLS 1.1. А работает TLS 1.2. Решение оказалось чуть другое:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\EnableDefaultHttp2 Value: 0
DikSoft
02.04.2023 10:42+5Написать так много слов, и не упомянуть утилиту IISScrypto - как минимум странно.
ifap
02.04.2023 10:42+2Упомянуть все "костыли", но ни слова о наиболее очевидном пути - через GPO... да что Вы знаете о странностях?
DikSoft
02.04.2023 10:42Справедливости ради, через GPO preferences то, что в статье описано, остается только завернуть.
Родными шаблонами политик, насколько я помню, отключается только поддержка клиента TLS, но не сервера.
Update: Возможно, такие шаблоны есть в Security Compliance Toolkit (SCT) - прямой линк на скачивание
ifap
02.04.2023 10:42А даже последняя версия IIS Crypto не знает про существование TLS 1.3, но я же не придираюсь ;)
DikSoft
02.04.2023 10:42не знает про существование TLS 1.3
Эээ... у меня глюки?
Глюк
ifap
02.04.2023 10:42Или у меня... а какая ОС? Это на Win10 x64:
DikSoft
02.04.2023 10:42Windows server 2022 - есть 1.3
Windows server 2016, 2019 со всеми обновлениями - нет 1.3ifap
02.04.2023 10:42Если верить мелкомягким, то его там и нет. Правда, об этом забыли сообщить тому же ишаку, который позволяет включить TLS 1.3 в настройках по крайней мере на клиентской десятке...
ElvenSailor
02.04.2023 10:42+1поддержка внутри браузера не равна поддержке на стороне SChannel
ifap
02.04.2023 10:42Полагаете, у Ишака собственный schannel и он может в то, во что не умеет ОС? Не затруднит привести пример?
DaemonGloom
02.04.2023 10:42+1Гораздо веселее с 2019 MS Exchange, если его запустить на 2022 сервере. Ибо вин-сервер про TLS 1.3 знает и использует, а почтовый — нет. В результате — сплошные ошибки. Всё — последних версий на текущий момент.
ifap
02.04.2023 10:42Хм... разве hello формирует сам почтовик?
DaemonGloom
02.04.2023 10:42+1Там тесная связка из сервисов самого Exchange (для базовых протоколов), службы IIS для клиентов и всё завязано на schannel и .net. Чтобы эта фигня вообще взлетела — приходится кучу всего настраивать вручную дополнительно.
DikSoft
02.04.2023 10:42+1Был сильно удивлён, когда MS добавили Server 2022 в поддерживаемые ОС для Exchange 2019. Там глюк на глюке в такой связке.
Mnemonic0
02.04.2023 10:42Но лишь в CU12. Изначально была рекомендация ставить вообще на 16й сервер, потом подтянули под 2019, сейчас и 2022й.
Тут в работу вступает другой момент - все клиенты будут работать всё одно с tls 1.2, поскольку 1.3 только в Win11 и, наверное, последний 22H2 Win10.
Пока самая рабочая схема Server 2019 для exchange, ad, adfs, wap и клиенты начиная с windows 7.
faceplam
02.04.2023 10:42работает не трог (с)
а если появится какая нибудь острая необходимость срочно ето дело замутить, мемкрософт выкатит соответствующее обновление
evil_raider
02.04.2023 10:42-1всё крайне странно и непонятно. Если эти TLSы-такие старые и неподдерживаемые, почему бы их не отключить тому же Майкрософту? В таблице поддержки TLS написано, что даже в Win11Server2022 включены все TLS - и 1.0, и 1.1, 2. По счастливой случайности они частично выключены в winserver2008r2
Vasily_Pechersky
Интересно читать такие статьи — когда в продакшене больше сталкиваешься с обратной необходимостью.
Суровое легаси не работает с новомодными поделками а обновление стоит таких денег что ....
achekalin
Самое стремное - когда после переустановки ОС не можешь к ней скачать обновления, потому что какой-то мудрый инженер на сервере обновлений включил TLS версии, не поддерживаемой этой же ОС из коробки.