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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Вячеслав Александрович  
#1 Оставлено : 7 декабря 2017 г. 16:07:35(UTC)
Вячеслав Александрович

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

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

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

продолжаю серию вопросов по работе с подписью XML-документов :)

требуется реализовать верификацию отсоединённой подписи, которая не "обёрнута" исходным XML-документом.

в примерах КриптоПро есть только генерация такой подписи, в файле xmlSign/GenDetached.java

при попытке верификации полученной подписи методом, аналогичным описанному в XmlSignDoc.java, наблюдаю Exception:

Код:

Original Exception was org.apache.xml.security.signature.ReferenceNotInitializedException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity"
Original Exception was org.apache.xml.security.signature.ReferenceNotInitializedException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity"
Original Exception was org.apache.xml.security.signature.XMLSignatureException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity"
Original Exception was org.apache.xml.security.transforms.TransformationException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity"
Original Exception was javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Premature end of file.


как понимаю, КриптоПро пытается получить доступ к исходному подписанному документу.

объясните, пожалуйста, каким образом реализуется верификация detached-подписи.
Offline Вячеслав Александрович  
#2 Оставлено : 7 декабря 2017 г. 16:59:06(UTC)
Вячеслав Александрович

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

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

Сказал(а) «Спасибо»: 2 раз
хотя, похоже, что задаю некорректный вопрос, заранее приношу извинения.

вообще, моя задача - выяснить можно ли выполнить верификацию enveloped подписи в отрыве от оборачивающего документа.
решил, что можно попробовать скормить валидатору документ, в котором есть только <ds:Signature>...</ds:Signature>

Код:

<?xml version="1.0" encoding="UTF-8"?>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
</ds:Signature>


именно для такого документа получаю Exception при верификации.

но сейчас я внимательно посмотрел на структуру detached подписи в GenDetached.java и понял, что там нет информации о сертификатах и трансформациях.
следовательно, проводить аналогию между detached и отдельным элементом enveloped-подписи нельзя.

при необходимости, эту ветку можно удалить, а я сформулирую вопрос заново.

соответственно вопрос: можно ли выполнить верификацию enveloped-подписи без оборачивающего документа и корректен ли такой вопрос с технической точки зрения?
Offline Евгений Афанасьев  
#3 Оставлено : 7 декабря 2017 г. 17:49:28(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Автор: Вячеслав Александрович Перейти к цитате
можно ли выполнить верификацию enveloped-подписи без оборачивающего документа и корректен ли такой вопрос с технической точки зрения?

В примере GenDetached в подписи есть <Reference URI="http://www.w3.org/TR/xml-stylesheet">, т.е. ссылка на документ (в сети), которого в формируемом XML документе с подписью нет:
Код:

// Create a Reference to an external URI that will be digested
// using the SHA1 digest algorithm
Reference ref = fac.newReference("http://www.w3.org/TR/xml-stylesheet",             
fac.newDigestMethod(DigestMethod.SHA1, null));

Смысла в enveloped подписи, пожалуй, нет, т.к. подписанный документ находится вне содержащего подпись документа.

Отредактировано пользователем 7 декабря 2017 г. 17:51:35(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
Вячеслав Александрович оставлено 07.12.2017(UTC)
Offline Вячеслав Александрович  
#4 Оставлено : 7 декабря 2017 г. 18:20:19(UTC)
Вячеслав Александрович

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

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

Сказал(а) «Спасибо»: 2 раз
всё понял, спасибо!

извините, что не сразу спросил по сути дела.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.