<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 27 сент. 2019 г. в 02:13, Vasiliy Tolstov <<a href="mailto:v.tolstov@selfip.ru">v.tolstov@selfip.ru</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">чт, 26 сент. 2019 г. в 20:15, Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>>:<br>
><br>
> Hello!<br>
><br>
> On Thu, Sep 26, 2019 at 07:47:41PM +0300, Vasiliy Tolstov wrote:<br>
><br>
> > ср, 25 сент. 2019 г. в 16:27, Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>>:<br>
> > ><br>
> > > Начать стоит с вопроса как именно и где вы измеряете время (и<br>
> > > зачем).  Если время измерять на клиенте - то ECDSA медленнее RSA,<br>
> > > такак операция проверки подписи в ECDSA сильно дороже.<br>
> > ><br>
> > > Скажем, для ECDSA P-256 и RSA 2048 ситуация выглядит так:<br>
> > ><br>
> > > $ openssl speed rsa2048 ecdsap256<br>
> > > ...<br>
> > >                   sign    verify    sign/s verify/s<br>
> > > rsa 2048 bits 0.005821s 0.000168s    171.8   5958.5<br>
> > >                               sign    verify    sign/s verify/s<br>
> > >  256 bit ecdsa (nistp256)   0.0003s   0.0012s   3588.2    858.3<br>
> > ><br>
> > > То есть операция проверки подписи для ECDSA в разы дороже, чем для<br>
> > > RSA.  Соответственно если измерять время handshake'а между ничего<br>
> > > не делающим быстрым сервером и клиентом фиксированной и не очень<br>
> > > большой производительности - от ECDSA-сертификатов будет сплошной<br>
> > > вред, ибо на него ляжет на порядок больше вычислительной работы.<br>
> > ><br>
> > > Основная польза от ECDSA-сертификатов - это существенно меньшая<br>
> > > нагрузка на сервер, и соответственно возможность обслуживать<br>
> > > существенно большее количество клиентов.  Но её в таком тесте<br>
> > > просто не будет видно.<br>
> ><br>
> > Прошу прощения за небольшой оффтоп, а если используется mTLS - что<br>
> > выгоднее использовать в плане производительности ECDSA или RSA?<br>
> > Учитывая что там все друг другу клиенты и серверы.<br>
><br>
> Ну вот выше циферки же по аналогичным размерам ключей - в случае<br>
> RSA 2048 вы получите максимальную производительность, ограниченную<br>
> количеством подписей в секунду - 171.8 sign/s (стоимость<br>
> верификации в разы меньше, и ей можно пренебречь), а в случае<br>
> ECDSA P-256 - количеством верификаций, 858.3 verify/s (стоимостью<br>
> подписи, опять же, можно пренебречь).  То есть ECDSA на круг<br>
> получается раз в 5 выгоднее.<br>
><br>
<br>
<br>
Видимо немного неверно сформулировал вопрос или не понял ответ.<br>
Я имел ввиду ситуацию, когда есть допустим пара сервисов, которые<br>
просто занимаются выдачей по jwt токену ключа подписанного public<br>
ключа. Клиент посылает такому сервису jwt токен и csr. На выходе он<br>
будет иметь подписанный паблик ключ.<br>
В такой схеме, что выгоднее использовать на сервисах, к которым потом<br>
будут подключаться?<br></blockquote><div><br></div><div>параметры у вас следующие</div><div><br></div><div>1) переиспользование http сессий (параметр keepalive_requests 100, который в дефолтном варианте ограничивает кипэлайв 100 запросами)</div><div>2) переиспользование ssl сессий (ssl tickets, ssl sessions) - если оно не используется, вы попадете как раз на замеры, которые вы привели (это замеры для полных хендшейков)</div><div><br></div><div>профилировать, на что уходит цпу, можно например, вот этим</div><div><br></div><div><a href="http://nginx.org/ru/docs/ngx_google_perftools_module.html">http://nginx.org/ru/docs/ngx_google_perftools_module.html</a></div><div><br></div><div><br></div><div>в случае, если сессии не переиспользуются, действительно будет так, что ECDSA раза в 4 дешевле.</div><div>если переиспользуются, по нашему опыту затраты на ssl теряются на фоне остального (но вы проверьте)<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Время жизни ключа - ротация, допустим 10 минут.<br>
У меня на сервере выходит такое:<br>
                 sign           verify           sign/s       verify/s<br>
rsa       0.002298s   0.000067s      435.2      14924.7<br>
               sign              verify          sign/s       verify/s<br>
 ecdsa  0.0001s        0.0002s       16490.3     4867.9<br>
<br>
Как я понимаю в таком случае выигрышнее будет скорость verify ?<br>
<br>
-- <br>
Vasiliy Tolstov,<br>
e-mail: <a href="mailto:v.tolstov@selfip.ru" target="_blank">v.tolstov@selfip.ru</a><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div></div>