Статус: Новичок
Группы: Участники
Зарегистрирован: 14.08.2015(UTC) Сообщений: 5  Поблагодарили: 8 раз в 1 постах
|
Здравствуйте. Вопрос по переходу на СМЭВ 3.0. Ссылка на портал смэв 3: http://smev3.gosuslugi.ru/portal/Методические рекомендации по работе с ЕСМЭВ версия 3.0.9.8.1 (проект)Примеры запросовПо методическим рекомендациям необходимо подписывать часть XML содержащую бизнес данные подписью сотрудника. Для подписания таких данных в смэв 2.0 мы раньше использовали КриптоПро ЭЦП Browser plug-in. Вопрос возможно ли подписать xml данные для СМЭВ 3.0 при помощи плагина. Пример тега подписи сотрудника: Код:
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
<ds:Reference URI="#PERSONAL_SIGNATURE">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<ds:DigestValue>AUGmtYkL7MD5MqwxwcQULupXi6FtvCrsHED26tKroC0=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>PFtijkGkwB1rSG3q9YSiZwrtpMk2PV53kZfAqDJr/Z29plOShhDwuGTavcrnORMkAspDsYwqQM69hHnOJeqYiQ==</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIBhjCCATWgAwIBAgIELVa5zjAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YzMQswCQYDVQQGEwJSVTAeFw0xNDAyMjYwODQ1MTdaFw0xNTAyMjYwODQ1MTdaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMzELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAvEqmzwoBlO2KHcBQND5WplUT9eBWXoQCrxuzlPQXCE+WKdNRVMkm4TivyPLgLTwgjxMcUnHSIZSeWL8LB97QPqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EA1u5TsTfom9Y0levJ0AeFtZT0lqEQUHL2PCKXmygvV1ZKJ1mBBLxVgCtIlii/Hql0SGAVwySDtZX7M20P3gjRgA==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
Я попытался подписать документ по xml по шаблону при помощи плагина, но с ходу не получилось. если добавить в шаблон строчку: Код:
<Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/>
То возникает ошибка, как я понимаю это связано с тем что плагин не поддерживает данную трансформацию. Пример вызова плагина с таким шаблоном в прикрепленном файле  signature_cades_test.zip (3kb) загружен 27 раз(а).Возможно ли использовать данный плагин для подписания таких запросов, или необходимо действовать каким либо другим способом? Отредактировано пользователем 14 августа 2015 г. 12:57:34(UTC)
| Причина: Не указана
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
В плагине такое преобразование не реализовано. Если вы его реализуете для xmlsec, то мы сможем добавить его в плагин. Или можно заказать такую доработку через наш коммерческий отдел. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.08.2015(UTC) Сообщений: 5  Поблагодарили: 8 раз в 1 постах
|
Автор: Смирнов  В плагине такое преобразование не реализовано. Если вы его реализуете для xmlsec, то мы сможем добавить его в плагин. Или можно заказать такую доработку через наш коммерческий отдел. В документации к смэв 3 есть пункт: 7.4. ПРИЛОЖЕНИЕ4: ОБРАЗЦОВАЯ РЕАЛИЗАЦИЯТРАНСФОРМАЦИИURN://SMEV-GOV-RU/XMLDSIG/TRANSFORM Который содержит текст Java-класса, реализующиего алгоритм трансформации "urn://smev-gov-ru/xmldsig/transform" для ApacheSantuario(xmlsec). Также есть на портале смэв 3, maven проект который содержит этот файл: Актуальная версия библиотек клиента СМЭВ 3Еще есть аналогичная тема по КриптоПро .NET: https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=8840Там ваши разработчики написали, что уже реализовали этот алгоритм для КриптоПро.NET: Цитата: Мы доработали КриптоПро .NET для работы со СМЭВ-3, сейчас проводится тестирование. Релиз планируется в августе. При наличии сертификата техподдержки разработчика готовы предоставить предварительную версию.
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Это нам не сильно поможет, т.к. трансформ для C-шной библиотеки xmlsec вроде как делается совсем по-другому. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.08.2015(UTC) Сообщений: 2  Откуда: Нижний Новгород
|
Добрый день! НАм этот вопрос тоже очень актуален. Используем в системе Browser plug-in и нужно настроить взаимодействие с внешними сервисами через СМЭВ 3.0. Просьба рассмотреть вопрос добавления трансформации. Спасибо!
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Автор: Bingosoft  Добрый день! НАм этот вопрос тоже очень актуален. Используем в системе Browser plug-in и нужно настроить взаимодействие с внешними сервисами через СМЭВ 3.0. Просьба рассмотреть вопрос добавления трансформации. Спасибо! Может вы напишете такой трансформ для C-шного xmlsec? Тогда мы его добавим в плагин. |
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Как вариант - можно на сервере реализовать трансформ, а логику подписания XMLDSig разбить на два этапа - подсчёт хэш-значения и вычисление подписи. Тогда можно с помощью плагина подписать присланное с сервера хэш-значение, получить от плагина "голую" подпись, после чего на сервере собрать нужный XML. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.11.2015(UTC) Сообщений: 1 
|
Подскажите у кого есть работающее решение с использования плагина для создания подписи СМЭВ 3 или кто готов сделать на заказ, в ЛС.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.08.2015(UTC) Сообщений: 5  Поблагодарили: 8 раз в 1 постах
|
Автор: Смирнов  Как вариант - можно на сервере реализовать трансформ, а логику подписания XMLDSig разбить на два этапа - подсчёт хэш-значения и вычисление подписи. Тогда можно с помощью плагина подписать присланное с сервера хэш-значение, получить от плагина "голую" подпись, после чего на сервере собрать нужный XML. Подскажите каким образом посчитать хэш-значение, это нужно делать при помощи java или плагина, и потом как получить от плагина подпись хэша, это можно сделать по примеру из руководства разработчика(http://cpdn.cryptopro.ru/content/cades/plugin-samples-raw-signature.html)?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.08.2015(UTC) Сообщений: 5  Поблагодарили: 8 раз в 1 постах
|
Нашел на habrahabr статью http://habrahabr.ru/post/189596/ в которой описана реализация подобной задачи только на C#. По аналогии сделал реализацию на JAVA на основе клиента смев 3 с сайта смэв и данной статьи. Путь решения следующий: 1. Формируем XML документ для которого необходимо добавить подпись ЭП-СП. 2. Формируем при помощи класса XMLSignature с заполнными трасформ аггоритмами объкт SignedInfo со сгенерированным DigestValue, вызываем getCanonicalizedOctetStream() - получаем массив byte[] с канокализированным значением SignedInfo, от которого необходимо посчитать хэш по алгоритму гост и закодировать его в шеснадцатирично-десетичном формате. 3. Полученный хэш подписыватся на стороне клиента при помощи плагина объемтом CAdESCOM.RawSignature, получаем подпись в шеснадцатирично-десетичном формате и также достаем сертификат в BASE64. 4. Полученная подпись и инофрмацию о сертификате отправляем на сервер. 5. Подпись декодируем из HEX формата в массив байт, затем этот массив необходимо обратить(поменять элементы массива в обратном порядке), и закодировать в BASE64. 6. Затем на основе сертификата и класса XMLSignature сформировать тэг Signature с незаполненным тэгом SignatureValue. Заполнить тег SignatureValue значением полученным на предыдущем шаге. Полученный Element и будет являться полноценной подписью построенной по правилам смэв 3 и проверяемой на странице Проверка XML-сообщения на соответствие схемам сервиса СМЭВ( http://smev3.gosuslugi.ru/portal/checkxmlform.jsp). Прикрепляю тест на JAVA и классы утилит для примера реализации данного алгоритма, а также JAVASCRIPT и HTML для расчета подписи. Примеры исходного кода неполные и предназначены только для ознакомления с описанным выше алгоритмом.  smev_3.0_personal_sign_example.zip (89kb) загружен 137 раз(а).Отредактировано пользователем 19 января 2016 г. 6:58:46(UTC)
| Причина: Не указана
|
 8 пользователей поблагодарили alexey_kozlov за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close