Отключение TLS 1.0 и TLS 1.1 с помощью GPO
В этой статье мы рассмотрим, как отключить поддержку устаревших версий протокола Transport Layer Security в Windows с помощью групповых политик. Версии протокола TLS 1.0 и 1.1 считаются устаревшими и небезопасными. Если вы мигрировали все ваши сервисы на TLS 1.2 или TLS 1.3, вы можете отключить поддержку старых версий протоколов на клиентах и серверах Windows с помощью GPO.
В Windows вы можете вывести список включённых версий TLS для браузера в настройках Internet Options (
inetcpl.cpl
). На данном скриншоте видно, что включены TLS 1.0, TLS 1.1, TLS 1.2 и TLS 1.3. При установке соединения с сервером для шифрования выбирается максимальная версия TLS, поддерживаемая и клиентом, и сервером.
Если вы отключите поддержку старых версий TLS, пользователи не смогут подключиться к legacy сервисам. Поэтому рекомендуем предварительно протестировать все настройки на пилотных группах компьютеров и серверов.
Список протоколов TLS/SSL, включенных на вкладке Internet Options на клиенте можно настроить с помощью параметра групповых политик Turn Off Encryption Support в разделе GPO: Computer Configuration -> Administrative Templates -> Windows Components -> Internet Explorer -> Internet Explorer Control Panel -> Advanced Page.
Включите политику (Enabled), и в выпадающем списке Secure Protocol combinations выберите какие версии TLS/SSL разрешить использовать клиентам.
Этому параметру GPO соответствует параметр SecureProtocols в ветке реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet Settings.
Чтобы применить новые настройки GPO, придется перезагрузить компьютер. Еще раз откройте настройки Internet Options и убедитесь, что доступны только те версии TLS, которые вы разрешили в GPO. Пользователь не сможет изменить эти настройки (обратите внимание на надпись Some settings are managed by your system administrator). [/alert]
К сожалению, тут нельзя оставить включенными только TLS 1.3 и TLS 1.2, такого параметра в GPO просто нет. Кроме того, это не отключить поддержку старых версий TLS 1.0 и TLS 1.1 на стороне ваших Windows Server (в том же IIS, Exchange).
Поэтому отключать определенные версии TLS лучше напрямую через реестр. С помощью GPO вы можете распространить нужные настройки реестра на компьютеры (подробнее это описано в статье Настройка параметров реестра на компьютерах с GPO).
Для отключения TLS 1.0 в Windows как для клиента, так и для сервера нужно внести следующие параметры в реестр:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client] "DisabledByDefault"=dword:00000001 "Enabled"=dword:00000000 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server] "DisabledByDefault"=dword:00000001 "Enabled"=dword:00000000
По аналогии отключаются другие протоколы. Достаточно заменить выделенный путь в реестре на SSL 2.0, SSL 3.0, TLS 1.1 и т.д.
Чтобы принудительно включить TLS 1.2, нужно внести следующие записи:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
Таким образом в GPO должна получиться такая картинка в разделе Computer Configuration -> Preferences -> Windows Settings -> Registry.
Для применения настроек нужно перезагрузить Windows.
Кроме изменения настроек доступных протоколов TLS в реестре нужно разрешить использование TLS 1.2 для приложений NET 3.5 и 4.x, а также для WinHTTP. Тот же Outlook использует настройки шифрования для WinHTTP (подробнее об этом в этой статье).
Включить системные протоколы шифрования для .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
Включить использование TLS 1.2 для WinHTTP:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionInternet SettingsWinHttp] "DefaultSecureProtocols"=dword:00000800
В Windows Server вы можете использовать утилиту ISS Crypto GUI (https://www.nartac.com/Products/IISCrypto/Download) для просмотра настроек SCHANNEL.
Windows Server 2016
Отключение TLS 1.0 и TLS 1.1 с помощью GPO