Hello!
On Sun, Jun 28, 2020 at 09:26:46PM +0300, Gena Makhomed wrote:
> On 25.06.2020 22:27, Maxim Dounin wrote:
>
> > А не разрешить ли TLSv1.3 по умолчанию. Сейчас для этого как
> > минимум один блокер - в TLSv1.3 не настраиваются шифры и в
> > результате сломаются конфиги с "ssl_ciphers aNULL;", подробнее
> > тут:
> >
> > http://mailman.nginx.org/pipermail/nginx/2018-November/057194.html
>
> В ответе https://trac.nginx.org/nginx/ticket/195#comment:6 можно
> же дописать, что этот workaround не работает для протокола TLSv1.3,
> потому что протокол TLSv1.3 вообще не поддерживает ssl_ciphers aNULL;
>
> Хотя, в этом тикете https://trac.nginx.org/nginx/ticket/195 просили
> совсем о другом - просили сделать возможность refuse_connections
> в том случае, если приходит HTTPS-запрос в nginx на HTTP-only сайт,
> то есть просят сделать "strict SNI should really be implemented. It's just a few if statements, is this too much for a long-standing issue?"
>
> Не смотря на то, что этот тикет был создан 8 лет тому назад - такая
> проблема актуальна и сегодня, потому что, насколько мне известно,
> Google индексирует сайты по HTTPS не обращая внимания на ошибки
> несоответствия сертификата. В резхультате в его поисковой выдаче
> будет очень много страниц, которые дают ошибку TLS/SSL в браузере.
Проблем с гуглом при использовании "ssl_ciphers aNULL; return
444;" - не обнаружено, да и быть не может: соединение так или
иначе закрывается, даже если гугл вдруг готов общаться по шифрам
aNULL. Семантически эта конструкция делает именно то, что нужно:
отказывается общаться, не предъявляя сертификата.
То есть в отсутствии TLSv1.3 этот workaround работает
именно так, как надо. Включение TLSv1.3 - его ломает.
Соответственно для включения TLSv1.3 по умолчанию надо решить две
проблемы:
1. Сделать решение, которое бы позволило реализовать ту же
семантику "отазаться общаться, не предъявляя сертификата" в
условиях наличия TLSv1.3.
2. Придумать решение для существующих конфигураций с "ssl_ciphers
aNULL; return 444;".
> > в 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 не настраивается вообще ничего), и что именно я думаю по
этому поводу. Не вижу смысла тут повторяться.
Сама по себе невозможность насраивать шифры - не является
препятствием для включения TLSv1.3 по умолчанию, препятствием
являются возникающие в результае проблемы в конфигурациях с
"ssl_ciphers aNULL;".
--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru