Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
Для проверки подписи используется функция библиотеки CAdES 'CadesVerifyMessage'. Она возвращает ошибку CADES_VERIFY_END_CERT_REVOCATION (Ошибка проверки конечного сертификата на отзыв). При этом: - cертификат подписи помещен в хранилище My - cертификат УЦ помещен в хранилище Root - cписок отозванных сертификатов в хранилище СА пуст В чем может быть причина возникновения данной ошибки?
Вот описание среды: 1. ОС Linux 2. Сертификат подписи помещен в хранилище My (как следует из документации, это стандартное хранилище для личных сертификатов). 3. Сертификат УЦ (КриптоПро) помещен в хранилище Root (как следует из документации, это стандартное хранилище для корневых сертификатов). 4. Список отозванных сертификатов в хранилище СА (как следует из документации, это стандартное хранилище, где должен быть этот список) пуст. 5. Функция библиотеки CAdES 'CadesVerifyMessage' возвращает ошибку CADES_VERIFY_END_CERT_REVOCATION (Ошибка проверки конечного сертификата на отзыв).
Дополнительная информация 1. Если удалить сертификат УЦ (КриптоПро) из хранилища Root, то возвращается другая ошибка (CADES_VERIFY_NO_CHAIN, Не удалось построить цепочку для сертификата, на ключе которого подписано сообщение). 2. Если вместо функции CAdES 'CadesVerifyMessage' использовать функцию CAPILight 'CryptVerifyMessageSignature', то все OK.
Заранее спасибо за советы...
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2011(UTC) Сообщений: 589 Откуда: Крипто-Про
|
Проверьте правильность пути до библиотеки libcurl.so в /etc/opt/cprocsp/config.ini<config64.ini>
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
rozhkov написал:Проверьте правильность пути до библиотеки libcurl.so в /etc/opt/cprocsp/config.ini<config64.ini> Спасибо за совет. В связи с этим два вопроса: 1) А если я хочу проверять отозванность сертификатов не по протоколу OCSP (т.е. удалённо на CA), а локально - путём проверки файла CRL. Как тогда надо настроить систему для такой проверки? И возможно ли это? 2) Библиотека libcurl.so (видимо для браузера curl) - это системная библиотека Linux или какая-то реализация от КриптоПро? Где её можно найти? Спасибо.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.01.2011(UTC) Сообщений: 589 Откуда: Крипто-Про
|
1. Установить в хранилище CA актуальные СОС. 2. По поводу curl для начала http://ru.wikipedia.org/wiki/CURL а дальше что это думаю разберетесь, если не установлена, то из репозиториев для Вашей ОС установите.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
rozhkov написал:1. Установить в хранилище CA актуальные СОС. 2. По поводу curl для начала http://ru.wikipedia.org/wiki/CURL а дальше что это думаю разберетесь, если не установлена, то из репозиториев для Вашей ОС установите. Огромное спасибо. А не подскажите ещё пару вещей :-) 1 Как правильно установить актуальные СОС в хранилище Linux. И как сконфигурировать приложение, чтобы оно использовало именно СОС и не работало с OCSP? 2 У нас есть libcurl.so.3 и libcurl.so.0.0, но нет libcurl.so. Можно ли их использовать? 3 У нас Linux - виртуальная машина. Имеет ли это значение? Наверняка должен быть коннект к сайту с OCSP, может что ещё... Заранее спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
1) СОС устанавливаются утилитой certmgr 2) Да можно. libcurl.so почти всегдаа является симлинком на саму библиотеку 3) Для проверки по OCSP нужен коннект к серверу OCSP. Для проверки по СОС нет.
Лучше всего привести полный код проверки как с использованием CadesVerifyMessage так и с использованием CryptVerifyMessageSignature. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
cross написал:1) СОС устанавливаются утилитой certmgr 2) Да можно. libcurl.so почти всегдаа является симлинком на саму библиотеку 3) Для проверки по OCSP нужен коннект к серверу OCSP. Для проверки по СОС нет.
Лучше всего привести полный код проверки как с использованием CadesVerifyMessage так и с использованием CryptVerifyMessageSignature. Вопросы: >СОС устанавливаются утилитой certmgr Данной утилитой установить не получилось: /opt/cprocsp/bin/amd64/certmgr -inst -crl -store mCA -file <файл> Invalid data in file <файл> No CRL to install Файл CRL был скачан с тестового УЦ КриптоПро. Вопрос: В чем может быть причина? Получилось утилитой csptestf: /opt/cprocsp/bin/amd64/csptestf -ipsec -reg -list <файл> Registering... Store CA opened. Registering crl OK. После этого команда /opt/cprocsp/bin/amd64/certmgr -list -store mCA -crl дает следующий вывод: ============================================================================= 1------- Issuer : E=info@cryptopro.ru, C=RU, O=CRYPTO-PRO, CN=Test Center CRYPTO-PRO ThisUpdate: 06/01/2012 15:32:26 UTC NextUpdate: 14/01/2012 03:52:26 UTC ============================================================================= Вопрос: Правильно ли сформирован список (похоже ли это на то, что должно быть)? Из ответа: >Для проверки по OCSP нужен коннект к серверу OCSP. Для проверки по СОС нет. Вопросы: Как система узнает, какой способ проверки использовать? Надо ли как-то явно указывать системе, какой способ проверки использовать? Если да, то как?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
А вот, собственно, сам код. Может быть кто-то подскажет, что в нём не так или упущено...
CRYPT_VERIFY_MESSAGE_PARA cryptVerifyParams; cryptVerifyParams.cbSize = sizeof(CRYPT_VERIFY_MESSAGE_PARA); cryptVerifyParams.dwMsgAndCertEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING; cryptVerifyParams.hCryptProv = 0; cryptVerifyParams.pfnGetSignerCertificate = NULL; cryptVerifyParams.pvGetArg = NULL;
CADES_VERIFICATION_PARA cadesVerifyParams; cadesVerifyParams.dwSize = sizeof(CADES_VERIFICATION_PARA); cadesVerifyParams.dwCadesType = CADES_BES; cadesVerifyParams.pMessageContentHash = NULL; cadesVerifyParams.pProxyPara = NULL; cadesVerifyParams.hStore = NULL; cadesVerifyParams.bReserved2 = FALSE; cadesVerifyParams.pReserved3 = NULL;
CADES_VERIFY_MESSAGE_PARA params; params.dwSize = sizeof(CADES_VERIFY_MESSAGE_PARA); params.pVerifyMessagePara = &cryptVerifyParams; params.pCadesVerifyPara = &cadesVerifyParams;
DWORD nStat = CADES_VERIFY_SUCCESS; CADES_VERIFICATION_INFO* pInfo = NULL;
#ifdef CAPILITE if(!::CryptVerifyMessageSignature(pParams->pVerifyMessagePara, nIdx, pSignedMsg, nLen, NULL, 0, NULL)) nStat = -1; #else if(!::CadesVerifyMessage(pParams, nIdx, pSignedMsg, nLen, NULL, &pInfo)) nStat = -1; #endif
if(pInfo != NULL) { nStat = pInfo->dwStatus; ::CadesFreeVerificationInfo(pInfo); }
if(nStat == (DWORD)-1) setSysErrMsg(); else setCadesErrMsg(nStat);
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
Обнаружил, что происходит запись в системный лог:
libcspr[24780]: capi20:!CryptRetrieveObjectByUrlA!() UrlRetriever failed (CURLcode: 0).!
Эта ошибка не зависит от наличия или отсутствия сертификата, которым подписывается сообщение, в хранилище.
Кто-нибудь может подсказать, что это означает?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.05.2012(UTC) Сообщений: 12 Откуда: Владимир
|
vlntn написал:
>СОС устанавливаются утилитой certmgr Данной утилитой установить не получилось: /opt/cprocsp/bin/amd64/certmgr -inst -crl -store mCA -file <файл> Invalid data in file <файл> No CRL to install Файл CRL был скачан с тестового УЦ КриптоПро. Вопрос: В чем может быть причина?
Аналогичная проблема. CSP 3.6, Ubuntu на /opt/cprocsp/bin/amd64/csptestf -ipsec -reg -list <файл> выдает: CSP (Type:71) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Linux CPU:IA32 FastCode:READY,ENABLED. CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Linux CPU:IA32 FastCode:READY,ENABLED. Registering... Restoration of crl FAILED! Registering crl FAILED! Total: [ErrorCode: 0x00000001] Помогите решить проблему.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close