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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline log-la  
#1 Оставлено : 14 июня 2024 г. 16:31:47(UTC)
log-la

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

Группы: Участники
Зарегистрирован: 19.05.2023(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 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
Offline Русев Андрей  
#2 Оставлено : 14 июня 2024 г. 17:14:10(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,373

Сказал(а) «Спасибо»: 27 раз
Поблагодарили: 537 раз в 376 постах
Здравствуйте.
На сервере тоже Debian и КриптоПро CSP 4.0 R4? Вне зависимости от ответа отмечу, что начиная с 2021-07-18 КриптоПро CSP 5.0.12222 Lilith
в cryptcp с командами -signf, -addsignf, -vsignf добавлена опция -threads для распараллеливания работы. Возможно, вы сможете сгруппировать подписываемые файлы в папку, тогда на 16-ядерном сервере можно будет обрабатывать их в 16 потоков.
Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
nickm оставлено 15.06.2024(UTC)
Offline log-la  
#3 Оставлено : 14 июня 2024 г. 17:27:44(UTC)
log-la

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

Группы: Участники
Зарегистрирован: 19.05.2023(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 1 раз
Да, на сервере тоже debian/ubuntu и КриптоПро CSP 4.0 R4. Докер образ один и тот же.

По поводу опции -threads в 5 версии понял, спасибо, буду знать. Но вариант сейчас маловероятен к применению, т.к. лицензия есть именно на 4 версию + переписывать само приложение под 5 версию не сильно предсказуемо сколько составит по времени, а какой-то закон обязывающий подписывать именно с токена уже с сентября вступит в силу) Поэтому хотелось отделаться малой кровью и понять в чём отличие работы на ноутбуке и на сервере и эту часть пофиксить.

Кстати, а с опцией -threads не будет токен как точка замедления? Даже если представить что сам криптопро будет быстро во много потоков работать, он же всё равно за каждой подписью ходит в один и тот же токен, там же по идее никакого распаралеливания не будет. Или условно хождение в токен это 5% работы, а остальное работа самого криптопро и поэтому главное распаралелить его часть?
Offline Андрей *  
#4 Оставлено : 14 июня 2024 г. 17:35:05(UTC)
Андрей *

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

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

Сказал «Спасибо»: 530 раз
Поблагодарили: 2163 раз в 1688 постах
у Вас Рутокен Lite - хранилище, а не аппаратное СКЗИ.
Ключ кэшируется в криптопровайдере.
Техническую поддержку оказываем тут
Наша база знаний
Offline log-la  
#5 Оставлено : 14 июня 2024 г. 17:41:24(UTC)
log-la

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

Группы: Участники
Зарегистрирован: 19.05.2023(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате
у Вас Рутокен Lite - хранилище, а не аппаратное СКЗИ.
Ключ кэшируется в криптопровайдере.

Но на каждую подпись же криптопро ходит в токен в моём понимании, т.к. я вижу что в момент подписи есть мигание токена. Если данные берутся из кеша, тогда не пойму почему происходит мигание токена, если он никак не задействуется.
Offline Русев Андрей  
#6 Оставлено : 14 июня 2024 г. 22:58:26(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,373

Сказал(а) «Спасибо»: 27 раз
Поблагодарили: 537 раз в 376 постах
Автор: 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).
Официальная техподдержка. Официальная база знаний.
thanks 3 пользователей поблагодарили Русев Андрей за этот пост.
Андрей * оставлено 15.06.2024(UTC), nickm оставлено 15.06.2024(UTC), log-la оставлено 19.06.2024(UTC)
Offline log-la  
#7 Оставлено : 19 июня 2024 г. 18:49:38(UTC)
log-la

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

Группы: Участники
Зарегистрирован: 19.05.2023(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 1 раз
Автор: Русев Андрей Перейти к цитате
Так что на пакетную обработку, вероятно, стоит перейти


Я сейчас попробовал пакетную обработку, это вообще бомба, спс!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.