logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Scorpion539  
#1 Оставлено : 8 июня 2017 г. 16:43:31(UTC)
Scorpion539

Статус: Новичок

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

Добрый вечер,

Вычисляю отпечаток файла по алгоритму вычисления хэша по ГОСТу 34.11, а затем подписываю по PKCS#7. По требованиям по работе с файловым хранилищем вставляю соответствующие значения в свой запрос и отправляю в СМЭВ. В ответе приходит: Проверка подписи на вложении: Дайджест не прошел проверку!
Использую using CryptoPro.Sharpei;

Прошу подсказать, в чем может быть ошибка, или где о ней почитать/куда обратиться?
Offline android7779  
#2 Оставлено : 26 октября 2017 г. 5:27:37(UTC)
android7779

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.11.2016(UTC)
Сообщений: 1
Откуда: Пермь

Столкнулся с такой же проблемой. Вы нашли ее решение?
Offline administrator  
#3 Оставлено : 15 февраля 2018 г. 5:52:53(UTC)
administrator

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Аналогичная проблема.

Ответ из технической поддержки СМЭВ:
Цитата:

"Ошибка "Дайджест не прошел проверку" возникает из за неверно вычесленного хэш-кода.
Для проверки просьба использовать https://www.gosuslugi.ru/pgu/eds.
Просьба воспользоваться : — электронного документа. ЭП — отсоединенная, в формате PKCS#7

Так же алгоритм формирование подписи PKCS7 указан в Методические рекомендации по работе с Единой системой межведомственного электронного взаимодействия 4.3.1 Подписи в формате PKCS#7 Просим вас ознакомиться."


Вычисление хэш-кода (C#):

Цитата:
var gost = new Gost3411CryptoServiceProvider();
return gost.ComputeHash(fileStream);


Подпись хэш-кода:

Цитата:

var payloadInfo = new ContentInfo(hash);
var signedCms = new SignedCms(payloadInfo, true);
var signer = new CmsSigner(certificate);
signedCms.ComputeSignature(signer);
return signedCms.Encode();


В чём может быть проблема?

Отредактировано пользователем 15 февраля 2018 г. 5:55:37(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#4 Оставлено : 15 февраля 2018 г. 11:18:47(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 256 раз
Поблагодарили: 901 раз в 738 постах
Автор: administrator Перейти к цитате
Аналогичная проблема.

Ответ из технической поддержки СМЭВ:
Цитата:

"Ошибка "Дайджест не прошел проверку" возникает из за неверно вычесленного хэш-кода.
Для проверки просьба использовать https://www.gosuslugi.ru/pgu/eds.
Просьба воспользоваться : — электронного документа. ЭП — отсоединенная, в формате PKCS#7

Так же алгоритм формирование подписи PKCS7 указан в Методические рекомендации по работе с Единой системой межведомственного электронного взаимодействия 4.3.1 Подписи в формате PKCS#7 Просим вас ознакомиться."


Вычисление хэш-кода (C#):

Цитата:
var gost = new Gost3411CryptoServiceProvider();
return gost.ComputeHash(fileStream);


Подпись хэш-кода:

Цитата:

var payloadInfo = new ContentInfo(hash);
var signedCms = new SignedCms(payloadInfo, true);
var signer = new CmsSigner(certificate);
signedCms.ComputeSignature(signer);
return signedCms.Encode();


В чём может быть проблема?


Здравствуйте.

Внутри ComputeSignature вычисляется и подписывается хеш.



thanks 1 пользователь поблагодарил Андрей Писарев за этот пост.
administrator оставлено 15.02.2018(UTC)
Offline Андрей Писарев  
#5 Оставлено : 15 февраля 2018 г. 11:26:01(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 256 раз
Поблагодарили: 901 раз в 738 постах
В ContentInfo необходимо передавать данные (fileStream)
thanks 1 пользователь поблагодарил Андрей Писарев за этот пост.
administrator оставлено 15.02.2018(UTC)
Offline rostor  
#6 Оставлено : 16 марта 2018 г. 17:34:54(UTC)
rostor

Статус: Новичок

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

Добрый день!
Проблема таже!
По поводу "В ContentInfo необходимо передавать данные (fileStream)" реализована только byte[], возможно что-то напутано, поясните, пожалуйста.
Offline Андрей Писарев  
#7 Оставлено : 16 марта 2018 г. 17:40:16(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 256 раз
Поблагодарили: 901 раз в 738 постах
Здравствуйте.

Поясните, в чем проблема.
Offline rostor  
#8 Оставлено : 16 марта 2018 г. 17:58:23(UTC)
rostor

Статус: Новичок

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

Для создания хеш использую:
byte[] byteArray = Encoding.UTF8.GetBytes(fileNameForHash);
MemoryStream fileStream = new MemoryStream(byteArray);

hashValue = hashGost_3411.ComputeHash(fileStream);

fileStream.Close();

for (int i = 0; i < hashValue.Length; i++)
_resultHashAsString += string.Format("{0:X2}", hashValue[i]);

где fileNameForHash - файл (в данном случае поток данных в виде строки, но через файл также пробовал) подлежащий хешированию,
hashGost_3411 - Gost3411CryptoServiceProvider hashGost_3411 = new Gost3411CryptoServiceProvider();

Для подписания хеш использую и получения подписи:
signedData = signGost_3410.SignHash(hashValue);

for (int i = 0; i < signedData.Length; i++)
_resultSignAsString += string.Format("{0:X2}", signedData[i]);

где signGost_3410 - new Gost3410CryptoServiceProvider(cspParameters);
cspParameters = new CspParameters75, null, keyContainerInfo.KeyContainerName);
где:
privateKey = certificate.PrivateKey;
ICspAsymmetricAlgorithm iasym = privateKey as ICspAsymmetricAlgorithm;
keyContainerInfo = iasym.CspKeyContainerInfo;

так же:
X509Store store = new X509Store(storeName, StoreLocation.CurrentUser);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);

X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;

X509Certificate2Collection found = store.Certificates.Find(X509FindType.FindBySerialNumber, serialNumber, false);

if (found.Count == 0)
{
throw new Exception("Сертификат по серийному номеру не найден.");
}
if (found.Count > 1)
{
throw new Exception("Слишком много сертификатов по серийному номеру.");
}

certificate = found[0];

так же пробовал, что у у коллег:
var payloadInfo = new ContentInfo(byteArray);//hashValue
var signedCms = new SignedCms(payloadInfo, true);
var signer = new CmsSigner(certificate);
signedCms.ComputeSignature(signer);
signedData = signedCms.Encode();
for (int i = 0; i < signedData.Length; i++)
_resultSignAsString += string.Format("{0:X2}", signedData[i]);

SendRequestReuqerst - проходит, ЭП-ОП валидируется (подпись таже, что и для вложений), но далее GetResponce (при ассинхронной проверка) падает - Подпись на вложении не верна, для чего использую выше приведенный код.
Мозг вскипел, если, что нет подскажите, буду признателен.


Offline rostor  
#9 Оставлено : 16 марта 2018 г. 17:59:54(UTC)
rostor

Статус: Новичок

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

X509Certificate2Collection found = store.Certificates.Find(X509FindType.FindBySerialNumber, serialNumber, false); - здесь по факту 3-ий параметр true.
Offline Андрей Писарев  
#10 Оставлено : 16 марта 2018 г. 18:40:04(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 256 раз
Поблагодарили: 901 раз в 738 постах
Код:

byte[] byteArray = Encoding.UTF8.GetBytes(fileNameForHash);


Поясните, что получается в byteArray?
Offline rostor  
#11 Оставлено : 16 марта 2018 г. 19:01:09(UTC)
rostor

Статус: Новичок

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

hashValue = hashGost_3411.ComputeHash(fileStream);
даёт, одинаковый результат, что для MemoryStream, что для:
FileStream fileStream = File.Open(@"d:\\test\test.xml", FileMode.Open, FileAccess.Read, FileShare.None);
а именно:
_resultHashAsString = "F76ABDA183DDD5AA1D6E52D771D3AE64A4166B44C387964A5810E2B3CCAA899B";
Для моего набора данных размер массива hashValue составляет 357077 элементов.
Offline rostor  
#12 Оставлено : 16 марта 2018 г. 19:08:54(UTC)
rostor

Статус: Новичок

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

или вы хотите увидеть конкретные значения массива?
Offline rostor  
#13 Оставлено : 19 марта 2018 г. 12:15:48(UTC)
rostor

Статус: Новичок

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

переписал в таком виде:
для получения хеш:

FileStream fileStream = File.Open("text.xml", FileMode.Open, FileAccess.Read, FileShare.None);
hashValue = hashGost_3411.ComputeHash(fileStream);
fileStream.Close();
/*значение хеш Base64*/
string _resultHashAsString = System.Convert.ToBase64String(hashValue);

далее для подписи:
var _contentInfo = new ContentInfo(hashValue);// значение хеш полученное выше
var signedCms = new SignedCms(_contentInfo, true);
var signer = new CmsSigner(certificate);
signedCms.ComputeSignature(signer);
signedData = signedCms.Encode();
string _resultSignAsString = System.Convert.ToBase64String(signedData);

_resultHashAsString - значение хэш (HIYuwL22NOtjdLNtTZlVqyUBLuomnSaKIbTqXjFXA0E=)
_resultSignAsString - подпись по хеш

коллеги, направьте, что не так, мозги закипают(
Offline Андрей Писарев  
#14 Оставлено : 19 марта 2018 г. 12:21:55(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 256 раз
Поблагодарили: 901 раз в 738 постах
SignedCms - вычисляет внутри хеш от переданных данных и его подписывает.
Если передавать не данные для подписания, а "ранее полученный" хеш, то что Вы желаете получить на выходе?
На выходе получите подпись для хеша от хеша?
Offline rostor  
#15 Оставлено : 19 марта 2018 г. 12:31:16(UTC)
rostor

Статус: Новичок

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

видимо я чего-то не допонимаю, с подписями раньше не работал.
Мне нужно получить хеш (отпечаток) от файла - использую ComputeHash.
Далее мне нужно этот хэш(отпечаток) подписать. Вот и пытаюсь понять что не так вызываю?

Ваш комментарий я понял, тогда каким методом мне подписать хеш?

Или вы имеете ввиду, что хеш считаю ComputeHash, а для получения подписи мне нужно в ContentInfo передвать исходные данные на основании которых я хэш считал (ComputeHash), так, т.е.:
var _contentInfo = new ContentInfo(сюда вложу, то что идёт из fileStream после преобразований); ???
Offline Андрей Писарев  
#16 Оставлено : 19 марта 2018 г. 12:35:41(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 256 раз
Поблагодарили: 901 раз в 738 постах
Класс SignedCms


Примеры для вызова SignedCms.ComputeSignature здесь
Offline rostor  
#17 Оставлено : 19 марта 2018 г. 12:39:47(UTC)
rostor

Статус: Новичок

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

Спасибо, значит мыслю верно. Буду дальше смотреть.
Offline alegator74  
#18 Оставлено : 25 апреля 2018 г. 7:14:47(UTC)
alegator74

Статус: Новичок

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

для смэв-3 я подписываю запрос через 1С при помощи крипто-про 4.0 хотя стоит на всякий случай еще и крипто net
у них в инструкции порядок такой
//1. Берем все содержимое узлаSenderProvidedRequestData или MessageTypeSelector
//2. Проводим его каноникализацию
//3. Проводим нормализацию
//4. Рассчитываем хэш, по нормализованным данным
//Содержимое хэша записываем в CallerInformationSystemSignature\Signature\SignedInfo\DigestValue

Получаю
строку в base64

base64 = PG5zOk1lc3NhZ2VUeXBlU2VsZWN0b3IgSWQ9IlNJR05FRF9CWV9DT05TVU1FUiI+PG5zOlRpbWVzdGFtcD4yMDE4LTAyLTI3VDEyOjA5OjQ5LjYxODM2MjkrMDQ6MDA8L25zOlRpbWVzdGFtcD48bnM6Tm9kZUlEPjAwM04wMTwvbnM6Tm9kZUlEPjwvbnM6TWVzc2FnZVR5cGVTZWxlY3Rvcj4=

затетем хэш

CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;
CADESCOM_BASE64_TO_BINARY = 1;

HashedData = Новый COMОбъект("CAdESCOM.HashedData");
HashedData.Algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
HashedData.DataEncoding = CADESCOM_BASE64_TO_BINARY;
HashedData.Hash(base64);

получаю
<ds:DigestValue>6D8329671A9246F6DA8BDE30CBFCC8C7FE27A1568BA15AD5C45CD1002A112625</ds:DigestValue>

в контрольных примерах, по ощущениям стоит значение не хэш а просто base64, ну фиг с ним двигаюсь дальше по инструкции

//b. Проводим каноникализацию , затем нормализацию элемента CallerInformationSystemSignature\Signature\SignedInfo
//c. Рассчитываем хэш, от данных после нормализации
//d. Рассчитываем подпись от хэша на предыдущем этапе
//e. Записываем значение подписи в CallerInformationSystemSignature\Signature\SignatureValue

Получаю
строку в base64 от SignedInfo
base64 = PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjZ29zdHIzNDEwMjAwMS1nb3N0cjM0MTEiLz48ZHM6UmVmZXJlbmNlIFVSST0iI1NJR05FRF9CWV9DT05TVU1FUiI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJ1cm46Ly9zbWV2LWdvdi1ydS94bWxkc2lnL3RyYW5zZm9ybSIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjZ29zdHIzNDExIi8+PGRzOkRpZ2VzdFZhbHVlPjZEODMyOTY3MUE5MjQ2RjZEQThCREUzMENCRkNDOEM3RkUyN0ExNTY4QkExNUFENUM0NUNEMTAwMkExMTI2MjU8L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz4=

затем хэш как и в предыдущем случае
737E52C7305BC25A412FBFF46EE6BDB9D2E56ECC7EC026BAF5F49552CB2AED53

теперь подписываю хэш


// Константы.
CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;
CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
//CAPICOM_LOCAL_MACHINE_STORE = 1;
CAPICOM_CURRENT_USER_STORE = 2;
CAPICOM_MY_STORE = "My";
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
CADESCOM_ENCODE_BASE64 = 0;

// Поиск сертификата.
Отпечаток = СтрЗаменить(Строка(Base64Значение(ПолучитьОтпечатокСертификатаНаСервере(СпрСертификат))), " ", "");
Store = Новый COMОбъект("CAPICOM.Store");
Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Certificates = Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, Отпечаток);
Сертификат = Certificates.Item(1);

// Создание подписи.
CPSigner = Новый COMОбъект("CAdESCOM.CPSigner");
CPSigner.Certificate = Сертификат;
////CPSigner.KeyPin = "12345678";

Signer = Новый COMОбъект("CAPICOM.Signer");
Signer.Certificate = Сертификат;
Signer.Options = 2;
SignedData = Новый COMОбъект("CAPICOM.SignedData");
SignedData.Content = СтрокаXML;

Данные = Неопределено;
ОтсоединеннаяПодпись = Ложь;

Результат = SignedData.Sign(Signer, ОтсоединеннаяПодпись,0);

Получаю
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

в то время как в контрольном примере получается очень короткая строка, к примеру
<ds:SignatureValue>92oLk2Mrxn7R58Bsp77i3ZsOwlElpX4C8k6Rf/nHAv9710SZVYrsVhM1hOxaUSShuO9WONfUQimCjiZ24fkvXA==</ds:SignatureValue>

Подскажите пожалуйста что не так? Техподдержка минкомсвязи меня месяца 2 мурыжит, типо читай здесь - читай там. я так и не понял где я чтото не допонял.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.