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

Уведомление

Icon
Error

4 Страницы«<234
Опции
К последнему сообщению К первому непрочитанному
Offline archimed7592  
#61 Оставлено : 4 июня 2018 г. 14:08:32(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
Автор: spider Перейти к цитате
Автор: mdervel Перейти к цитате
В продолжение темы проверки подписи.
Заметил, что в реализации urn://smev-gov-ru/xmldsig/transform в КриптоПро'ой библиотеке (CryptoPro.Sharpei.Xml) идет сортировка атрибутов с учетом текущей культуры, что дает отличный от оригинала порядок атрибутов, и в итоге хеш данных отличается от того, что в подписи.


Столкнулись с такой же проблемой. Нет ли решения от КриптоПро ? Для части ведомство подпись проверяется, а для части считается не валидной. Примермы могу выложить сюда для анализа


Вступаю в ваш клуб :)
Есть ли решение / workaround?
Offline archimed7592  
#62 Оставлено : 4 июня 2018 г. 18:48:26(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
Автор: archimed7592 Перейти к цитате
Автор: spider Перейти к цитате
Автор: mdervel Перейти к цитате
В продолжение темы проверки подписи.
Заметил, что в реализации urn://smev-gov-ru/xmldsig/transform в КриптоПро'ой библиотеке (CryptoPro.Sharpei.Xml) идет сортировка атрибутов с учетом текущей культуры, что дает отличный от оригинала порядок атрибутов, и в итоге хеш данных отличается от того, что в подписи.


Столкнулись с такой же проблемой. Нет ли решения от КриптоПро ? Для части ведомство подпись проверяется, а для части считается не валидной. Примермы могу выложить сюда для анализа


Вступаю в ваш клуб :)
Есть ли решение / workaround?


Отвечаю на свой же вопрос: помогло обновление Windows, CSP, CP.NET. Что именно - не знаю, не было возможности на бою проверять по отдельности.
Вероятно, дело именно в Windows, а именно, в каком-нибудь из обновлений .NET т.к., судя по рефлектору, проблемная часть кода, сортирующая атрибуты, не изменилась.
Offline archimed7592  
#63 Оставлено : 6 июня 2018 г. 8:04:31(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело.
По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов.
Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая.
Offline RomanK  
#64 Оставлено : 13 июня 2018 г. 9:14:02(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Зарегистрировались в смэв3 в среде разработки. Запрос уходит корректно, ответ от смэв приходит правильный.
А вот когда запрашиваю данные, вызывая метод GetResponse, возвращается пустой ответ.
Запросы делал на основе примеров, выложенных на технологическом портале смэв.
Всё вроде делаю правильно, но данных нет. Никто не знает, в среде разработки данные на запросы вообще приходят или нет и у меня нормальная ситуация?
Offline archimed7592  
#65 Оставлено : 13 июня 2018 г. 11:28:20(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
Про среду разработки не скажу, а на тестовой среде нужно указать тэг TestMessage, чтобы ответ какой-нибудь пришел.
thanks 1 пользователь поблагодарил archimed7592 за этот пост.
RomanK оставлено 13.06.2018(UTC)
Offline RomanK  
#66 Оставлено : 13 июня 2018 г. 12:01:49(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: archimed7592 Перейти к цитате
Про среду разработки не скажу, а на тестовой среде нужно указать тэг TestMessage, чтобы ответ какой-нибудь пришел.


Спасибо за совет! Поставил тэг TestMessage, данные получил.
Offline RomanK  
#67 Оставлено : 18 июня 2018 г. 6:59:23(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Может кто подскажет, какая последовательность действий при получении данных из смэв3? Сначала отправляем запрос, потом пробуем получить данные.
Нужно ли после получения данных вызывать Ack с ID запроса, с которым эти данные пришли или нет? Имеется в виду OriginalMessageId
Offline archimed7592  
#68 Оставлено : 18 июня 2018 г. 7:39:37(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
Нужно вызывать Ack с ID ответного сообщения.
Offline Кирилл Соболев  
#69 Оставлено : 18 июня 2018 г. 13:54:46(UTC)
Кирилл Соболев

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

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

Поблагодарили: 175 раз в 167 постах
Автор: archimed7592 Перейти к цитате
Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело.
По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов.
Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая.

Сортировка атрибутов действительно менялась, чтобы соответствовать методическим рекомендациям.
Можете привести примеры с правильным и неправильным порядком атрибутов?

Техническую поддержку оказываем тут
Наша база знаний
Offline archimed7592  
#70 Оставлено : 20 июня 2018 г. 7:48:37(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
2018-06-19T09-47.zip (57kb) загружен 14 раз(а).
Автор: Кирилл Соболев Перейти к цитате
Автор: archimed7592 Перейти к цитате
Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело.
По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов.
Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая.

Сортировка атрибутов действительно менялась, чтобы соответствовать методическим рекомендациям.
Можете привести примеры с правильным и неправильным порядком атрибутов?



Могу дать два примера - один который проходит проверку подписи, другой, который не проходит. К сожалению, это будет не один и тот же XML, а два разных ответа от сервера, т.е. так по простому мне не удалось понять почему один проходит проверку, а другой - нет.

Во вложении архив 2018-06-19T09-47.zip (57kb) загружен 14 раз(а).
Документ 7152aa75-2827-43ce-b00b-e16a42dd2600 - не проходит проверку подписи.
Документ 7957405b-74d5-4d5f-8294-4e1419c2e696 - проходит проверку успешно.

Проверка делается в соответствии с "Crypto Pro\.NET SDK\Examples\simple\Xml\cs\SignDocument.cs" метод VerifyXmlFile с дополнительным signedXml.SafeCanonicalizationMethods.Add("urn://smev-gov-ru/xmldsig/transform") как рекомендовано в том же файле в методе SignXmlFile.

По каждому из документов в архиве вы найдете:
  • mtom - оригинальный ответ от сервера
  • original.xml - вычлененный из MTOM документ XML, который собственно и проверяем
  • transformed.xml - взято из лога XmlDsig - то от чего SignedXml пытается посчитать хэш
  • XmlDsigLog.txt - лог проверки документа


Достаточно ли этого или нужно взять документ, который не проходит, и показать как правильно его трансформировать чтобы проходило?
Offline RomanK  
#71 Оставлено : 22 июня 2018 г. 9:14:30(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: archimed7592 Перейти к цитате
Нужно вызывать Ack с ID ответного сообщения.


Не расскажете алгоритм взаимодействия со СМЭВ 3? Не совсем разобрался с очередями. После того, как поставщик данных отправил свой ответ, я его получаю, отправляю Ack. А что происходит с ответом поставщика в очереди ответов?
В тестовой среде какая то ерунда, ответ как висел, так и висит, отправляй Ack на него или нет, и не понятно, это нормальное поведение или нет.
Offline archimed7592  
#72 Оставлено : 22 июня 2018 г. 15:53:35(UTC)
archimed7592

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

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

Поблагодарили: 1 раз в 1 постах
Автор: RomanK Перейти к цитате
Автор: archimed7592 Перейти к цитате
Нужно вызывать Ack с ID ответного сообщения.


Не расскажете алгоритм взаимодействия со СМЭВ 3? Не совсем разобрался с очередями. После того, как поставщик данных отправил свой ответ, я его получаю, отправляю Ack. А что происходит с ответом поставщика в очереди ответов?
В тестовой среде какая то ерунда, ответ как висел, так и висит, отправляй Ack на него или нет, и не понятно, это нормальное поведение или нет.


Это с крипографией не связано.
См. http://bankir.ru/dom/for...0%BC-%D0%B8-%D0%BE%D0%BC
Offline Михаил_Б_Л  
#73 Оставлено : 29 июня 2018 г. 3:24:23(UTC)
Михаил_Б_Л

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

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

Автор: Кирилл Соболев Перейти к цитате
Автор: archimed7592 Перейти к цитате
Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело.
По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов.
Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая.

Сортировка атрибутов действительно менялась, чтобы соответствовать методическим рекомендациям.
Можете привести примеры с правильным и неправильным порядком атрибутов?



Коллеги, добрый день. Нужна ваша помощь. Никак не могу победить AckRequest, как только добавляю атрибут accepted="true", подпись сразу становится неверной. Пробовал разные варианты добавления атрибута и перед ID и после - разницы нет, подпись неверна, без атрибута с подписью все в порядке. Выше писали что-то зависимость сортировки от региональных настроек, но куда копать не нашел. Подскажите.
Offline Кирилл Соболев  
#74 Оставлено : 10 июля 2018 г. 13:20:43(UTC)
Кирилл Соболев

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

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

Поблагодарили: 175 раз в 167 постах
Цитата:
Достаточно ли этого или нужно взять документ, который не проходит, и показать как правильно его трансформировать чтобы проходило?

Если такой пример есть, было бы отлично. Будет проще понять, где трансформация в КриптоПро .NET сбивается с пути истинного Angel
Техническую поддержку оказываем тут
Наша база знаний
Offline RomanK  
#75 Оставлено : 17 августа 2018 г. 14:59:01(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Победил таки СМЭВ 3. В тестовой среде прошли все тесты, получили доступ в продуктивную среду
Offline Mastermind  
#76 Оставлено : 27 августа 2018 г. 10:06:02(UTC)
Mastermind

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

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

Добрый день. Для интеграции с ФССП необходимо передавать и подписывать вложения в рамках обмена сообщениями. Подпись вложений - PKCS7, преобразованная в строку Base64. Отправляем запрос и в ответе получаем ошибку: SMEV-100:Проверка подписи на вложении piev_1143.zip: org.bouncycastle.cms.CMSException: Malformed content

Код:

        /// <summary>
        /// Подписывание содержимого файла подписью PKCS
        /// </summary>
        /// <param name="certSn">Серийный номер сертификата для подписи</param>
        /// <param name="attContent">Массив байт для подписи</param>
        public static byte[] SignByteContent(string certSn, byte[] attContent)
        {
            try
            {
                SignedCms sign = new SignedCms(SubjectIdentifierType.IssuerAndSerialNumber, new ContentInfo(attContent), true);
                var cert = GetCertificate(certSn);
                if (cert == null)
                    throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "Smev3:SignXmlDoc: Не найден сертификат с серийным номером {0}", certSn));
                
                var signer = new CmsSigner(cert) { IncludeOption = X509IncludeOption.WholeChain };
                signer.DigestAlgorithm = new Oid("1.2.643.2.2.9");
                sign.ComputeSignature(signer);
                return sign.Encode();
            }
            catch (Exception e)
            {
                throw new ArgumentException("Ошибка подписывания файла", e);
            }
        }


Вроде бы заработало. Не хватало строчки кода - signer.DigestAlgorithm = new Oid("1.2.643.2.2.9");
СМЭВ 3 не отругался, что подпись не верна, а добавил ответ в очередь.
Разобрался с помощью анализа состава подписи через https://lapo.it/asn1js/

Отредактировано пользователем 27 августа 2018 г. 13:22:58(UTC)  | Причина: Вопрос решен

Offline KonovalovVR  
#77 Оставлено : 3 сентября 2018 г. 10:59:26(UTC)
KonovalovVR

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

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

Поблагодарили: 1 раз в 1 постах
Добрый вечер, пытаемся пройти тестирование смэв 3 (ГИС ГМП, вид сведений: прием необходимой для уплаты информации (начисления), версия 2.0.1).
На эталонный пример получаем эталонный ответ, на любые остальные получаем ошибку. Заявку на тест в ГИС ГМП подавали, по телефону отвечают, что в тестовой системе зареганы.
Непонятно, что это за ошибка, на стороне смэва? на стороне ГИС ГМП? не очень гуглится.
Код:
<ns2:RequestRejected>
<ns2:RejectionReasonCode>
UNKNOWN_REQUEST_DESCRIPTION
</ns2:RejectionReasonCode>
<ns2:RejectionReasonDescription>
Ошибка идентификации сценария тестирования. Доступны следующие сценарии: [Успешный прием необходимой для уплаты информации (начисления) (2.0.1) (//req:ImportChargesRequest/pkg:ChargesPackage/pkg:ImportedCharge[@supplierBillID="32116102414550976332"])]
</ns2:RejectionReasonDescription>
</ns2:RequestRejected>
[@supplierBillID="32116102414550976332"] это сапплаербиллайди эталонного примера

Пробовали и убирать и вставлять тэг TestMessage, ошибка та же самая
Адрес обращения: http://smev3-n0.test.gosuslugi.ru:7500/ws?wsdl
thanks 1 пользователь поблагодарил KonovalovVR за этот пост.
U3962 оставлено 05.09.2018(UTC)
Offline RomanK  
#78 Оставлено : 4 сентября 2018 г. 7:18:38(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Привет.
При работе в рабочей среде обнаружилась такая проблема. Заявка на получение данных и запрос на получение данных проходят без ошибок, смэв их принимает, обрабатывает, отправляет данные. А вот с подтверждением данных получаю ошибку "ЭП-ОВ не соответствует подписанным данным: Ошибка проверки ЭП: Нарушена целостность ЭП". И не понятно, в какую сторону смотреть.
В среде разработки все три запроса, правда с другой подписью, проходят проверку на тех. портале смэв, а вот в среде разработки два запроса проходят проверку, а запрос ACK нет
Offline RomanK  
#79 Оставлено : 4 сентября 2018 г. 9:06:33(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: RomanK Перейти к цитате
Привет.
При работе в рабочей среде обнаружилась такая проблема. Заявка на получение данных и запрос на получение данных проходят без ошибок, смэв их принимает, обрабатывает, отправляет данные. А вот с подтверждением данных получаю ошибку "ЭП-ОВ не соответствует подписанным данным: Ошибка проверки ЭП: Нарушена целостность ЭП". И не понятно, в какую сторону смотреть.
В среде разработки все три запроса, правда с другой подписью, проходят проверку на тех. портале смэв, а вот в среде разработки два запроса проходят проверку, а запрос ACK нет


Различия состоят в версиях КриптоПро .NET, там где всё работает, стоит версия 1.0.6397.0 клиентская, а там где почему то неправильно подписывается одно из трёх сообщений, стоит серверная 1.0.5913.0
Может ли быть проблема в этом?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы«<234
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.