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