OCSP stapling in Nginx >=1.3.7

Gena Makhomed gmm на csdoc.com
Вт Сен 18 14:01:07 UTC 2018


On 17.09.2018 2:36, Maxim Dounin wrote:

>>>>>>>>> Лучше всего - сделать так, чтобы OpenSSL научился проверять
>>>>>>>>> OCSP-ответы не полной цепочкой сертификатов вплоть до доверенного
>>>>>>>>> root'а, а ровно так, как и должно быть по стандарту - с помощью
>>>>>>>>> одного только сертификата issuer'а. Тогда проблема исчезнет.

Над OCSP в OpenSSL работал Rob Stradling из Comodo, может быть имеет
смысл к нему обратиться с просьбой исправить эту проблему в OpenSSL?

>> Кстати, пользователи жалуются, что есть BUG в nginx,
>> связанный с сертификатами с флагом "OCSP Must Staple":
>> https://blog.crashed.org/nginx-stapling-busted/

> Потому что "Must Staple" - это попытка превратить OCSP stapling
> из механизма оптимизации в обязательный механизм, аналогичный
> короткоживущим сертификатам. Не сюрприз, что так не работает -
> требования совершенно разные.

RFC 7633 был создан сотрудником Comodo, в RFC он пишет,
что цель RFC - "prevents a denial-of-service attack".

Сейчас, если кто-то с помощью DDoS-атаки заблокирует OCSP responder
- клиенты не смогут отличить отозванный сертификат от действительного.

При массовом внедрении флага OCSP Must-Staple в сертификаты
- делать DDoS-атаки на OCSP responder не будет иметь смысла.

То есть цель у флага OCSP Must-Staple наверное та же самая,
что и у OCSP Stapling - снизить нагрузку на инфраструктуру CA.

Кстати, тест на ssllabs.com показывает OCSP Must-Staple зеленым цветом.
Ivan Ristic как бы намекает, что это полезный флаг и его стоит включить.

> Любители Must Staple общаются в траке в двух тикетах:
> 
> https://trac.nginx.org/nginx/ticket/812
> https://trac.nginx.org/nginx/ticket/990
> 
> Пока что они делают это с нулевым полезным выходом.

Они в основном там просят сделать возможным указывать в конфиге
несколько директив ssl_stapling_file для ECDSA и RSA сертификатов.

Но есть ведь и другие способы решения этой проблемы, например,
чтобы nginx получал OCSP-ответ для сертификата с Must-Staple до того,
как он отправит свой ответ клиенту. Пользователю ведь нет разницы, кто
сходит за OCSP-ответом для сертификата - или браузер или сам веб-сервер.

Разумеется, не отправлять ответ клиенту без OCSP Stapling'а имеет смысл
только для тех сертификатов, у которых установлен флаг OCSP Must-Staple.

P.S.

Кстати, если посмотреть через https://www.ssllabs.com/ssltest/
на сайты nginx.org и nginx.com, то видно, что с nginx.org все
нормально, а вот nginx.com настроен не совсем оптимально.

Наверное самый простой вариант корректной настройки сервера:

     # OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%
     # https://habrahabr.ru/post/325230/

     ssl_prefer_server_ciphers on;
     ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
     ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4;

Может быть имеет смысл сделать эти значения
значениями по-умолчанию в nginx?

-- 
Best regards,
  Gena



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