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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline cryptouser1989  
#1 Оставлено : 17 января 2017 г. 18:00:02(UTC)
cryptouser1989

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

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

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

Изначально встретил аналогичную проблему тут https://www.cryptopro.ru...aspx?g=posts&t=8840.
Проблема в том, что на сообщение https://www.cryptopro.ru...ts&m=75364#post75364 не отвечают больше месяца и непонятно последует ли ответ на то сообщение вообще.

Могу присоединиться к пользователю alexpav@inbox.ru и тоже констатировать, что проверка подписи в примере из SDK с использованием XmlDsigSmevTransform завершается результатом "подпись неверна". (пример SignDocument из Xml).
Подписывал рабочим сертификатом, разумеется не истекшим.

Вопрос: как нужно проверять корректность подписи в СМЭВ 3.х?
Offline khomenko  
#2 Оставлено : 18 января 2017 г. 11:25:21(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 140
Мужчина
Откуда: Крипто-Про

Поблагодарили: 15 раз в 14 постах
Добрый день,

Обратите внимание на комментарии в примере:
// начиная с .NET 4.5.1 для проверки подписи, необходимо добавить этот трансформ в довернные:
// signedXml.SafeCanonicalizationMethods.Add("urn://smev-gov-ru/xmldsig/transform");

Уточните:
* какая версия .NET SDK, .NET установлена ?
* какая версия .NET Framework ?
* какой документ подписываете (из состава примера, собственный) ?
Offline cryptouser1989  
#3 Оставлено : 18 января 2017 г. 16:17:16(UTC)
cryptouser1989

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
* CryptoPro .NET Client - 1.0.5913.0; КриптоПро .NET SDK - 1.0.5913.0
* .NET Framework - 4.0
* брал пример в файле SignDocument.cs
Offline khomenko  
#4 Оставлено : 18 января 2017 г. 16:57:02(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 140
Мужчина
Откуда: Крипто-Про

Поблагодарили: 15 раз в 14 постах
Включите трассировку SignedXml. Для этого в файл конфигурации добавьте секцию:

Код:

 <system.diagnostics>
             <sources>
               <source name="System.Security.Cryptography.Xml.SignedXml"
                       switchName="XmlDsigLogSwitch">
                 <listeners>
                   <add name="logFile" />
                </listeners>
               </source>
             </sources>
             <switches>
               <add name="XmlDsigLogSwitch" value="Verbose" />
             </switches>
             <sharedListeners>
               <add name="logFile"
                    type="System.Diagnostics.TextWriterTraceListener"
                    initializeData="XmlDsigLog.txt"/>
             </sharedListeners>
             <trace autoflush="true">
               <listeners>
                 <add name="logFile" />
               </listeners>
             </trace>
 </system.diagnostics>
Offline cryptouser1989  
#5 Оставлено : 18 января 2017 г. 17:50:36(UTC)
cryptouser1989

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Да, в логе появилась разумная ошибка:
Метод синхронизации "urn://smev-gov-ru/xmldsig/transform" не входит в список безопасных. Безопасны следующие методы синхронизации: "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments", "http://www.w3.org/2001/10/xml-exc-c14n#", "http://www.w3.org/2001/10/xml-exc-c14n#WithComments", "http://www.w3.org/2000/09/xmldsig#enveloped-signature", "http://www.w3.org/2000/09/xmldsig#base64", "urn:mpeg:mpeg21:2003:01-REL-R-NS:licenseTransform", "http://www.w3.org/2002/07/decrypt#XML".

Осталось каким-то образом добавить эту трансформацию в список доверенных в .NET 4.0?
Offline cryptouser1989  
#6 Оставлено : 18 января 2017 г. 17:58:41(UTC)
cryptouser1989

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
По дизассемблированному коду следует, что в реестре должен быть раздел "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeCanonicalizationMethods".
И в нем должен быть строковый параметр с произвольным именем и со значением "urn://smev-gov-ru/xmldsig/transform".
Теперь подпись успешно проверяется, проблема решена.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.