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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Artem Frolov  
#1 Оставлено : 26 июля 2019 г. 14:20:21(UTC)
Artem Frolov

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

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

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

Мы пользуемся продуктом CryptoPro.jcp в рамках интеграционного решения с оператором ЭДО Диадок. После обновления до версии jcp-2.0.40132-A возникла проблема с приязкой подписи к документу при отправке его оператору ЭДО (ошибка - Подписанные данные были искажены после момента подписания). При это сам КЭП корректен и работает как в веб-интерфейсе оператора ЭДО, так и проходит проверку на сайте госуслуг. Со своей стороны проверили структуру интеграционного решения и настройки со стороны оператора ЭДО - выглядит все корректно. Возможно проблема кроется в настройках Crypto pro JCP. Используем подпись с GOST3410DHEL (GOST R 34.11-2012/34.10-2012 256 bit). Есть ли какая-то инструкция по настрйке JCP (через ContolPane) под данный ГОСТ?

Ошибка подписи

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

Offline Евгений Афанасьев  
#2 Оставлено : 26 июля 2019 г. 15:53:15(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Можно ли получить образец подписи для анализа?
Известно ли, какой используется код для подписи?
Обновляли именно до А-версии jcp-2.0.40132-A, или просто jcp-2.0?
Какая версия использовалась до этого, какой ключ - ГОСТ 2012 или ГОСТ 2001?
Offline Artem Frolov  
#3 Оставлено : 29 июля 2019 г. 10:44:35(UTC)
Artem Frolov

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

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

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

до этого использовали jcp 1.0.54, ГОСТ 2001
сейчас пытаемся использовать jcp-2.0.40132-A, ГОСТ 2012

открытый ключ
https://onebox.huawei.co...db789408d50c51d47cdb864d

файлы электронной подписи
https://onebox.huawei.co...6d759178c3e992f2ba4f9aa1


Примеры кода для подписей:

CertificateHelper (DiadocSDK 2.13.0)

DiadocSenderAdapter (наше интеграционное решение)

Отредактировано пользователем 29 июля 2019 г. 11:50:34(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 29 июля 2019 г. 12:49:25(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
CertificateHelpder с методом создания CMS-подписи выглядит так, что в нем зафиксировали в коде константы:
Код:

cms.signerInfos.elements[0].digestAlgorithm = new DigestAlgorithmIdentifier((new OID("1.2.643.2.2.9")).value);
cms.signerInfos.elements[0].signatureAlgorithm = new SignatureAlgorithmIdentifier((new OID("1.2.643.2.2.19")).value);

Для ГОСТ 2012 идентификаторы (oid'ы вида 1.2.643.xxxx) другие.
P.S. А также JCP версии с суффиксом -A должен использоваться в java версии 10 и выше, для java 7-8 нужно использовать JCP без -A.

Отредактировано пользователем 29 июля 2019 г. 12:50:41(UTC)  | Причина: Не указана

Offline Artem Frolov  
#5 Оставлено : 29 июля 2019 г. 15:03:13(UTC)
Artem Frolov

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

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

Сказал(а) «Спасибо»: 1 раз
Мы также пробовали такой вариант. Результат тотже - ошибка.
Если мы пробовали неправильные идентификаторы, то не подскажете, какие нужно?

Код:

Signature signature = Signature.getInstance("GOST3411_2012_256withGOST3410_2012_256");


Код:

cms.signerInfos.elements[0].digestAlgorithm = new DigestAlgorithmIdentifier(AlgIdSpec.OID_DIGEST_2012_256.value);
cms.signerInfos.elements[0].signatureAlgorithm = new SignatureAlgorithmIdentifier(AlgIdSpec.OID_PARAMS_SIG_2012_256.value);

Отредактировано пользователем 29 июля 2019 г. 15:17:59(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#6 Оставлено : 30 июля 2019 г. 12:26:54(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Приложенные примеры проверим и отпишем о результатах.
Offline Elvira Borodina  
#7 Оставлено : 30 июля 2019 г. 16:54:08(UTC)
Elvira Borodina

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 9 раз в 6 постах
Добрый день!
В последнем сообщении вы прописали правильные OID-ы и алгоритмы. С ними все должно работать для ключей ГОСТ Р 2012 (256).
Код:

Signature signature = Signature.getInstance("GOST3411_2012_256withGOST3410_2012_256");
cms.signerInfos.elements[0].digestAlgorithm = new DigestAlgorithmIdentifier((new OID("1.2.643.7.1.1.2.2")).value); // AlgIdSpec.OID_DIGEST_2012_256
cms.signerInfos.elements[0].signatureAlgorithm = new SignatureAlgorithmIdentifier((new OID("1.2.643.7.1.1.1.1")).value); // AlgIdSpec.OID_PARAMS_SIG_2012_256


Еще раз хотели бы уточнить, JRE какой версии вы используете? Версия jcp-2.0.40132-A предназначена для использования в JRE версии 10 и выше.
Если вы используете JRE версии 7 или 8, то вам следует установить jcp-2.0.40035 (без -A).

Для JRE версии 10 и выше (в отличии от JRE 7-8) установка JCP не производится. Библиотеки добавляются в classpath.
Также в этом случае необходимо добавить наши провайдеры либо в список файла java.security:
Код:

security.provider.<N>=JCP  //провайдер JCP
security.provider.<N+1>=RevCheck // провайдер проверки сертификатов  JCPRevCheck (revocation-провайдер)
security.provider.<N+2>=Crypto // провайдер шифрования JCryptoP

либо добавить их программно с помощью функции Security.addProvider (перед вызовом функций, использующих наши провайдеры):
Код:

Security.addProvider(new JCP()); // провайдер JCP
Security.addProvider(new RevCheck());
Security.addProvider(new CryptoProvider());// провайдер шифрования JCryptoP


Все это описано в документации.

Если вы все установили/настроили корректно, то можете включить логирование (в файле logging.properties) и прислать нам лог?

Отредактировано пользователем 30 июля 2019 г. 17:09:00(UTC)  | Причина: Не указана

Offline Artem Frolov  
#8 Оставлено : 31 июля 2019 г. 17:46:03(UTC)
Artem Frolov

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Используем JRE 10. Провайдеры прописали.
При попытке включить логирование выдает ошибку

файл logging.properties

Отредактировано пользователем 31 июля 2019 г. 17:46:47(UTC)  | Причина: Не указана

Offline Elvira Borodina  
#9 Оставлено : 31 июля 2019 г. 19:38:38(UTC)
Elvira Borodina

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 9 раз в 6 постах
Добрый вечер.
Попробуйте такой вариант:

Offline Artem Frolov  
#10 Оставлено : 1 августа 2019 г. 12:33:40(UTC)
Artem Frolov

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: borodina Перейти к цитате
Добрый вечер.
Попробуйте такой вариант:


Спасибо, помогло

Логи: LogiKriptoPRO.txt (59kb) загружен 13 раз(а).

Отредактировано пользователем 1 августа 2019 г. 12:50:58(UTC)  | Причина: Не указана

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