ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ssl_prefer_server_ciphers



On 09.09.2013 13:06, Anton Yuzhaninov wrote:

потому что при ssl_prefer_server_ciphers off;
nginx подвержен влиянию BEAST-атаки CVE-2011-3389.

Без очень тщательного выбора того что и каком порядке указывать в
ssl_ciphers это делать смысла мало.

А что писать в ssl_ciphers вопрос не очень простой.

На первом месте логично поставить AES-GCM, но он пока не поддерживается
большинством браузеров. Да и на сервере для его нужен openssl 1.0.1 а во
многих дистрибутивах используются более старые версии.

ясно. а нельзя сделать так, чтобы если openssl версии 1.0.1,
то по-умолчанию в ssl_ciphers на первом месте стоял AES-GCM,
а если openssl более ранней версии, тогда лучшее из возможного:

ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH;

а если директива ssl_ciphers будет игнорировать AES-GCM,
если он есть в строке, но openssl его не поддерживает -
то и вообще одной дефолтовой строкой тогда можно обойтись.

плюс варнинг в логах, тогда пользователь подумает о том,
что может быть ему имеет смысл обновить openssl для nginx.

и тогда nginx будет "secure by default" настолько,
насколько это возможно и это будет гораздо лучше,
чем теперешний более уязвимый дефолт:

ssl_ciphers HIGH:!aNULL:!MD5;

Из того, что поддерживается широко:

AES-CBC - подвержен BEAST
RC4 в теории тоже уязвим: http://www.isg.rhul.ac.uk/tls/ (хотя сильно
опасаться этого пока не стоит).

в интернетах пишут про RC4, что "Пока что в реальных условиях атака трудно воспроизводима, но может проводиться крупными организациями"
так что на сегодня RC4 является более предпочтительным, чем AES-CBC

AES-CBC входит в группу HIGH, так что поменяв

ssl_ciphers HIGH:!aNULL:!MD5;

на

ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH;

мы просто скажем клиенту, что cipher RC4 является более предпочтительным
и если какой-то браузер умеет AES-CBC и не умеет RC4 - он будет работать

насколько я понимаю логику работы директивы ssl_prefer_server_ciphers
при ssl_prefer_server_ciphers on: будет выбран наилучший cipher из тех, что предпочитает сервер и поддерживает клиент. т.е. будет выбран:
(1)AES-GCM или (2)RC4 или любой другой из (3)HIGH (AES-CBC и т.п.)

И еще возможно бывают клиенты со старыми браузерами, которые не
поддерживают ни AES и RC4 (таких наверно мало).

может быть имеет смысл в документации к nginx написать рекомендацию,
чтобы пользователи после настройки ssl проверили свой сайт на предмет уязвимостей на сайте https://www.ssllabs.com/ssltest/ ?

и почитали SSL/TLS Deployment Best Practices https://www.ssllabs.com/

подозреваю, что многие пользователи считают, что nginx имеет дефолтовые
значения параметров такие, что он будет "secure by default" и они даже
не догадываются про все эти уязвимости и нюансы в настройке ssl в nginx.

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.