Atom Лента - Форум КриптоПро - Тема:верификация отсоединённой подписи для XML-документа - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:verifikacijaotsoedinjonnojjpodpisidljaXML-dokumenta-10:1Copyright 2024 Форум КриптоПро2024-03-29T12:57:16Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruВячеслав Александровичhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=47091&name=Вячеслав АлександровичВячеслав Александровичhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=47091&name=Вячеслав АлександровичЕвгений Афанасьевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1064&name=Евгений АфанасьевВячеслав Александровичhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=47091&name=Вячеслав АлександровичВячеслав Александровичhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=47091&name=Вячеслав АлександровичYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid86392:1верификация отсоединённой подписи для XML-документа<table class="content postContainer_Alt" width="100%"><tr><td>всё понял, спасибо!<br /><br />извините, что не сразу спросил по сути дела.</td></tr></table>2017-12-07T18:20:19+03:002017-12-07T18:20:19+03:00Вячеслав Александрович<table class="content postContainer_Alt" width="100%"><tr><td>всё понял, спасибо!<br /><br />извините, что не сразу спросил по сути дела.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid86391:1верификация отсоединённой подписи для XML-документа<table class="content postContainer" width="100%"><tr><td>Здравствуйте.<br /><div class="quote"><span class="quotetitle">Автор: Вячеслав Александрович <a href="/forum2/default.aspx?g=posts&m=86388#post86388"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>можно ли выполнить верификацию enveloped-подписи без оборачивающего документа и корректен ли такой вопрос с технической точки зрения?</div></div><br />В примере GenDetached в подписи есть <Reference URI="http://www.w3.org/TR/xml-stylesheet">, т.е. ссылка на документ (в сети), которого в формируемом XML документе с подписью нет:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-java">
// 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));
</code></pre>
</div></div><br />Смысла в enveloped подписи, пожалуй, нет, т.к. подписанный документ находится вне содержащего подпись документа.</td></tr></table>2017-12-07T17:51:35+03:002017-12-07T17:51:35+03:00Евгений Афанасьев<table class="content postContainer" width="100%"><tr><td>Здравствуйте.<br /><div class="quote"><span class="quotetitle">Автор: Вячеслав Александрович <a href="/forum2/default.aspx?g=posts&m=86388#post86388"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>можно ли выполнить верификацию enveloped-подписи без оборачивающего документа и корректен ли такой вопрос с технической точки зрения?</div></div><br />В примере GenDetached в подписи есть <Reference URI="http://www.w3.org/TR/xml-stylesheet">, т.е. ссылка на документ (в сети), которого в формируемом XML документе с подписью нет:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-java">
// 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));
</code></pre>
</div></div><br />Смысла в enveloped подписи, пожалуй, нет, т.к. подписанный документ находится вне содержащего подпись документа.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid86388:1верификация отсоединённой подписи для XML-документа<table class="content postContainer_Alt" width="100%"><tr><td>хотя, похоже, что задаю некорректный вопрос, заранее приношу извинения.<br /><br />вообще, моя задача - выяснить можно ли выполнить верификацию enveloped подписи в отрыве от оборачивающего документа.<br />решил, что можно попробовать скормить валидатору документ, в котором есть только <ds:Signature>...</ds:Signature><br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">
<?xml version="1.0" encoding="UTF-8"?>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
</ds:Signature>
</code></pre>
</div></div><br /><br />именно для такого документа получаю Exception при верификации.<br /><br />но сейчас я внимательно посмотрел на структуру detached подписи в GenDetached.java и понял, что там нет информации о сертификатах и трансформациях.<br />следовательно, проводить аналогию между detached и отдельным элементом enveloped-подписи нельзя.<br /><br />при необходимости, эту ветку можно удалить, а я сформулирую вопрос заново.<br /><br />соответственно вопрос: можно ли выполнить верификацию enveloped-подписи без оборачивающего документа и корректен ли такой вопрос с технической точки зрения?<br /></td></tr></table>2017-12-07T16:59:06+03:002017-12-07T16:59:06+03:00Вячеслав Александрович<table class="content postContainer_Alt" width="100%"><tr><td>хотя, похоже, что задаю некорректный вопрос, заранее приношу извинения.<br /><br />вообще, моя задача - выяснить можно ли выполнить верификацию enveloped подписи в отрыве от оборачивающего документа.<br />решил, что можно попробовать скормить валидатору документ, в котором есть только <ds:Signature>...</ds:Signature><br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">
<?xml version="1.0" encoding="UTF-8"?>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
</ds:Signature>
</code></pre>
</div></div><br /><br />именно для такого документа получаю Exception при верификации.<br /><br />но сейчас я внимательно посмотрел на структуру detached подписи в GenDetached.java и понял, что там нет информации о сертификатах и трансформациях.<br />следовательно, проводить аналогию между detached и отдельным элементом enveloped-подписи нельзя.<br /><br />при необходимости, эту ветку можно удалить, а я сформулирую вопрос заново.<br /><br />соответственно вопрос: можно ли выполнить верификацию enveloped-подписи без оборачивающего документа и корректен ли такой вопрос с технической точки зрения?<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid86386:1верификация отсоединённой подписи для XML-документа<table class="content postContainer" width="100%"><tr><td>добрый день!<br /><br />продолжаю серию вопросов по работе с подписью XML-документов :)<br /><br />требуется реализовать верификацию отсоединённой подписи, которая не "обёрнута" исходным XML-документом.<br /><br />в примерах КриптоПро есть только генерация такой подписи, в файле xmlSign/GenDetached.java<br /><br />при попытке верификации полученной подписи методом, аналогичным описанному в XmlSignDoc.java, наблюдаю Exception:<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">
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.
</code></pre>
</div></div><br /><br />как понимаю, КриптоПро пытается получить доступ к исходному подписанному документу.<br /><br />объясните, пожалуйста, каким образом реализуется верификация detached-подписи.</td></tr></table>2017-12-07T16:07:35+03:002017-12-07T16:07:35+03:00Вячеслав Александрович<table class="content postContainer" width="100%"><tr><td>добрый день!<br /><br />продолжаю серию вопросов по работе с подписью XML-документов :)<br /><br />требуется реализовать верификацию отсоединённой подписи, которая не "обёрнута" исходным XML-документом.<br /><br />в примерах КриптоПро есть только генерация такой подписи, в файле xmlSign/GenDetached.java<br /><br />при попытке верификации полученной подписи методом, аналогичным описанному в XmlSignDoc.java, наблюдаю Exception:<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-markup">
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.
</code></pre>
</div></div><br /><br />как понимаю, КриптоПро пытается получить доступ к исходному подписанному документу.<br /><br />объясните, пожалуйста, каким образом реализуется верификация detached-подписи.</td></tr></table>