Re: Время ssl handshake RSA & ECDSA

Maxim Dounin mdounin на mdounin.ru
Ср Сен 25 13:27:00 UTC 2019


Hello!

On Wed, Sep 25, 2019 at 02:19:55PM +0200, Дмитрий Рыбалка wrote:

> Добрый день,  прошу помочь разобраться с проблемой:
> Nginx 1.16.1 (проблема была и на прошлых версиях) из оф репозитория nginx
> для debian,  openssl 1.1.1c (проблема есть и на openssl 1.1.0)
> Прописываю два ключа RSA & *ECDSA*. Пробовал ключи как от LE так и от comoda
> 
> Пример настроек:
> 
> >   ssl_session_cache   shared:SSL:5m;
> >   ssl_session_timeout 30m;
> >   ssl_ecdh_curve X25519:prime256v1;
> >   ssl_buffer_size 4k;
> >   ssl_session_tickets off;
> >   resolver 8.8.8.8 8.8.4.4 valid=5m; #ipv6=off
> >   resolver_timeout 1s;
> >   ssl_prefer_server_ciphers   on;
> >   ssl_protocols TLSv1.2 TLSv1.3;
> >   ssl_ciphers
> > 'TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384';
> >  ssl_stapling on; - включал выключал, разницы нет.
> 
> 
> 
> Время хендшейка около 40мс.
> Если оставить только RSA то время уменьшается до 10мс
> Если оставить только EDSA, то время незначительно меняется и равно 38-39мс
> Если проверять скорость подписей openssl то ECDSA реально быстрее RSA, но
> почему при https подключении этого не видно?
> Проверял как чистым curl, так и black box экспортером для отслеживания
> динамики.
> Прошу помочь разобраться с данным нюансом

Начать стоит с вопроса как именно и где вы измеряете время (и 
зачем).  Если время измерять на клиенте - то ECDSA медленнее RSA, 
такак операция проверки подписи в ECDSA сильно дороже.

Скажем, для ECDSA P-256 и RSA 2048 ситуация выглядит так:

$ openssl speed rsa2048 ecdsap256
...
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.005821s 0.000168s    171.8   5958.5
                              sign    verify    sign/s verify/s
 256 bit ecdsa (nistp256)   0.0003s   0.0012s   3588.2    858.3

То есть операция проверки подписи для ECDSA в разы дороже, чем для 
RSA.  Соответственно если измерять время handshake'а между ничего 
не делающим быстрым сервером и клиентом фиксированной и не очень 
большой производительности - от ECDSA-сертификатов будет сплошной 
вред, ибо на него ляжет на порядок больше вычислительной работы.

Основная польза от ECDSA-сертификатов - это существенно меньшая 
нагрузка на сервер, и соответственно возможность обслуживать 
существенно большее количество клиентов.  Но её в таком тесте 
просто не будет видно.

-- 
Maxim Dounin
http://mdounin.ru/


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