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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Power_Gen  
#1 Оставлено : 16 февраля 2016 г. 12:23:54(UTC)
Power_Gen

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Подписываем XML посредством КриптоПро ЭЦП Browser plug-in. Версия плагина: 2.0.12245 (NMAPI). Версия CSP: 4.0.9589.
Тип подписи - подпись по шаблону.

В целом с задачей справились - подпись успешно формируется и валидируется. Но есть следующий вопрос: возможно ли исключить сертификат из блока <ds:X509Data>? Сейчас туда попадает всё содержимое сертификата, что очень сильно увеличивает размер XML. Хотелось бы передавать в составе XML только 2 атрибута сертификата - <ds:X509IssuerName> и <ds:X509SerialNumber>.

Тестовый исходный шаблон:

Код:

<?xml version="1.0" encoding="UTF-8"?>

<test>
	<uid>112233</uid>
	<date>2016-02-16T11:03:51+03:00</date>
	<ds:Signature Id="supplier" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
		<ds:SignedInfo>
			<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
			<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
			<ds:Reference URI="">
				<ds:Transforms>
					<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
					<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
				</ds:Transforms>
				<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>
				<ds:DigestValue></ds:DigestValue>
			</ds:Reference>
		</ds:SignedInfo>
		<ds:SignatureValue></ds:SignatureValue>
		<ds:KeyInfo>
			<ds:X509Data></ds:X509Data>
		</ds:KeyInfo>
	</ds:Signature>
</test>


Результат подписывания:

Код:

<?xml version="1.0" encoding="UTF-8"?>
<test>
	<uid>112233</uid>
	<date>2016-02-16T11:03:51+03:00</date>
	<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="supplier">
		<ds:SignedInfo>
			<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
			<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
			<ds:Reference URI="">
				<ds:Transforms>
					<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
					<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
				</ds:Transforms>
				<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>
				<ds:DigestValue>OVVArrf9jOQSG6BJjnxsVylDnsoxf2JEE9Ve9eb0kJg=</ds:DigestValue>
			</ds:Reference>
		</ds:SignedInfo>
		<ds:SignatureValue>fTw9zEKSYf8iramLSaCG6q0UXHe27Zm6s3XQCTq7ykk8hu66fvdTya1Z3On6lXzg
uis7+IbcyrEY4GEK4I5IsQ==</ds:SignatureValue>
		<ds:KeyInfo>
			<ds:X509Data>
<ds:X509Certificate>MIIIwzCCCHCgAwI ...</ds:X509Certificate>
</ds:X509Data>
		</ds:KeyInfo>
	</ds:Signature>
</test>


Хотелось бы получить:

Код:

<?xml version="1.0" encoding="UTF-8"?>
<test>
	<uid>112233</uid>
	<date>2016-02-16T11:03:51+03:00</date>
	<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="supplier">
		<ds:SignedInfo>
			<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
			<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
			<ds:Reference URI="">
				<ds:Transforms>
					<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
					<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
				</ds:Transforms>
				<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>
				<ds:DigestValue>OVVArrf9jOQSG6BJjnxsVylDnsoxf2JEE9Ve9eb0kJg=</ds:DigestValue>
			</ds:Reference>
		</ds:SignedInfo>
		<ds:SignatureValue>fTw9zEKSYf8iramLSaCG6q0UXHe27Zm6s3XQCTq7ykk8hu66fvdTya1Z3On6lXzg
uis7+IbcyrEY4GEK4I5IsQ==</ds:SignatureValue>
		<ds:KeyInfo>
			<ds:X509Data>
                        	<ds:X509IssuerSerial>
					<ds:X509IssuerName>...</ds:X509IssuerName>
					<ds:X509SerialNumber>...</ds:X509SerialNumber>
				</ds:X509IssuerSerial>
                        </ds:X509Data>
		</ds:KeyInfo>
	</ds:Signature>
</test>


Такое возможно?
Offline IronRate  
#2 Оставлено : 17 февраля 2016 г. 11:25:25(UTC)
IronRate

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Скорее нет чем да. Дело в том что для проверки подписи необходим открытый ключ, который хранится в сертификате. Если Вы все таки захотите не хранить тело сертификата в xml, то Вам придется самостоятельно реализовывать проверку подписи. Стандартные же механизмы проверки подписи xmldsig не будут работать.
Offline Power_Gen  
#3 Оставлено : 17 февраля 2016 г. 11:39:03(UTC)
Power_Gen

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

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

Сказал(а) «Спасибо»: 1 раз
IronRate, стандарт xmldsig допускает передачу в составе ЭП отдельных атрибутов сертификата, а не всего содержимого. И все прекрасно валидируется стандартными средствами. В нашем случае сертификат открытого ключа, которым будет проверяться ЭП, хранится в БД. И содержимое сертификата в XML для нас является избыточной информацией.
К слову, в нашей системе на XML-данные накладывается 2 подписи. Первая, посредством браузерного плагина и мы не можем контролировать состав ЭП. Вторая, посредством КриптоПро JCP (Java), где в состав ЭП мы сами включаем только те атрибуты, которые нам действительно нужны.
Offline Power_Gen  
#4 Оставлено : 29 февраля 2016 г. 16:46:24(UTC)
Power_Gen

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

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

Сказал(а) «Спасибо»: 1 раз
Уважаемые сотрудники КриптоПро! Очень жду от вас ответа на озвученный вопрос, т.к. для нас крайне критичен объем получаемого XML.
Offline cross  
#5 Оставлено : 29 февраля 2016 г. 17:21:20(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Средствами плагина это сделать не получится. Можно после изготовления подписи уже вручную удалить этот тег.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.