Статус: Новичок
Группы: Участники
Зарегистрирован: 05.12.2016(UTC) Сообщений: 1
|
Автор: Boris@Serezhkin.com Проверяем что - ХМЛ. Подпись где - там же. Данные кои подписываем где? Вот данные кои подписываем: Цитата: <ns2:AckTargetMessage xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" Id="SIGNED_BY_CALLER" accepted="true">0e8cfc01-5e81-11e4-a9ff-d4c9eff07b77</ns2:AckTargetMessage>
Отредактировано пользователем 7 декабря 2016 г. 16:53:33(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.09.2016(UTC) Сообщений: 4 Откуда: Ростов-на-Дону Поблагодарили: 1 раз в 1 постах
|
Всем добрый день! Тоже столкнулся с данной проблемой! У меня установлено ПО КриптоПро CSP 3.9.8227, КриптоПро.NET 1.0.5913.0. Не буду описывать, как подписываю и проверяю сообщение СМЭВ, тут примеров уйма! Но никак не могу побороть вот такую вот ситуацию:
Подписываю сообщение СМЭВ без использования XmlDsigSmevTransform, проверяю подпись, все хорошо, подпись верна. На техпортале СМЭВ3 проверяю, все хорошо, получаю сообщение "ЭП-ОВ верна". Если же буду использовать XmlDsigSmevTransform, то у меня подпись не верна, а на техпортале верна. Как такое может быть??? Более того, беру стандартный пример сообщения из примеров методических рекомендаций СМЭВ и проверяю подпись - у меня она не верна, на техпортале верна! Может все-таки закралась какая то ошибочка в реализации класса XmlDsigSmevTransform?
И еще могу добавить, что беру пример из SDK, в котором присутствует подпись XML с использованием XmlDsigSmevTransform и получаю, что подпись неверна!!! (пример SignDocument из Xml).
|
1 пользователь поблагодарил alexpav@inbox.ru за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.12.2016(UTC) Сообщений: 46 Откуда: Сургут Сказал(а) «Спасибо»: 10 раз Поблагодарили: 3 раз в 2 постах
|
Добрый день. Подскажите, каким образом подписать сообщения для СМЭВ 3.0, использую JCP? Нет ли у кого примеров на JAVA? или подобного примера для СМЭВ 3.0.?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,001 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 713 раз в 673 постах
|
Автор: U3962 Добрый день. Подскажите, каким образом подписать сообщения для СМЭВ 3.0, использую JCP? Нет ли у кого примеров на JAVA? или подобного примера для СМЭВ 3.0.? . Отредактировано пользователем 18 января 2017 г. 20:28:33(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2017(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 1 постах
|
Вдруг кому поможет, проблема выше (https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=75364#post75364) с XmlDsigSmevTransform, решается для .NET 4.5 и выше добавлением трансформации в список доверительных. signedXml.SafeCanonicalizationMethods.Add("urn://smev-gov-ru/xmldsig/transform"); В случае .NET 4.0 - в реестре должен быть раздел "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeCanonicalizationMethods". И в нем должен быть строковый параметр с произвольным именем и со значением "urn://smev-gov-ru/xmldsig/transform". оригинал тут https://www.cryptopro.ru...ts&m=76402#post76402
|
2 пользователей поблагодарили cryptouser1989 за этот пост.
|
Kilya оставлено 20.02.2017(UTC), NIC оставлено 17.05.2017(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.11.2015(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 14 раз
|
Здравстуйте. В данной тебе были любезно предоставлены примеры запросов, которые проходят валидацию ЭП. Так же есть код для подписания xml-запросов. А не затруднит ли показать пример xml-запроса-шаблона, который подается на вход методу подписанию?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.08.2013(UTC) Сообщений: 67 Откуда: Новосибирск Сказал(а) «Спасибо»: 2 раз Поблагодарили: 2 раз в 2 постах
|
Добрый день. Столкнулись с проблемой, что не проходит валидация подписей ответа от СМЭВ3. Файл: GetResponseResponseFull.xml (8kb) загружен 12 раз(а).Используется следующий код для проверки: Код:
public static bool VerifySignaturesXmlFile3(string xml)
{
var certificates = GetSertificates(xml);
var allResult = true;
// Проверяем все подписи.
foreach (var cert in certificates)
{
AddSafeCanonicalizationMethod(cert);//тут добавляется "urn://smev-gov-ru/xmldsig/transform" в SafeCanonicalizationMethods
bool result = cert.CheckSignature();//сертификат находится внутри узла Signature
allResult &= result;
}
return certificates.Count != 0 && allResult;
}
internal static List<SignedXml> GetSertificates(string xml)
{
var certificates = new List<Tuple<SignedXml, byte[]>>();
var doc = new XmlDocument { PreserveWhitespace = true };// Сохраняем все пробельные символы, они важны при проверке подписи.
// Загружаем подписанный документ XML
doc.LoadXml(xml);
// Ищем все node "Signature"
XmlNodeList nodeList = doc.GetElementsByTagName("Signature", SignedXml.XmlDsigNamespaceUrl);
// Достаём все подписи.
for (int i = 0; i < nodeList.Count; i++)
{
var signedXml = new SignedXml(doc);
signedXml.LoadXml((XmlElement)nodeList[i]);
certificates.Add(signedXml);
}
return certificates;
}
Раньше этот код работал замечательно. Есть подозрение что поставщик (МВД) как-то не так подписывает, но на портале http://smev3.gosuslugi.ru/portal/checkxmlform.jsp проверка проходит. Но в дебаге на строчке Появляется ошибка: Цитата:System.Security.Cryptography.Xml.SignedXml Verbose: 13 : [SignedXml#000e1a7d, VerifyReference] Reference Reference#027aa818 hashed with "http://www.w3.org/2001/04/xmldsig-more#gostr3411" (Gost3411CryptoServiceProvider) has hash value 6cd0550fabd6a2a02cca50835306f5cb591f8ef3a978ea361b26a5a092734dc5, expected hash value 4e55ee8193f04fc67fa50a28c5cd9f5071e4a66335ea2f47e265836f5a70453b. System.Security.Cryptography.Xml.SignedXml Information: 12 : [SignedXml#000e1a7d, VerificationFailure] Verification failed checking references. System.Security.Cryptography.Xml.SignedXml Information: 9 : [SignedXml#000e1a7d, SignatureVerificationResult] Verification with key Gost3410CryptoServiceProvider#"CLR{2B620CF7-652B-42E0-99D3-5B740C942562}" was not successful. Есть у кого-нибудь соображения?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.11.2015(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 14 раз
|
Добрый день! ShurikEv, подскажите, пожалуйста, вот эти строки кода откуда? Код:var doc = new XmlDocument { PreserveWhitespace = true };// Сохраняем все пробельные символы, они важны при проверке подписи.
У меня проверки с параметром PreserveWhitespace = true не работают, а вот если выставить false - то работают. У меня ощущение, что данный параметр форматирует документ (если true), и соответственно измененный документ не проходит проверку т.к. хэш не совпадает. Но я новичек в вопросах ЭЦП, только мои наблюдения. В моем коде стоит параметр false и Ваш пример проходит проверки. Отредактировано пользователем 1 марта 2017 г. 8:45:35(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.08.2013(UTC) Сообщений: 67 Откуда: Новосибирск Сказал(а) «Спасибо»: 2 раз Поблагодарили: 2 раз в 2 постах
|
Автор: Kilya подскажите, пожалуйста, вот эти строки кода откуда? Например в SDK. Ну и в этой теме, например сообщение 31
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.11.2015(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 14 раз
|
Автор: ShurikEv Автор: Kilya подскажите, пожалуйста, вот эти строки кода откуда? Например в SDK. Ну и в этой теме, например сообщение 31 Там же написано, что не работает проверка. Возможно как раз из-за данного параметра. Вы решили проблему?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close