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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline 2ndbrezhnev  
#1 Оставлено : 15 апреля 2016 г. 16:47:43(UTC)
2ndbrezhnev

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
Возможно ли получить список контейнеров при помощи CAPICOM/CryptoPro Browser Plugin на js?
Что-нибудь похожее на CryptoPro.Sharpei.Gost3410CryptoServiceProvider.selectContainer, если делать через Sharpei.

Если нет такого выбора, то просто получить список всех контейнеров.

Отредактировано пользователем 25 апреля 2016 г. 14:54:33(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 25 апреля 2016 г. 15:30:18(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2045 раз в 1586 постах
Автор: 2ndbrezhnev Перейти к цитате
Возможно ли получить список контейнеров при помощи CAPICOM/CryptoPro Browser Plugin на js?
Что-нибудь похожее на CryptoPro.Sharpei.Gost3410CryptoServiceProvider.selectContainer, если делать через Sharpei.

Если нет такого выбора, то просто получить список всех контейнеров.


Здравствуйте.

Конечная цель какая?
Техническую поддержку оказываем тут
Наша база знаний
Offline 2ndbrezhnev  
#3 Оставлено : 25 апреля 2016 г. 15:55:31(UTC)
2ndbrezhnev

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
Здравствуйте.
Необходимо определить наличие контейнера на компьютере пользователя, чтобы выдать корректное сообщение о возможности установить сертификат (или необходимости создать закрытый ключ + запрос)
При необходимости пересоздать запрос на том же ключе, что был ранее создан.
Пересоздание ключа сделал.

Сейчас вопрос с тем, как клиента оповестить при отсутствии контейнера, что он должен создать запрос с новым закрытым ключом, т.к. не найден старый.
Для этого мне нужно получить список контейнеров, которые присутствуют на компьютере пользователя.
Offline Андрей Писарев  
#4 Оставлено : 25 апреля 2016 г. 16:06:08(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2045 раз в 1586 постах
Автор: 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

Техническую поддержку оказываем тут
Наша база знаний
Offline 2ndbrezhnev  
#5 Оставлено : 25 апреля 2016 г. 16:35:36(UTC)
2ndbrezhnev

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
Цитата:
Не рассматривался случай, когда контейнер на съемном носителе и который на момент проверки не подключен?


Как раз хотелось бы определить наличие контейнера (хотя бы по имени) до попытки установки сертификата.
То есть, существует контейнер, созданный пользователем при формировании запроса.
Если пользователь открывает страницу и не находим контейнер, то сообщить ему, что нужно вставить носитель или сформировать новый запрос/контейнер. На этом этапе сертификата ещё нет.

Отредактировано пользователем 25 апреля 2016 г. 16:36:12(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#6 Оставлено : 25 апреля 2016 г. 18:24:01(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2045 раз в 1586 постах
Автор: 2ndbrezhnev Перейти к цитате
Цитата:
Не рассматривался случай, когда контейнер на съемном носителе и который на момент проверки не подключен?


Как раз хотелось бы определить наличие контейнера (хотя бы по имени) до попытки установки сертификата.
То есть, существует контейнер, созданный пользователем при формировании запроса.
Если пользователь открывает страницу и не находим контейнер, то сообщить ему, что нужно вставить носитель или сформировать новый запрос/контейнер. На этом этапе сертификата ещё нет.



Имя и расположение контейнера известно?
Техническую поддержку оказываем тут
Наша база знаний
Offline 2ndbrezhnev  
#7 Оставлено : 25 апреля 2016 г. 19:26:27(UTC)
2ndbrezhnev

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
Имя известно, а вот расположение нет- может быть и на носителе и на компьютере пользователя.
Может быть есть вариант перебрать все носители?

Отредактировано пользователем 25 апреля 2016 г. 19:27:54(UTC)  | Причина: Не указана

Offline Boris@Serezhkin.com  
#8 Оставлено : 25 апреля 2016 г. 23:35:58(UTC)
Boris@Serezhkin.com

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

Группы: Участники
Зарегистрирован: 26.08.2010(UTC)
Сообщений: 259
Откуда: Moscow

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Автор: 2ndbrezhnev Перейти к цитате
Как раз хотелось бы определить наличие контейнера (хотя бы по имени) до попытки установки сертификата.
То есть, существует контейнер, созданный пользователем при формировании запроса.
Если пользователь открывает страницу и не находим контейнер, то сообщить ему, что нужно вставить носитель или сформировать новый запрос/контейнер. На этом этапе сертификата ещё нет.

Дорогие мои, ну когда научимся задачу описывать адекватно?Shame on you
"Хочу перебрать ключи (контейнеры)CAPICOM-ом" ответ: невозможно.Liar
"Если пользователь открывает страницу"- откуда известно имя контейнера? Его только что сгенерили? Тогда у вас все есть. Есть история создания запросов и имена созданных контейнеров (с расположением). В чем вопрос?
Если у вас что-то типа УЦ и по запросу получаем сертификат, то в чем вопрос? Есть история.
Если просто ставим сертификат, то скажу страшную тайну - наплевать на имя и расположения ключа (контейнера), КриптоПро пусть ищет. А она найдет и попросит вставить коли потребуется. И перезапишет при совпадении имен...Dancing
Вот игрушка, всем клиентам ставлю. CrtView.rar (42kb) загружен 21 раз(а). Boo hoo!
Посмотри, поиграйся. Правда это ми6, т.е. vb6. Однако при обращении к COM я думаю разница очень мала.
ХиХи: только щасс заметил. Я хотел имя контейнера писать, но при обращении к отчуждаемому носителю просили ему вставить. Отказался.
Но у cert.PrivateKey есть свойство IsHardware...
Стыдно, но ранее я об этом не подумал. Завтра поиграюсь и учту.
Успехов...Dancing
Offline colorless  
#9 Оставлено : 3 августа 2020 г. 15:54:48(UTC)
colorless

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.04.2020(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 2 раз
Добрый день :)

Обновлю пожалуй тему, в надежде что за 4 года что то изменилось. Вопрос так же по native messaging плагину КриптоПро.

Собственно, юзер создает запрос через Enroll.CreateRequest, у нас есть какие то данные этого юзера и этого запроса(сессия, сгенерированный токен, и тп).
Можно ли как то через oStore вытащить любые данные данного запроса / его наличие в хранилище пользователя?

В данный момент у нас авторизация в условный профиль (для последующего получения сертификата) подвязана на наличие запроса, хочется все стандартизировать и перейти целиком на продукт КриптоПро, но пока просто не нашел варианта. Делать какую то отдельную web\email auth через сессии/токены очень не хотелось бы при наличии созданного запроса с закрытыми ключами, благо оно в разы надежнее.

use case самый обыкновенный. юзер пришел, сгенерировал запрос, ушел по своим делам. через месяц пришел, и вот тут нам надо понять, что это именно тот пользователь и дать ему возможность установить сертификат через InstallResponse.
Offline two_oceans  
#10 Оставлено : 4 августа 2020 г. 10:50:00(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 394 раз в 366 постах
Добрый день. Наличие может быть можно определить, а вот с остальным...

Полагаю, в описанном случае немного путаются понятия об идентификации и аутентификации и есть логическая ошибка. Опознание кто пришел - идентификация. Проверка, что это именно он (по паролю или смс или наличию закрытого ключа) - аутентификация. Зная кто пришел, Вы конечно можете поднять историю на своей стороне, определить имя последнего запроса и искать конкретный запрос от этого пользователя.

Однако за месяц высок шанс, что пользователь забудет логин, удалит сгенерированные куки с токенами, практически наверняка истекут все сессии, то есть проблема возникнет уже на стадии идентификации. Предлагаете опознавать так: перечислять все запросы в хранилище и по каждому найденному запросу в хранилище потом искать по своей базе кто такой запрос отправлял? Это немного небезопасно в том плане, что на одном рабочем месте с одним именем пользователя операционной системы теоретически могут быть созданы запросы на разных пользователей информационной системы, тогда запросы упадут в одно хранилище и будет сложно разобраться кто из них сейчас хочет зайти. С такой неоднозначностью нужно окно выбора запроса, если конечно запросы чем-то отличаются кроме ключей (по значениям открытого ключа вряд ли пользователь будет их отличать какой к чему).

С другой стороны, представим что пользователь хочет получить результат с другого места (перенеся туда контейнер) и там не оказалось запроса - фатал еррор и предложение генерировать снова? Это делает невозможным нормальный процесс идентификации по наличию запроса.

Поэтому наверно (если так уж хочется избавиться от всех посторонних идентификаторов) более правильный вариант будет не искать запрос, а выводить на клиентской стороне список контейнеров (или даже уже: контейнеров без сертификата). Закрытым ключом выбранного контейнера подписать некие сгенерированные сервером данные и хэш открытого ключа из контейнера. Тогда серверная сторона сможет найти по хэшу открытого ключа выпущенный на серверной стороне сертификат (идентификация клиента) и этим сертификатом проверить подпись (аутентификация по факту наличия закрытого ключа у клиентской стороны), а сгенерированные данные защищают от атак повтором известного ответа. Однако тут не уверен, возможно упираемся что такой функциональности (перечисления контейнеров, получения открытого ключа из контейнера и подписи ключом без сертификата) не найдется в интерфейсе плагина, так как это низкоуровневые функции из криптопровайдера.

Отредактировано пользователем 4 августа 2020 г. 11:04:06(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
colorless оставлено 04.08.2020(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.