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

Уведомление

Icon
Error

19 Страницы«<34567>»
Опции
К последнему сообщению К первому непрочитанному
Offline aldebaran911  
#41 Оставлено : 7 декабря 2016 г. 16:52:46(UTC)
aldebaran911

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

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

Offline alexpav@inbox.ru  
#42 Оставлено : 13 декабря 2016 г. 15:21:16(UTC)
alexpav@inbox.ru

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

Группы: Участники
Зарегистрирован: 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).
thanks 1 пользователь поблагодарил alexpav@inbox.ru за этот пост.
cryptouser1989 оставлено 18.01.2017(UTC)
Offline U3962  
#43 Оставлено : 26 декабря 2016 г. 8:00:21(UTC)
U3962

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 2 раз в 2 постах
Добрый день.

Подскажите, каким образом подписать сообщения для СМЭВ 3.0, использую JCP?
Нет ли у кого примеров на JAVA?
или подобного примера для СМЭВ 3.0.?
Offline Евгений Афанасьев  
#44 Оставлено : 18 января 2017 г. 9:18:49(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: U3962 Перейти к цитате
Добрый день.

Подскажите, каким образом подписать сообщения для СМЭВ 3.0, использую JCP?
Нет ли у кого примеров на JAVA?
или подобного примера для СМЭВ 3.0.?

.

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

Offline cryptouser1989  
#45 Оставлено : 18 января 2017 г. 18:06:52(UTC)
cryptouser1989

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

Группы: Участники
Зарегистрирован: 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
thanks 2 пользователей поблагодарили cryptouser1989 за этот пост.
Kilya оставлено 20.02.2017(UTC), NIC оставлено 17.05.2017(UTC)
Offline Kilya  
#46 Оставлено : 20 февраля 2017 г. 10:10:38(UTC)
Kilya

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

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

Сказал(а) «Спасибо»: 14 раз
Здравстуйте. В данной тебе были любезно предоставлены примеры запросов, которые проходят валидацию ЭП. Так же есть код для подписания xml-запросов. А не затруднит ли показать пример xml-запроса-шаблона, который подается на вход методу подписанию?
Offline ShurikEv  
#47 Оставлено : 1 марта 2017 г. 4:20:58(UTC)
ShurikEv

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

Группы: Участники
Зарегистрирован: 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 проверка проходит.
Но в дебаге на строчке
Код:
cert.CheckSignature();

Появляется ошибка:
Цитата:
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.


Есть у кого-нибудь соображения?
Offline Kilya  
#48 Оставлено : 1 марта 2017 г. 8:41:52(UTC)
Kilya

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

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

Сказал(а) «Спасибо»: 14 раз
Добрый день!
ShurikEv, подскажите, пожалуйста, вот эти строки кода откуда?
Код:
var doc = new XmlDocument { PreserveWhitespace = true };// Сохраняем все пробельные символы, они важны при проверке подписи.

У меня проверки с параметром PreserveWhitespace = true не работают, а вот если выставить false - то работают.
У меня ощущение, что данный параметр форматирует документ (если true), и соответственно измененный документ не проходит проверку т.к. хэш не совпадает.
Но я новичек в вопросах ЭЦП, только мои наблюдения.

В моем коде стоит параметр false и Ваш пример проходит проверки.

Отредактировано пользователем 1 марта 2017 г. 8:45:35(UTC)  | Причина: Не указана

Offline ShurikEv  
#49 Оставлено : 1 марта 2017 г. 8:45:46(UTC)
ShurikEv

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах
Автор: Kilya Перейти к цитате
подскажите, пожалуйста, вот эти строки кода откуда?

Например в SDK. Ну и в этой теме, например сообщение 31
Offline Kilya  
#50 Оставлено : 1 марта 2017 г. 10:02:18(UTC)
Kilya

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

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

Сказал(а) «Спасибо»: 14 раз
Автор: ShurikEv Перейти к цитате
Автор: Kilya Перейти к цитате
подскажите, пожалуйста, вот эти строки кода откуда?

Например в SDK. Ну и в этой теме, например сообщение 31


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