Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

3 Страницы<123
Опции
К последнему сообщению К первому непрочитанному
Offline Dorian_Sam  
#21 Оставлено : 1 июля 2016 г. 18:45:12(UTC)
Dorian_Sam

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.10.2014(UTC)
Сообщений: 9
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Автор: xorax Перейти к цитате
Автор: dgd Перейти к цитате
1) Ваша версия : 2014-12-07 КриптоПро CSP 3.9.8227
Я бы рекомендовал установить последнюю выпущенную версию CSP_3_9.
На сегодняшний день это 2016-04-14 КриптоПро CSP 3.9.8423.
Я бы ожидал существенного ускорения, но сложно заранее сказать будет это 1.5 раза или 3.


Поставили указанную версию. Проверили. Действительно стало быстрее. Время исполнения проверки сократилось с 33 секунд до 12. Разумеется, прогресс на лицо. Но очевидно, что мы не можем заставлять пользователя ждать и эти 12 секунд. Мы решили, что будем отключать проверку списков отзыва в реальном режиме времени и сделаем проверку сертификатов в фоновом режиме, чтобы пользователь эту работу не видел.

Замкнутый пример постараемся подготовить.


12 секунд это долго, возможно у вас после проверок подтормаживает?
Я проводил замеры на версии 3.9.8339 и функция CertGetCertificateChain отрабатывала 1,5с а на версии 4.0 с тем же набором crl уже было 310-530ms

Отредактировано пользователем 1 июля 2016 г. 18:47:17(UTC)  | Причина: Не указана

Offline dgd  
#22 Оставлено : 2 июля 2016 г. 12:10:39(UTC)
dgd

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 30.06.2016(UTC)
Сообщений: 4
Российская Федерация
Откуда: на работе

То, что 3 раза подтвердились, меня радует :)

А какое время Вы полагаете допустимым? Секунды? Сотни миллисекунд?
Навскидку я могу пообещать для 4_0/trunk ещё раза 2--3, не больше.


UPD: Не заметил обновления в предыдущем ответе
Я правильно понял, что что-то из 4_0 работает в 3--5 раз быстрее 3_9 и укладывается в 500 ms?

Выглядит странновато, но формально ничему не противоречит.
1) Я исправлял код во многих местах, а тест был один и какие-то "эффекты" я мог не заметить.
2) Возможно, у Вас успели подгрузиться CRL и отсутствовали сетевые обмены?
Они могут дать сколь угодно большую задержку.
3) в код 3_9 я портировал часть изменений из 4_0, а в 4_0 портировал, соответственно, часть изменений из trunk.
Связано с тем самым тестом, который я использовал, с одной стороны, и со стабильностью веток, с другой.
Я старался по минимуму менять код стабильной 3_9, чуть больше менял для 4_0.
4) В моих тестах пполучалось, что 4_0 чуть быстрее 3_9 -- на первые десятки процентов, не больше.

К сожалению, я не понял вопрос про торможение после проверок.
Вы не могли бы пояснить?

Похоже, что замкнутый пример становится всё более интересным и нужным :)

Отредактировано пользователем 2 июля 2016 г. 13:12:17(UTC)  | Причина: UPD

Offline Dorian_Sam  
#23 Оставлено : 3 июля 2016 г. 18:57:59(UTC)
Dorian_Sam

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.10.2014(UTC)
Сообщений: 9
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Автор: dgd Перейти к цитате
То, что 3 раза подтвердились, меня радует :)

А какое время Вы полагаете допустимым? Секунды? Сотни миллисекунд?
Навскидку я могу пообещать для 4_0/trunk ещё раза 2--3, не больше.


Для нас чем меньше тем лучше. Небольшое уточнение, эти замеры я делал в декабре 14.12.2015(тогда я так понял проблемой занимался Дьяченко Дмитрий, замеры я присылал ему на почту) до сертификации версии 4.0 если точнее то:
Цитата:
CSP (Type:80) v4.0.9005 KC1 Release Ver:4.0.9660 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 33549507
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP
Total: SYS: 0,000 sec USR: 0,030 sec UTC: 0,290 sec
[ErrorCode: 0x00000000]


На последней сертифицированной 4.0 версии замеры пока что не проводил.

Автор: dgd Перейти к цитате

Я правильно понял, что что-то из 4_0 работает в 3--5 раз быстрее 3_9 и укладывается в 500 ms?


Именно долго работала функция CertGetCertificateChain при чем только для конкретного издателя сертификата TENSOR3, ранее было как и писал 1,5с.
Цитата:

Выглядит странновато, но формально ничему не противоречит.
1) Я исправлял код во многих местах, а тест был один и какие-то "эффекты" я мог не заметить.
2) Возможно, у Вас успели подгрузиться CRL и отсутствовали сетевые обмены?
Они могут дать сколь угодно большую задержку.
3) в код 3_9 я портировал часть изменений из 4_0, а в 4_0 портировал, соответственно, часть изменений из trunk.
Связано с тем самым тестом, который я использовал, с одной стороны, и со стабильностью веток, с другой.
Я старался по минимуму менять код стабильной 3_9, чуть больше менял для 4_0.
4) В моих тестах пполучалось, что 4_0 чуть быстрее 3_9 -- на первые десятки процентов, не больше.


Я проводил замеры следующем образом(еще раз уточняю что это было не на самых последних версиях):
1) Была отключена подгрузка crl по сети.
2) Я последовательно устанавливал 150+ издателей и crl, при каждой установки я замерял время заботы именно вызова функции CertGetCertificateChain(если прочитать комментарии ранее то именно она занимала 90% всей работы в моем приложении) и таким путем определил после чего именно начинаются большие потери по времени.

Автор: dgd Перейти к цитате

К сожалению, я не понял вопрос про торможение после проверок.
Вы не могли бы пояснить?


Это я писал для пользователя xorax, возможно у него другая проблема и не связана с csp так как он не описал что конкретно занимает столько времени, так как 12с на проверку подписи это уж очень много


На данным момент если на 4.0 время проверки все так же 310-530ms то нас это устраивает, но если вы ускорите это еще в 2-3 раза то мы не будем против :)
Если нужно то в ближайшем будущем я смогу повторить тест и сделать замеры на последний версии 4.0.

Отредактировано пользователем 3 июля 2016 г. 19:04:55(UTC)  | Причина: Не указана

Offline Dorian_Sam  
#24 Оставлено : 3 июля 2016 г. 19:11:25(UTC)
Dorian_Sam

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.10.2014(UTC)
Сообщений: 9
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Автор: xorax Перейти к цитате

4. пытаемся проверить подпись при помощи cpverify


может проблема в этом? может стоит воспользоватся api а не вызывать в коде выполнение утилиты cpverify
Offline dgd  
#25 Оставлено : 3 июля 2016 г. 20:51:03(UTC)
dgd

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 30.06.2016(UTC)
Сообщений: 4
Российская Федерация
Откуда: на работе

@Dorian_Sam Извините, не узнал :-) Мы с Вами и переписывались, но почтой, а не на форуме.

Проблема с ускорением в том, что код был написан очень давно, году в 2002-м, и до недавнего времени нареканий по скорости не вызывал.
Полагаю, что СОС были короткими и десятки-сотни мс никого особо не волновали.

Когда я в прошлом году ускорял, то довольно легко и быстро исправил несколько несуразностей.
Теперь надо методично пройти по коду и вычистить всё подряд.
Оценка в два-три раза взялась из нескольких наблюдений
1) остался лишний разбор CRL -- это примерно 40мс из 300
2) примерно 200мс равномерно "размазано" по строковым/memory функциям из libc, распределению памяти и просто неведомо где
(oprofile показывает, что ровным слоем везде понемногу)
3) размер декодированного CRL у нас раза в 2--3 больше, чем у Windows

Итого, получается : 300 - 40 - 200/2 = 150 :-)
Допущение, что из 200-т мс удастся половину убрать.
Это два раза. А три, если повезёт и удастся убрать больше. И сам разбор CRL укоротить раза в в 2--3 миллисекунд до 10-ти.

Имеется ввиду CRL Тензора в конце года размером под три метра
Offline xorax  
#26 Оставлено : 4 июля 2016 г. 12:43:18(UTC)
xorax

Статус: Участник

Группы: Участники
Зарегистрирован: 27.06.2016(UTC)
Сообщений: 11
Российская Федерация
Откуда: Питер

Автор: Dorian_Sam Перейти к цитате
Автор: xorax Перейти к цитате

4. пытаемся проверить подпись при помощи cpverify


может проблема в этом? может стоит воспользоватся api а не вызывать в коде выполнение утилиты cpverify


Для нас этот вариант недоступен, так как мы пишем на Ruby и прямого биндинга к API КриптоПро у нас нет.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы<123
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.