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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline zatsepin  
#1 Оставлено : 20 мая 2013 г. 11:58:17(UTC)
zatsepin

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

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

Сказал «Спасибо»: 2 раз
Добрый день!

При попытке создать ЭЦП данных с помощью вызова CrytpSignMessage() получаю ошибку 0xc0000001. Ключевой контейнер размещен на HSM. При этом последовательный вызов CryptCreateHash, CryptHashData и CryptSignHash отрабатывает корректно.

Аналогичная ошибка и при проверке подписи с помощью CryptVerifyMessageSignature().

Подскажите, пожалуйста, в чем может быть дело?

Отредактировано пользователем 20 мая 2013 г. 12:00:00(UTC)  | Причина: Не указана

Offline MCR  
#2 Оставлено : 20 мая 2013 г. 14:05:50(UTC)
MCR

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

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

Сказал(а) «Спасибо»: 57 раз
Поблагодарили: 11 раз в 8 постах
И вызываете с сервера на котором установлен клиент HSM?
Offline zatsepin  
#3 Оставлено : 20 мая 2013 г. 14:10:37(UTC)
zatsepin

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

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

Сказал «Спасибо»: 2 раз
Да.

Еще такой нюанс: наше ПО установлено и работает как Windows-служба от локальной системы. Ключ, которым пытаемся подписать данные, расположен в ключевом контейнере в провайдере "CryptoPro HSM Svc CSP".
Offline MCR  
#4 Оставлено : 20 мая 2013 г. 14:48:31(UTC)
MCR

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

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

Сказал(а) «Спасибо»: 57 раз
Поблагодарили: 11 раз в 8 постах
Автор: zatsepin Перейти к цитате
Да.

Еще такой нюанс: наше ПО установлено и работает как Windows-служба от локальной системы. Ключ, которым пытаемся подписать данные, расположен в ключевом контейнере в провайдере "CryptoPro HSM Svc CSP".


Знаю, что есть вот такой криптопровайдер:
Crypto-Pro GOST R 34.10-2001 HSM Local CSP

До вызова CrytpSignMessage все функции отрабатывают корректно?
Offline zatsepin  
#5 Оставлено : 20 мая 2013 г. 15:00:35(UTC)
zatsepin

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

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

Сказал «Спасибо»: 2 раз
Автор: MCR Перейти к цитате
Автор: zatsepin Перейти к цитате
Да.

Еще такой нюанс: наше ПО установлено и работает как Windows-служба от локальной системы. Ключ, которым пытаемся подписать данные, расположен в ключевом контейнере в провайдере "CryptoPro HSM Svc CSP".


Знаю, что есть вот такой криптопровайдер:
Crypto-Pro GOST R 34.10-2001 HSM Local CSP


Написал небольшую утилиту, которая перечисляет имена и типы провайдеров в системе. Вот ее вывод (форматирование сбилось)

Provider type Provider Name
_____________ _____________________________________
75 Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
75 Crypto-Pro HSM CSP
1 Crypto-Pro HSM RSA CSP
1 Crypto-Pro HSM RSA Svc CSP
75 Crypto-Pro HSM Svc CSP
1 eToken Base Cryptographic Provider
1 Microsoft Base Cryptographic Provider v1.0
13 Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
3 Microsoft Base DSS Cryptographic Provider
1 Microsoft Base Smart Card Crypto Provider
18 Microsoft DH SChannel Cryptographic Provider
1 Microsoft Enhanced Cryptographic Provider v1.0
13 Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
24 Microsoft Enhanced RSA and AES Cryptographic Provider
12 Microsoft RSA SChannel Cryptographic Provider
1 Microsoft Strong Cryptographic Provider

Еще команда

csptest.exe -enum -provider "CryptoPro HSM Svc CSP" -info

выдает информацию по доступным алгоритмам этого провайдера

Цитата:

До вызова CrytpSignMessage все функции отрабатывают корректно?


До вызова CryptSignMessage производится только поиск сертификата по хранилищу для передачи его в качестве параметра CryptSignMessage
Offline MCR  
#6 Оставлено : 20 мая 2013 г. 16:46:54(UTC)
MCR

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

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

Сказал(а) «Спасибо»: 57 раз
Поблагодарили: 11 раз в 8 постах
Автор: zatsepin Перейти к цитате
Автор: MCR Перейти к цитате
Автор: zatsepin Перейти к цитате
Да.

Еще такой нюанс: наше ПО установлено и работает как Windows-служба от локальной системы. Ключ, которым пытаемся подписать данные, расположен в ключевом контейнере в провайдере "CryptoPro HSM Svc CSP".


Знаю, что есть вот такой криптопровайдер:
Crypto-Pro GOST R 34.10-2001 HSM Local CSP


Написал небольшую утилиту, которая перечисляет имена и типы провайдеров в системе. Вот ее вывод (форматирование сбилось)

Provider type Provider Name
_____________ _____________________________________
75 Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
75 Crypto-Pro HSM CSP
1 Crypto-Pro HSM RSA CSP
1 Crypto-Pro HSM RSA Svc CSP
75 Crypto-Pro HSM Svc CSP
1 eToken Base Cryptographic Provider
1 Microsoft Base Cryptographic Provider v1.0
13 Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
3 Microsoft Base DSS Cryptographic Provider
1 Microsoft Base Smart Card Crypto Provider
18 Microsoft DH SChannel Cryptographic Provider
1 Microsoft Enhanced Cryptographic Provider v1.0
13 Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
24 Microsoft Enhanced RSA and AES Cryptographic Provider
12 Microsoft RSA SChannel Cryptographic Provider
1 Microsoft Strong Cryptographic Provider

Еще команда

csptest.exe -enum -provider "CryptoPro HSM Svc CSP" -info

выдает информацию по доступным алгоритмам этого провайдера

Цитата:

До вызова CrytpSignMessage все функции отрабатывают корректно?


До вызова CryptSignMessage производится только поиск сертификата по хранилищу для передачи его в качестве параметра CryptSignMessage


А как же заполнение CRYPT_SIGN_MESSAGE_PARA?

В общем, не знаю, как коллеги на это смотрят, но нужен код, поскольку экстрасенсорика довольно сложная штука.
Offline zatsepin  
#7 Оставлено : 20 мая 2013 г. 18:08:07(UTC)
zatsepin

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

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

Сказал «Спасибо»: 2 раз
Цитата:

До вызова CrytpSignMessage все функции отрабатывают корректно?


Речь шла о функциях, о функциях я и ответил. Параметры, конечно же, устанавливаются. Один и тот же код с разными CSP работает по-разному.

Вот код:

Код:


    SigParams.cbSize = sizeof(CRYPT_SIGN_MESSAGE_PARA);
    SigParams.dwMsgEncodingType = PKCS_7_ASN_ENCODING | X509_ASN_ENCODING;
    SigParams.pSigningCert = pSignerCert;
    SigParams.HashAlgorithm.pszObjId = szOID_GostR3411_94_CryptoProParamSet; // "1.2.643.2.2.30.1"
    SigParams.HashAlgorithm.Parameters.cbData = 0;
    SigParams.cMsgCert = 1;
    SigParams.rgpMsgCert = &pSignerCert;
    SigParams.cAuthAttr = 0;
    SigParams.dwInnerContentType = 0;
    SigParams.cMsgCrl = 0;
    SigParams.cUnauthAttr = 0;
    SigParams.dwFlags = 0;
    SigParams.pvHashAuxInfo = NULL;
    SigParams.rgAuthAttr = NULL;

    if(!(CryptSignMessage(&SigParams,
							FALSE,
							1,
							MessageArray,
							MessageSizeArray,
							NULL,
							&cbSignedMessageBlob))) {
		goto end;
	}

	if(!(pbSignedMessageBlob = (BYTE*)malloc(cbSignedMessageBlob))) {
		goto end;
	}

    if(!(CryptSignMessage(&SigParams,
							FALSE,
							1,
							MessageArray,
							MessageSizeArray,
							pbSignedMessageBlob,
							&cbSignedMessageBlob))) {
		goto end;
	}




Offline Максим Коллегин  
#8 Оставлено : 20 мая 2013 г. 20:07:39(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
А не в службе код работает? Соединение с HSM установлено?
Знания в базе знаний, поддержка в техподдержке
Offline zatsepin  
#9 Оставлено : 20 мая 2013 г. 20:17:55(UTC)
zatsepin

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

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

Сказал «Спасибо»: 2 раз
Соединение установлено.
Насчет работы не из службы сейчас сказать не могу, смогу проверить только завтра. Но служба корректно подписывает и проверяет, если работать с обычным CSP (не HSM)
Offline Максим Коллегин  
#10 Оставлено : 20 мая 2013 г. 20:35:53(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Для работы из службы нужно выпускать особые карты аутентификации..
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.