| ||||
| ||||
1.В полной ли мере поведение CPAcquireContext с флагом CRYPT_MACHINE_KEYSET в вашем провайдере соответствует поведению аналогичной функции в провайдерах Microsoft? В частности, так же ли не может быть использован пользовательский интерфейс и user account? Если это так, то означает ли это, что ключи хранятся в контейнере в системном реестре в незашифрованном виде? Или, во всяком случае, там же хранится ключ, на котором они зашифрованы? Или же при использовании этого флага все-таки требуется загружать ключи пользователя с каког-либо носителя? Запрещен ли диалог с пользователем при исполльзовании этого флага? Если да, то чем этот флаг отличается от CRYPT_SILENT? Если нет, то что означает, что флаг CRYPT_MACHINE_KEYSET используется для ключей, которые могут быть автоматически использованы серверами? Что происходит в Вашем провайдере при вызове функции с данным флагом? Каким образом системные приложения используют ключевые контейнеры, созданные с данным флагом? | ||||
Ответы: | ||||
| ||||
> ... так же ли не может быть использован пользовательский интерфейс UI доступен. > и user account? Нет. > означает ли это, что ключи хранятся в контейнере в системном реестре в незашифрованном виде? Ключи в контейнере никогда не хранятся в открытом виде. Контейнер может быть зашифрован на текстовом пароле либо на ключе другого контейнера (расположенного в том числе на съёмном носителе). Кроме того, контейнер не обязан храниться в реестре. Носитель может быть любой, в реестре хранится ссылка. > Или, во всяком случае, там же хранится ключ, на котором они зашифрованы? Смотря как сделан контейнер. Может быть и так, и не так. > Или же при использовании этого флага все-таки требуется загружать ключи пользователя с каког-либо носителя? Нет, пользовательские ключи не годятся - только из LOCAL_MACHINE. > Запрещен ли диалог с пользователем при исполльзовании этого флага? Если да, то чем этот флаг отличается от CRYPT_SILENT? Нет, если вызывающее приложение может взаимодействовать с рабочим столом. > Если нет, то что означает, что флаг CRYPT_MACHINE_KEYSET используется для ключей, которые могут быть автоматически использованы серверами? Да, с учётом вышесказанного > Что происходит в Вашем провайдере при вызове функции с данным флагом? Это наша забота :-) > Каким образом системные приложения используют ключевые контейнеры, созданные с данным флагом? Как обычно. Особенности - если надо обеспечить работу без участия оператора. Для этого - 1) обязательное использование аппаратного датчика при генерации ключей 2) использование программных вызовов функций установки пароля или ключа шифрования CPSetProvParam(...). Подробности см. http://www.cryptopro.ru/CryptoPro/test/csp_2_0.chm | ||||