Это обновление поддерживает TLS 1.1 и TLS 1.2 в Windows Server 2012, Windows 7 Пакет обновления 1 (SP1) и Windows Server 2008 R2 SP1.
Об этом обновлении
Приложения и службы, написанные с помощью подключений WinHTTP для SSL, которые используют флаг WINHTTP_OPTION_SECURE_PROTOCOLS, не могут использовать протоколы TLS 1.1 или TLS 1.2. Это значит, что определение этого флага не включает эти приложения и службы.
Это обновление добавляет поддержку записи реестра DefaultSecureProtocols, с которой системный администратор может указать, какие протоколы SSL следует использовать WINHTTP_OPTION_SECURE_PROTOCOLS флажком.
Это позволяет некоторым приложениям, которые были встроены для использования флага WinHTTP по умолчанию, использовать новые протоколы TLS 1.2 или TLS 1.1 без необходимости обновления приложения.
Это касается некоторых Microsoft Office приложений, которые открывают документы из библиотеки SharePoint или веб-папки, туннель IP-HTTPS для подключения DirectAccess и другие приложения с помощью таких технологий, как WebClient, с помощью WebDav, WinRM и других приложений.
Для этого обновления необходимо настроить компонент Secure Channel (Schannel) в Windows 7 для поддержки TLS 1.1 и 1.2. Так как эти версии протоколов не включены по умолчанию в Windows 7, необходимо настроить параметры реестра, чтобы приложения Office могли работать с TLS 1.1 и 1.2.
Это обновление не изменит поведение приложений, которые вручную настраивают безопасные протоколы, вместо того чтобы помечать их по умолчанию.
Как получить это обновление
Важно!Если после установки обновления вы установили языковой пакет, необходимо переустановить это обновление. Поэтому мы рекомендуем установить все необходимые языковые пакеты перед установкой обновления. Дополнительные сведения см. в теме «Добавление языковых пакетов в Windows».
Способ 1. Обновление Windows
Это обновление предоставляется в качестве рекомендуемых обновлений для Windows. Дополнительные сведения о запуске Обновления Windows см. в сведениях о том, как получить обновление через Windows Update.
Способ 2. Каталог обновлений Майкрософт
Чтобы получить автономный пакет для этого обновления, перейдите на веб-сайт каталога обновлений Майкрософт.
Обновление подробных сведений
Предварительные условия
Чтобы применить это обновление, необходимо установить Пакет обновления 1 для Windows 7 или Windows Server 2008 R2.
Нет предварительных условий для применения этого обновления в Windows Server 2012.
Сведения о внесении изменений в реестр
Чтобы применить это обновление, необходимо добавить подкод DefaultSecureProtocols реестра.
Примечание Для этого можно добавить подкайку реестра вручную или установить «Простое исправление», чтобы заполнить его.
Требование перезагрузки
После установки этого обновления может потребоваться перезагрузить компьютер.
Сведения о замене обновлений
Это обновление не заменяет ранее выпущенное обновление.
Дополнительная информация
Для соответствия требованиям в отрасли платежных карт требуется TLS 1.1 или TLS 1.2.
Дополнительные сведения о флаге WINHTTP_OPTION_SECURE_PROTOCOLS см. в параметрах флажков.
Как работает запись реестра DefaultSecureProtocols
Внимание! В этом разделе, описании метода или задачи содержатся сведения о внесении изменений в реестр. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует точно выполнять приведенные инструкции. В качестве дополнительной защитной меры перед изменением реестра необходимо создать его резервную копию. Это позволит восстановить реестр в случае возникновения проблем. Дополнительные сведения о том, как создать и восстановить реестр, см. в сведениях о том, как создать его и восстановить в Windows.
Когда приложение указывает WINHTTP_OPTION_SECURE_PROTOCOLS, система проверяет запись defaultSecureProtocols и, если есть, переопределяет протоколы по умолчанию, указанные приложением WINHTTP_OPTION_SECURE_PROTOCOLS, с протоколами, указанными в записи реестра. Если запись реестра не существует, winHTTP будет использовать существующие значения по умолчанию для Win WINHTTP_OPTION_SECURE_PROTOCOLS HTTP. Эти значения WinHTTP по умолчанию следуют за существующими правилами приоритета и имеют приоритет, за которые SCHANNEL отключил протоколы и протоколы, установленные для каждого приложения winHttpSetOption.
Примечание.Установщик hotfix не добавляет значение DefaultSecureProtocols. Администратор должен вручную добавить запись после определения протоколов переопределения. Вы также можете установить легкое исправление, чтобы автоматически добавить запись.
Запись реестра DefaultSecureProtocols можно добавить следующим образом:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp
На компьютерах с оси x64 к пути Wow6432Node также необходимо добавить defaultSecureProtocols:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionInternet SettingsWinHttp
Значением реестра является точная карта DWORD. Используемая величина определяется добавлением значений, соответствующих нужным протоколам.
Значение DefaultSecureProtocols |
Протокол включен |
---|---|
0x00000008 |
Включить SSL 2.0 по умолчанию |
0x00000020 |
Включить SSL 3.0 по умолчанию |
0x00000080 |
Включить TLS 1.0 по умолчанию |
0x00000200 |
Включить TLS 1.1 по умолчанию |
0x00000800 |
Включить TLS 1.2 по умолчанию |
Пример:
Администратор хочет переопрепреировать значения по умолчанию для WINHTTP_OPTION_SECURE_PROTOCOLS TLS 1.1 и TLS 1.2.
Возьмите значение TLS 1.1 (0x00000200) и значение TLS 1.2 (0x00000800), а затем сложить их на калькуляторе (в режиме программиста), и в результате в реестре будет 0x00000A00.
Простое исправление
Чтобы автоматически добавить подкаблику DefaultSecureProtocols реестра, щелкните здесь. В диалоговом окне Скачивание файла нажмите кнопку Выполнить или Открыть и следуйте инструкциям мастера простого исправления Easy Fix.
Примечания.
-
Мастер может быть доступен только на английском языке. При этом автоматическое исправление подходит для любых языковых версий Windows.
-
Если проблема не на компьютере, сохраните решение простого исправления на флэш-накопителе или компакт-диске, а затем запустите его на том компьютере, где возникла проблема.
Примечание.Помимо подкаблицы DefaultSecureProtocols реестра, в исправлении Easy Fix также добавляются secureProtocols в следующем расположении, чтобы помочь включить TLS 1.1 и 1.2 для Internet Explorer.
Запись реестра SecureProtocols со значением, 0xA80 для включения TLS 1.1 и 1.2, будет добавлена по следующим путям:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet Settings
Включить TLS 1.1 и 1.2 в Windows 7 на уровне компонента SChannel
Согласно статье «Параметры TLS-SSL»,чтобы включить tLS 1.1 и 1.2 в Windows 7 и заключить соглашение о нем, необходимо создать запись DisabledByDefault в соответствующем подкайке (клиент) и установить для него 0. Эти подгруппы не будут созданы в реестре, так как по умолчанию эти протоколы отключены.
Создайте необходимые подмени для TLS 1.1 и 1.2; создайте значения DWORD disabledByDefault и установите для него значение 0 в следующих расположениях:
Для TLS 1.1
Расположение реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client
Имя DWORD: DisabledByDefault
Значение DWORD: 0
Для TLS 1.2
Расположение реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client
Имя DWORD: DisabledByDefault
Значение DWORD: 0
Сведения о файле
В версии этого обновления для английского языка (США) устанавливаются файлы с атрибутами, перечисленными в таблицах ниже.
Примечания.
-
Файлы, которые относятся к определенному продукту, вехе (RTM, SPn)и ветви обслуживания (LDR, GDR), можно определить, изучив номера версий файлов, как показано в таблице ниже.
Версия
Продукт
Этап разработки
Направление поддержки
6.1.760 1.23 xxx
Windows 7 или Windows Server 2008 R2
SP1
LDR
-
В выпусках обновлений для общего распространения (GDR) содержатся только общедоступные исправления, которые предназначены для устранения распространенных критических проблем. В выпусках обновлений LDR помимо общедоступных содержатся дополнительные исправления.
-
Файлы МАНИФЕСТА (МАНИФЕСТ) и ФАЙЛЫ, установленные в соответствии с данными, которые устанавливаются для каждой среды, перечислены в разделе «Дополнительные сведения о файле». ЧТОБЫ поддерживать состояние обновленных компонентов, очень важно иметь такие данные, как ПОСЛЕНВ, МАНИФЕСТ и связанные с ним файлы каталога безопасности (CAT). Файлы каталога безопасности, атрибуты для которых не указаны, подписаны цифровой подписью Майкрософт.
x86 Windows 7
Имя файла |
Версия файла |
Размер |
дата |
Время |
Платформа |
---|---|---|---|---|---|
Webio.dll |
6.1.7601.23375 |
316,416 |
09-мар-2016 |
18:40 |
x86 |
Winhttp.dll |
6.1.7601.23375 |
351,744 |
09-мар-2016 |
18:40 |
x86 |
ia64 Windows Server 2008 R2
Имя файла |
Версия файла |
Размер |
дата |
Время |
Платформа |
---|---|---|---|---|---|
Webio.dll |
6.1.7601.23375 |
695,808 |
09-мар-2016 |
17:57 |
IA-64 |
Winhttp.dll |
6.1.7601.23375 |
811,520 |
09-мар-2016 |
17:57 |
IA-64 |
Webio.dll |
6.1.7601.23375 |
316,416 |
09-мар-2016 |
18:40 |
x86 |
Winhttp.dll |
6.1.7601.23375 |
351,744 |
09-мар-2016 |
18:40 |
x86 |
x64 Windows 7 и Windows Server 2008 R2
Имя файла |
Версия файла |
Размер |
дата |
Время |
Платформа |
---|---|---|---|---|---|
Webio.dll |
6.1.7601.23375 |
396,800 |
09-мар-2016 |
19:00 |
x64 |
Winhttp.dll |
6.1.7601.23375 |
444,416 |
09-мар-2016 |
19:00 |
x64 |
Webio.dll |
6.1.7601.23375 |
316,416 |
09-мар-2016 |
18:40 |
x86 |
Winhttp.dll |
6.1.7601.23375 |
351,744 |
09-мар-2016 |
18:40 |
x86 |
Примечания.
-
Файлы, которые относятся к определенному продукту, вехе (RTM, SPn)и ветви обслуживания (LDR, GDR), можно определить, изучив номера версий файлов, как показано в таблице ниже.
Версия
Продукт
Этап разработки
Направление поддержки
6.2.920 0.21 xxx
Windows Server 2012
RTM
LDR
-
В выпусках обновлений для общего распространения (GDR) содержатся только общедоступные исправления, которые предназначены для устранения распространенных критических проблем. В выпусках обновлений LDR помимо общедоступных содержатся дополнительные исправления.
-
Файлы МАНИФЕСТА (МАНИФЕСТ) и ФАЙЛЫ, установленные в соответствии с данными, которые устанавливаются для каждой среды, перечислены в разделе «Дополнительные сведения о файле». ЧТОБЫ поддерживать состояние обновленных компонентов, очень важно иметь такие данные, как ПОСЛЕНВ, МАНИФЕСТ и связанные с ним файлы каталога безопасности (CAT). Файлы каталога безопасности, атрибуты для которых не указаны, подписаны цифровой подписью Майкрософт.
x64 Windows Server 2012
Имя файла |
Версия файла |
Размер |
дата |
Время |
Платформа |
---|---|---|---|---|---|
Webio.dll |
6.2.9200.21797 |
587,776 |
08-мар-2016 |
15:40 |
x64 |
Winhttp.dll |
6.2.9200.21797 |
711,680 |
08-мар-2016 |
15:40 |
x64 |
Webio.dll |
6.2.9200.21797 |
416,768 |
08-мар-2016 |
16:04 |
x86 |
Winhttp.dll |
6.2.9200.21797 |
516,096 |
08-мар-2016 |
16:04 |
x86 |
x86 Windows 7
Свойство «Файл(File)) |
Значение |
---|---|
Имя файла |
Update.т.1 |
Версия файла |
Not applicable |
Размер |
2,138 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
X86_431cdab002fb5e83e17b846b04fcaf65_31bf3856ad364e35_6.1.7601.23375_none_43266eeed47e442d.manifest |
Версия файла |
Not applicable |
Размер |
693 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
X86_74b492584f59e56bd20ffc14c5e5ba0f_31bf3856ad364e35_5.1.7601.23375_none_3e7a009385a3da4d.manifest |
Версия файла |
Not applicable |
Размер |
695 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
X86_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.23375_none_5f3b2e545642f01b.manifest |
Версия файла |
Not applicable |
Размер |
2,484 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
19:23 |
Платформа |
Not applicable |
Имя файла |
X86_microsoft.windows.winhttp_31bf3856ad364e35_5.1.7601.23375_none_5ef020609ae7c078.manifest |
Версия файла |
Not applicable |
Размер |
50,395 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
19:21 |
Платформа |
Not applicable |
ia64 Windows Server 2008 R2
Свойство «Файл(File)) |
Значение |
---|---|
Имя файла |
Ia64_4d2eee3faf61ec5f12517a4957f4537f_31bf3856ad364e35_6.1.7601.23375_none_2a392926b32c8fac.manifest |
Версия файла |
Not applicable |
Размер |
1,034 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:57 |
Платформа |
Not applicable |
Имя файла |
Ia64_a7157a3864eb3625c6f2570464d8d82e_31bf3856ad364e35_5.1.7601.23375_none_cc5980c8656c3813.manifest |
Версия файла |
Not applicable |
Размер |
1,038 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:57 |
Платформа |
Not applicable |
Имя файла |
Ia64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.23375_none_5f3cd24a5640f917.manifest |
Версия файла |
Not applicable |
Размер |
2,486 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
18:59 |
Платформа |
Not applicable |
Имя файла |
Ia64_microsoft.windows.winhttp_31bf3856ad364e35_5.1.7601.23375_none_5ef1c4569ae5c974.manifest |
Версия файла |
Not applicable |
Размер |
50,400 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
19:00 |
Платформа |
Not applicable |
Имя файла |
Update.т.1 |
Версия файла |
Not applicable |
Размер |
1,447 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:57 |
Платформа |
Not applicable |
Имя файла |
Wow64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.23375_none_c5ae742a4301234c.manifest |
Версия файла |
Not applicable |
Размер |
2,486 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
18:56 |
Платформа |
Not applicable |
Имя файла |
Wow64_microsoft.windows.winhttp_31bf3856ad364e35_5.1.7601.23375_none_c563663687a5f3a9.manifest |
Версия файла |
Not applicable |
Размер |
48,208 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
18:57 |
Платформа |
Not applicable |
x64 Windows Server 2012
Свойство «Файл(File)) |
Значение |
---|---|
Имя файла |
Amd64_9958f97250c31c67f643ef2fb115082b_31bf3856ad364e35_5.1.9200.21797_none_f923d4febdcecc46.manifest |
Версия файла |
Not applicable |
Размер |
699 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
17:46 |
Платформа |
Not applicable |
Имя файла |
Amd64_d36ca06f7655111911d5d7858096c818_31bf3856ad364e35_5.1.9200.21797_none_a2ac544257eab672.manifest |
Версия файла |
Not applicable |
Размер |
699 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
17:46 |
Платформа |
Not applicable |
Имя файла |
Amd64_f087a62cc82b760ae1e9fd7c56543a7b_31bf3856ad364e35_6.2.9200.21797_none_41ca502c248372a3.manifest |
Версия файла |
Not applicable |
Размер |
697 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
17:46 |
Платформа |
Not applicable |
Имя файла |
Amd64_f42986041442c9e99c4c4c4ae61a8e52_31bf3856ad364e35_6.2.9200.21797_none_d0b7a18b852fef62.manifest |
Версия файла |
Not applicable |
Размер |
697 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
17:46 |
Платформа |
Not applicable |
Имя файла |
Amd64_microsoft-windows-webio_31bf3856ad364e35_6.2.9200.21797_none_b6359e29819a8949.manifest |
Версия файла |
Not applicable |
Размер |
2,527 |
Дата (UTC) |
08-мар-2016 |
Время (UTC) |
17:49 |
Платформа |
Not applicable |
Имя файла |
Amd64_microsoft.windows.winhttp_31bf3856ad364e35_5.1.9200.21797_none_edbbc2f127740085.manifest |
Версия файла |
Not applicable |
Размер |
51,759 |
Дата (UTC) |
08-мар-2016 |
Время (UTC) |
17:49 |
Платформа |
Not applicable |
Имя файла |
Update.т.1 |
Версия файла |
Not applicable |
Размер |
1,795 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
17:46 |
Платформа |
Not applicable |
Имя файла |
Wow64_microsoft-windows-webio_31bf3856ad364e35_6.2.9200.21797_none_c08a487bb5fb4b44.manifest |
Версия файла |
Not applicable |
Размер |
2,525 |
Дата (UTC) |
08-мар-2016 |
Время (UTC) |
16:28 |
Платформа |
Not applicable |
Имя файла |
Wow64_microsoft.windows.winhttp_31bf3856ad364e35_5.1.9200.21797_none_f8106d435bd4c280.manifest |
Версия файла |
Not applicable |
Размер |
49,547 |
Дата (UTC) |
08-мар-2016 |
Время (UTC) |
16:28 |
Платформа |
Not applicable |
x64 Windows 7 и Windows Server 2008 R2
Свойство «Файл(File)) |
Значение |
---|---|
Имя файла |
Amd64_6f902e1f26c1d885023f2728be29b310_31bf3856ad364e35_6.1.7601.23375_none_4011a397f4e0c754.manifest |
Версия файла |
Not applicable |
Размер |
697 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
Amd64_80b3c903f951066b9a3317caef015722_31bf3856ad364e35_5.1.7601.23375_none_f4346c5570187f00.manifest |
Версия файла |
Not applicable |
Размер |
1,040 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
Amd64_c2062bbf6a689a3048e6f61793b61cdd_31bf3856ad364e35_6.1.7601.23375_none_5e1a5c9308b3bb64.manifest |
Версия файла |
Not applicable |
Размер |
1,036 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
Amd64_d19a822d9b98f35a9157bafd2ad0441b_31bf3856ad364e35_5.1.7601.23375_none_6f3e7f9a649df87a.manifest |
Версия файла |
Not applicable |
Размер |
699 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
Amd64_ef2ea44ccf005d132e8a752d1e218e84_31bf3856ad364e35_6.1.7601.23375_none_23e107a24a3a80ce.manifest |
Версия файла |
Not applicable |
Размер |
697 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
Amd64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.23375_none_bb59c9d80ea06151.manifest |
Версия файла |
Not applicable |
Размер |
2,488 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
20:04 |
Платформа |
Not applicable |
Имя файла |
Amd64_microsoft.windows.winhttp_31bf3856ad364e35_5.1.7601.23375_none_bb0ebbe4534531ae.manifest |
Версия файла |
Not applicable |
Размер |
50,407 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
20:03 |
Платформа |
Not applicable |
Имя файла |
Update.т.1 |
Версия файла |
Not applicable |
Размер |
2,774 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
21:58 |
Платформа |
Not applicable |
Имя файла |
Wow64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.23375_none_c5ae742a4301234c.manifest |
Версия файла |
Not applicable |
Размер |
2,486 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
18:56 |
Платформа |
Not applicable |
Имя файла |
Wow64_microsoft.windows.winhttp_31bf3856ad364e35_5.1.7601.23375_none_c563663687a5f3a9.manifest |
Версия файла |
Not applicable |
Размер |
48,208 |
Дата (UTC) |
09-мар-2016 |
Время (UTC) |
18:57 |
Платформа |
Not applicable |
Ссылки
Узнайте о терминологии, используемой Майкрософт для описания обновлений программного обеспечения.
В данном руководстве разберем несколько способов, как включить или отключить сетевые протоколы TLS 1.0, TLS 1.1 и TLS 1.2.
TLS (Transport Layer Security) — это криптографический протокол, обеспечивающий сквозную безопасность данных, передаваемых между приложениями через Интернет. В основном он используется для безопасного просмотра сайтов через браузер как Яндекс, Chrome или Internet Explorer. Кроме того, он используется для приложений как почта, видеосвязь VoIP, обмен сообщениями, интернет сервисы как DNS и NTP.
Работа TLS заключается в комбинации криптографии как симметричной, так и асимметричной. При старой симметричной криптографии данные шифруются и дешифруются с помощью секретного ключа, известного как отправителю, так и получателю; обычно это 128 бит. Асимметричная новая криптография использует пары ключей — открытый ключ и закрытый ключ, и тоже шифруются в 128 бит. По этому, асимметричная криптография является наилучшим вариантом, так как практически невозможно получить какой-либо ключ, так как они оба математически связаны.
На сегодняшний день протокол TLS 1.0 не является безопасным, так как он устарел и существуют выше версии, которые более безопасные.
Современные браузеры поддерживают протокол с версии TLS 1.2, и разумным будет отключить версию TLS 1.0.
Если у Вас Windows 7 или XP, то очевидно, что там стоят старые версии браузеров для которых необходим включенный протокол TLS 1.0 или TLS 1.1.
Как включить или отключить TLS 1.0
1. Через свойства интернета
- Нажмите сочетание клавиш Win+R и введите inetcpl.cpl, чтобы быстро открыть свойства интернета.
- Перейдите во вкладку «Дополнительно«.
- В списке найдите протокол TLS 1.0, TLS 1.1 или TLS 1.2.
- Поставьте галочку, чтобы включить и уберите, чтобы отключить.
2. Через реестр
Нажимаем Win+R и вводим regedit, чтобы открыть редактор реестра. В реестре переходим по следующему пути:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocols
- Нажимаем правой кнопкой мыши по «Protocol» и Создать > Раздел.
- Называем новый раздел TLS 1.0 и жмем по нему правой кнопкой мыши.
- Создаем еще один раздел и именем Client.
Вместо TLS 1.0 вы можете создать TLS 1.1 или TLS 1.2, смотря какой вам нужен. Кроме того, можно создать сразу несколько.
Выделяем одним нажатием созданный раздел Client и справа на пустом поле жмем правой кнопкой мыши Создать > Параметр DWORD (32 бита). Назовите новый параметр Enabled. Щелкните по нему два раза, чтобы открыть свойства и задайте значение 1, чтобы включить и 0, чтобы отключить.
Смотрите еще:
- Как включить сетевой протокол SMB 1 в Windows 10
- Разница между Wi-Fi протоколами WPA, WPA2 и WEP
- Ошибка 734: Протокол PPP был прерван
- Эта общая папка работает по устаревшему протоколу SMB1
- Как узнать пропускную скорость сетевой карты на компьютере
[ Telegram | Поддержать ]
В этой статье мы рассмотрим, как включить протокол Transport Layer Securit (TLS 1.2) в различных версиях Windows, в том числе для приложений .Net и WinHTTP. Протоколы TLS 1.0 и TLS 1.1 являются устаревшими, и если вы мигрировали все ваши сервисы на TLS 1.2 или TLS 1.3, вы можете отключить поддержку старых версий протоколов на клиентах и серверах Windows (Отключение TLS 1.0 и TLS 1.1 с помощью групповых политик). Но перед этим, вам нужно убедиться, что на всех ваших клиентах поддерживается протокол TLS 1.2.
В современных версиях Windows (Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2) протокол TLS 1.2 включен по-умолчанию. А вот в предыдущих версиях Windows (Windows 7, Windows Server 2008R2/2012), чтобы включить TLS 1.2, придется выполнить ряд предварительных настроек.
Windows XP и Vista не поддерживают TLS 1.2.
Например, чтобы включить TLS 1.2 в Windows 7 нужно:
- Убедится, что у вас установлен Windows 7 SP1;
- Скачать и вручную установить MSU обновление KB3140245 из Microsoft Update Catalog (https://www.catalog.update.microsoft.com/search.aspx?q=kb3140245);
- Далее нужно скачать и установить патч MicrosoftEasyFix51044.msi (патч добавляет в реестр параметры, которые обеспечивают поддержку TLS 1.2 в Windows 7/2008R2/2012);
- Перезагрузите компьютер.
Эти параметры реестра описаны в статье Update to enable TLS 1.1 and TLS 1.2 as default secure protocols in WinHTTP in Windows (https://support.microsoft.com/en-us/topic/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-winhttp-in-windows-c4bd73d2-31d7-761e-0178-11268bb10392).
На компьютере появятся следующие REG_DWORD параметры реестра в ветке
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client
и
HKLM...ProtocolsTLS 1.2Servers
:
- DisabledByDefault = 0
- Enabled = 1
Чтобы протокол TLS 1.2 использовался по-умолчанию для приложений на WinHttp API, нужно добавить REG_DWORD параметр
DefaultSecureProtocols = 0x00000A00
в ветку HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp (на 64 битной версии Windows в ветке HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionInternet SettingsWinHttp).
Возможные значения параметра DefaultSecureProtocols, который определяет разрешенные протоколы для WinHTTP подключений:
- 0x00000A0 – значение по умолчанию, которое разрешает только SSL 3.0 и TLS 1.0 для WinHTTP;
- 0x0000AA0 — разрешить использовать TLS 1.1 и TLS 1.2 в дополнении к SSL 3.0 и TLS 1.0;
- 0x00000A00 – разрешить только TLS 1.1 и TLS 1.2;
- 0x00000800 – разрешить только TLS 1.2.
Начиная с Windows 10 и Windows Server 2016, все версии Windows поддерживают TLS 1.2 для коммуникаций через WinHTTP.
Вы можете использовать следующий PowerShell скрипт чтобы создать эти параметры реестра:
$reg32bWinHttp = "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp"
$reg64bWinHttp = "HKLM:SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionInternet SettingsWinHttp"
$regWinHttpDefault = "DefaultSecureProtocols"
$regWinHttpValue = "0x00000800"
$regTLS12Client = "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client"
$regTLS12Server = "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server"
$regTLSDefault = "DisabledByDefault"
$regTLSValue = "0x00000000"
$regTLSEnabled = "Enabled"
$regTLSEnableValue = "0x00000001"
# Для Windows x86
$test = test-path -path $reg32bWinHttp
if(-not($test)){
New-Item -Path $reg32bWinHttp
}
New-ItemProperty -Path $reg32bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD
# Для Windows x64
$test = test-path -path $reg64bWinHttp
if(-not($test)){
New-Item -Path $reg64bWinHttp
}
New-ItemProperty -Path $reg64bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD
New-Item -Path "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2”
New-Item -Path $regTLS12Client
New-Item -Path $regTLS12Server
New-ItemProperty -Path $regTLS12Client -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD
New-ItemProperty -Path $regTLS12Client -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD
New-ItemProperty -Path $regTLS12Server -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD
New-ItemProperty -Path $regTLS12Server -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD
Перезагрузите компьютер:
Restart-Computer
Осталось включить поддержку TLS 1.2 для приложений .NET Framework. Для этого нужно в реестре включить принудительное использование системных протоколов шифрования для приложений .NET 3.5 и 4.x. Если вы используете старые версии NET Framework 4.5.1 или 4.5.2 на Windows Server 2012 R2/2012 или Windows 8.1, сначала установите последние обновления для .Net Framework 4.5.1 (они добавят поддержку TLS 1.2 в .Net).
Ниже указаны параметры реестра, которые нужно настроить для различных версий .Net:
для .Net 3.5 и 2.0
[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv2.0.50727] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727] "SchUseStrongCrypto"=dword:00000001
для .Net 4.х
[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319] "SystemDefaultTlsVersions"=dword:00000001
для .Net 4.6
[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319] "SchUseStrongCrypto"=dword:00000001
Например, без этих параметров вы не сможете подключиться к репозиториям PSGallery из консоли PowerShell на Windows Server 2012 R2 с ошибками:
- Install-Module: Unable to download from URI
- Unable to resolve package source
Проблема тут в в том, что по-умолчанию PowerShell пытается использовать протокол TLS 1.0 для подключения к PSGallery. С апреля 2020 года PowerShell Gallery разрешает подключение к NuGet провайдеру только с помощью TLS 1.2.
Также существует бесплатная утилита IISCrypto, которая позволяет включить/выключить различные протоколы TLS/SSL и настройки Schannel через графический интерфейс (https://www.nartac.com/Products/IISCrypto/). Здесь вы можете выбрать какие версии протоколов TLS хотите настроить. Если все галки напротив протоколов Schannel серые, значит в Windows используются стандартные настройки. В моем примере я включил протокол TLS 1.2 для клиента и сервера с помощью PowerShell скрипта, рассмотренного ранее. Утилита IISCrypto теперь показывает, что протокол TLS 1.2 включен вручную.
IISCrypto не позволяет изменить настройки TLS для .NET и WinHTTP.
Общая теория: расширение протокола передачи данных HTTP, поддерживающее шифрование этих данных, – HTTPS – не является собственно протоколом шифрования. За шифрование отвечают криптографические протоколы – SSL или TLS.
При этом не все йогурты одинаково полезны: SSL устарел полностью, TLS версии 1.0 – тоже, поэтому сегодня рекомендуется использовать лишь TLS версий 1.1 или 1.2. К слову, последняя на сегодня версия спецификации HTTPS, принятая еще в 2000 году, так и называется HTTP over TLS, про SSL там уже почти не упоминается.
Но это лишь теория, на практике же TLS 1.2 до сих пор поддерживается лишь на ограниченном числе сайтов, с TLS 1.1 – уже заметно получше, но тоже не повсеместно. Проблема поддержки современных версий TLS присутствует и «на стороне клиента», об этом позже.
Итак, для того, чтобы пользоваться у себя на компьютере только актуальными версиями актуального криптографического протокола (Ну-ка, дети, напомните, как он называется? Правильно, TLS! А какой версии? Правильно, не ниже 1.1), необходимо сделать ряд
нелепых
телодвижений. Почему? Правильно, потому что никто за нас не включит TLS 1.1/1.2 на нашем компьютере. За нас только проверку «подлинности» Windows включат и кучу «мусора» в автозагрузку напихают. Впрочем, я отвлекся.
Лирическое отступление: я искренне убежден (и эта убежденность подтверждается практикой), что 90% пользователей компьютеров могли бы до сих пор пользоваться Windows 3.11 (была такая ОС в начале 90-х), или, в крайнем случае, Windows 98 SE – «пишущая машинка» и браузер ничего другого и не требуют, чтобы нам там не врали про новые, еще более улучшенные интерфейсы и прочие рюшечки «революционных» новых версий ОС.
Правдой также является то, что современные технологии, связанные с безопасностью, к устаревшим ОС никак не прикрутить. Не потому, что это в принципе невозможно, а потому, что их производитель этого не сделал, как не сделал и ничего для того, чтобы прикрутить их смогли сторонние производители ПО. Поэтому, все ОС семейства Windows версии ниже XP (да и та уже в обозримом будущем), увы, безнадежно устарели в аспекте сетевой безопасности.
На этом с лирикой закончим: все следующие рассуждения будут построены на том, что используется ОС Windows XP или более поздняя (Vista, 7 или 8). И на том, что мы сами себе – вовсе не злобные Буратины, а потому своевременно устанавливаем на используемую ОС все полагающиеся обновления и «заплатки».
Итак, для начала нам стоит включить поддержку TLS 1.1 и TLS 1.2 и отключить SSL и TLS 1.0 на уровне самой ОС, за что отвечает Microsoft TLS/SSL Security Provider (schannel.dll). Что нам это даст? А вот что: все программы, которые не имеют собственного модуля поддержки TLS, а используют системный, будут использовать актуальные версии TLS.
Это в теории, согласно которой так настраивается поддержка актуальных версий TLS, в том числе, в браузере Internet Explorer. На самом деле, даже его последняя версия для Windows XP – восьмая – не поддерживает TLS версий выше 1.0. Под Windows Vista – поддерживает, а под Windows XP – нет и, более того, игнорирует запрет использования TLS 1.0. Как так? Вопрос к Microsoft, а не ко мне, мы же все равно сделаем то, что от нас требуется согласно инструкции самого производителя.
А делаем мы следующее: идем в реестр по адресу
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocols, находим там разделы PCT 1.0, SSL 2.0, SSL 3.0 и TLS 1.0, в каждом из них – подразделы Client и Server, и создаем в них ключи DisabledByDefault (тип – DWORD), которым присваиваем значение 1 (единица).
Затем там же находим разделы TLS 1.1 и TLS 1.2 и аналогичным образом создаем в них вышеупомянутый ключ, но значение ему присваиваем другое – 0 (ноль). Там же мы отключаем слабые алгоритмы шифрования и хеширования RC2, RC4, DES, MD4 и MD5 а также запрещаем устанавливать безопасные соединения без шифрования (да, бывает и такое… в чьих-то нездоровых фантазиях), оставляя лишь относительно стойкие Triple DES и SHA.
Поскольку расписывать как, что и где менять, мне откровенно лениво, ниже будет приведено содержимое .reg файла, вносящего соответствующие изменения в реестр. Надо аккуратненько скопировать все это содержимое в буфер обмена, создать новый текстовой файл, вставить содержимое туда, сохранить этот файл с расширением .reg и запустить его, после чего – перезагрузиться.
Если случилось так, что после перезагрузки появились проблемы с сетевым соединением, ту же самую операцию надо будет проделать уже со следующим файлом – он удаляет из реестра все сделанные нами изменения, после чего (правильно, дети) снова перезагрузиться. Не обнаружив в реестре вообще никаких значений в испорченном нами разделе реестра, ОС при загрузке создаст их заново со значениями по умолчанию.
Продвинутые пользователи могут вместо полного отката изменений пошаманить с включением и отключением отдельных протоколов и алгоритмов, редактируя первый из файлов. Хозяйке на заметку: если для подключения к Интернету используется корпоративная локальная сеть, а тем более с доменом, то проблемы вероятны, и искать пути их решения рекомендуется за распитием бутылочки пива с администратором сети
Также на заметку: браузеры Chrome, Firefox, Opera и Safari, т.е. все, которые не основаны на движке Internet Explorer, используют собственные модули поддержки SSL и TLS, а потому не зависят от рассмотренных нами настроек. Но это не значит, что ими можно пренебречь (в смысле, настройками). А вот о настройках самих браузеров мы поговорим в следующий раз.
Включаем TLS 1.1 и 1.2, отключаем SSL и TLS 1.0:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsPCT 1.0Client]
«DisabledByDefault»=dword:00000001
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsPCT 1.0Server]
«DisabledByDefault»=dword:00000001
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 2.0Client]
«DisabledByDefault»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 2.0Server]
«DisabledByDefault»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Client]
«DisabledByDefault»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server]
«DisabledByDefault»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client]
«DisabledByDefault»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server]
«DisabledByDefault»=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client]
«DisabledByDefault»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server]
«DisabledByDefault»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client]
«DisabledByDefault»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server]
«DisabledByDefault»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNEL]
«AllowInsecureRenegoClients»=dword:00000000
«AllowInsecureRenegoServers»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersDES 56/56]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersNULL]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC2 128/128]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC2 40/128]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC2 56/128]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC4 128/128]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC4 40/128]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC4 56/128]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesMD4]
«Enabled»=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesMD5]
«Enabled»=dword:00000000
Все сломалось? Удаляем сделанные изменения:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNEL]
Transport Layer Security (TLS) — это протокол безопасности, обеспечивающий конфиденциальность и целостность данных между двумя взаимодействующими приложениями. Он широко используется для веб-браузеров и других приложений, для которых требуется безопасный обмен данными в сети.
Согласно спецификации протокола, TLS включает в себя два уровня: протокол TLS Record и протокол TLS Handshake. Протокол Record обеспечивает безопасность подключения. Протокол Handshake позволяет серверу и клиенту аутентифицировать друг друга и согласовывать алгоритмы шифрования и криптографические ключи перед обменом данными.
Согласно стандартам соответствия требованиям Adobe было прекращено использование старых протоколов с мая 2018 года и выполнен обязательный переход на TLS 1.2 в обновленной версии. Если ваша система не соответствует TLS 1.2, доступ к некоторым приложениям и службам Adobe будет ограничен.
Взаимодействие с ними осуществляется только через безопасное сетевое соединение. Протокол TLS помогает обеспечить надежное и безопасное соединение между браузером и этими приложениями и веб-службами.
По мере выпуска новых браузеров и операционных систем стандарты безопасности обновляются, чтобы обеспечить более высокий уровень конфиденциальности и целостности данных. Однако более старые версии этих браузеров или ОС не обновляются, и поэтому не включают в себя новейшие стандарты.
По мере повышения допустимого уровня безопасности старые и менее безопасные версии браузера и приложения используются в гораздо меньшей мере.
Чтобы иметь возможность подключаться к защищенным сайтам, обновите версию ОС и браузера.
В отношении протокола TLS 1.0 задокументированы атаки с использованием более старого метода шифрования, и предыдущие версии более уязвимы, чем TLS 1.2. Для получения дополнительной информации см. статью Атаки на TLS/SSL.
Adobe использует стандарты обеспечения безопасности, требующие отключения поддержки старых протоколов. Один из таких стандартов обеспечивает соответствие индустрии платежных карт (PCI). Сервер адаптации PCI — это набор стандартов безопасности, согласно которым организации, которые принимают, обрабатывают, хранят или передают информацию о банковских картах, должны поддерживать безопасность среды.
Соответствие PCI требует использования TLS 1.1 или более поздней версии с мая 2018 года.
Большинство запросов для веб-служб и приложений Adobe приходят из пользовательских систем, совместимых с TLS 1.2, с низким трафиком из систем TLS 1.1.
Компания Adobe перешла на TLS 1.2, чтобы обеспечить более безопасный доступ к своим приложениям и веб-службам.
Adobe рекомендует пользователям отказаться от использования более старых версий, чтобы избежать уязвимостей безопасности. Для получения дополнительной информации обратитесь в Службу поддержки клиентов Adobe или к менеджеру по работе с клиентами.
Это зависит от браузера, который вы используете. Все браузеры, упомянутые в списке системных требований для приложений и служб Adobe, настроены на использование TLS 1.2. Если вы используете браузер или версию, которая отсутствует в списке, обновите браузер.
Обратитесь к разделу Системные требования для просмотра списка браузеров, поддерживаемых приложениями и службами Adobe.
Adobe не управляет сообщениями об ошибках, генерируемыми уровнем связей SSL. Браузер генерирует эти сообщения перед подключением к приложениям и службам Adobe. Вот несколько примеров ошибок, которые могут возникнуть:
Internet Explorer 8 в Windows 7:
Internet Explorer 11 в Windows 7:
Протокол TLS 1.2 включен в Internet Explorer 11 по умолчанию, но если он выключен, вы можете включить его. В этом случае включите TLS 1.2 в диалоговом окне дополнительных настроек, а не другим способом. Могут также возникнуть следующие ошибки:
- Не удается подключиться к данной службе
- Служба недоступна
- Ошибка подключения
Привет.
Введение
Протоколу SSL уже много времени, и ему пора на покой. Тем более – замена ему достаточно давно уже есть. Выглядит она как протокол TLS, который вырос, возмужал, и готов к работе. Я попробую чуть-чуть пробежаться по тому, что и как для этого надо сделать в Windows Server и основных серверных приложениях.
У данной статьи есть обновлённая и расширенная версия – Бронируем TLS в Windows Server
Оглавление
- Краткая история вопроса – SSL
- Версии и преимущества TLS
- Про TLS 1.0
- Про TLS 1.1
- Про TLS 1.2
- Про TLS 1.2 и Windows XP SP3
- Про TLS 1.2 и Windows 2003 SP2
- BEAST: как работает атака на SSL 2.0/3.0 и TLS 1.0
- Включаем TLS на Windows-системе
- Отключаем SSL на Windows-системе
- Закручиваем гайки: Включаем безопасное пересогласование TLS на Windows-системе
- Атака на SSL/TLS – THC-SSL-DOS
- Закручиваем гайки: настройки криптоалгоритмов на хосте
- Управляем настройками согласования SSL/TLS в браузерах
- Проверяем работу TLS 1.1 и 1.2
- Что делать, если у меня нет возможности включить TLS новых версий
Приступим.
Краткая история вопроса – SSL
Протокол SSL был разработан фирмой Netscape, достаточно давно. Я осознанно пропущу исторические подробности, так как они сейчас уже не особо интересны. В его задачи входило следующее:
- Обязательность подтверждения подлинности сервером
- Опциональная проверка подлинности клиента
- Совместная генерация случайного сеансового ключа
- Поддержка различных симметричных алгоритмов для шифрования данных
- Поддержка различных алгоритмов хэширования для реализации проверки целостности через MAC
Первая версия SSL не особо показывалась публике, отсчёт рабочих версий можно начинать с SSL 2.0 (1995й год). Эта версия была первой, которая эксплуатировалась в production, и достаточно оперативно она была доработана до SSL 3.0. Заметим, что хотя это произошло достаточно давно – в 1996 году – стандарт от этого не стал общим и открытым; он оставался стандартом, разработанным конкретной фирмой Netscape, и для его использования в ряде случаев нужна была лицензия. Опубликован IETF он был совсем недавно, в августе; RFC 6101 описывает то, что 15 лет уже стандарт де-факто для защиты сессий множества приложений. Но по сути, с ним уже давно пора прощаться; TLS существует годы (с 1999, если быть точнее), а достаточно безопасная на данный момент версия 1.1 – с 2006 года. Пора, пора.
Версии и преимущества TLS
На данный момент есть три версии протокола TLS: 1.0, 1.1 и 1.2. Они, соответственно, имеют внутренние идентификаторы версии 3.1, 3.2 и 3.3, поэтому иногда называются SSL 3.1, SSL 3.2 и SSL 3.3. Все эти версии поддерживаются как клиентским, так и серверным ПО Microsoft (начиная с IIS 7.5 и IE9), надо только включить. Про клиентское ПО (типа того же Internet Explorer) я уточню ниже, в отдельном пункте – на то оно и клиентское, чтобы включение поддержки данного функционала было бы там несложной операцией. Основное в статье – про серверные вопросы. Давайте чуть разберёмся в функционале версий протокола TLS, а после – включим их поддержку, отключим SSL и закрутим гайки.
Про TLS 1.0
Версия 1.0, по сути, является базовой, и представляет собой доработанный и открытый для всех, а не только для Netscape, вариант SSL 3.0. Хотя, надо отметить, напрямую TLS 1.0 и SSL 3.0 не совместимы; TLS 1.0 “умеет” работать в режиме совместимости с SSL, но именно в режиме, а не “идентично”, как иногда можно прочитать.
Например, у SSL 3.0 есть встроенная в протокол неприятность – половина master key будет создаваться из MD5-хэша достаточно предсказуемых данных, что может привести (учитывая текущее положение MD5) к успешной атаке на коллизию (в результате станет известна половина бит ключа, которым будет шифроваться сессия, а это практически равнозначно компрометации процесса). У TLS 1.0 это поправили, и схема усложнена – берутся и MD5 и SHA-1 хэши, после чего xor’ятся, что сводит возможность вышеуказанной атаки к нулю.
Кстати, из-за этого момента в алгоритме – завязанности ключевой части процесса на MD5, SSL 3.0 не является FIPS140-2 совместимым и при включении FIPS140-2 не согласовывается.
Про TLS 1.1
В версии TLS 1.1 делаются небольшие изменения – в частности, меняется логика задания IV (вектора инициализации), для защиты от атак, имеющих своей целью слабость реализации метода CBC в TLS 1.0, улучшается обработка ошибок и переподключения, а также вносятся другие мелкие изменения, не являющиеся фундаментальными с точки зрения использования протокола. Но по сути, это самая минимальная версия TLS, для которой отсутствуют известные атаки, поэтому её использование – это правильный выбор.
Про TLS 1.2
В TLS 1.2 же список добавлений относительно велик – в нём будут многочисленные улучшения поддержки новых криптографических протоколов, отказ от потенциально уязвимых моментов (например, для процесса генерации псевдослучайного числа – замена MD5/SHA-1 на SHA-256 либо на явно указанную хэш-функцию), ужесточение многих проверок, обязательность реализации AES и отключение одиночного DES и IDEA, отмена обязательности совместимости реализации с SSLv2 и подобное.
Для нас ключевым является разумное повышение уровня безопасности, поэтому мы будем нацеливаться на TLS 1.1. Не потому что TLS 1.2 плохой, а потому что если “закрутить гайки” только на TLS 1.2, не все клиенты смогут корректно подключаться. Если бы все браузеры с криптографической точки зрения были бы уровня IE9, то можно было бы и TLS 1.2 включить, а остальное объявить старым, но реальность состоит в том, что нам надо хотя бы отсечь гарантированно старые и уязвимые протоколы.
Про TLS 1.2 и Windows XP SP3
Например вот один момент, который надо учитывать при поддержке TLS 1.2. Дело в том, что стандартным методом проверки целостности (MAC – Message Authentication Code), используемым в TLS 1.2, является SHA-2. SHA-2 – это семейство алгоритмов, состоящее из SHA-224, SHA-256, SHA-384, SHA-512, и подобных. Соответственно, “натуральная” поддержка этих алгоритмов приходит только в ядре NT 6.0, с новой версией CryptoAPI. В распространённой же Windows XP данная поддержка (т.е. просто понимаение, что есть SHA-2) появляется только в Service Pack 3, притом поддерживается только 3 варианта SHA-2 – SHA-256, SHA-384, SHA-512. То есть, говоря проще, XP SP2 нормально с TLS 1.2 работать не может никак. Вообще. Потому что будет NTE_BAD_ALGID
.
Про TLS 1.2 и Windows Server 2003 SP2
К сожалению, ситуация с поддержкой TLS 1.2 на Windows Server 2003 SP2 хуже, чем на XP. В последний Service Pack для 2003го сервера поддержка SHA-2 не вошла. Поэтому попытка проверить целостность в TLS 1.2 при помощи одного из алгоритмов семейства SHA-2, да и, к примеру, посчитать хэш у x.509 сертификата или *.crl приведёт к ошибке.
Поддержка SHA-2 аналогичная XP SP3 реализована через патч 938397. Но это ещё не всё. Ведь приключения, связанные с тем, что у NT 5.1 / NT 5.2 есть CAPI2, а у NT 6.0 – CNG, только начинаются. В случае, если в Вашей сети есть Windows XP и/или Windows Server 2003, и есть служба Certification Authority на Windows 2008 и старше, то даже в случае установленного патча 938397 они не смогут корректно запрашивать сертификаты у этого CA. Чтобы они могли это делать, есть патч 968730. Он и добавляет частичную поддержку SHA-2, и учит CAPI2 дружить на уровне запросов сертификата с CNG. Полностью перекрывая собой предыдущий патч. Обязательно установите 968730 на Windows XP SP3 / Windows Server 2003 SP2, если ещё не сделали это.
BEAST: как работает атака на SSL 2.0/3.0 и TLS 1.0
Эта достаточно нашумевшая атака (ну, благодаря прессе, у неё статус “Конец Интернета Почти Вот-Вот”), на самом деле, устроена достаточно просто.
Суть в том, что во всех протоколах до TLS 1.1 вместо генерации нового случайного IV (для каждого нового TLS message), использовался последний блок предыдущего TLS message. BEAST пользуется этим, чтобы значительно упростить процесс атаки на ключ – в частности, получив доступ к сессии, он может значительно упростить себе процедуру перебора сессионного ключа, влияя на состав нового вектора инициализации. В TLS 1.1 халтурить перестали, поэтому данная атака там просто не работает.
Если попробовать рамочно описать алгоритм атаки, можно это сделать так.
- Пользователь инициирует SSL-сессию к ресурсу (например, к веб-серверу). В этой сессии он постоянно передаёт какой-то элемент (например, жмёт на кнопку Like). Ну т.е. сессия одна, а он ходит по сайтам и делает что-то, что сопровождается хотя бы частично совпадающим обменом данными.
- Например, предположим, что согласовался протокол AES-128 (заметьте – стойкость самого протокола не критична, я его выбрал просто для удобного примера). Его блок будет равняться 128 / 8 = 16 байт.
- Атакующий участвует в обмене трафиком так, что может добавлять свои данные перед данными пользователя. Вариантов много – например, доп.заголовок в HTTP, или модификация исходных данных на уровне источника. Суть в том, чтобы атакующий мог добавить свои данные так, чтобы получился блок “Добавленные_данные_известные_атакующему + нормальные_данные_неизвестные_атакующему”. Т.е. исходное в атаке – это MITM. Если вы думаете, что условий дофига и это всё малореально, просто представьте себе обычного пользователя, который игнорирует антивирус, потому как, к примеру, верит рекламе “В нашей ОС нет вирусов, т.к. у неё красивые скруглённые уголочки да и цена намекает, что качество ну просто обязано быть”, который хочет в онлайне что-нибудь оплатить по карте и видит успокаивающую надпись “Protected by SSL 2.0/3.0 128bit cipher”.
- Атакующий начинает работать. Он вкидывает такие блоки данных в поток, чтобы последним получился блок, у которого 15 байт – добавленные данные, а единственный оставшийся – секретные. После пробует тестово расшифровывать этот блок перебором – перебирать-то интересно, т.к. из 16 байт 15 известны. А подбор 2^8 – это уже очень перспективно, учитывая, что в случае выигрыша можно будет вскрыть всю сессию (ведь никто не мешает впрок отправлять куда-нибудь полный дамп сессии, а после, в случае успеха метода, расшифровать всё целиком).
- Вскрыли 1 байт? Теперь будем подгадывать так, чтобы наших байт в блоке было 14, плюс один известный, плюс один пока что неизвестный
Очевидно, что при реализации этой штуки через ботсеть можно наловить очень много полезного.
Обращу внимание, что атака не зависит от используемого симметричного алгоритма, а лишь использует то, что в SSL/TLS используется схема CBC, а не ECB. AES-128, как понятно, я выбрал, чтобы блок был 16 байт. Как понимаете, в случае AES-256 время вырастет не на 2^128, как в случае линейного криптоанализа, а всего лишь в два раза – надо будет вскрыть не 16, а 32 байта. Ну, а в случае DES с блоком в 64 бита, всё только грустнее.
Поэтому надо защищаться.
Включаем TLS на Windows-системе
Сразу обращаю внимание – этот метод включает TLS на уровне операционной системы. Продукты в большинстве своём просто пытаются согласовать варианты протоколов SSL/TLS, начиная “с верхнего доступного”, явных настроек у них обычно нет.
Для отключения TLS 1.0 и включения поддержки TLS 1.1 и TLS 1.2 необходимо проделать следующие действия – зайти в реестр, открыть ключ
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server
создать в нём значение DisabledByDefault
и выставить его в единицу, а в ключах
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server
выставить то же самое значение в нуль. Это нужно сделать обязательно, т.к. отсутствие этого ключа равняется “отсутствию отмены запрета на поддержку TLS 1.x”.
В случае необходимости в явном виде управлять данными протоколами на уровне клиента – всё то же самое, но вместо раздела Server надо указать Client.
Теперь пора отключить небезопасные протоколы.
Отключаем SSL на Windows-системе
Согласно RFC 6176 от марта 2011 года, все, кто думают о безопасности, и хотят называться TLS-серверами и клиентами, должны вести себя так:
- TLS-клиенты обязаны никогда не отправлять в сообщениях CLIENT-HELLO версии ниже 3.0
- TLS-сервера обязаны сразу прерывать попытку подключения, если противоположная сторона сообщает о том, что максимально поддерживаемая ей версия протокола – 2.0
Вот так, достаточно четко и строго.
Давайте сделаем всё так же.
Для этого надо будет отключить PCT 1.0 (т.к. он тоже не TLS, если что) и SSL 2.0. SSL 3.0 отключается абсолютно аналогично.
Как отключить SSL 2.0/3.0 на Windows-системе
Нам надо зайти в ключ реестра
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 2.0Client
и поставить там значение DisabledByDefault
(вида DWORD32) в единицу. Аналогично – для ключа
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 2.0Server
Если сразу хотите отключить и SSL 3.0, то поступите по аналогии, создав (если его нет, что часто бывает) ключ с именем SSL 3.0 на том же уровне иерархии, где находится раздел с SSL 2.0, и создав соответствующие подключи Client и Server.
Как отключить PCT 1.0 на Windows-системе
Тут чуть иначе.
Если у Вас Windows Server 2003 – этот протокол уже выключен. Если 2008 – то даже не включится. Но на всякий случай – знайте, как это делается. Надо зайти в ключ
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsPCT 1.0Server
и добавить в него значение Enabled
(вида DWORD32), выставив его в нуль.
Вроде как всё. PCT 1.0 убили, все SSL тоже, TLS 1.0 тоже. Делайте это всё аккуратно, очень тщательно проверяя, что ПО после этого функционирует. Учтите, что при закручивании гаек в плане “Давайте выключим весь SSL на клиентах” – т.е. не при добавлении старших версий TLS, а при явном запрете младших – с гарантией часть внешних сервисов будет недоступна. Например, большинство социальных сетей, которые декларируют “Доступ к нам теперь по HTTPS, а, значит, безопасен!”, на самом деле крайне экономят силы, включая согласование минимальных версий и самых простых криптоалгоритмов. Их можно понять; 99.9% клиентов глубоко пофиг, DES там или 3DES, а вот что вычислительно задача станет в 3 раза сложнее – очевидно. По моему личному опыту, при “замораживании” на клиенте TLS 1.1 и выше, например, не работает https://twitter.com/ . Т.е. будьте осторожны и тестируйте. Вполне возможно, что вполне даже рабочие ресурсы – типа электронной торговой площадки – будут использовать старые алгоритмы.
Ну, а теперь давайте закручивать гайки.
Закручиваем гайки: Включаем безопасное пересогласование TLS на Windows-системе
К стандартам семейства TLS есть интересные дополнительные механизмы, не вошедшие в основные спецификации. Данные механизмы известны гораздо меньше, чем что-то вида “ну ё, TLS же новый, SSL старый, значит включаешь TLS и безопаснее становится”, но не в моих правилах подходить к вопросу с такой стороны.
Безопасное пересогласование TLS описывается в стандарте RFC 5746 и решает проблему безопасности, которая возникает в случае работы классического TLS 1.2, который по RFC 5246.
По сути, Windows-хост может работать в плане этого RFC в двух режимах – в режиме совместимости (т.е. допускать и небезопасное, “классическое” пересогласование TLS 1.2), и в “безопасном”, допуская только пересогласование в новом формате. По умолчанию, работа идёт в режиме совместимости. Это не всегда полезно, поэтому надо знать, как включать только безопасное пересогласование TLS 1.2.
Включаем поддержку TLS Renegotiation Indication Extension
Мы будем работать с ключом реестра
HKEY_LOCAL_MACHINESystemCurrentControlSetControlSecurityProvidersSCHANNEL
В нём будет необходимо создать следующие ключи: AllowInsecureRenegoClients
, AllowInsecureRenegoServers
, UseScsvForTls
, DisableRenegoOnClient
, DisableRenegoOnServer
. Все – обычные DWORD 32. Теперь подробнее про каждый.
Параметр AllowInsecureRenegoClients
будет обозначать, можно ли клиентам, подключающимся к данному хосту, использовать небезопасный вариант пересогласования. Обратите внимание – это серверная настройка; т.е. она анализируется, когда какой-либо сервис на этом хосте “слушает” входящие подключения по TLS. Например, IIS. Если хотите, чтобы можно было подключаться всем – поставьте единицу, если только “умным” клиентам, поддерживающим RFC 5746 – то нуль.
Примечание: Патч, который добавляет поддержку этого механизма, вышел в августе 2010 года. То есть, если у Вас XP или выше, и на ней установлены обновления, то поддержка есть.
Параметр AllowInsecureRenegoServers
будет обозначать, можно ли будет с этого хоста подключаться к серверам, которые не поддерживают механизм безопасного пересогласования. Если параметр равен нулю – клиенты будут прерывать фазу согласования TLS, если сервер ведёт себя некорректно. Если хотите, чтобы можно было подключаться к любым TLS-серверам, вне зависимости от реализации на них поддержки RFC 5746 – поставьте единицу.
Параметр UseScsvForTls
заслуживает отдельного обсуждения. Дело в том, что в RFC 5746 указывается, что данное расширение необходимо упаковывать в сообщение “ClientHello” протокола TLS. Но это может быть причиной проблем, потому что некоторые сервера – заметьте, именно сервера, т.е. это клиентская настройка – которые не поддерживают данный стандарт, не просто не смогут переключиться на новый механизм, а просто не смогут обработать этот неизвестный им подвид сообщения ClientHello. Это, например, Vista без SP. Чтобы подстраховаться от ситуации, когда “новый” клиент посылает “новый вариант” ClientHello и серверная сторона рвёт связь, надо установить этот параметр в единицу. В этом случае клиент просто отправит т.н. “Signaling Cipher Suite Value” (как раз SCSV). Ставьте этот параметр только в случае, когда Вам реально нужно подключаться к системе, которая “сбрасывает” сессию после ClientHello.
Можно и масштабнее. Если параметры выше описывали варианты поведения при пересогласовании TLS, то следующие будут включать-выключать поддержку пересогласования как такового.
Если параметр DisableRenegoOnClient
есть и не равен нулю, то клиент со своей стороны не будет пробовать проводить пересогласование TLS (например, периодически) и не будет отвечать на запросы пересогласования (будет не рвать сессию, а именно игнорировать). Если же параметр равен нулю (или отсутствует), то всё ОК – клиент будет поддерживать пересогласование и пробовать делать его сам.
Если параметр DisableRenegoOnServer
есть и не равен нулю, то сервер со своей стороны не будет пробовать проводить пересогласование TLS и не будет отвечать на запросы пересогласования (тоже будет не рвать сессию, а именно игнорировать). Если же параметр равен нулю (или отсутствует), сервер будет поддерживать пересогласование и пробовать делать его сам.
Атака на SSL/TLS – THC-SSL-DOS
Достаточно предсказуемая атака, в основе которой лежит идея, что крайне малыми силами со стороны клиента (по сути, просто запросив) можно заставить сервер выполнить математически относительно сложную задачу по перегенерации ключевой информации. В своей практике я сталкивался с таким в 2004 году, в случае с ipsec; один талантливый админ поставил настройки смены ключей так, что они менялись через каждые 100 килобайт (он хотел мегабайты, просто ошибся). В результате сеть работала, но медленно – ipsec в основном занимался IKE/ISAKMP задачами, а не трафиком.
Атака серьёзна – при полутысяче запросов в секунду (выполнимо с домашней машины при наличии обычного широкополосного доступа на 4-8 мегабита) полностью “ложится” процессор уровня Intel Xeon E5645. 100%го способа защиты от атаки сейчас нет. Поэтому надо максимально уменьшить её вероятность.
Для борьбы можно использовать следующие методы:
- Разгрузку SSL-задач при помощи аппаратных ускорителей
- Отключение пересогласования TLS
- Ограничение количества TLS-сессий – как вообще в сумме, так и с одного source ip
- Упрощение схемы генерации ключей
Защита от THC-SSL-DOS путём покупки SSL-ускорителя
Метод не оптимален, но всё же в ряде случаев изменит ситуацию. Суть в том, чтобы SSL/TLS сессии терминировались не на целевом сервере, а на выделенном устройстве, которое ощутимо быстрее выполняет SSL/TLS – задачи. Проблема в том, что все такие ускорители обычно ускоряют саму работу SSL/TLS – то есть симметричное шифрование трафика и проверку его целостности, а операции вида “генерация и смена ключей”, в силу их относительно малого процента в доле нагрузки при нормальной сессии делаются на таких appliance программно. Специализированного appliance, которое умеет очень быстро именно генерить новые сеансовы ключи для TLS, а не шифровать трафик, видимо, не существует в природе. Увы.
Защита от THC-SSL-DOS путём отключения пересогласования TLS
Это то, что Вы реально можете сделать. Учтите, это может повлиять на совместимость с клиентским ПО, которое в обязательном порядке хочет время от времени менять ключи сессии. Я проверял и не нашёл такого ПО среди обычно используемого в сетях на базе продуктов Microsoft (тестировались Exchange 2010 SP1, Sharepoint 2010 SP1, трафик DC/GC поверх SSL, TMG 2010 SP1). Мной не было найдено аномалий поведения, разрывов TLS-сессий по причине rekeying и прочего. Поэтому Вы можете промотать эту статью чуть выше (до предыдущего пункта) и выставить в единицу параметр DisableRenegoOnServer
.
Примечание: В принципе, можно использовать любое значение не равное нулю, поэтому единица предлагается для примера
Защита от THC-SSL-DOS путём ограничения количества TLS-сессий – как вообще в сумме, так и с одного source ip
Если Вы отключили пересогласование TLS, то Вы отсекли одну из возможностей данной атаки; впрочем, опубликованный вчера эксплойт как раз её и использовал. Но существует альтернативный вариант – когда Ваш сервер перегружают не частым пересогласованием сессии, а многими фейковыми сессиями. Здесь Вы можете бороться только на сетевом уровне – ограничивая количество сессий с одного адреса, добавляя тайм-аут между установкой новых TLS-сессий, и лимитируя общее количество TLS-сессий у сервера вообще. Лучше применить все 3 этих подхода – например, сделать тайм-аут между TLS-сессиями хотя бы 10 ms (то есть не более 100 новых сессий в секунду до сервера), и разумно ограничить допустимое количество сессий с 1го адреса.
Упрощение схемы генерации ключей
Это – ожидаемое решение со стороны реализации TLS. Навряд ли Вы сделаете это сами.
Закручиваем гайки: настройки криптоалгоритмов на хосте
Цель – отключить слабые алгоритмы шифрования. Чтобы они просто не участвовали в процессе согласования. Потому что на данный момент, допустим, наличие в списке поддерживаемых алгоритмов RC2 40bit – это очень плохо, и это необходимо убирать незамедлительно.
Алгоритмы, используемые в SSL/TLS, можно модифицировать двумя основными способами – через групповые политики или через реестр. Первый способ, так как является штатным, предпочтительнее. Выполняется он следующим способом.
Как через групповую политику изменить список поддерживаемых SSL/TLS криптоалгоритмов
Откройте объект групповой политики, через который Вы решите это сделать. Если настраиваете локальный хост – gpedit.msc
. Выберите там раздел для компьютера, потом административные шаблоны, потом сеть, потом SSL Configuration Settings. Откройте данный параметр и сделайте следующее.
- Скопируйте в Блокнот все cipher suites, которые там есть.
- Удалите те, которые включают в себя согласование нестойких алгоритмов и методов (например, RC2, RC4, DES, MD5 и прочее. всякие ужасы вида TLS_RSA_WITH_NULL_MD5 Вам же не нужны, правда?).
- Превратите список в одну большую строку, которая состоит из cipher suites, разделённых запятыми, и не содержит больше ничего. Пробелов тоже.
- Вставьте эту строку в окно данной настройки групповой политики.
Учтите, что не всё, что поддерживается системой, присутствует в этом списке. И наоборот – данный список не прикажет системе начать поддерживать неизвестные ей криптоалгоритмы. Например, если у Вас есть системы на Windows XP / Windows Server 2003, убедитесь, что на них установлено обновление KB 948963, которое добавляет поддержку AES-128 и AES-256, необходимых для TLS.
А вот как можно изменить этот список через реестр.
Как через реестр изменить список поддерживаемых SSL/TLS криптоалгоритмов
Откройте редактор реестра. Ваша задача – ключи вида:
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersидентификатор_алгоритма размерность_ключа1/размерность_ключа2
где идентификатор алгоритма – это, например, RC4, а размерность ключа – например, 128. Понятное дело, что данных комбинаций фиксированное число, поэтому для отключения всех из них в явном виде надо забежать в MSDN и найти эти комбинации. Например, для старых симметричных алгоритмов семейства RCx это будут:
- RC4 128/128
- RC2 128/128
- RC4 64/128
- RC4 56/128
- RC2 56/128
- RC4 40/128
- RC2 40/128
Во всех этих ключах надо будет создать параметр Enabled
(как обычно, DWORD32) и выставить его в нуль.
Интересным моментом является отключение возможности установить “пустой” SSL – без криптоалгоритма. Ну, типа как в PPP можно вообще без фазы авторизации, так и тут – есть такая тонкость. Чтобы эту тонкость тоже убрать, надо зайти в ключ:
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersNULL
и опять же создать там Enabled
со значением 0x0.
Отключаем использование хэш-функции MD5 в SSL/TLS
И даже это можно. Через групповую политику нет (только вручную удалив из полного списка все suites с упоминанием MD5), а через реестр – пожалуйста.
Учтите только, что данная настройка – лидер по количеству приключений после её применения. Классика – умирающий SharePoint 2010; он использует MD5 для генерации внутренних идентификаторов безопасности, поэтому не найдя её очень страдает.
Заходим:
HKLMSYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesMD5
и отключаем аналогично – Enabled
в 0x0. Заодно и MD4 можно, он в принципе может встретиться в IPSec, но если не используется в реальности – имеет смысл его отключить аналогичным способом.
Примечание: Если захотите что-нибудь из этого явно включить обратно, не стирая ключ, есть нюанс: Enabled надо будет ставить не в единицу, а в 0xFFFFFFFF.
Проверяем работу TLS 1.1 и 1.2
Если Вы выяснили, что после отключения поддержки TLS 1.0 вы никуда не можете зайти, и подозреваете, что браузер сломался, есть отличный тестовый сайт:
https://tls.woodgrovebank.com/
Это специальный сайт, который зарегистрирован на одну из вымышленных и использующихся в курсах Microsoft организаций – Woodgrove Bank, а по сути – голый IIS с самоподписанным сертификатом, который поддерживает все виды SSL/TLS и нужен для диагностики. Зайдите на него, установите сертификат (их, кстати, несколько – специально для проверки поддержки различных криптоалгоритмов подписи) и проверите, что и как работает.
Есть второй вариант – https://www.mikestoolbox.net/. Тут возможностей поменьше, но зато быстрее и нагляднее видно – какой протокол поддерживается, что согласовалось.
Управляем настройками согласования SSL/TLS в браузерах
Internet Explorer
Если Вы дочитали до этого места и всё поняли, но не знаете, как включить TLS в IE, то это, по сути, уникальная ситуация. Но тем не менее. Для включения поддержки TLS старших версий необходимо зайти в меню Internet Options -> Advanced, там в списке промотать до раздела Security и сделать соответствующие изменения (как минимум отключить SSL 2.0 и включить TLS 1.1 и TLS 1.2, остальное – на усмотрение).
Google Chrome
У меня под рукой кроме IE только хром, но, как известно из фольклора, оно не браузер. Что хорошо подтверждается тем, что никакого TLS 1.1 и TLS 1.2 в доступной сейчас рабочей версии (14.0.835.137) нет. Т.е. можно сказать проще – на сегодняшний день, 2.10.2011, все поддерживаемые хромом виды безопасных соединений на основе SSL/TLS уязвимы для сентябрьской атаки и данный инструмент не имеет смысла использовать для, допустим, финансовых транзакций, онлайн-платежей и прочих security sensitive штук.
Opera
Поставил оперу 11.51. Пожалуй, тут лучше всех сделано – можно не только выставить нужные протоколы (доступен выбор из SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2), но и нужные комплекты алгоритмов. Делается это зайдя в меню, там – Settings -> Preferences -> Advanced -> Security -> Security Protocols -> Details.
Правда, сделано плохо, потому что при включенном варианте “TLS 1.0 + 1.1 + 1.2” согласовывать начинает с TLS 1.0. Специально перепроверил, плюс посмотрел через netmon – удивительно, реально начинает с 1.0, согласовывает и успокаивается. Т.е. если включить все эти 3 протокола в Internet Explorer, то на тестовых сайтах клиент будет определяться как “TLS 1.2 compatible”, а в случае оперы – “TLS 1.0”. Плохо, по сути перечеркивает всё преимущество тонкой настройки – т.е. ну поддерживает она 1.2, что с того-то, если согласовывать пробует 1.0 для начала. То есть или надо вручную выключать TLS 1.0 (тогда большинство публичных https-сайтов типа gmail или facebook отвалятся), или сидеть с уязвимой версией.
После таких “мелочей” люди удивляются, почему IE является корпоративным стандартом.
Что делать, если у меня нет возможности включить TLS новых версий
Если у Вас нет возможности “правильно” обеспечить себе безопасность от атаки BEAST’а, можно использовать тонкий трюк.
Надо зайти в вышеуказанный параметр групповой политики, посвящённый последовательности согласования криптографических комплектов, и выставить единственным TLS_RSA_WITH_RC4_128_MD5. Тонкость в том, что атака BEAST не работает в случае применения данного криптоалгоритма (RC4). Безусловно, в таком случае нельзя отключать RC4 и MD5, а также включать FIPS140-2. Да, конечно, RC4 хуже, чем AES, но если нет возможность включить AES, то чем не вариант? В случае клиентских браузеров это позволяет обезопасить от атаки IE7 и выше.
Краткие рекомендации
- Включите через групповую политику протоколы TLS 1.1 и 1.2 для всех клиентов и серверов в домене.
- Обязательно отключите SSL 2.0 на всех клиентах и серверах.
- Обязательно отключите SSL 3.0 на всех серверах, используемых для внутренних сервисов (DC, порталы, CA, всё подобное).
- Осторожно отключите SSL 3.0 и TLS 1.0 на всех клиентах, проверив, все ли требуемые для работы внешние сервисы будут доступны в этом случае.
- Включите на всех клиентах и серверах пересогласование TLS.
- Включите его (пересогласования) строгое соответствие RFC 5746 – не имеет смысла устанавливать “высокотехнологичный” TLS последней модели, и при этом не брать во внимание well-known security hole.
Более жесткое закручивание гаек – по вкусу.
Заключение
Я надеюсь, что эти несложные действия ощутимо помогут Вам в том, чтобы Вы могли читать про штуки, аналогичные BEAST, только в новостях.
Возможно, вам будет также интересно почитать другие статьи про TLS на нашей Knowledge Base