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

Уведомление

Icon
Error

4 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline ivanko  
#1 Оставлено : 19 ноября 2020 г. 13:09:25(UTC)
ivanko

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Поиск по сертификату в сервисе кэширования

Уважаемые коллеги!

Столкнулись вот с чем - JCSP не может найти ключевой контейнер по сертификату, если ключевой контейнер был закеширован в службе кэширования ключевых сертификатов, а ключевой носитель извлечен из системы.

Версия JCSP v5.0.40424 (правда написано, что License: 4.0)
CryptoPro CSP - 4.0.9963

Сценарий
Создать виртуальную дискету ImDrive
Распаковать архив с каталогами .000

Открыть апплет СryptoPro CSP панели управления, закладкa "service", кнопка "view certificates in container".

Выбрать ключевой контейнер, нажать next, дождаться появления информации о сертификате.

Установить сертификат в локальное хранилище кнопкой install. При кешировании установленного ранее ключа с другого носителя необходимо повторить импорт сертификата, т.к. сертификат в хранилище связан с закрытым ключом на носителе.

Выполнить обращение к ключам с вводом пина и проставлением галочки.

И дальше
Код:

		X509Certificate c = getCrt();
		String alias = "...";"
	    for (Object storeT : KeyStoreConfig.getInstance().getNames()) {
        	KeyStore store = KeyStore.getInstance(String.valueOf(storeT), JCSP.PROVIDER_NAME);
	        store.load(null, null);
		log("Store type: " + storeT);

	        String A = store.getCertificateAlias(c);
		log("Searching by crt " + crtFileName);
		log(A);

        	Object c = (X509Certificate)store.getCertificate(alias);

		Enumeration<String> enumeration = store.aliases();
        	while (enumeration.hasMoreElements()) {
                	String alias1 = enumeration.nextElement();
	                log("Alias: " + alias1);
        	}
	        if(null != c){
			log("alias "+alias+" was found in "+ String.valueOf(storeT));
            		ks = store;
	        }
	    }


выдает вот такой вывод
Код:

//  вывод getCrt
Crt loaded CN=***** ******* *******, EMAILADDRESS=*******@rosenergo.com, OID.1.2.840.113549.1.9.2=NPADMNTS
// Поиск по носителю REGISTRY
Store type: REGISTRY
Searching by crt roslov.crt.cer
null
alias roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy was found in REGISTRY
// Поиск по носителю FAT12_E
Store type: FAT12_E
Searching by crt roslov.crt.cer
null
Alias: le-4a602b0a-f3da-411e-a6ee-79dde50f0907
Alias: le-e3a4030c-d46f-4cf1-8c57-c205544da382
Alias: te-f8d70535-ee62-4ac4-8b27-ceae5153db56
Alias: soi2_kovalenko_ig_ats
Alias: testovich_1_12_2022
Alias: soi2_ivan4
alias roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy was found in FAT12_E



То есть закешированный ключевой контейнер определяется во всех ключевых носителях, но по сертификату не находится. Вопрос как получить возможность доступа к ключевому контейнеру (и выполнения криптографических операций) по сертификату или каким-то атрибутам сертификата (hash, sn и issuer) ?
Offline Евгений Афанасьев  
#2 Оставлено : 19 ноября 2020 г. 16:42:16(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
То есть не работает поиск с помощью store.getCertificateAlias(c), где с - сертификат? В сам ключевой контейнер сертификат установлен? Так как при таком поиске сертификат берется из ключевого контейнера и сравнивается с тем, что передали в функцию.

Отредактировано пользователем 19 ноября 2020 г. 16:43:26(UTC)  | Причина: Не указана

Offline ivanko  
#3 Оставлено : 19 ноября 2020 г. 22:21:09(UTC)
ivanko

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Как это узнать?
Открыл апплет CryptoProCSP.
Получил список доступных (Friendly Names) контейнеров для просмотра сертификата
- среди них нет имени контейнера, которое используется явно, и работает для генерации подписи
UserPostedImage
Решил выбрать по сертификату
При нажатии на кнопку "By certificate" выдалось окно с сертификатом из персонального хранилища
UserPostedImage
UserPostedImage
При выборе сертификата в поле Key container name образовалось имя контейнера на носителе из которого происходило кеширование.
UserPostedImage
При нажатии кнопки next сертификат отобразился
UserPostedImage
Offline Евгений Афанасьев  
#4 Оставлено : 20 ноября 2020 г. 0:06:30(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Запустите панель controlpane в папке дистрибутива jcsp на той java, куда установили jcsp, и откройте контейнер там, потому что csp может показывать сертификат из системного хранилища My.
Offline ivanko  
#5 Оставлено : 20 ноября 2020 г. 0:56:15(UTC)
ivanko

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Не совсем понял как это, но пусть так.
Java установлена в c:/soi-jcsp/jdk
JCSP установлена туда же (C:\soi-jcsp\jdk\jre\lib\ext\JCPControlPane.jar)
Запустил из другого каталоге из каталога C:\soi-jcsp\jdk\bin\
C:\soi-jcsp\jdk\bin\java.exe -Dfile.encoding=cp866 ru.CryptoPro.JCP.ControlPane.MainControlPane

на вкладке keys and certifcate stores не отображается ключевой контейнер из службы кэширования
UserPostedImage
Offline Евгений Афанасьев  
#6 Оставлено : 20 ноября 2020 г. 9:31:11(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Запуск панели производите под тем же пользователем, что и приложение? Код перечисления контейнеров мало отличается, нужно запускать панель под тем же пользователем + проверить, нет ли в консоли, где записана команда для запуска панели, ошибок.
Offline ivanko  
#7 Оставлено : 20 ноября 2020 г. 10:19:29(UTC)
ivanko

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Да, разумеется, запуск панели и кода производится под одним пользователем.
Сейчас приложу вывод в поток ошибок при запуске панели panel.err.txt (27kb) загружен 4 раз(а).
Offline Евгений Афанасьев  
#8 Оставлено : 20 ноября 2020 г. 14:22:25(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Скачивается файл нулевого размера.
Offline ivanko  
#9 Оставлено : 20 ноября 2020 г. 14:54:03(UTC)
ivanko

Статус: Активный участник

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Файлы почему-то не грузятся
Offline Евгений Афанасьев  
#10 Оставлено : 20 ноября 2020 г. 15:48:25(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Если программно он виден, то и в панели должен, если пользователь тот же. Ошибок нет в консоли, хотя видно, что нет некоторых прав для доступа в реестр (RegOpenKey...error).
Попробуйте скачать JCSP новее и CSP 5.0 и проверить с ними.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.