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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline bes67  
#1 Оставлено : 2 апреля 2026 г. 18:30:42(UTC)
bes67

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

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

Добрый вечер.

Ситуация следующая. Имеется РЕД ОС 8, установлена на ней КриптоПро 5.0 R3 13000 KC2, работает написанное на Java 17 с использованием JavaCSP 5.0 rel 5.0.45549-A приложение. Задача стоит подписывать данные как при подключенном носителе с контейнерами ключей, так и при "выдернутом" носителе. Для тестов используется флешка с несколькими контейнерами. Выполнены следующие действия для включения кеширования:

- AllowWorkWithoutCarrier = 1
- AuthPositions = 307
- cached = 10

При подключенном носителе производится обращение к контейнерам из cptools, работа с ними - подпись данных при помощи cryptcp. После запроса паролей при первом обращении при повторных обращениях пароли более не запрашиваются. После этого тестовые подписи производятся как при помощи cryptcp, так и при помощи приложения java. Затем флешка извлекается. После этого подписи продолжает успешно производиться как cryptcp, так и в приложении java. После перезапуска терминала, cryptcp всё также продолжает успешно подписывать данные. Но после перезапуска приложения Java, подпись с его помощью более произвести не удаётся - возникает ошибка, связанная с невозможностью найти нужный считыватель, и его действительно больше не видно ни в cptools, на в панели JCP/JCSP, ни в приложении.

Код java, в принципе, стандартный (схематично):

Код:

KeyStore store = KeyStore.getInstance("storagename", JCSP.PROVIDER_NAME);
store.load(null, null);
Object key = store.getKey("alias", null);
Object cert = store.getCertificate("alias");


storagename - имя флешки, alias - алиас контейнера.

В своё время, когда решался похожий вопрос на Windows, была получена рекомендация использовать в качестве storagename REGISTRY, и всё счастливо функционирует до сих пор. Тут я каких только названий для storagename не подставлял, либо ошибка хранилище не найдено, либо getKey/getCertificate возвращают null.

Да, забыл, где-то в описаниях изменений вычитал, что можно Java приложению передать -Dcsp.cache=true для "добавления поддержки работы с ключами, закэшированными службой хранения ключей" (чтобы это ни значило), но поведение приложения никак не изменилось.

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