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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline vlntn  
#1 Оставлено : 16 января 2012 г. 18:33:15(UTC)
vlntn

Статус: Участник

Группы: Участники
Зарегистрирован: 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.

Заранее спасибо за советы...
Offline rozhkov  
#2 Оставлено : 16 января 2012 г. 19:22:46(UTC)
rozhkov

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

Группы: Участники
Зарегистрирован: 25.01.2011(UTC)
Сообщений: 589
Откуда: Крипто-Про

Проверьте правильность пути до библиотеки libcurl.so в /etc/opt/cprocsp/config.ini<config64.ini>
Offline vlntn  
#3 Оставлено : 16 января 2012 г. 21:02:33(UTC)
vlntn

Статус: Участник

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

rozhkov написал:
Проверьте правильность пути до библиотеки libcurl.so в /etc/opt/cprocsp/config.ini<config64.ini>


Спасибо за совет. В связи с этим два вопроса:

1) А если я хочу проверять отозванность сертификатов не по протоколу OCSP (т.е. удалённо на CA), а локально - путём проверки файла CRL. Как тогда надо настроить систему для такой проверки? И возможно ли это?

2) Библиотека libcurl.so (видимо для браузера curl) - это системная библиотека Linux или какая-то реализация от КриптоПро? Где её можно найти?

Спасибо.
Offline rozhkov  
#4 Оставлено : 17 января 2012 г. 14:13:17(UTC)
rozhkov

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

Группы: Участники
Зарегистрирован: 25.01.2011(UTC)
Сообщений: 589
Откуда: Крипто-Про

1. Установить в хранилище CA актуальные СОС.
2. По поводу curl для начала http://ru.wikipedia.org/wiki/CURL а дальше что это думаю разберетесь, если не установлена, то из репозиториев для Вашей ОС установите.
Offline vlntn  
#5 Оставлено : 17 января 2012 г. 16:36:46(UTC)
vlntn

Статус: Участник

Группы: Участники
Зарегистрирован: 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, может что ещё...

Заранее спасибо.
Offline cross  
#6 Оставлено : 17 января 2012 г. 17:01:30(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
1) СОС устанавливаются утилитой certmgr
2) Да можно. libcurl.so почти всегдаа является симлинком на саму библиотеку
3) Для проверки по OCSP нужен коннект к серверу OCSP. Для проверки по СОС нет.

Лучше всего привести полный код проверки как с использованием CadesVerifyMessage так и с использованием CryptVerifyMessageSignature.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline vlntn  
#7 Оставлено : 18 января 2012 г. 19:13:05(UTC)
vlntn

Статус: Участник

Группы: Участники
Зарегистрирован: 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. Для проверки по СОС нет.

Вопросы:
Как система узнает, какой способ проверки использовать?
Надо ли как-то явно указывать системе, какой способ проверки использовать?
Если да, то как?
Offline vlntn  
#8 Оставлено : 20 января 2012 г. 14:21:10(UTC)
vlntn

Статус: Участник

Группы: Участники
Зарегистрирован: 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);
Offline vlntn  
#9 Оставлено : 24 января 2012 г. 14:53:34(UTC)
vlntn

Статус: Участник

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

Обнаружил, что происходит запись в системный лог:

libcspr[24780]: capi20:!CryptRetrieveObjectByUrlA!() UrlRetriever failed (CURLcode: 0).!

Эта ошибка не зависит от наличия или отсутствия сертификата, которым подписывается сообщение,
в хранилище.

Кто-нибудь может подсказать, что это означает?
Offline BIM  
#10 Оставлено : 10 мая 2012 г. 17:48:08(UTC)
BIM

Статус: Участник

Группы: Участники
Зарегистрирован: 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]
Помогите решить проблему.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (3)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.