Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2023(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте.
Есть "CryptoPro CSP 4.0 R4" + токен с сертификатом "Рутокен Lite". Делаем подпись через cli команду "cryptcp -sign ...", внутри докер контейнера на debian-based системе, всё работает. Замерили на ноутбуке, в минуту делается ~800 подписей. Но когда вставили аналогичный токен на сервер и сделали там подпись таким же образом, то кол-во подписей в минуту резко уменьшилось в 10 раз до ~80 подписей, хотя сервер по мощности хороший.
Можете подсказать, что стоит проверить/сравнить, чтобы понять откуда может быть такая разница по производительности, что на ноутбуке работает быстро, а на сервере нет?
Правильно ли я понимаю что вызывая подобную команду "cryptcp -sign ..." упор идёт в большей степени на процессор и там параллельность мало задействована (т.е. много ядер особо не поможет)?
Заметка про токен - маловероятно, что проблема в нём, т.к. пробовал 2 токена на сервере и результат по производительности тот же.
Для информации по железу: В ноуте где всё хорошо: - процессор 11th Gen Intel® Core™ i7-1165G7 @ 2.80GHz × 8 На сервере, где медленно - Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz * 16 - 256GB DDR4 2666mhz ECC REG памяти - 2x Enterprise SSD Samsung PM883
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,416
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 565 раз в 393 постах
|
Здравствуйте. На сервере тоже Debian и КриптоПро CSP 4.0 R4? Вне зависимости от ответа отмечу, что начиная с 2021-07-18 КриптоПро CSP 5.0.12222 Lilithв cryptcp с командами -signf, -addsignf, -vsignf добавлена опция -threads для распараллеливания работы. Возможно, вы сможете сгруппировать подписываемые файлы в папку, тогда на 16-ядерном сервере можно будет обрабатывать их в 16 потоков. |
|
1 пользователь поблагодарил Русев Андрей за этот пост.
|
nickm оставлено 15.06.2024(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2023(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Да, на сервере тоже debian/ubuntu и КриптоПро CSP 4.0 R4. Докер образ один и тот же.
По поводу опции -threads в 5 версии понял, спасибо, буду знать. Но вариант сейчас маловероятен к применению, т.к. лицензия есть именно на 4 версию + переписывать само приложение под 5 версию не сильно предсказуемо сколько составит по времени, а какой-то закон обязывающий подписывать именно с токена уже с сентября вступит в силу) Поэтому хотелось отделаться малой кровью и понять в чём отличие работы на ноутбуке и на сервере и эту часть пофиксить.
Кстати, а с опцией -threads не будет токен как точка замедления? Даже если представить что сам криптопро будет быстро во много потоков работать, он же всё равно за каждой подписью ходит в один и тот же токен, там же по идее никакого распаралеливания не будет. Или условно хождение в токен это 5% работы, а остальное работа самого криптопро и поэтому главное распаралелить его часть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,297 Сказал «Спасибо»: 549 раз Поблагодарили: 2201 раз в 1717 постах
|
у Вас Рутокен Lite - хранилище, а не аппаратное СКЗИ. Ключ кэшируется в криптопровайдере. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2023(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Автор: Андрей * у Вас Рутокен Lite - хранилище, а не аппаратное СКЗИ. Ключ кэшируется в криптопровайдере. Но на каждую подпись же криптопро ходит в токен в моём понимании, т.к. я вижу что в момент подписи есть мигание токена. Если данные берутся из кеша, тогда не пойму почему происходит мигание токена, если он никак не задействуется.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,416
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 565 раз в 393 постах
|
Автор: log-la Автор: Андрей * у Вас Рутокен Lite - хранилище, а не аппаратное СКЗИ. Ключ кэшируется в криптопровайдере. Но на каждую подпись же криптопро ходит в токен в моём понимании, т.к. я вижу что в момент подписи есть мигание токена. Если данные берутся из кеша, тогда не пойму почему происходит мигание токена, если он никак не задействуется. Вы оба правы: ключ считывается один раз и хранится в СКЗИ (в ОЗУ), но для того, чтобы ощущения от использования токена были более естественными: "выдернул - перестало работать", начиная с 2020-09-28 КриптоПро CSP 5.0.11944 Jackalope провайдер стал перед каждой операцией проверять наличие токена. Это не чтение ключа, но мигать заставляет и время тратит. Для массовой подписи такой режим, конечно, не подходит: тормозит в десятки и сотни раз. Его можно штатно отключить, не нарушая свойств безопасности: Код:sudo /opt/cprocsp/sbin/*/cpconfig -ini '\config\parameters' -add long AllowWorkWithoutCarrier 1
На винде аналогично: Код:reg add "HKLM\SOFTWARE\Wow6432Node\Crypto Pro\Cryptography\CurrentVersion\Parameters" /v AllowWorkWithoutCarrier /t REG_DWORD /d 1
В КриптоПро CSP 4.0 таких проверок не было, поэтому и отключения нет. Но надо понимать, что если приложение выполнилось и завершилось (как cryptcp), то обычно (в КС1) каждый его новый запуск будет заново создавать СКЗИ в памяти этого приложения, и поэтому при каждом запуске будет считываться ключ с токена. Тут поможет пакет cprocsp-kc2. В этом случае СКЗИ живёт в сервисе (отдельном процессе), а приложение (cryptcp) при запуске только устанавливает с ним связь. Тогда ключ с токена будет однажды загружен в ОЗУ сервиса и дальше при каждой подписи из cryptcp будет использоваться экземпляр из памяти и токен не будет мигать. На всякий случай отмечу, что взаимодействие с сервисом - это тоже накладные расходы, поэтому максимальная производительность достигается без сервиса в приложении, которое долго живёт. Например, cryptcp при пакетной обработке (-signf) будет работать эффективно в этом смысле. Так что на пакетную обработку, вероятно, стоит перейти, даже если нет лицензии на 5.0 и недоступен параметр -threads. После устранения токена как узкого места следующим узким местом станет проверка статуса цепочки сертификата. Она делается при каждом запуске cryptcp. Если подпись идёт одним и тем же ключом, то целесообразно не каждый раз проверять цепочку, а периодически (скажем, раз в минуту или в час), а основной объём операций подписи проводить без такой проверки (с ключом -nochain). |
|
3 пользователей поблагодарили Русев Андрей за этот пост.
|
Андрей * оставлено 15.06.2024(UTC), nickm оставлено 15.06.2024(UTC), log-la оставлено 19.06.2024(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2023(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Автор: Русев Андрей Так что на пакетную обработку, вероятно, стоит перейти Я сейчас попробовал пакетную обработку, это вообще бомба, спс!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close