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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline ivanko  
#11 Оставлено : 20 ноября 2020 г. 15:54:42(UTC)
ivanko

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Программно носитель не видно - в перечислении видны только REGISTRY и FAT12_E. Но если в апплете CryptoPro CSP искать по сертификату, то в поле unique container попадает наименование носителя и путь ключевого контейнера на нем.
Offline Евгений Афанасьев  
#12 Оставлено : 20 ноября 2020 г. 16:18:08(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: ivanko Перейти к цитате
Программно носитель не видно - в перечислении видны только REGISTRY и FAT12_E. Но если в апплете CryptoPro CSP искать по сертификату, то в поле unique container попадает наименование носителя и путь ключевого контейнера на нем.


Вы ведь получили в коде "alias roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy was found in REGISTRY" - значит, контейнер получен програмно.
То, что он не найден по сертификату программно, как вы хотите, может быть связано с тем, что в контейнере нет сертификата - вы могли установить сертификат в My и связать с контейнером, потому CSP его может видеть, а JCSP - нет. Потому было предложено проверить в панели JCP - есть ли сертификат в контейнере, но контейнер не виден, возможно, нет прав. Попробуйте найти этот установленный контейнер в реестре и проверить размер его header.key. Еще можно приложить тест контейнера в панели CSP сюда.
Offline ivanko  
#13 Оставлено : 20 ноября 2020 г. 16:37:57(UTC)
ivanko

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Ни в реестре, ни в FAT12_E этого контейнера нет, потому что они не выдаются в перечислении. Но выдаются по прямому имени. Как проверить программно есть ли в контейнере сертификат или нет?

Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\JavaSoft]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\/Crypto/Pro]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\/Crypto/Pro\/J/C/P]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\/Crypto/Pro\/J/C/P\/Control/Pane]
"trusts"=""
"/J/C/P/Dialog_parametres_/Input/Password_pos/X"="10"
"/J/C/P/Dialog_parametres_/Input/Password_pos/Y"="10"


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

Offline Евгений Афанасьев  
#14 Оставлено : 20 ноября 2020 г. 16:42:02(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
alias roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy - это не он?
"Ни в реестре, ни в FAT12_E этого контейнера нет, потому что они не выдаются в перечислении. Но выдаются по прямому имени." -фраза непонятна. Если контейнера нет, то он никак не будет выдан. Если он выдается - то он есть, и если это roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy - то, как написано в вашем логе, он в реестре.
Программно: Object c = (X509Certificate)store.getCertificate(alias); в вашем коде.

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

Offline Евгений Афанасьев  
#15 Оставлено : 20 ноября 2020 г. 16:43:52(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: ivanko Перейти к цитате

Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\JavaSoft]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\/Crypto/Pro]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\/Crypto/Pro\/J/C/P]

[HKEY_CURRENT_USER\Software\JavaSoft\Prefs\ru\/Crypto/Pro\/J/C/P\/Control/Pane]
"trusts"=""
"/J/C/P/Dialog_parametres_/Input/Password_pos/X"="10"
"/J/C/P/Dialog_parametres_/Input/Password_pos/Y"="10"

Это настройки JCP/JCSP, к месту хранения контейнеров отношения не имеют.

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

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Автор: Евгений Афанасьев Перейти к цитате
alias roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy - это не он?

Это он, но его физически нет ни в реестре, ни на дискете. Он лежит в сервисе кеширования.
Автор: Евгений Афанасьев Перейти к цитате

"Ни в реестре, ни в FAT12_E этого контейнера нет, потому что они не выдаются в перечислении. Но выдаются по прямому имени." -фраза непонятна. Если контейнера нет, то он никак не будет выдан. Если он выдается - то он есть, и если это roslov190220287caa8f-a18f-45be-ade0-dde5142aeb78-copy - то, как написано в вашем логе, он в реестре.
Программно: Object c = (X509Certificate)store.getCertificate(alias); в вашем коде.


Так, чтобы не было разночтений.
Я взял вот такой код


Что в нем происходит - перечисляем хранилища, в каждом делаем так - сначала пытаемся получить имя контейнера по сертификату. Потом явно ищем имя контейнера. Потом перечисляем контейнеры в хранилище.

Результат


Выходит, что нужный (кэшированный) контейнер в обоих хранилищах, но в перечислении не выводится. То есть обращения к штатным хранилищам перехватывает служба кеширования, которая на прямой запрос может отдать кешированный контейнер, а операции перечисления и поиска по сертификату пропускает прямо в хранилище, никак не модифицируя ответ.
И сразу ответ про сертификат в контейнере - очевидно, он там есть, раз в прямом доступе возвращается сертификат, связанный с ключом, а не null.

Вопрос - как можно обратиться к хранилищу службы кеширования? учитывая, что носитель с которого кешировали ключевой контейнер в системе не присутствует.
Offline Евгений Афанасьев  
#17 Оставлено : 21 ноября 2020 г. 10:46:34(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
То ест проблема в том, что при перечислении контейнер не виден, только при явном обращении к нему по имени?

Отредактировано пользователем 21 ноября 2020 г. 10:48:25(UTC)  | Причина: Не указана

Offline ivanko  
#18 Оставлено : 21 ноября 2020 г. 10:57:06(UTC)
ivanko

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 3 раз в 2 постах
Да, именно в этом проблема. Имена контейнеров - это слишком низкий уровень абстракции для нашего процесса и хочется как в Delphi получать контейнер по сертификату.
Offline Евгений Афанасьев  
#19 Оставлено : 21 ноября 2020 г. 12:20:41(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Если контейнер не виден при перечислении, то getCertificateAlias(cert) не сработает, потому что он как раз работает через перечисление: перечисляет все алиасы, получает у них сертификаты и сравнивает с cert. Подумаем, что можно сделать.
Offline Евгений Афанасьев  
#20 Оставлено : 21 ноября 2020 г. 13:04:26(UTC)
Евгений Афанасьев

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

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

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