Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Получение списка контейнеров CAPICOM/CryptoPro Browser Plugin
Статус: Участник
Группы: Участники
Зарегистрирован: 13.01.2016(UTC) Сообщений: 27  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Возможно ли получить список контейнеров при помощи CAPICOM/CryptoPro Browser Plugin на js? Что-нибудь похожее на CryptoPro.Sharpei.Gost3410CryptoServiceProvider.selectContainer, если делать через Sharpei. Если нет такого выбора, то просто получить список всех контейнеров. Отредактировано пользователем 25 апреля 2016 г. 14:54:33(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
Автор: 2ndbrezhnev  Возможно ли получить список контейнеров при помощи CAPICOM/CryptoPro Browser Plugin на js? Что-нибудь похожее на CryptoPro.Sharpei.Gost3410CryptoServiceProvider.selectContainer, если делать через Sharpei.
Если нет такого выбора, то просто получить список всех контейнеров. Здравствуйте. Конечная цель какая? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.01.2016(UTC) Сообщений: 27  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Здравствуйте. Необходимо определить наличие контейнера на компьютере пользователя, чтобы выдать корректное сообщение о возможности установить сертификат (или необходимости создать закрытый ключ + запрос) При необходимости пересоздать запрос на том же ключе, что был ранее создан. Пересоздание ключа сделал.
Сейчас вопрос с тем, как клиента оповестить при отсутствии контейнера, что он должен создать запрос с новым закрытым ключом, т.к. не найден старый. Для этого мне нужно получить список контейнеров, которые присутствуют на компьютере пользователя.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
Автор: 2ndbrezhnev  Здравствуйте. Необходимо определить наличие контейнера на компьютере пользователя, чтобы выдать корректное сообщение о возможности установить сертификат (или необходимости создать закрытый ключ + запрос) При необходимости пересоздать запрос на том же ключе, что был ранее создан. Пересоздание ключа сделал.
Сейчас вопрос с тем, как клиента оповестить при отсутствии контейнера, что он должен создать запрос с новым закрытым ключом, т.к. не найден старый. Для этого мне нужно получить список контейнеров, которые присутствуют на компьютере пользователя. Не рассматривался случай, когда контейнер на съемном носителе и который на момент проверки не подключен?  InstallCert.png (25kb) загружен 88 раз(а).см. пример установки (через IE) https://cryptopro.ru/certsrv/certfnsh.aspКод:
If Err.Number=&H80092004 Then 'CRYPT_E_NOT_FOUND
' the private key was not found - most likely this is an attempt to reinstall
sMessage=L_NoPrivKey_ErrorMessage
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.01.2016(UTC) Сообщений: 27  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Цитата:Не рассматривался случай, когда контейнер на съемном носителе и который на момент проверки не подключен? Как раз хотелось бы определить наличие контейнера (хотя бы по имени) до попытки установки сертификата. То есть, существует контейнер, созданный пользователем при формировании запроса. Если пользователь открывает страницу и не находим контейнер, то сообщить ему, что нужно вставить носитель или сформировать новый запрос/контейнер. На этом этапе сертификата ещё нет. Отредактировано пользователем 25 апреля 2016 г. 16:36:12(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
Автор: 2ndbrezhnev  Цитата:Не рассматривался случай, когда контейнер на съемном носителе и который на момент проверки не подключен? Как раз хотелось бы определить наличие контейнера (хотя бы по имени) до попытки установки сертификата. То есть, существует контейнер, созданный пользователем при формировании запроса. Если пользователь открывает страницу и не находим контейнер, то сообщить ему, что нужно вставить носитель или сформировать новый запрос/контейнер. На этом этапе сертификата ещё нет. Имя и расположение контейнера известно? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.01.2016(UTC) Сообщений: 27  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Имя известно, а вот расположение нет- может быть и на носителе и на компьютере пользователя. Может быть есть вариант перебрать все носители? Отредактировано пользователем 25 апреля 2016 г. 19:27:54(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: 2ndbrezhnev  Как раз хотелось бы определить наличие контейнера (хотя бы по имени) до попытки установки сертификата. То есть, существует контейнер, созданный пользователем при формировании запроса. Если пользователь открывает страницу и не находим контейнер, то сообщить ему, что нужно вставить носитель или сформировать новый запрос/контейнер. На этом этапе сертификата ещё нет. Дорогие мои, ну когда научимся задачу описывать адекватно? "Хочу перебрать ключи (контейнеры)CAPICOM-ом" ответ: невозможно. "Если пользователь открывает страницу"- откуда известно имя контейнера? Его только что сгенерили? Тогда у вас все есть. Есть история создания запросов и имена созданных контейнеров (с расположением). В чем вопрос? Если у вас что-то типа УЦ и по запросу получаем сертификат, то в чем вопрос? Есть история. Если просто ставим сертификат, то скажу страшную тайну - наплевать на имя и расположения ключа (контейнера), КриптоПро пусть ищет. А она найдет и попросит вставить коли потребуется. И перезапишет при совпадении имен... Вот игрушка, всем клиентам ставлю.  CrtView.rar (42kb) загружен 21 раз(а). Посмотри, поиграйся. Правда это ми6, т.е. vb6. Однако при обращении к COM я думаю разница очень мала. ХиХи: только щасс заметил. Я хотел имя контейнера писать, но при обращении к отчуждаемому носителю просили ему вставить. Отказался. Но у cert.PrivateKey есть свойство IsHardware... Стыдно, но ранее я об этом не подумал. Завтра поиграюсь и учту. Успехов...
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 06.04.2020(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день :)
Обновлю пожалуй тему, в надежде что за 4 года что то изменилось. Вопрос так же по native messaging плагину КриптоПро.
Собственно, юзер создает запрос через Enroll.CreateRequest, у нас есть какие то данные этого юзера и этого запроса(сессия, сгенерированный токен, и тп). Можно ли как то через oStore вытащить любые данные данного запроса / его наличие в хранилище пользователя?
В данный момент у нас авторизация в условный профиль (для последующего получения сертификата) подвязана на наличие запроса, хочется все стандартизировать и перейти целиком на продукт КриптоПро, но пока просто не нашел варианта. Делать какую то отдельную web\email auth через сессии/токены очень не хотелось бы при наличии созданного запроса с закрытыми ключами, благо оно в разы надежнее.
use case самый обыкновенный. юзер пришел, сгенерировал запрос, ушел по своим делам. через месяц пришел, и вот тут нам надо понять, что это именно тот пользователь и дать ему возможность установить сертификат через InstallResponse.
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Добрый день. Наличие может быть можно определить, а вот с остальным... Полагаю, в описанном случае немного путаются понятия об идентификации и аутентификации и есть логическая ошибка. Опознание кто пришел - идентификация. Проверка, что это именно он (по паролю или смс или наличию закрытого ключа) - аутентификация. Зная кто пришел, Вы конечно можете поднять историю на своей стороне, определить имя последнего запроса и искать конкретный запрос от этого пользователя. Однако за месяц высок шанс, что пользователь забудет логин, удалит сгенерированные куки с токенами, практически наверняка истекут все сессии, то есть проблема возникнет уже на стадии идентификации. Предлагаете опознавать так: перечислять все запросы в хранилище и по каждому найденному запросу в хранилище потом искать по своей базе кто такой запрос отправлял? Это немного небезопасно в том плане, что на одном рабочем месте с одним именем пользователя операционной системы теоретически могут быть созданы запросы на разных пользователей информационной системы, тогда запросы упадут в одно хранилище и будет сложно разобраться кто из них сейчас хочет зайти. С такой неоднозначностью нужно окно выбора запроса, если конечно запросы чем-то отличаются кроме ключей (по значениям открытого ключа вряд ли пользователь будет их отличать какой к чему). С другой стороны, представим что пользователь хочет получить результат с другого места (перенеся туда контейнер) и там не оказалось запроса - фатал еррор и предложение генерировать снова? Это делает невозможным нормальный процесс идентификации по наличию запроса. Поэтому наверно (если так уж хочется избавиться от всех посторонних идентификаторов) более правильный вариант будет не искать запрос, а выводить на клиентской стороне список контейнеров (или даже уже: контейнеров без сертификата). Закрытым ключом выбранного контейнера подписать некие сгенерированные сервером данные и хэш открытого ключа из контейнера. Тогда серверная сторона сможет найти по хэшу открытого ключа выпущенный на серверной стороне сертификат (идентификация клиента) и этим сертификатом проверить подпись (аутентификация по факту наличия закрытого ключа у клиентской стороны), а сгенерированные данные защищают от атак повтором известного ответа. Однако тут не уверен, возможно упираемся что такой функциональности (перечисления контейнеров, получения открытого ключа из контейнера и подписи ключом без сертификата) не найдется в интерфейсе плагина, так как это низкоуровневые функции из криптопровайдера. Отредактировано пользователем 4 августа 2020 г. 11:04:06(UTC)
| Причина: Не указана
|
 1 пользователь поблагодарил two_oceans за этот пост.
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Получение списка контейнеров CAPICOM/CryptoPro Browser Plugin
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close