ssl_protocols

Maxim Dounin mdounin на mdounin.ru
Пн Июл 6 19:17:25 UTC 2020


Hello!

On Sat, Jul 04, 2020 at 08:53:57PM +0300, Gena Makhomed wrote:

> On 29.06.2020 17:07, Maxim Dounin wrote:
> 
> > Соответственно для включения TLSv1.3 по умолчанию надо решить две
> > проблемы:
> >
> > 1. Сделать решение, которое бы позволило реализовать ту же
> > семантику "отазаться общаться, не предъявляя сертификата" в
> > условиях наличия TLSv1.3.
> >
> > 2. Придумать решение для существующих конфигураций с "ssl_ciphers
> > aNULL; return 444;".
> 
> Эти две проблемы выглядят как в принципе не решаемые
> в условиях наличия включенного протокола TLSv1.3.

Как минимум первая из этих проблем легко решается возвратом ошибки 
из ngx_http_ssl_servername().  Основной вопрос - что делать со 
второй.  И вот тут не совсем понятно, существует ли хорошее 
решение, внешнее по отношению к SSL-библиотеке.

> > > > в TLSv1.3 не настраиваются шифры
> > > 
> > > И если быть уж совсем точным, шифры в TLSv1.3 настраиваются.
> > > Точнее в OpenSSL шифры для TLSv1.3 можно настроить. Проблема
> > > только в том, что вот разработчики nginx не могут договориться
> > > с разработчиками OpenSSL о том, как эти шифры необходимо настраивать.
> > > 
> > > В том же Apache можно без проблем настроить шифры для TLSv1.3:
> > > https://httpd.apache.org/docs/current/mod/mod_ssl.html#sslciphersuite
> > > 
> > > Если никак не получается договориться с разработчиками OpenSSL,
> > > может быть имеет сделать смысл форк OpenSSL иил написать с нуля
> > > свою собственную библиотеку? Ведь когда-то так и nginx появился,
> > > когда стало понятно, что apache не подходит для некоторых задач.
> > > 
> > > Или пойти по пути Apache, сделав возможность раздельной настройки
> > > шифров для TLSv1.2 и для TLSv1.3 ? Ведь по прошествии такого количества
> > > времени уже стало понятно, что разработчики OpenSSL свою точку зрения
> > > по этому вопросу менять не собираются и в OpenSSL все будет так же.
> > 
> > В тикете тут:
> > 
> > https://trac.nginx.org/nginx/ticket/1529
> > 
> > и связанных тикетах - достаточно подробно расписано, что
> > настраивается, что не настраивается (в BoringSSL, например, для
> > TLSv1.3 не настраивается вообще ничего), и что именно я думаю по
> > этому поводу.  Не вижу смысла тут повторяться.
> 
> Два года назад Вы написали:
> 
> https://trac.nginx.org/nginx/ticket/1529#comment:1
> 
> "I don't think that nginx should add support for this interface
> before the long-term approach is clear".
> 
> https://trac.nginx.org/nginx/ticket/1529#comment:4
> 
> For now, solution to configure ciphers as implemented
> in OpenSSL 1.1.1-dev looks highly inconsistent, and it is not clear
> what they are going to do next. Once there will be a clear
> and consistent long-term approach available, we'll consider
> what to do with this.
> 
> Теперь, по прошествии двух лет - long-term approach is clear.

Ну вообще говоря нет, проблему "openssl ciphers" в OpenSSL так и 
не решили.

Ну и с тем же успехом long-term approach is clear в BoringSSL, где 
шифры для TLSv1.3 вообще не настраиваются.

Вероятно, когда-нибудь кто-нибудь сядет и напрограммирует 
прослойку, позволяющую конфигурить через ssl_ciphers в том числе 
TLSv1.3-шифры, об этом я писал чуть меньше двух лет назад тут:

https://trac.nginx.org/nginx/ticket/1529#comment:11

Однако это не то чтобы поможет в решении задачи "включить TLSv1.3 
по умолчанию", потому что обеспечить адекватную работу 
"ssl_ciphers aNULL;" внешняя прослойка не очень поможет.  Разве 
что пытаться узнавать в лицо конкретную строку aNULL, но от этого 
решения очень уж сильно пахнет хаком.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru