logo Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline KDA  
#1 Оставлено : 27 февраля 2020 г. 17:15:41(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 3 раз в 3 постах
По мотивам этой темы

Имеем контекст CSP, открытый с флагом CRYPT_SILENT.
Неправильный пароль ставим через CryptSetProvParam(PP_KEYEXCHANGE_PIN)
Пятая версия теперь при вызове сразу генерирует код ошибки, что пароль неправильный (SCARD_W_WRONG_CHV). И это хорошо.
Однако последующий вызов функции, требующей пинкода, например, CryptSignHash,
теперь отваливается с кодом ошибки NTE_SILENT_CONTEXT, а не с кодом, что неправильный пароль, как в версиях 4 и ранее.

Подскажите, это - запланированное поведение или "временно получилось" ?

Отредактировано пользователем 27 февраля 2020 г. 17:18:30(UTC)  | Причина: Не указана

Offline Агафьин Сергей  
#2 Оставлено : 27 февраля 2020 г. 17:18:38(UTC)
Агафьин Сергей

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 96 раз в 84 постах
Автор: KDA Перейти к цитате
По мотивам этой темы

Имеем контекст CSP, открытый с флагом CRYPT_SILENT.
Неправильный пароль ставим через CryptSetProvParam(PP_KEYEXCHANGE_PIN)
Пятая версия теперь при вызове сразу генерирует код ошибки, что пароль неправильный (SCARD_W_WRONG_CHV). И это хорошо.
Однако последующий вызов функции, требующей пинкода, например, CryptSignHash,
теперь отваливается с кодом ошибки NTE_SILENT_CONTEXT, а не с кодом, что неправильный пароль, как в версиях 4 и ранее.

Подскажите, это - запланированное поведение или "временно получилось" ?



Добрый день.
Именно это является правильным поведением.
- Если на CryptSetProvParam передали неправильный ПИН, он верифицируется и сразу отбрасывается.
- Если при выполнении какой-то операции требуется ПИН, а его не было - выбрасывается окно с запросом. Если окно (любое окно) выкинуть нельзя, возвращается ошибка NTE_SILENT_CONTEXT.
С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН.
Техническую поддержку оказываем здесь.
Наша база знаний.
thanks 2 пользователей поблагодарили Агафьин Сергей за этот пост.
Максим Коллегин оставлено 27.02.2020(UTC), Андрей * оставлено 27.02.2020(UTC)
Offline KDA  
#3 Оставлено : 27 февраля 2020 г. 17:40:09(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 3 раз в 3 постах
Прошу прощения, но пин был, хоть и неправильный.
Если его не задавать, то предыдущие версии CSP тоже возвращали NTE_SILENT_CONTEXT.
Смысл в том, что теперь неправильный пароль нельзя запомнить, безусловно есть.
Но, получается, теперь задним числом нельзя понять, что контексту пытались скормить неправильный пароль, а не что-то еще.

Что будет в случае, скажем, "открыли контекст на контейнер со смарткарты, потом ее вынули, поменяли пароль, вставили обратно"?
Есть какой-то гарантированный вариант ошибок для всех типов данных устройств? Всегда ли теперь будет NTE_SILENT_CONTEXT?
Offline Агафьин Сергей  
#4 Оставлено : 27 февраля 2020 г. 18:00:12(UTC)
Агафьин Сергей

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 96 раз в 84 постах
Автор: KDA Перейти к цитате
Прошу прощения, но пин был, хоть и неправильный.
Если его не задавать, то предыдущие версии CSP тоже возвращали NTE_SILENT_CONTEXT.
Смысл в том, что теперь неправильный пароль нельзя запомнить, безусловно есть.
Но, получается, теперь задним числом нельзя понять, что контексту пытались скормить неправильный пароль, а не что-то еще.

А зачем это "задним числом" понимать? Предъявили плохой ПИН - сразу получили ошибку.

Автор: KDA Перейти к цитате
Что будет в случае, скажем, "открыли контекст на контейнер со смарткарты, потом ее вынули, поменяли пароль, вставили обратно"?
Есть какой-то гарантированный вариант ошибок для всех типов данных устройств? Всегда ли теперь будет NTE_SILENT_CONTEXT?


Общий сценарий выполнения операций с ключами (чтение ключей с пассивных носителей или подпись на ФКН) примерно такой:

1) Пробуем выполнить операцию на карте. Получилось (например, уже была проаутентифицирована) - ничего не спрашиваем.
2) Не получилось - ищем запомненный пароль в кэшах и реестре.
2.1) Нашли - предъявляем. Если карте он не понравился, то забываем его (удаляем из кэшей/реестра), и просим пароль в окне.
2.2.) Не нашли в кэшах - просим пароль в окне.
3) Если при попытке показа окна понимаем, что мы в SILENT, то возвращаем NTE_SILENT_CONTEXT.


С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН.
Техническую поддержку оказываем здесь.
Наша база знаний.
thanks 2 пользователей поблагодарили Агафьин Сергей за этот пост.
KDA оставлено 27.02.2020(UTC), Андрей * оставлено 27.02.2020(UTC)
Offline KDA  
#5 Оставлено : 27 февраля 2020 г. 18:02:54(UTC)
KDA

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 3 раз в 3 постах
Спасибо, теперь все понятно.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.