Welcome! Log In Create A New Profile

Advanced

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Maxim Dounin
January 22, 2020 12:14PM
Hello!

On Wed, Jan 22, 2020 at 05:04:33AM +0200, Gena Makhomed wrote:

[...]

> 1.
> В документации
> http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols
> написано, что директиву ssl_protocols можно задавать на уровне server.
>
> Однако - если в default_server было задано ssl_protocols TLSv1.2;
> то в других server`ах директива ssl_protocols TLSv1.3; не работает.
>
> И наоборот, если в default_server задано ssl_protocols TLSv1.3;
> то в других server`ах директива ssl_protocols TLSv1.2; не работает.
>
> Это где ошибка - в документации на сайте или в коде nginx 1.17.8?

Возможность задания какой-либо директивы в контексте server - не
означает, что она будет применяться для всех запросов, попадающих
в этот блок server. В случае виртуальных серверов - могут быть
нюансы.

В данном случае проблема в том, что разрешённые протоколы
проверяются OpenSSL'ем в рамках начала SSL handshake'а, и
изменение списка разрешённых протоколов при переходе в другой блок
server по SNI - ни на чо не влияет, так как к моменту парсинга
расширения server_name - протокол уже зафиксирован. Ну и
очевидно, что переход в другой блок server в рамках HTTP-заголовка
Host - влияет ещё меньше.

Подробнее можно почитать тут и по ссылкам:

https://trac.nginx.org/nginx/ticket/844

Соответственно отвечая на заданный вопрос: ошибка - в понимании
написанного в документации.

> 2.
> Аналогичная проблема и с директивой ssl_ecdh_curve:
>
> В документации
> http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve
> написано, что директиву ssl_ecdh_curve можно задавать на уровне server.
>
> Однако, nginx на эту директиву вообще никак не реагирует.
>
> У меня есть три тестовых сервера:
>
> server_name tls13-ecdsa-ecdhe-x25519.ideil.com;
> ssl_ecdh_curve X25519;
>
> server_name tls13-ecdsa-ecdhe-prime256v1.ideil.com;
> ssl_ecdh_curve prime256v1;
>
> server_name tls13-ecdsa-ecdhe-secp384r1.ideil.com;
> ssl_ecdh_curve secp384r1;
>
> В действительности - везде используется X25519 для Server Temp Key.
>
> Это где ошибка - в документации на сайте или в коде nginx 1.17.8?

В OpenSSL. Подробнее тут:

https://trac.nginx.org/nginx/ticket/1089

> 3.
> Третий вопрос, если можно:
>
> Тикет https://trac.nginx.org/nginx/ticket/1529 читал
> но по причине https://github.com/openssl/openssl/issues/7938
> - что нам с этим всем делать? Как управлять ciphers в TLS 1.3 ?

Проще всего - никак.

Если очень хочется, то спектр возможностей чуть расширяется:
Если речь про OpenSSL, то это можно делать через openssl.cnf.
Если речь про BoringSSL, то никак даже если очень хочется.

> Может быть все-таки имеет смысл сделать [недокументированную (?)]
> директиву ssl_ciphersuites которая будет управлять шифрами для TLS 1.3 ?
> Оставив директиву ssl_ciphers для управления шифрами TLS 1.2 и 1.1/1.0 ?
>
> Чтобы можно было, например, для теста настроить все возможные комбинации
> шифров TLS 1.3 (их всего три) и все возможные комбинации рекомендуемых
> сайтом https://wiki.mozilla.org/Security/Server_Side_TLS вариантов
> ecdh curve (их тоже всего три: X25519, prime256v1, secp384r1).
> Итого - только для TLS 1.3 получается всего 9 возможных комбинаций.
> Для всех возможных комбинаций - необходимо будет 36 различных серверов.

Задача "сделать тестовый стенд со всеми возможными комбинациями
параметров SSL / TLS" - это не совсем та задача, для которой
разрабатывается nginx.

> Кстати, google пошел еще дальше, и в конфигурации для www.google.com
> сделал возможность отдельно настраивать значение директивы
> ssl_prefer_server_ciphers и ssl_ciphers для TLS 1.3 и предыдущих версий.
>
> https://www.ssllabs.com/ssltest/analyze.html?d=www.google.com

Подозреваю, что на сервере BoringSSL. Там выбор шифров для
TLSv1.3 просто игнорирует все имеющиеся настройки.

> Может быть и для nginx был бы приемлимым более обобщенный синтаксис,
> например, что-то вроде такого:
>
> ssl_ciphers TLSv1.3 ................;
> ssl_ciphers TLSv1.2 ................;
> ssl_ciphers TLSv1.1 ................;
> ssl_ciphers TLSv1.0 ................;
>
> ssl_prefer_server_ciphers TLSv1.3 off;
> ssl_prefer_server_ciphers TLSv1.2 on;
> ssl_prefer_server_ciphers TLSv1.1 on;
> ssl_prefer_server_ciphers TLSv1.0 on;
>
> ?

Я не вижу решительно никаких причин для того, чтобы подобное
пытаться релизовывать.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

SSL Configuration Generator https://ssl-config.mozilla.org/

Gena Makhomed January 09, 2020 09:08PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Илья Шипицин January 09, 2020 11:38PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Gena Makhomed January 10, 2020 12:22AM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Илья Шипицин January 10, 2020 01:42AM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Gena Makhomed January 10, 2020 06:54AM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Илья Шипицин January 10, 2020 08:04AM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Gena Makhomed January 10, 2020 12:02PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Илья Шипицин January 14, 2020 04:02PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Maxim Dounin January 10, 2020 08:06AM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Gena Makhomed January 21, 2020 10:06PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Maxim Dounin January 22, 2020 12:14PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Evgeniy Berdnikov January 22, 2020 02:18PM

Re: SSL Configuration Generator https://ssl-config.mozilla.org/

Илья Шипицин January 22, 2020 02:42PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 288
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready