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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline v.azarov  
#1 Оставлено : 4 октября 2017 г. 13:19:06(UTC)
v.azarov

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

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

Поблагодарили: 2 раз в 2 постах
Доброго времени суток!
Столкнулся со следующей проблемой:
1) Подписываю SOAP-сообщение с помощью ЭЦП с ипользованием TrustedJava 2.0 , подпись формируется и при передаче сообщения в ГИС ЖКХ сообщение обрабатывается корректно.
2) Если я заменю trustedJava на JCP2.0, то подпись формируется, структура подписи соответствует формату XMLDSig, да и формату, формируемому предыдущим способом, но ГИС ЖКХ сообщает, что ЭЦП не прошла проверку:
Код:
<ns4:ErrorCode>AUT011005</ns4:ErrorCode>
<ns4:Description>Ошибка формата подписи запроса</ns4:Description>
<ns4:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Invalid XML Signature 


Для разбора проблемы я сгенерировал 2 подписанных сообщения из одного исходного с помощью JCP и TJ.
После анализа сообщений я увидел интересную разницу - в сообщениях отличаются значения узлов:

Код:

//ds:SignedInfo/ds:Reference[ds:DigestMethod[@Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"]][1]/ds:DigestValue
//ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509SubjectName


Так в случае с TJ дайджест принимает значение P7Il0OiEMuOoWgJ6oHMc4IBpSmUA0WOGv7/e8zevvd0=
А с JCP sxbSC91XV1EKXmnK+uVPWidE0bEh/OEuUaLxntKJHZE=, несмотря на то, что для формирования сообщений использовался один сертификат и одно и тоже исходное сообщение.

Сообщения приложены SourceMessage.xml (2kb) загружен 8 раз(а). TrustedJavaResult.xml (11kb) загружен 7 раз(а). CryptoJCP.xml (11kb) загружен 10 раз(а).

Во всех случаях использовались одинаковые параметры для подписи:
Код:

public static final String DIGEST_ALGORITHM_NAME = "GOST3411";
public static final String SIGNATURE_ALGORITHM = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
public static final String CANONICALIZATION_ALGORITHM_FOR_SIGNATURE = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
public static final String CANONICALIZATION_ALGORITHM_FOR_TIMESTAMP_PROPERTIES = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
public static final String SIGNED_PROPS_TYPE_URI = "http://uri.etsi.org/01903#SignedProperties";



ПО:
Win7-64
TrustedJava 2.0
JCP 2.0
JRE_1.8
CryptoPro 3.9

Таким образом получается, что JCP и TJ имеют разницу в реализации ГОСТовских алгоритмов?

Ребят, кто сталкивался - прошу оказать посильное содействие.
Приоритет у нас JCP, но если не выйдет с ним, будем использовать TJ.

Спасибо!
thanks 1 пользователь поблагодарил v.azarov за этот пост.
vadik0110 оставлено 09.11.2017(UTC)
Offline Евгений Афанасьев  
#2 Оставлено : 4 октября 2017 г. 14:43:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Проверим приложенные сообщения.
Offline v.azarov  
#3 Оставлено : 4 октября 2017 г. 14:50:13(UTC)
v.azarov

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

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

Поблагодарили: 2 раз в 2 постах
@afev, благодарю.
Если понадобится дополнительная информация - велком.
Offline Евгений Афанасьев  
#4 Оставлено : 6 октября 2017 г. 12:46:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Вы для формирования xades с TrustedJava используете какую-то библиотеку типа xades.jar (google) или этот функционал доступен в TrustedJava? Не могли бы залогировать и приложить данные (если такая возможно существует), которые хешируются?
Offline v.azarov  
#5 Оставлено : 6 октября 2017 г. 12:47:34(UTC)
v.azarov

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

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

Поблагодарили: 2 раз в 2 постах
Товарищи, я разобрался.
Необходимо было установить следующие параметры для фабрики:
Код:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setNamespaceAware(false);
dbFactory.setIgnoringElementContentWhitespace(true);
dbFactory.setCoalescing(true);
Offline Евгений Афанасьев  
#6 Оставлено : 6 октября 2017 г. 13:08:57(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
то есть хеш теперь сходится, подпись проверяется?

Отредактировано пользователем 6 октября 2017 г. 13:11:47(UTC)  | Причина: Не указана

Offline v.azarov  
#7 Оставлено : 6 октября 2017 г. 13:12:50(UTC)
v.azarov

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

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

Поблагодарили: 2 раз в 2 постах
Да, и сообщение проходит валидацию на стороне ГИС ЖКХ
Offline Евгений Афанасьев  
#8 Оставлено : 6 октября 2017 г. 13:19:01(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: v.azarov Перейти к цитате
Да, и сообщение проходит валидацию на стороне ГИС ЖКХ

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