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

Уведомление

Icon
Error

16 Страницы«<910111213>»
Опции
К последнему сообщению К первому непрочитанному
Offline belgampaul  
#101 Оставлено : 25 июня 2015 г. 19:29:29(UTC)
belgampaul

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

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

Поблагодарили: 2 раз в 1 постах
Автор: ARnikev Перейти к цитате
Цитата:

Абсолютно идентичная картина. Хэшируется локально одна xml (байты взятые из строки, представляющую собой xml фрагмент. Что происходит при проверке и какую xml ГИС ГМП хэширует пока не 100% ясно. Ясно,что хэшируется что-то другое.

Пока жду ответа от службы поддержки ЕТК, может кто-то выложить xml подписываемой сущности?

У моих сущностей есть префикс и namespace указан для этого префикса в корневом элементе сущности. А в soap-пакете namespace, используемый сущностями (FinalPayment, Charge), указан в тэге RequestMessage.

На форматах 1.15.0 xml был одинаков везде (в soap-пакете и в сущности). Там нигде не было неймспейсов.



Выше я выкладывал свой подписанный запрос на импорт начисления.

upd. Кстати тоже думаю, что дело как-то касается неймспейсов. Выяснил, что старая подпись XMLDsig тоже перестала работать с сообщением нового формата. Так и не могу понять почему, элемент сущности после ее подписи и после подписи всего сообщения визуально выглядит одинаково. Но при проверке подписи сущности финального документа DigestValue получается совсем другим. Проблема в том, что я неймспейсы руками не проставляю даже, они маршалятся из java классов, которые я с wsdl сервиса получил.


Да, видел примеры. В том-то и проблема, что у Вас как и у меня проблема похожая. В найденных примерах по этой ссылке http://bankir.ru/dom/thr...p;viewfull=1#post3251458 видно, что в пакете неймспейсы объявлены и на уровне сущности. Но в примере, где только сущность, неймспейсов больше.

В ЕТК приняли заявку, но ответ неизвестно когда будет, а вопрос еще вчера вечером отправил. Все что пока есть это ими расчитанный хэш, но на основании каких данных рассчитан не упомянули.

Offline ARnikev  
#102 Оставлено : 25 июня 2015 г. 20:00:35(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: belgampaul Перейти к цитате
Автор: ARnikev Перейти к цитате
Цитата:

Абсолютно идентичная картина. Хэшируется локально одна xml (байты взятые из строки, представляющую собой xml фрагмент. Что происходит при проверке и какую xml ГИС ГМП хэширует пока не 100% ясно. Ясно,что хэшируется что-то другое.

Пока жду ответа от службы поддержки ЕТК, может кто-то выложить xml подписываемой сущности?

У моих сущностей есть префикс и namespace указан для этого префикса в корневом элементе сущности. А в soap-пакете namespace, используемый сущностями (FinalPayment, Charge), указан в тэге RequestMessage.

На форматах 1.15.0 xml был одинаков везде (в soap-пакете и в сущности). Там нигде не было неймспейсов.



Выше я выкладывал свой подписанный запрос на импорт начисления.

upd. Кстати тоже думаю, что дело как-то касается неймспейсов. Выяснил, что старая подпись XMLDsig тоже перестала работать с сообщением нового формата. Так и не могу понять почему, элемент сущности после ее подписи и после подписи всего сообщения визуально выглядит одинаково. Но при проверке подписи сущности финального документа DigestValue получается совсем другим. Проблема в том, что я неймспейсы руками не проставляю даже, они маршалятся из java классов, которые я с wsdl сервиса получил.


Да, видел примеры. В том-то и проблема, что у Вас как и у меня проблема похожая. В найденных примерах по этой ссылке http://bankir.ru/dom/thr...p;viewfull=1#post3251458 видно, что в пакете неймспейсы объявлены и на уровне сущности. Но в примере, где только сущность, неймспейсов больше.

В ЕТК приняли заявку, но ответ неизвестно когда будет, а вопрос еще вчера вечером отправил. Все что пока есть это ими расчитанный хэш, но на основании каких данных рассчитан не упомянули.



Да, мне тоже только хэш прислали и все)).
Offline ARnikev  
#103 Оставлено : 26 июня 2015 г. 10:00:16(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Еще я заметил, что в эталонных примерах, которые выкладывают тут - bankri.ru в элементе Reference подписи сущности присутствуют 2 элемента TRansform:
Код:

<ds:SignedInfo>
  <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#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/2001/10/xml-exc-c14n#"/>
      </ds:Transforms>
      <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
      <ds:DigestValue>D8PKju/BI+j0+fR5YHhlBPU+WYmetQRvJ+Wcg1uf/vc=</ds:DigestValue>
    </ds:Reference>
</ds:SignedInfo>


А при формировании подписи примером, предложенным avef, присутствует только 1 элемент:
Код:

<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
<ds:Reference Id="xmldsig-e3bd6150-4f0b-4f24-a337-729754e755ac-ref0" URI="#A_e9cc729d-a8ec-4288-97ab-f6437295d494">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>
<ds:DigestValue>3DuYKKIFeMHkA9ZjwGn62rRPtEqbIQML6IYc5nWgoyA=</ds:DigestValue>
</ds:Reference>
<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-e3bd6150-4f0b-4f24-a337-729754e755ac-signedprops">
<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>
<ds:DigestValue>/n8kB2j1aG9fc2fTHZKWs25its9x2I6ldz4iUB+uStc=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>


То есть отсутствует алгоритм каноникализации подписываемой сущности. А по стандарту Xades каноникализация сущности должна выполняться перед вычислением ее хэша. Это ошибка или я что-то не так понимаю?
Offline Евгений Афанасьев  
#104 Оставлено : 26 июня 2015 г. 10:17:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Тогда можно добавить:
Код:

final DataObjectDesc dataObj = new DataObjectReference(referenceURI);
dataObj.withTransform(new EnvelopedSignatureTransform());
dataObj.withTransform(new ExclusiveCanonicalXMLWithoutComments()); // !
Offline ARnikev  
#105 Оставлено : 26 июня 2015 г. 10:24:02(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Тогда можно добавить:
Код:

final DataObjectDesc dataObj = new DataObjectReference(referenceURI);
dataObj.withTransform(new EnvelopedSignatureTransform());
dataObj.withTransform(new ExclusiveCanonicalXMLWithoutComments()); // !


Да, сделал уже, результат все тот же). Уже не знаю в какую сторону смотреть Brick wall .
Offline Евгений Афанасьев  
#106 Оставлено : 26 июня 2015 г. 10:29:07(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Посмотрите еще раз https://www.cryptopro.ru...petsifikatsii-versii-116
В архиве есть несколько примеров (пакет xades.gisgmp), в частности, посмотрите те, где из кусков собирается документ.
Offline ARnikev  
#107 Оставлено : 26 июня 2015 г. 10:36:29(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Посмотрите еще раз https://www.cryptopro.ru...petsifikatsii-versii-116
В архиве есть несколько примеров (пакет xades.gisgmp), в частности, посмотрите те, где из кусков собирается документ.


Спасибо, посмотрю, только мне интересен как раз вот этот пример:
Цитата:

Другой пример, GisGmpServiceCombinedExample, похож на GisGmpServiceExample, но формирование документа происходит прямо в коде с помощью классов, созданных по xsd-схемам, взятым из архива, вложенного в спецификацию форматов ГИС ГМП.


Таким образом сформированные сообщения вы тоже проверяли, сервис ГИС ГМП на подпись не ругается?
Offline Евгений Афанасьев  
#108 Оставлено : 26 июня 2015 г. 10:42:05(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Мы получали разные ошибки, не было ни одного успешного импорта (0), т.к. мы не зарегистрированы в системе. Были ошибки как 5, 8, так и 13 (неверная ЭП). Но неизвестно, проверялась ли внутренняя подпись в тех случаях, когда выполнялась некая проверка, возвращающая 5 или 8 (неизвестна очередность "проверка"-"код обработки"). Другие пользователи форума сообщали об успешных импортах.

P.S. Попробуйте подставить свои значения для начала, например, в GisGmpServiceLowEnvelopeExample.

Отредактировано пользователем 26 июня 2015 г. 10:44:15(UTC)  | Причина: Не указана

Offline ARnikev  
#109 Оставлено : 26 июня 2015 г. 14:00:18(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Мы получали разные ошибки, не было ни одного успешного импорта (0), т.к. мы не зарегистрированы в системе. Были ошибки как 5, 8, так и 13 (неверная ЭП). Но неизвестно, проверялась ли внутренняя подпись в тех случаях, когда выполнялась некая проверка, возвращающая 5 или 8 (неизвестна очередность "проверка"-"код обработки"). Другие пользователи форума сообщали об успешных импортах.

P.S. Попробуйте подставить свои значения для начала, например, в GisGmpServiceLowEnvelopeExample.


Пробую сейчас подписать сообщение вашим примером GisGmpServiceLowEnvelopeExample. Почему-то когда пробую подписать вашим примером, из моего сертификата получается public key типа class org.bouncycastle.jcajce.provider.asymmetric.ecgost.BCECGOST3410PublicKey вместо
ru.CryptoPro.JCP.Key.GostPublicKey и алгоритм ECGOST3410 вместо GOST3410EL. Соответственно падает Exception в недрах xmlsec-1.5.0 при попытки взять алгоритм подпись по URI:
Код:

 private static SignatureAlgorithmSpi getSignatureAlgorithmSpi(String algorithmURI) 
        throws XMLSignatureException {
        try {
            Class<? extends SignatureAlgorithmSpi> implementingClass = 
                algorithmHash.get(algorithmURI);
            if (log.isDebugEnabled()) {
                log.debug("Create URI \"" + algorithmURI + "\" class \""
                   + implementingClass + "\"");
            }
            return implementingClass.newInstance();   
        }  catch (IllegalAccessException ex) {
            Object exArgs[] = { algorithmURI, ex.getMessage() };
            throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
        } catch (InstantiationException ex) {
            Object exArgs[] = { algorithmURI, ex.getMessage() };
            throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
        } catch (NullPointerException ex) {
            Object exArgs[] = { algorithmURI, ex.getMessage() };
            throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
        }


Т.е. не может найти алгоритм для URI ECGOST3410. Подскажите, пожалуйста в чем может быть проблема.
Offline Евгений Афанасьев  
#110 Оставлено : 26 июня 2015 г. 14:05:06(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Может быть, у вас bouncycastle прописан в java.security? (выше JCP в списке провайдеров)
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
ARnikev оставлено 26.06.2015(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (10)
16 Страницы«<910111213>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.