Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Как программно определить сертификаты которые на токене?
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.03.2019(UTC) Сообщений: 79 Сказал(а) «Спасибо»: 4 раз
|
Добрый день!
Как программно определить сертификаты которые на токене?
Например в личном хранилище несколько сертификатов, часть в реестре, часть на токене. Нужно выбрать те, которые на токене.
Спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: Alex_DotNETAlexAlex_DotNET112358 Добрый день!
Как программно определить сертификаты которые на токене?
Например в личном хранилище несколько сертификатов, часть в реестре, часть на токене. Нужно выбрать те, которые на токене.
Спасибо. Добрый день. Если сертификат установлен с привязкой к закрытому ключу, то можно получить описатель этой привязки CertGetCertificateContextProperty (CERT_KEY_PROV_INFO_PROP_ID). В результате получите структуру CRYPT_KEY_PROV_INFO, в которой есть поле pwszContainerName. Это поле определяет, где лежит закрытый ключ. Если он на токене, то в ссылка будет начиинаться со слова "SCARD". |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Здравствуйте. Примеры: Цитата:\\.\Aktiv Co. ruToken 0\... \\.\Aktiv Rutoken lite 0\... SCARD\ETOKEN_JAVA_... SCARD\MSkey_... SCARD\rutoken_... SCARD\rutoken_ecp_... SCARD\rutoken_lt_... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: Андрей Писарев Здравствуйте. Примеры: Цитата:\\.\Aktiv Co. ruToken 0\... \\.\Aktiv Rutoken lite 0\... SCARD\ETOKEN_JAVA_... SCARD\MSkey_... SCARD\rutoken_... SCARD\rutoken_ecp_... SCARD\rutoken_lt_... Строчек типа \\.\Aktiv ... там быть не может. Только SCARD\ |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: Агафьин Сергей Автор: Андрей Писарев Здравствуйте. Примеры: Цитата:\\.\Aktiv Co. ruToken 0\... \\.\Aktiv Rutoken lite 0\... SCARD\ETOKEN_JAVA_... SCARD\MSkey_... SCARD\rutoken_... SCARD\rutoken_ecp_... SCARD\rutoken_lt_... Строчек типа \\.\Aktiv ... там быть не может. Только SCARD\ Да, в указанной функции не будет. Предположил, что необходимо сертификаты получить, которые на токене (но их нет в хранилище Личное) - можно перечислением контейнеров (PP_ENUMCONTAINERS (используя CRYPT_UNIQUE и CRYPT_FQCN)) и по имени контейнера - "понять", что он на токене, а не на флешке\диске\... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: Андрей Писарев Автор: Агафьин Сергей Автор: Андрей Писарев Здравствуйте. Примеры: Цитата:\\.\Aktiv Co. ruToken 0\... \\.\Aktiv Rutoken lite 0\... SCARD\ETOKEN_JAVA_... SCARD\MSkey_... SCARD\rutoken_... SCARD\rutoken_ecp_... SCARD\rutoken_lt_... Строчек типа \\.\Aktiv ... там быть не может. Только SCARD\ Да, в указанной функции не будет. Предположил, что необходимо сертификаты получить, которые на токене (но их нет в хранилище Личное) - можно перечислением контейнеров (PP_ENUMCONTAINERS (используя CRYPT_UNIQUE и CRYPT_FQCN)) и по имени контейнера - "понять", что он на токене, а не на флешке\диске\... Это очень сложный путь и немного кривой. Задача: есть сертификаты в личном, нужно понять, какие относятся к токену. Очевидное решение: перечислять сертификаты и выбирать те, которые относятся к токену (в ссылке на закрытый ключ SCARD). Ваше решение: перечислить контейнеры на подключенных токенах, достать из них сертификаты, по этим сертификатам найти, какие из них установлены в хранилище. Фундаментальная проблема: если токен вытащен, способ не работает. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: Агафьин Сергей Автор: Андрей Писарев Автор: Агафьин Сергей Автор: Андрей Писарев Здравствуйте. Примеры: Цитата:\\.\Aktiv Co. ruToken 0\... \\.\Aktiv Rutoken lite 0\... SCARD\ETOKEN_JAVA_... SCARD\MSkey_... SCARD\rutoken_... SCARD\rutoken_ecp_... SCARD\rutoken_lt_... Строчек типа \\.\Aktiv ... там быть не может. Только SCARD\ Да, в указанной функции не будет. Предположил, что необходимо сертификаты получить, которые на токене (но их нет в хранилище Личное) - можно перечислением контейнеров (PP_ENUMCONTAINERS (используя CRYPT_UNIQUE и CRYPT_FQCN)) и по имени контейнера - "понять", что он на токене, а не на флешке\диске\... Это очень сложный путь и немного кривой. Задача: есть сертификаты в личном, нужно понять, какие относятся к токену. Очевидное решение: перечислять сертификаты и выбирать те, которые относятся к токену (в ссылке на закрытый ключ SCARD). Ваше решение: перечислить контейнеры на подключенных токенах, достать из них сертификаты, по этим сертификатам найти, какие из них установлены в хранилище. Фундаментальная проблема: если токен вытащен, способ не работает. Нет, речь про те сертификаты, которые только в контейнерах. Они не установлены в хранилище. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Аналогично сделано в js к плагину КриптоПро, сначала строится список установленных сертификатов, а потом идёт опрос контейнеров и вывод тех сертификатов, которые не установлены. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: Андрей Писарев Аналогично сделано в js к плагину КриптоПро, сначала строится список установленных сертификатов, а потом идёт опрос контейнеров и вывод тех сертификатов, которые не установлены. Хорошо, еще проще. А если в контейнере нет сертификата? Только в хранилище со ссылкой не закрытый ключ. Перечисление контейнеров и запрос из них сертификатов не приведет ни к чему. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: Агафьин Сергей Автор: Андрей Писарев Аналогично сделано в js к плагину КриптоПро, сначала строится список установленных сертификатов, а потом идёт опрос контейнеров и вывод тех сертификатов, которые не установлены. Хорошо, еще проще. А если в контейнере нет сертификата? Только в хранилище со ссылкой не закрытый ключ. Перечисление контейнеров и запрос из них сертификатов не приведет ни к чему. На "нет сертификата" - ничего и не будет. Есть ИС, которые лезут к контейнерам и именно там "требуют" наличие сертификата. Как раз для таких ИС и возникают периодически вопросы на форумах. Именно поэтому и в плагине сделано такой вариант "работы" с сертификатами, верно же? |
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Как программно определить сертификаты которые на токене?
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close