ssl_prefer_server_ciphers

Maxim Dounin mdounin at mdounin.ru
Tue Jun 10 11:16:29 UTC 2014


Hello!

On Mon, Jun 09, 2014 at 03:02:32PM +0700, Eugene Peregudov wrote:

> Здравствуйте!
> 
> Как в nginx обстоят дела с использованием аппаратного ускорения aes-ni?
> 
> OpenSSL рекомендует использовать высокоуровневый интерфейс EVP - из вывода
> cli видно, что вызываются соотвествующие методы, ускорение есть (OpenSSL
> 1.0.1e-fips 11 Feb 2013, RHEL6.5):

Дела обстоят так же, как и вообще в OpenSSL - функциями 
AES_cbc_encrypt() / AES_encrypt() напрямую nginx не пользуется, 
соответственно работает реализация в рамках EVP - которая, в свою 
очередь, в современных версиях умеет AES-NI.

[...]

> В коде стабильной версии (nginx-1.6.0) нашел только aes_128_cbc, а где же
> 256?
> grep -R EVP_aes *
> src/event/ngx_event_openssl.c:        EVP_EncryptInit_ex(ectx,
> EVP_aes_128_cbc(), NULL, key[0].aes_key, iv);
> src/event/ngx_event_openssl.c:        EVP_DecryptInit_ex(ectx,
> EVP_aes_128_cbc(), NULL, key[i].aes_key, iv);

В коде - шифрование session ticket'ов, применяемое в случае 
использования общих ключей (http://nginx.org/r/ssl_session_ticket_key).
К шифрам, применяемым для общения с клиентами, это не имеет 
отношения.

> Принуждает ли такой конфиг ssl использование браузером шифров aes128/256 и
> будет ли реально использоваться AES-NI?
> 
> ssl_prefer_server_ciphers on;
> ssl_session_cache shared:SSL:10m;
> ssl_session_timeout  10m;
> ssl_ciphers RSA+AES:ECDH+AES+aRSA:ECDH+AES+aECDSA:!AEDH:!EDH:!kEDH:!aNULL:!MD5:!LOW:!3DES:!EXP:!PSK:!SRP:!DSS:!RC4;
> ssl_protocols TLSv1.2 TLSv1.1 TLSv1 SSLv3;

Полный список шифров, в которые OpenSSL разворачивает 
соответствующую строку на вашем сервере, можно посмотреть с 
помощью команды "openssl ciphers".  Поскольку все "положительные" 
элементы в списке содержат AES, то ничего кроме AES быть, 
соответственно, и не может.

Про AES-NI смотри выше.

-- 
Maxim Dounin
http://nginx.org/



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