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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline alexey_kozlov  
#1 Оставлено : 14 августа 2015 г. 12:56:29(UTC)
alexey_kozlov

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

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

Offline Павел Смирнов  
#2 Оставлено : 17 августа 2015 г. 10:19:58(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
В плагине такое преобразование не реализовано. Если вы его реализуете для xmlsec, то мы сможем добавить его в плагин. Или можно заказать такую доработку через наш коммерческий отдел.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline alexey_kozlov  
#3 Оставлено : 17 августа 2015 г. 17:02:35(UTC)
alexey_kozlov

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

Группы: Участники
Зарегистрирован: 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, сейчас проводится тестирование. Релиз планируется в августе.
При наличии сертификата техподдержки разработчика готовы предоставить предварительную версию.


Offline Павел Смирнов  
#4 Оставлено : 18 августа 2015 г. 10:33:00(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Это нам не сильно поможет, т.к. трансформ для C-шной библиотеки xmlsec вроде как делается совсем по-другому.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Bingosoft  
#5 Оставлено : 20 августа 2015 г. 17:00:07(UTC)
Bingosoft

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

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

Добрый день!
НАм этот вопрос тоже очень актуален. Используем в системе Browser plug-in и нужно настроить взаимодействие с внешними сервисами через СМЭВ 3.0. Просьба рассмотреть вопрос добавления трансформации. Спасибо!
Offline Павел Смирнов  
#6 Оставлено : 21 августа 2015 г. 9:15:11(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Автор: Bingosoft Перейти к цитате
Добрый день!
НАм этот вопрос тоже очень актуален. Используем в системе Browser plug-in и нужно настроить взаимодействие с внешними сервисами через СМЭВ 3.0. Просьба рассмотреть вопрос добавления трансформации. Спасибо!

Может вы напишете такой трансформ для C-шного xmlsec? Тогда мы его добавим в плагин.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Павел Смирнов  
#7 Оставлено : 25 августа 2015 г. 13:47:44(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Как вариант - можно на сервере реализовать трансформ, а логику подписания XMLDSig разбить на два этапа - подсчёт хэш-значения и вычисление подписи. Тогда можно с помощью плагина подписать присланное с сервера хэш-значение, получить от плагина "голую" подпись, после чего на сервере собрать нужный XML.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Hired  
#8 Оставлено : 25 ноября 2015 г. 14:31:22(UTC)
Hired

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

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

Подскажите у кого есть работающее решение с использования плагина для создания подписи СМЭВ 3 или кто готов сделать на заказ, в ЛС.
Offline alexey_kozlov  
#9 Оставлено : 15 января 2016 г. 10:53:20(UTC)
alexey_kozlov

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

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

Поблагодарили: 8 раз в 1 постах
Автор: Смирнов Перейти к цитате
Как вариант - можно на сервере реализовать трансформ, а логику подписания XMLDSig разбить на два этапа - подсчёт хэш-значения и вычисление подписи. Тогда можно с помощью плагина подписать присланное с сервера хэш-значение, получить от плагина "голую" подпись, после чего на сервере собрать нужный XML.


Подскажите каким образом посчитать хэш-значение, это нужно делать при помощи java или плагина, и потом как получить от плагина подпись хэша, это можно сделать по примеру из руководства разработчика(http://cpdn.cryptopro.ru/content/cades/plugin-samples-raw-signature.html)?
Offline alexey_kozlov  
#10 Оставлено : 19 января 2016 г. 6:42:04(UTC)
alexey_kozlov

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

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

thanks 8 пользователей поблагодарили alexey_kozlov за этот пост.
Павел Смирнов оставлено 19.01.2016(UTC), Андрей * оставлено 19.01.2016(UTC), zotona оставлено 07.04.2016(UTC), belkin оставлено 19.04.2017(UTC), andrey_l оставлено 29.11.2017(UTC), cryptouser1989 оставлено 26.06.2018(UTC), heavyside оставлено 08.06.2022(UTC), Iavona оставлено 06.03.2024(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.