Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.10.2019(UTC) Сообщений: 56  Откуда: Новосибирск Сказал(а) «Спасибо»: 14 раз
|
Здравствуйте. Как можно получить перечень наименований всех ключевых носителей на компьютере? Те носители, которые потом используются для подключения к KeyStore: KeyStore ks = KeyStore.getInstance(JCP.HD_STORE_NAME, JCP.PROVIDER_NAME);
Понятно, что можно просто последовательно просканировать на предмет доступности JCP.HD_STORE_NAME, JCP.FLOPPY_STORE_NAME, JCP.MEMORY_STORE_NAME. Но как поступать с RutokenStore? Если воткнут один рутокен - он так и определяется как RutokenStore, а если их два, то они в консоли JCP отображаются как RutokenStore_39667565 и RutokenStore_3966B22. В документации этот момент не отображён.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.10.2019(UTC) Сообщений: 56  Откуда: Новосибирск Сказал(а) «Спасибо»: 14 раз
|
И в догонку ещё один вопрос - можно ли как-то сериализовать полученную с помощью
KeyPair pair = kg.generateKeyPair();
ключевую пару. А то при попытки сделать это у меня вываливается ошибка:
java.io.NotSerializableException
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Автор: Алексей Черенцов  Как можно получить перечень наименований всех ключевых носителей на компьютере? Те носители, которые потом используются для подключения к KeyStore: KeyStore ks = KeyStore.getInstance(JCP.HD_STORE_NAME, JCP.PROVIDER_NAME); Понятно, что можно просто последовательно просканировать на предмет доступности JCP.HD_STORE_NAME, JCP.FLOPPY_STORE_NAME, JCP.MEMORY_STORE_NAME. Но как поступать с RutokenStore? Если воткнут один рутокен - он так и определяется как RutokenStore, а если их два, то они в консоли JCP отображаются как RutokenStore_39667565 и RutokenStore_3966B22. В документации этот момент не отображён.
Можно перечислить, например, Service и извлечь все алгоритмы в строке, содержащей "KeyStore": Код:
Provider provider = new JCP();
Set<Provider.Service> services = provider .getServices();
// Список типов контейнеров.
for (Provider.Service service : services) {
if (service.getType().equalsIgnoreCase("KeyStore")) {
list.add(service.getAlgorithm());
} // if
} // for
У рутокена добавляет серийный номер, если их подключено больше одного. Если нет ни одного, то, по идее, RutokeStore пропадет из списка list. В панели JCP на вкладке "Рутокен" вроде была галка, которая позволяла отключить деление рутокенов по серийным номерам, и все они тогда объединялись в один RutokenStore. Автор: Алексей Черенцов  можно ли как-то сериализовать полученную с помощью KeyPair pair = kg.generateKeyPair(); ключевую пару. А то при попытки сделать это у меня вываливается ошибка: java.io.NotSerializableException
Нет, извлечь ключи нельзя, экспорт запрещен. |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.10.2019(UTC) Сообщений: 56  Откуда: Новосибирск Сказал(а) «Спасибо»: 14 раз
|
Спасибо за оперативный ответ! Цитата:Нет, извлечь ключи нельзя, экспорт запрещен. У нас один из вариантов предусматривает режим работы при отсуствии прямого доступа к Удостоверяющему Центру. И соответственно отправка в Центр запроса на формирования скртификата может проходить не в онлайн режиме, а неким другим способом. Как я понял из документации, в хранилище я могу сохранить ключевую пару только совместно с сертификатом этой пары. Возникает вопрос - получается сформированную ключевую пару, на которую отправляется запрос в режиме "офлайн", надо всё это время держать в памяти? Или быть может Вы сможете подсказать другой, какой-нибудь элегантный, способ отложенного запроса сертификата из удостоверяющего центра?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Если у вас долговременная пара, и между моментом создания ключей и выпуском в УЦ сертификата большой промежуток времени, то сохраните в ключевой контейнер закрытый ключ и самоподписанный сертификат (заглушку) с помощью keyStore.setKeyEntry(alias, password, cert_stub), код генерации самоподписанного сертификата есть, кажется, в примере Certificates в userSamples в samples-sources.jar. Когда появится сертификат/цепочка, найдите контейнер и выполните для него keyStore.setCertificateEntry(alias, certs), сертификат в контейнере обновится. Отредактировано пользователем 18 февраля 2020 г. 13:15:08(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.10.2019(UTC) Сообщений: 56  Откуда: Новосибирск Сказал(а) «Спасибо»: 14 раз
|
Спасибо за наводку на механизм выборки всех типов KeyStore. При этом заметил, что на JCP нет носителя типа FLASH. Причём когда запрашиваешь носители через утилиту csptest ключи на FLASH отображаются. Код:$ /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn
SP (Type:80) v4.0.9019 KC2 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 31196467
\\.\FLASH\BGPBSig1
\\.\FLASH\BGPBSig2
\\.\FLASH\MGBSign1
.........
В документации тоже ничего про флэшки не нашёл. То есть правильно я понял, что JCP с флэшками не работает? Или существует какой хитрый способ?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
В JCP ограничен набор считывателей, среди них нет flash, хотя можно на вкладке "Оборудование" в панели управления в поле буквы Floppy задать букву диска и через FloppyStore получить доступ к содержимому носителя, но это работает, пока буква не изменилась. Отредактировано пользователем 20 февраля 2020 г. 10:13:53(UTC)
| Причина: Не указана |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.10.2019(UTC) Сообщений: 56  Откуда: Новосибирск Сказал(а) «Спасибо»: 14 раз
|
Спасибо. Следуйщий вопрос с которым столкнулся - срок действия ключа устанавливается 3 месяца. Изменить этот срок не получается. задаю срок так, как в инструкции написано: Код://Генератор ключевых пар электронной подписи
KeyPairGenerator kg = KeyPairGenerator.getInstance(JCP.GOST_DH_2012_256_NAME, JCP.PROVIDER_NAME);
//Указание срока действия ключа
kg.initialize(new PKUPSignatureSpec(6, Calendar.MONTH));
//Создание ключевой пары
KeyPair pair = kg.generateKeyPair();
Может как-то по другому нужно срок действия задавать?
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Тут наверно надо уточнить вопрос - срок ключа в контейнере или срок действия в сертификате? Если получаете сертификат в тестовом УЦ, то срок сертификата будет 3 месяца независимо от срока действия ключа в контейнере. Значение в сертификате зависит от настроек УЦ и изменить в большую сторону при генерации ключа не получится. В меньшую возможно выйдет (зависит от УЦ). Зато при генерации Вы сможете менять срок в контейнере. Максимально по законодательству для извлекаемых ключей срок может быть 1 год 3 месяца, но на тестовом УЦ максимум настроен 3 месяца. На аккредитованном УЦ как правило срок будет 12 или 15 месяцев.
С другой стороны, даже если какой-то неаккредитованный УЦ поставит по своим настройкам в сертификат срок 5 лет, то криптопровайдер ограничит срок ключа в контейнере до 1 года 3 месяцев. После этого срока нужно будет либо генерировать новый ключ либо пересоздавать контейнер для существующего ключа либо отключать контроль срока.
Отредактировано пользователем 21 февраля 2020 г. 7:43:38(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close