Настроить Nginx для поддержки клиентов, которым требуются параметры DH 1024 или меньше, без снижения безопасности для всех остальных ?

Сторонний веб-инструмент, который обращается к нашему веб-серверу, похоже, использует Java 6, который не поддерживает параметры DH> 1024 бит. Он не может подключиться к нашему серверу, потому что для файла dhparams установлено значение 4096 бит.

В Nginx файл dhparams установлен в nginx.conf с использованием ssl_dhparam параметр.

Предположительно, если мы регенерируем dhparams. pem с 1024 битами, это ослабит безопасность для всех.

Есть ли способ разрешить одному устаревшему клиенту подключаться с 1024-битным dhparams, используя 4096 для всех остальных? Чтобы усложнить ситуацию, похоже, что Java 6 не поддерживает SNI.

Есть ли хороший способ справиться с этой ситуацией?

1
задан 22 March 2017 в 07:34
1 ответ

Клиент не объявляет в процессе квитирования, какой DH-ключ он поддерживает, поэтому сервер не может использовать другой DH-ключ для разных клиентов. Но DH-ключ используется только в случае использования DH-шифров. Современные клиенты предпочитают ECDHE, и если ваш nginx принимает это предпочтение, то хендшейк вообще не будет использовать DH параметр, так как он будет осуществлять обмен не DHE ключом, а ECDHE ключом. Примеры конфигураций, предпочитающих ECDHE, смотрите в https://mozilla.github.io/server-side-tls/ssl-config-generator/.

Что касается клиентов без SNI: они просто будут использовать хост по умолчанию, сконфигурированный в nginx. Таким образом, если у вас есть соответствующий сертификат, который соответствует всем именам, которые клиент, не знающий SNI, может использовать для соединения с вашим сервером, то он должен работать.

.
2
ответ дан 3 December 2019 в 20:26

Теги

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