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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Konstantin Agile  
#11 Оставлено : 18 августа 2021 г. 18:22:40(UTC)
Konstantin Agile

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

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

Автор: Андрей * Перейти к цитате
в логе подключение и отключение было: CPCReleaseContext
второе подключение (в котором был вызов CryptSignHash) было уже с другим указателем (hProv)


Между первой парой вызовов CPCAcquireContext и CPCReleaseContext не было других операций.
Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?

Offline two_oceans  
#12 Оставлено : 19 августа 2021 г. 6:14:17(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 394 раз в 366 постах
Автор: Konstantin Agile Перейти к цитате
Какой вызов в логе КриптоПРО CSP соответствует запросу наличия ЗК?

Между первой парой вызовов CPCAcquireContext и CPCReleaseContext не было других операций.
Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?
Насчет того, какой вызов соответствует запросу пароля тут давненько идут баталии, полной правды пока не видел. В теории можно вызвать CryptAcquireContext (создать hProv), потом установить для hProv параметр с пин-кодом и запроса не будет при всех операциях с этим hProv (а то и с этим контейнером - если закэшируется пароль в хранилище). Из этого как бы следует, что CryptAcquireContext не запрашивает пароль. В теории.

Также очевидно что если к моменту вызова CryptSignHash пин-код не сохранен средствами криптопровайдера, не закэширован в хранилище (за это отвечает Microsoft CryptoApi) и не установлен для конкретного hProv, то CryptSignHash вызовет обращение к закрытому ключу и запрос пин-кода точно будет. Про то, что в промежутке между CryptAcquireContext и CryptSignHash - не ясно, в теории тоже не должно спрашивать.

Например, при подписи xml хэш считается минимум 2 раза, подписывается только последний. Иногда для первого вычисления хэша также вызывают контекст с контейнером вместо VERIFY_CONTEXT.

Кроме того, мне вспоминается поведение КриптоПро CSP когда у меня запрашивались пин-коды от трех "первых попавшихся" контейнеров и если в них не находилось нужного, выдавалась ошибка. Не очень хорошо помню при какой ситуации это было. При "автоопределении" контейнера, соответствующего сертификату или при вызове CryptAcquireCertificatePrivateKey.
Автор: Konstantin Agile Перейти к цитате
Наличие ЗК можно проверить по сертификату для этого ввод пароля ведь не требуется.
Сертификат это сертификат, в нем не хранится ссылка на контейнер ЗК. В хранилище ссылка хранится, но некоторым плагинам этого мало и они перечисляют сами контейнеры, а вдруг токен не вставлен. Контуровская диагностика активно продвигает драйверы рутокена, что на самом деле контейнер не на токене - алгоритм не волнует. Так что и плагин может быть написан с упором на токены. Более того, диагностика еще и выдает рекомендацию использовать КС1 вместо КС2.
Автор: Konstantin Agile Перейти к цитате
Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?
Модальное окно запроса пароля? Серьезно? Модальное - это когда не дает переключиться на какое-то другое (родительское) окно, на версии 4 мне такое не встречалось - для этого надо специально передавать hwnd родительского окна.

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.