TLS 1.0 все еще используется в IIS после его отключения
Я настроил IIS на Windows Server 2008 R2, чтобы не разрешать TLS 1.0. Я сделал это, установив эти ключи рег и перезагрузки:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server\DisabledByDefault set to 1 (as a DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server\Enabled set to 0 (as a DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client\DisabledByDefault set to 1 (as a DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client\Enabled set to 0 (as a DWORD)
На стороне клиента я использую FireFox 48.0 и IE 9 для тестирования. (Я не могу использовать более поздние версии IE, потому что сетевые администраторы заблокировали настройки). Вот как я настраиваю IE для принудительной установки TLS 1.0:
Вот как я настраиваю FireFox для принудительной установки TLS 1.0:
Я использую WireShark для подтверждения используемого протокола. Вот как это выглядит, когда я запускаю TLS 1.0 в браузере:
Я также использовал предложенную ниже команду OpenSSL, чтобы подтвердить, что TLS 1.0 все еще используется:
openssl s_client -tls1 -connect mysite.com:443
Если я использую TLS 1.1 в браузере, вот как выглядит WireShark:
Проблема в том, что сервер настроен так, чтобы не разрешать TLS 1.0, но когда я настраиваю свой браузер на использование только TLS 1.0, тогда используется TLS 1.0. Если я настраиваю IE, чтобы не разрешать любую версию TLS, то он возвращает ошибку " Internet Explorer cannot display the web page
"Именно этого я и ожидал. Моя цель - не допустить использования сервером TLS 1.0 на сервере, даже если клиент поддерживает только TLS 1.0, поскольку TLS 1.0 имеет уязвимости в безопасности. Как я могу заставить IIS прекратить использовать TLS 1.0?
3 ответа
Вы можете проверить, будет ли сервер обслуживать TLS 1.0, если потребуется, с помощью следующей команды openssl.
openssl s_client -tls1 -brief -connect example.com:443
Если соединение установилось успешно, вы увидите что-то вроде:
CONNECTION ESTABLISHED
Protocol version: TLSv1
Ciphersuite: DHE-RSA-AES256-SHA
Peer certificate: CN = example.com
Server Temp Key: DH, 8192 bits
Если соединение не удалось, вы увидите:
write:errno=104
Вы можете проверить поддержку других протоколов, выполнив:
TLS v1.1: openssl s_client -tls1_1 -brief -connect example.com:443
TLS v1.2: openssl s_client -tls1_2 -brief -connect example.com:443
SSL v3: openssl s_client -ssl3 -brief -connect example.com:443
Проблема заключалась в том, что SSL фактически обрабатывался балансировщиком нагрузки, а не на сервере, поэтому его пришлось отключить на балансировщике нагрузки.
Я знаю, что это старо, но это может помочь кому-то еще. Если FIPS включен, он переопределит настройки TLS 1.0 и включит TLS 1.0. Он должен быть отключен, чтобы отключить TLS 1.0. Надеюсь, это кому-нибудь поможет.