Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Неинтерактивное приложение и хранилище сертификатов. Какое выбрать?
Статус: Участник
Группы: Участники
Зарегистрирован: 15.04.2009(UTC) Сообщений: 15 Откуда: no
|
Скажите пожалуйста, возможно ли вообще пользоваться файловыми хранилищами сертификатов при использовании simplified CryptoAPI функций?
Дело в том, что одним из участников системы у меня является неинтерактивное приложение (системный сервис 24x7) В силу ряда причин хочется, чтобы он использовал файловое хранилище сертификатов. Но когда я помещаю сертификаты в файловое хранилище и связываю личный сертификат сервиса с его ключевым контейнером, то симплифаед функции не могут найти контейнер по сертификату. В лучшем случае появляется диалоговое окно крипто с предложением вставить контейнер и имя контейнера из вопросительных знаков. При переходе на системное хранилище "MY" все работает замечательно.
Или подскажите какое хранилище лучше использовать для неинтерактивных приложений. (проблема в том, что к нему должен иметь доступ администратор, и не обязательно с хоста на котором работает сервис. Плюс еще сам сервис может работать как из под local system account, так и из под специальной учетки)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Возможно. Каким именно файловым хранилищем и как Вы пользуетесь? "MY" отлично подходит для таких целей (с ним, например, работает IIS). А также Вы можете создать свое хранилище в HKLM. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.04.2009(UTC) Сообщений: 15 Откуда: no
|
файловое хранилище у меня создается вот так
hStore := CertOpenStore(CERT_STORE_PROV_FILENAME, PKCS_7_ASN_ENCODING or X509_ASN_ENCODING, 0, CERT_STORE_CREATE_NEW_FLAG or CERT_FILE_STORE_COMMIT_ENABLE_FLAG, wFileName //имя файла в юникоде );
Я в него добавляю CA сертификаты сервиса. При просмотре его через CryptUIDlgSelectCertificateFromStore и открытии сертификатов Виндоус говорит, что есть приватный ключ для сертификатов.
Но при вызовах симплифаед функций (например при CryptDecryptMessage) получаю ошибку что не найден приватный ключ.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
в окне пишут что есть ключ если у сертификата просто есть ссылка в хранилище на него, действительность этой ссылки не проверяется. а где хранятся ключи? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.04.2009(UTC) Сообщений: 15 Откуда: no
|
контейнеры в реестре. что самое странное - если ничего в коде не менять, а только перейти на MY, то все работает.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
в реестре компьютера или локального пользователя? в MY Вы тоже программно сертификаты добавляли или они уже туда были поставлены? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.04.2009(UTC) Сообщений: 15 Откуда: no
|
в реестре текущего юзера (отлаживаю конечно в гуи-приложении, а не в сервисе) сертификаты добавляются в хранилище одним и тем же кодом (в функцию передается готовый HCERTSTORE) с контейнером связываются тоже одним и тем же кодом.
... if AInstalledCert <> nil then begin //Связываем с приватным ключом AContainerName := PChar(ACustomData); ZeroMemory(@KeyInfo,SizeOf(CRYPT_KEY_PROV_INFO)); KeyInfo.pwszContainerName := PWideChar(AContainerName); KeyInfo.pwszProvName := PWideChar(CP_GR3410_2001_PROV_W); KeyInfo.dwProvType := PROV_GOST_2001_DH; KeyInfo.dwKeySpec := sc_GetCertPubKeytype(AInstalledCert); //AT_KEYEXCHANGE; if not CertSetCertificateContextProperty(AInstalledCert,CERT_KEY_PROV_INFO_PROP_ID,0,@KeyInfo) then RaiseLastWin32Error; ....
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
А ссылки после добавления в файловое хранилище похожи на те, которые в MY? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.04.2009(UTC) Сообщений: 15 Откуда: no
|
да, внутри файлового хранилища четко видно (FAR + F3) имя провайдера и имя контейнера вида \ \c o n t a i n e r
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Неинтерактивное приложение и хранилище сертификатов. Какое выбрать?
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close