Отключить 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, чтобы включить или отключить эти протоколы и комплекты шифров.
Включение и отключение 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\
Включить 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
В октябре инженеры 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.
В 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 можно по схожему сценарию
- В редакторе реестра откройте ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
- Создайте два раздела TLS 1.1 и TLS 1.2
- Внутри каждого раздела создайте по подразделу с именами Client и Server
- В каждом из разделов Client и Server создайте по ключу типа DWORD:
- DisabledByDefault со значением 0
- Enabled со значением 1
- После внесенных изменений сервер следует перезагрузить.
Утилита для управления системными криптографическими протоколами в Windows Server
Существует бесплатная утилита IIS Crypto, позволяющая удобно управлять параметрами криптографических протоколов в Windows Server 2003, 2008 и 2012. С помощью данной утилиты включить или отключить любой из протоколов шифрования можно всего в два клика.
В программе уже есть несколько шаблонов, позволяющие быстро применить предустановки для различных вариантов настроек безопасности.
Как я могу поменять 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 и все небезопасные и слабые шифры, которые браузер может отступить, тоже. Этот скрипт реализует действующие правила лучшей практики.
Читайте также: