Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2014(UTC) Сообщений: 26 Откуда: Москва Поблагодарили: 4 раз в 4 постах
|
Автор: spider Автор: mdervel В продолжение темы проверки подписи. Заметил, что в реализации urn://smev-gov-ru/xmldsig/transform в КриптоПро'ой библиотеке (CryptoPro.Sharpei.Xml) идет сортировка атрибутов с учетом текущей культуры, что дает отличный от оригинала порядок атрибутов, и в итоге хеш данных отличается от того, что в подписи. Столкнулись с такой же проблемой. Нет ли решения от КриптоПро ? Для части ведомство подпись проверяется, а для части считается не валидной. Примермы могу выложить сюда для анализа Вступаю в ваш клуб :) Есть ли решение / workaround?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2014(UTC) Сообщений: 26 Откуда: Москва Поблагодарили: 4 раз в 4 постах
|
Автор: archimed7592 Автор: spider Автор: mdervel В продолжение темы проверки подписи. Заметил, что в реализации urn://smev-gov-ru/xmldsig/transform в КриптоПро'ой библиотеке (CryptoPro.Sharpei.Xml) идет сортировка атрибутов с учетом текущей культуры, что дает отличный от оригинала порядок атрибутов, и в итоге хеш данных отличается от того, что в подписи. Столкнулись с такой же проблемой. Нет ли решения от КриптоПро ? Для части ведомство подпись проверяется, а для части считается не валидной. Примермы могу выложить сюда для анализа Вступаю в ваш клуб :) Есть ли решение / workaround? Отвечаю на свой же вопрос: помогло обновление Windows, CSP, CP.NET. Что именно - не знаю, не было возможности на бою проверять по отдельности. Вероятно, дело именно в Windows, а именно, в каком-нибудь из обновлений .NET т.к., судя по рефлектору, проблемная часть кода, сортирующая атрибуты, не изменилась.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2014(UTC) Сообщений: 26 Откуда: Москва Поблагодарили: 4 раз в 4 постах
|
Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело. По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов. Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 10.04.2017(UTC) Сообщений: 15 Откуда: Россия
Сказал(а) «Спасибо»: 1 раз
|
Зарегистрировались в смэв3 в среде разработки. Запрос уходит корректно, ответ от смэв приходит правильный. А вот когда запрашиваю данные, вызывая метод GetResponse, возвращается пустой ответ. Запросы делал на основе примеров, выложенных на технологическом портале смэв. Всё вроде делаю правильно, но данных нет. Никто не знает, в среде разработки данные на запросы вообще приходят или нет и у меня нормальная ситуация?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2014(UTC) Сообщений: 26 Откуда: Москва Поблагодарили: 4 раз в 4 постах
|
Про среду разработки не скажу, а на тестовой среде нужно указать тэг TestMessage, чтобы ответ какой-нибудь пришел.
|
1 пользователь поблагодарил archimed7592 за этот пост.
|
RomanK оставлено 13.06.2018(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 10.04.2017(UTC) Сообщений: 15 Откуда: Россия
Сказал(а) «Спасибо»: 1 раз
|
Автор: archimed7592 Про среду разработки не скажу, а на тестовой среде нужно указать тэг TestMessage, чтобы ответ какой-нибудь пришел. Спасибо за совет! Поставил тэг TestMessage, данные получил.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 10.04.2017(UTC) Сообщений: 15 Откуда: Россия
Сказал(а) «Спасибо»: 1 раз
|
Может кто подскажет, какая последовательность действий при получении данных из смэв3? Сначала отправляем запрос, потом пробуем получить данные. Нужно ли после получения данных вызывать Ack с ID запроса, с которым эти данные пришли или нет? Имеется в виду OriginalMessageId
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2014(UTC) Сообщений: 26 Откуда: Москва Поблагодарили: 4 раз в 4 постах
|
Нужно вызывать Ack с ID ответного сообщения.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Автор: archimed7592 Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело. По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов. Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая. Сортировка атрибутов действительно менялась, чтобы соответствовать методическим рекомендациям. Можете привести примеры с правильным и неправильным порядком атрибутов? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.02.2014(UTC) Сообщений: 26 Откуда: Москва Поблагодарили: 4 раз в 4 постах
|
2018-06-19T09-47.zip (57kb) загружен 40 раз(а).Автор: Кирилл Соболев Автор: archimed7592 Нет, обновление помогло только частично... какая-то плавающая проблема, не могу понять в чём дело. По отладке XmlDsig видно, что хэш считается от различных результатов трансформации. Результаты отличаются сортировкой атрибутов. Одно и то же содержимое на компьютере проходит проверку, а на сервере - нет. Причём локаль и там и там одинаковая. Сортировка атрибутов действительно менялась, чтобы соответствовать методическим рекомендациям. Можете привести примеры с правильным и неправильным порядком атрибутов? Могу дать два примера - один который проходит проверку подписи, другой, который не проходит. К сожалению, это будет не один и тот же XML, а два разных ответа от сервера, т.е. так по простому мне не удалось понять почему один проходит проверку, а другой - нет. Во вложении архив 2018-06-19T09-47.zip (57kb) загружен 40 раз(а). Документ 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 - лог проверки документа
Достаточно ли этого или нужно взять документ, который не проходит, и показать как правильно его трансформировать чтобы проходило?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close