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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kas.56  
#1 Оставлено : 8 сентября 2021 г. 17:10:39(UTC)
kas.56

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

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

Добрый вечер.
Подскажите, есть ли возможность подписать XML через КриптоПро ЭЦП Browser plug-in подписью в формате XADES-T по шаблону (CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE).
При попытке это сделать блок данных о метке времени не устанавливается, хотя ссылка на TSA сервер была указана.

При попытке сделать ENVELOPED-подпись (CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED) - метка времени ставится, но при этом нет возможности указать блок данных для которого осуществляем подпись.
например даже в примере https://www.cryptopro.ru...age/xades_t_sample.html, не смотря на то, что указан xml:id - <Node xml:id="nodeID"> подписывается весь контент (<ds:Reference URI=""> - не указан блок в сформированной подписи).

Собственно вопросы.
1. есть ли возможность подписать XML в формате XADES-T по шаблону
2. если да, то где можно увидеть шаблон (методом "тыка" не удалось подобрать)
3. если не возможно - то как подписать не весь документ методом CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED

Отредактировано пользователем 8 сентября 2021 г. 17:16:59(UTC)  | Причина: Не указана

Offline two_oceans  
#2 Оставлено : 9 сентября 2021 г. 11:15:05(UTC)
two_oceans

Статус: Эксперт

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 318 раз в 300 постах
По плагину не смогу подсказать, но возможно наведу на какие-то мысли.

Пример, насколько помню, просто подписывает весь текст, выборки фрагмента нет. Просто нет. Указание Id у тега ничего не решает с указанием подписываемого фрагмента: идентификатор может быть указан у любого тега, не только у подписываемого. Поля для указания, что именно nodeId будет подписан на страничке нет, соответствующий параметр плагина не заполняется.
Offline kas.56  
#3 Оставлено : 13 сентября 2021 г. 9:33:34(UTC)
kas.56

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

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

Ответ немного не по теме, но Вы затронули интересный вопрос.

Автор: two_oceans Перейти к цитате
В реальном тексте обычно используют wsu:Id и объявление xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"

А это не ошибка ли использовать расширение SOAP для того чтобы подписать не SOAP пакет? На мой взгляд это выглядит довольно странно.

Автор: two_oceans Перейти к цитате
... каждый дочерний тег после каноникализации будет иметь xml:id (с одинаковым значением!)

Это описано в каком-то стандарте? Я не увидел такого спецэффекта см. код ниже

Код:


Результат:
Offline two_oceans  
#4 Оставлено : 13 сентября 2021 г. 12:44:45(UTC)
two_oceans

Статус: Эксперт

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

Сказал(а) «Спасибо»: 90 раз
Поблагодарили: 318 раз в 300 постах
Цитата:
А это не ошибка ли использовать расширение SOAP для того чтобы подписать не SOAP пакет? На мой взгляд это выглядит довольно странно.
Зависит от схемы документа. Если сама схема имеет атрибут Id соответствующего типа, то правильнее использовать его. Если схема не запрещает атрибуты других пространств имен и своего атрибута нет, то почему бы не использовать стандартизированное расширение, которое широко поддерживается. Если же ни своего атрибута, ни разрешения на другие пространства имен, то приходится выкручиваться без Id (например, через XPath трансформ).
Цитата:
Это описано в каком-то стандарте? Я не увидел такого спецэффекта см. код ниже
1) То что его не видно, это не значит, что его нет. Пример должен быть похитрее - в статье после спойлера. Конечно, в стандарте неэксклюзивной каноникализации в версии 1.0 описано, раздел Document Subsets. Идентификатор этой версии фактически используется в шаблонах электронной подписи, на нее ссылается стандарт эксклюзивной каноникализации и даже есть RFC3076.

Тут важно понимать, что стандарты эксклюзивной (+ неэксклюзивной) каноникализации и электронной подписи - "три большие разницы" и могут применяться по отдельности. Сочетание определено в стандарте, заметьте для версии 1.0 должно использовать идентификатор версии 1.0, для версии 1.1 - идентификатор версии 1.1. Если пишите идентификатор версии 1.0, но на самом деле применяете 1.1, это логическая ошибка и потенциальная проблема совместимости.

Поехали смотреть стандарты, ссылки и идентификаторы:
Статья о замечаниях прямо из хранилища стандартов https://www.w3.org/TR/C14N-issues/#S3 поясняющая суть: первая версия каноникализации вышла раньше чем появился xml:id, по ней все получается как я описал выше. Для такого случая не рекомендовано использовать каноникализацию (на тот момент версии 1.0).

Статья про xml:id, и с идеей как с его помощью легко сломать c14n и подпись https://www.xml.com/pub/a/ws/2005/02/23/salz.html

Для полноты (вдруг кто еще заинтересуется): статья про каноникализацию "на пальцах".
Цитата:
https://www.xml.com/pub/a/ws/2002/09/18/c14n.html
https://www.xml.com/pub/...09/canonicalization.html
Ссылка на перевод похоже уже не работает, но можно поискать через архив Интернета.
http://www.getinfo.ru/article174.html
http://www.getinfo.ru/article175.html
2) Сейчас просмотрел и новейшую версию неэксклюзивной каноникализации. В версии 1.1 внесли поправку, исключающую наследование некоторых атрибутов, в том числе и xml:id. Возможно каноникализатор из Вашего кода использует новую версию. Тем не менее, если указываются старые идентификаторы алгоритмов, использовать новую версию каноникализации рискованно.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.