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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline mihmig  
#1 Оставлено : 16 марта 2018 г. 15:21:29(UTC)
mihmig

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

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

На странице примера "Проверка создания электронной подписи XML"
https://www.cryptopro.ru...ades_xmldsig_sample.html
Успешно подписывается тестовый XML
Но при модификации текста (не затрагивая структуру и содержимое тегов - например убрав перенос строки между тегами)
изменяются значения полей <DigestValue> и <SignatureValue>. т.е. подпись изменяется.
Почему?
Возможно я неправильно понимаю термин "каноникализация"?

Кстати, на странице
http://cpdn.cryptopro.ru...in-samples-sign-xml.html
приведён устаревший пример для браузеров с поддержкой NPAPI
Можно ли ожидать примеров подписи XML в асинхронной версии плагина?
Offline mihmig  
#2 Оставлено : 19 марта 2018 г. 11:37:40(UTC)
mihmig

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

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

Более того, в весьма скудном описании асинхронного режима работы плагина
http://cpdn.cryptopro.ru...in-samples-sign-xml.html
есть ошибка:

catch (e)
{
args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
}


А вообще - документация на браузерный плагин существует?
Offline basid  
#3 Оставлено : 19 марта 2018 г. 13:11:04(UTC)
basid

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

Группы: Участники
Зарегистрирован: 21.11.2010(UTC)
Сообщений: 1,042

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 141 раз в 127 постах
cades-plugin.png (13kb) загружен 225 раз(а).
Offline cross  
#4 Оставлено : 19 марта 2018 г. 17:02:06(UTC)
Анатолий Беляев

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Автор: mihmig Перейти к цитате
На странице примера "Проверка создания электронной подписи XML"
https://www.cryptopro.ru...ades_xmldsig_sample.html
Успешно подписывается тестовый XML
Но при модификации текста (не затрагивая структуру и содержимое тегов - например убрав перенос строки между тегами)
изменяются значения полей <DigestValue> и <SignatureValue>. т.е. подпись изменяется.
Почему?
Возможно я неправильно понимаю термин "каноникализация"?

Кстати, на странице
http://cpdn.cryptopro.ru...in-samples-sign-xml.html
приведён устаревший пример для браузеров с поддержкой NPAPI
Можно ли ожидать примеров подписи XML в асинхронной версии плагина?

Значение подписи и должно меняться. Можете привести скриншоты с вашими xml и какие получаются результаты вычисления DigestValue. У меня при добавлении пробелов все ок.

Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline mihmig  
#5 Оставлено : 20 марта 2018 г. 9:08:41(UTC)
mihmig

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

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

1. Вот снимок экрана при открытии страницы https://www.cryptopro.ru...ades_xmldsig_sample.html
(ничего не менял, выбрал только действующий сертификат)
screenshot20180319170018.png (60kb) загружен 40 раз(а).
Вот снимок экрана после измненения текста - место, помеченное жёлтой точкой (после закрывающей угловой скобочки </Data>) добавил 1 пробел (между тегами, структура XML не изменилась).
screenshot20180320083832.png (60kb) загружен 30 раз(а).
Как видим - значения тегов <DigestValue> и <SignatureValue> меняются.
Что я делаю не так?

2. И ещё скажите - подписывается ВСЁ содержимое textarea, содержимое тега <Envelope> или тега <Node>?
В исходном javascript коде подсмотрел, что выполняется Вложенная подпись )CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED)
но в чём отличия от CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING (Оборачивающая подпись.) и CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE (Подпись по шаблону.)
Есть где-нибудь документация с примерами кроме http://cpdn.cryptopro.ru...gn-cades-bes-async.html?

3. Ещё непонятно
в документации (http://cpdn.cryptopro.ru/default.asp?url=content/cades/plugin-samples-sign-xml.html) указано, что
Цитата:
данные, переданные при создании подписи, будут перекодированы в UCS-2 little endian и именно в таком виде данные будут подписаны.

получается, что принимающая сторона (в нашем случае ФСС) ожидая данные в UTF-8 не сможет проверить корректность подписи?
Offline cross  
#6 Оставлено : 20 марта 2018 г. 14:20:59(UTC)
Анатолий Беляев

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Добавленный вами пробел является значимой информацией. Он не будет убран при применении http://www.w3.org/2001/10/xml-exc-c14n#.
2. Подписывается узел указанный в Reference_URI. Если это "" то подписывается весь xml.
https://www.w3.org/TR/xmldsig-core/#sec-Overview вот тут описаны все детали xml подписи. По сути разница где относительно узла Signature будуд данные. Внутри или снаружи.

3. Описывается как ваше строковое представление xml будет переведенно в бинарный вид перед подписанием. Будет использована кодировка UCS-2 LE. Вы так же можете сами закодировать xml в нужной вам кодировке в base64 и передать в свойство Content предварительно указав что данные будут переданны в base64. Примеры: http://cpdn.cryptopro.ru...ades/plugin-samples.html
http://cpdn.cryptopro.ru...ades/cadescom_class.html - описание обьектов доступных в плагине.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline mihmig  
#7 Оставлено : 5 апреля 2018 г. 10:35:43(UTC)
mihmig

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

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

К сожалению, в документации есть пример только для устаревшего, синхронного режима работы:
oHashedData.DataEncoding = CADESCOM_BASE64_TO_BINARY;

Подскажите, как указать данный параметр для асинхронного режима работы
(в примере https://www.cryptopro.ru...ades_xmldsig_sample.html
данный параметр не устанавливается)
Offline cross  
#8 Оставлено : 5 апреля 2018 г. 13:37:13(UTC)
Анатолий Беляев

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
аналогично всем остальным свойствам.
oHashedData.propset_DataEncoding(CADESCOM_BASE64_TO_BINARY)
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline mihmig  
#9 Оставлено : 6 апреля 2018 г. 15:35:30(UTC)
mihmig

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

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

Автор: cross Перейти к цитате
аналогично всем остальным свойствам.
oHashedData.propset_DataEncoding(CADESCOM_BASE64_TO_BINARY)


Непонятно.
в на странице асинхронной подписи такого объекта (oHashedData) нет.

Объект oSignedXML (см. файл async_code.js) не имеет такого метода:
TypeError: oSignedXML.propset_DataEncoding is not a function

В каком месте нужно указывать данный параметр?
Offline cross  
#10 Оставлено : 10 апреля 2018 г. 12:00:23(UTC)
Анатолий Беляев

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

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

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