Отключить sslv3 windows server 2012

Обновлено: 06.07.2024

Бронируем TLS на примере Windows Server 2012 R2 / 2016

Версия SSL/TLS на сервере

Разберемся по порядку.

Краткая история вопроса – SSL

  • Обязательность подтверждения подлинности сервером
  • Опциональная проверка подлинности клиента
  • Совместная генерация случайного сеансового ключа
  • Поддержка различных симметричных алгоритмов для шифрования данных
  • Поддержка различных алгоритмов хэширования для реализации проверки целостности через MAC

Первая версия SSL не особо показывалась публике, отсчёт рабочих версий можно начинать с SSL 2.0 (1995й год). Эта версия была первой, которая эксплуатировалась в production, и достаточно оперативно она была доработана до SSL 3.0. Заметим, что хотя это произошло достаточно давно – в 1996 году – стандарт от этого не стал общим и открытым; он оставался стандартом, разработанным конкретной фирмой Netscape, и для его использования в ряде случаев нужна была лицензия. Опубликован IETF он был недавно; RFC 6101 описывает то, что 15 лет уже стандарт де-факто для защиты сессий множества приложений. Но, по сути, с ним уже давно пора прощаться; TLS существует годы (с 1999, если быть точнее. Поддержка TLS 1.0 есть уже во всех, даже устаревших, продуктах, поэтому мы будем в явном виде отключать SSL.

Краткая история вопроса – PCT 1.0 и MPUH

Краткая история вопроса – TLS 1.0, 1.1 и 1.2

В 1999 году появляется TLS 1.0. Он заменяет собой вендорский SSL 3.0, являсь очень похожим на него, и пишет в заголовок версию , намекая, что он 3.1.

В 2006 году появляется TLS 1.1. Что он меняет?

Отключаем PCT 1.0, MPUH, SSL 2.0 и SSL 3.0

Посмотрим на результаты, выполнив команду show tls:

Вполне ОК. Теперь надо тюнить выживший TLS.

Пересогласование TLS

Безопасное пересогласование TLS описывается в стандарте RFC 5746 и решает проблему с этой возможной уязвимостью.

По сути, Windows-хост может работать в плане этого RFC в двух режимах – в режиме совместимости (т.е. допускать и небезопасное, “классическое” пересогласование TLS), и в “безопасном”, допуская только пересогласование в новом формате. По умолчанию, работа идёт в режиме совместимости. Это не всегда полезно, поэтому надо знать, как включать только безопасное пересогласование TLS.

Включаем поддержку TLS Renegotiation Indication Extension

В том же контексте tls у нас есть команда renego, которая по вопросику покажет, что она умеет:

Явно выключаем SCSV

Ну и явно выключим SCSV:

С этим вроде всё. Понятное дело, если хочется супер-защиты, то надо renego none, если не TLS 1.2.

Фиксируем только нужные cipher suites

TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_RC4_128_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521 TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_RC4_128_MD5 SSL_CK_RC4_128_WITH_MD5 SSL_CK_DES_192_EDE3_CBC_WITH_MD5 TLS_RSA_WITH_NULL_SHA TLS_RSA_WITH_NULL_MD5 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_NULL_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521

Так вот, продолжим. Потенциальный список сразу сокращается: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521

  • Всё с TLS_ECDHE_ECDSA_* , с AES-256, в порядке убывания стойкости хэшей/EC-групп
  • Всё с TLS_ECDHE_RSA_* , с AES-256, в порядке убывания стойкости хэшей/EC-групп

Если есть одинаковые варианты, различающиеся только по AES, то вариант с AES-GCM выше.

Блокируем небезопасные криптоалгоритмы

Задаём минимальное количество бит для DH

Управляем серверным комплектом ECC

Учтите только, что в WDK явно указано, что применяться на 100% эта настройка будет только после перезагрузки системы: Starting in Windows 10, CNG no longer follows every update to the cryptography configuration. Certain changes, like adding a new default provider or changing the preference order of algorithm providers, may require a reboot .

Настраиваем фрагментацию TLS

Делается это несложно:

Установим всё в максимальные значения, чтобы принимать все возможные фрагменты, и продолжим.

Анти-BEAST или принудительная TLS-фрагментация

SSL Close-Notify

Журналирование TLS

Подсистема SCHANNEL, которая отвечает в ОС на базе Windows за встроенную реализацию TLS, может сообщать о своих ошибках и проблемах в отдельный журнал. Для отслеживания результатов наших настроек, да и вообще, чтобы не пропустить критичные ошибки, настроим это журналирование:

Отправка клиенту списка доверенных CA в CTL-формате

Однако, начиная с NT 6.2, данная практика считается небезопасной и отправка этого списка отключена по-умолчанию. Это, кстати, ещё и ускоряет установление соединения.

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

Логика проверки x.509-сертификата клиента

  • Проверка цепочки доверия сертификата клиента считается удачной, если цепочка закончилась на сертификате, входящем в Trusted Issuers (например, IIS-серверу предоставили CTL-файл с ними в явном виде) (это параметр machinetrust)
  • Проверка цепочки доверия сертификата клиента считается удачной, если цепочка закончилась на сертификате, входящем в Trusted Issuers и являющимся корневым (т.е. самоподписанным) (это параметр exclusiveroot)
  • Проверка цепочки доверия сертификата клиента считается удачной, если цепочка закончилась на сертификате, входящем или в Trusted Issuers, или в локальное хранилище сертификатов (это параметр exclusiveca)

Вы сможете повлиять на это командой clienttrust в контексте tls:

Проверка промежуточных сертификатов через Интернет

Задаём заголовок HSTS и указываем ему два параметра:

Результат глазами увидеть будет трудно, но различные средства анализа защищённости увидят, что сервер поддерживает HSTS:

В результате заголовок будет выглядеть как-то так:

max-age=63072000; includeSubDomains; preload

Из этих параметров обязательными являются max-age и pin-sha256. Теперь чуть подробнее про каждый.

Зачем это нужно?

Представьте ситуацию, что вы сформировали заголовок HPKP, вписав туда пару хэш-значений (например, корневого сертификата и сертификата сервера) и выставив max-age на неделю. Сервер отдаёт этот заголовок клиенту. Клиент добросовестно проверяет соответствие TLS-сертификатов и хэшей, фиксирует, что всё ОК, и кэширует у себя в браузере данный заголовок. Время пошло.

Замечу, что для использования DNS CAA вам надо будет развернуть сторонний DNS-сервер (например, ISC BIND), потому что DNS, встроенный в Windows Server,не умеет обрабатывать CAA-записи. Даже если вы внесёте их в файл DNS-зоны вручную.

atraining.ru CAA 0 issue "letsencrypt.org" atraining.ru CAA 0 iodef "https://www.atraining.ru/report-uri/caa" atraining.ru CAA 0 iodef "mailto:info@atraining.ru"

Что же обозначают эти параметры?

Нуль после CAA

Выглядит рабочий DNS CAA в результатах тестирования примерно так:

Как понятно, возможность не согласовывать/загружать перечисленное выше хорошо ускорит процесс переподключения. Поэтому механизм этот полезный, а нам остаётся только настроить его.

Включить этот механизм (я про тикеты, а не про допрос) несложно.

Ускоряем работу SSL/TLS

Уменьшайте число согласовываемых протоколов

Учитывайте аппаратные тонкости

  • ECDHE-ECDSA-CHACHA20-POLY1305
  • ECDHE-RSA-CHACHA20-POLY1305
  • DHE-RSA-CHACHA20-POLY1305

Выключите пересогласование

Используйте SHA-2/512

Используйте только ECDH, а не DH

Заключение

В итоге всё может выглядеть примерно так:

Протоколы TLS и SSL (SSL) обеспечивают безопасность обмена данными. Службы федерации Active Directory (AD FS) использует эти протоколы для обмена данными. В настоящее время существует несколько версий этих протоколов.

Schannel — это поставщик поддержки безопасности (SSP), реализующий стандартные протоколы проверки подлинности SSL, TLS и DTLS Internet. Интерфейс поставщика поддержки безопасности (SSPI) является интерфейсом API, используемым системами Windows для выполнения функций, связанных с безопасностью, включая проверку подлинности. Интерфейс SSPI работает как общий интерфейс для нескольких поставщиков поддержки безопасности (SSP), включая поставщика SCHANNEL SSP.

Комплект шифров — это набор алгоритмов шифрования. Реализация протокола TLS/SSL в ПОСТАВЩИКе SChannel использует алгоритмы из набора шифров для создания ключей и шифрования информации. Комплект шифров указывает один алгоритм для каждой из следующих задач:

AD FS использует Schannel.dll для выполнения взаимодействия с безопасной связью. В настоящее время AD FS поддерживает все протоколы и комплекты шифров, поддерживаемые Schannel.dll.

Управление протоколами TLS и SSL, а также комплектами шифров

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

Имейте в виду, что изменение параметров безопасности по умолчанию для канала SCHANNEL может привести к нарушению или предотвращению обмена данными между определенными клиентами и серверами. Это происходит, если требуется безопасная связь и у них нет протокола для согласования связи с.

При применении этих изменений они должны быть применены ко всем AD FSным серверам в ферме. После применения этих изменений требуется перезагрузка.

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

Приведенные ниже разделы реестра расположены в том же расположении: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Используйте Regedit или PowerShell, чтобы включить или отключить эти протоколы и комплекты шифров.

Снимок экрана редактора реестра, отображающего разделы реестра, расположенные в папке protocols.

Включение и отключение SSL 2,0

Используйте следующие разделы реестра и их значения для включения и отключения SSL 2,0.

Включение SSL 2,0

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ Server] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ Server] "DisabledByDefault" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ клиент] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ клиент] "DisabledByDefault" = DWORD: 00000000

Отключение SSL 2,0

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ Server] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ Server] "DisabledByDefault" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ клиент] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0 \ клиент] "DisabledByDefault" = DWORD: 00000001

Отключение SSL 2,0 с помощью PowerShell

Включение и отключение SSL 3,0

Используйте следующие разделы реестра и их значения для включения и отключения SSL 3,0.

Включение SSL 3.0

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ сервер] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ сервер] "DisabledByDefault" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ клиент] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ клиент] "DisabledByDefault" = DWORD: 00000000

Отключение SSL 3.0

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ сервер] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ сервер] "DisabledByDefault" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ клиент] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0 \ клиент] "DisabledByDefault" = DWORD: 00000001

Отключение SSL 3,0 с помощью PowerShell

Включение и отключение TLS 1,0

Используйте следующие разделы реестра и их значения для включения и отключения TLS 1,0.

Отключение TLS 1,0 приведет к разрыву WAP для AD FS доверия. При отключении TLS 1,0 необходимо включить строгую проверку подлинности для приложений. См. раздел Включение строгой проверки подлинности

Включение TLS 1,0

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ Server] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ Server] "DisabledByDefault" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ клиент] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ клиент] "DisabledByDefault" = DWORD: 00000000

Отключение TLS 1.0

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ Server] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ Server] "DisabledByDefault" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ клиент] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0 \ клиент] "DisabledByDefault" = DWORD: 00000001

Отключение TLS 1,0 с помощью PowerShell

Включение и отключение TLS 1,1

Используйте следующие разделы реестра и их значения для включения и отключения TLS 1,1.

Включение протокола TLS 1.1

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ сервер] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ сервер] "DisabledByDefault" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ клиент] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ клиент] "DisabledByDefault" = DWORD: 00000000

Отключение TLS 1,1

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ сервер] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ сервер] "DisabledByDefault" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ клиент] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1 \ клиент] "DisabledByDefault" = DWORD: 00000001

Отключение TLS 1,1 с помощью PowerShell

Включение и отключение TLS 1.2

Используйте следующие разделы реестра и их значения для включения и отключения TLS 1,2.

Включите протокол TLS 1.2.

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "Enabled"=dword:00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "Enabled"=dword:00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000

Отключение протокола TLS 1.2

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "Enabled"=dword:00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "Enabled"=dword:00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000001

Отключение TLS 1,2 с помощью PowerShell

Включение и отключение RC4

Используйте следующие разделы реестра и их значения для включения и отключения RC4. Разделы реестра для этого набора шифров находятся здесь:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\

Снимок экрана редактора реестра, отображающего разделы реестра, расположенные в папке ciphers.

Включить RC4

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128] "Enabled" = DWORD: 00000001
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128] "Enabled" = DWORD: 00000001

Отключение версии-кандидата 4

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128] "Enabled" = DWORD: 00000000
  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128] "Enabled" = DWORD: 00000000

Использование PowerShell

Включение или отключение дополнительных комплектов шифров

Некоторые определенные шифры можно отключить, удалив их из HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002

Снимок экрана редактора реестра, в котором отображается диалоговое окно

Чтобы включить комплект шифров, добавьте его строковое значение в ключ многострочного значения функций. Например, если нужно включить TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521 то мы бы добавили его в строку.

Полный список поддерживаемых комплектов шифров см. в разделе комплекты шифров в TLS/SSL (Schannel SSP). Этот документ содержит таблицу наборов, включенных по умолчанию и поддерживаемых, но не включенных по умолчанию. Чтобы определить приоритеты для комплектов шифров, см. раздел Определение приоритетов для комплектов шифров SChannel.

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto" = DWORD: 00000001

для платформа .NET Framework 4.0/4.5. x используйте следующий раздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 "SchUseStrongCrypto" = DWORD: 00000001

date

06.07.2019

directory

Windows Server 2012 R2

comments

комментария 4

В октябре инженеры Google опубликовали информацию о критической уязвимости в SSL версии 3.0, получившей забавное название POODLE (Padding Oracle On Downgraded Legacy Encryption или пудель 🙂 ). Уязвимость позволяет злоумышленнику получить доступ к информации, зашифрованной протоколом SSLv3 с помощью атаки «man in the middle». Уязвимости подвержены как серверы, так и клиенты, которые могут соединяться по протоколу SSLv3.

В общем-то ситуация не удивительная, т.к. протоколу SSL 3.0, впервые представленного еще в 1996 году, уже исполнилось 18 лет и морально он уже устарел. В большинстве практических задач его уже заменил криптографический протокол TLS (версий 1.0, 1.1 и 1.2).

Примечание. Нужно четко понимать, что отключение SSL v3 на уровне всей системы будет работать только для ПО, которое использует системные API для SSL-шифрования (Internet Explorer, IIS, WebDav , SQL NLA, RRAS, Direct Access и др.). Программы, которые используют собственные крипто средства (Firefox, Opera и т.д.) нужно обновить и настроить индивидуально.

Отключаем SSLv3 в Windows на уровне системы

В ОС Windows управление поддержкой протоколов SSL/TLS осуществляется через реестр.

Совет. Перед выполнением указанных изменений рекомендуем создать резервную копию указанной ветки с помощью функции редактора реестра Экспорт.

В этом примере мы покажем, как полностью на уровне системы (как на уровне клиента, так и сервера) отключить SSLv3 в Windows Server 2012 R2:

Отключаем SSLv2 (Windows 2008 / Server и ниже)

В ОС, предшествующих Windows 7 / Windows Server 2008 R2 по-умолчанию используется еще менее безопасный и устаревший протокол SSL v2, который также следует отключить из соображений безопасности (в более свежих версиях Windows, SSLv2 на уровне клиента отключен по умолчанию и используется только SSLv3 и TLS1.0). Для отключения SSLv2 нужно повторить описанную выше процедуру, только для раздела реестра SSL 2.0.

SSL v2 отключаем в старых версиях Windows

В Windows 2008 / 2012 SSLv2 на уровне клиента отключен по умолчанию.

Включаем TLS 1.1 и TLS 1.2 в Windows Server 2008 R2 и выше

Windows Server 2008 R2 / Windows 7 и выше поддерживают алгоритмы шифрования TLS 1.1 и TLS 1.2, но по-умолчанию эти протоколы отключены. Включить поддержку TLS 1.1 и TLS 1.2 в этих версиях Windows можно по схожему сценарию

Включить TLS 1.1 и TLS 1.2 в Windows 2012 R2

  1. В редакторе реестра откройте ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
  2. Создайте два раздела TLS 1.1 и TLS 1.2
  3. Внутри каждого раздела создайте по подразделу с именами Client и Server
  4. В каждом из разделов Client и Server создайте по ключу типа DWORD:
    • DisabledByDefault со значением 0
    • Enabled со значением 1
  5. После внесенных изменений сервер следует перезагрузить.

Утилита для управления системными криптографическими протоколами в Windows Server

Существует бесплатная утилита IIS Crypto, позволяющая удобно управлять параметрами криптографических протоколов в Windows Server 2003, 2008 и 2012. С помощью данной утилиты включить или отключить любой из протоколов шифрования можно всего в два клика.

IIS Crypto - утилита для управления протоколами шифрования в Windows

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

Как я могу поменять CVE-2014-3566 на Система Windows Server 2012 работает с IIS?

Есть ли патч в Центре обновления Windows, или мне нужно сделать изменение реестра для отключения SSL 3.0 ?

Нет патча. Это уязвимость в протоколе, а не ошибка в реализации.

В Windows Server 2003 до 2012 R2 протоколы SSL /TLS контролируются флагами в реестре, установленном в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols .

Чтобы отключить SSLv3, к которому относится уязвимость POODLE, создайте подраздел в указанном выше местоположении (если он еще не указан) с именем SSL 3.0 и, в соответствии с этим, подраздел с именем Server (если он еще не присутствует). В этом месте ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server ) создайте значение DWORD с именем Enabled и оставьте его в 0 .

Отключение SSL 2.0, которое вы также должны делать, выполняется аналогичным образом, за исключением того, что вы используете ключ с именем SSL 2.0 в указанном выше пути реестра.

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

Просто для простоты установки я получил этот «disable ssl 2 и 3.reg» файл из ответ Эвана выше :

Powershell для отключения SSL2 и SSL3:

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

Вот PowerShell, который будет проверять наличие ключей реестра, создавать их при необходимости, а затем вводить необходимые значения для отключения SSL 2.0 и SSL 3.0

Это может быть развернуто с использованием SCCM или командной строки - просто запустите задачу SCCM или командную строку в качестве администратора. Некоторые веб-сайты с информацией о реестре указывают на необходимость перезагрузки после создания и /или изменения ключей реестра.

Или возьмите копию IISCrypto и нажмите кнопку «Лучшие практики», затем снимите флажок SSL 3.0 и затем примените, затем перезагрузите

Вам не нужно отключать SSL3. Вы можете включить SSL3 и удалить POODLE .

С этими настройками у вас все равно будет поддержка IE6 (с использованием SSLv3 с использованием RC4) и более безопасная конфигурация безопасности. Только IE6 и действительно старый клиент будут использовать шифры SSLv3 или RC4.

Есть хороший сценарий PowerShell, который помогает с IIS 7.5 и amp; 8:

Этот сценарий PowerShell настраивает вашу Microsoft Internet Information Сервер 7.5 и 8.0 (IIS) для поддержки протокола TLS 1.1 и TLS 1.2 с Переслать секретность. Кроме того, он повышает безопасность вашего SSL подключений, отключив небезопасные SSL2 и SSL3 и все небезопасные и слабые шифры, которые браузер может отступить, тоже. Этот скрипт реализует действующие правила лучшей практики.

Читайте также: