Как подключить веб-клиент «только SSLv3» к веб-серверу, который принимает только TLS1.0 - TLS1.2

У меня есть устаревший встроенный HTTP-клиент (очень старый), который поддерживает SSLv3, TLS1.0, TLS1.1 и TLS1.2. Я хочу удалить SSLv3 по соображениям безопасности.

Я перестроил библиотеку openssl и хотел проверить, не использует ли этот веб-клиент SSLv3 во время безопасного HTTP-соединения. Этот клиент также запрограммирован для подключения к определенному веб-серверу в Интернете, который уже НЕ поддерживает SSLv3.

Я попытался проверить, работает ли он, используя прокси между встроенным веб-клиентом и веб-сервером в Интернете.

Настройка:
Веб-клиент <----> Прокси-сервер Squid <----> https://www.loremipsum.com/xxx/xxx

Setting:
Webclient 
    -SSLv3 only
Squid proxy:
    -Installed in windows server 2012
-client TLS version --> TLS1.0, TLS1.1, TLS1.2 enabled
-server TLS version --> SSLv3 Only
External web server: -only supports TLS1.0, TLS1.1 and TLS1.2 Expected results: Before removing SSLv3: SSLv3 used in HTTPS connection After removing SSLv3: Webclient cannot connect with handshake failure code in packet Actual result: Before removing SSLv3: **TLS1.0** is used instead of SSLv3 (this part is my problem) After removing SSLv3: TLS1.0 used in HTTPS connection

Любой здесь знает, почему TLS1. 0 используется вместо SSLv3 во время фактического тестирования? Или вы можете порекомендовать какой-либо инструмент, который я могу использовать для подтверждения этого изменения?

Большое спасибо.

-2
задан 11 March 2021 в 10:15
1 ответ

По поводу того, почему в вашем тесте используется tls: клиент перебирает доступные ему шифры и сначала пробует самый сильный. Поэтому он всегда будет предпочитать tls, а не ssl3.

Если сайт виден из интернета, вы можете использовать один из тестовых сервисов, например https://testtls.com, чтобы проверить, какой протокол включен/выключен.

Если (как я предполагаю) сервис доступен только внутри сайта, вы можете использовать curl и указать протокол:

 curl -vvv --sslv3 https://www.myhost.tld

Вы можете углубиться в детали и указать каждый шифр отдельно: https://curl.se/docs/ssl-ciphers.html

Альтернативой является использование openssl напрямую: (https://www.misterpki.com/openssl-s-client/)

 openssl s_client -connect www.host.tdl:443 -ssl3

Обратите внимание, что в обоих случаях вам нужен openssl/curl с ssl3 (более новые версии вообще не имеют ssl)

Что вам нужно настроить в squid, это что-то вроде этого (возможно, вам придется изменить параметры в зависимости от версии openssl):

https_port ... options=SSLv3:NO_SSLv2:NO_TLS1:NO_TLS1_1:NO_TLS1_3
http_port ... ssl-bump options=NO_SSLv3:NO_SSLv2:NO_TLS1:NO_TLS1_1:NO_TLS1_3
1
ответ дан 24 April 2021 в 03:09

Теги

Похожие вопросы