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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline lomik_xp  
#1 Оставлено : 1 июня 2022 г. 16:10:05(UTC)
lomik_xp

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

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

Сказал(а) «Спасибо»: 5 раз
Здравствуйте, интегрируем CryptoPro в Android-приложение возникла проблема при проверке подписи созданной с использованием CAdESSignature, а именно получаем ошибку "Не найден автор исходной подписи".

Начали разбираться, но с перебором параметров (в P.S.) получаем либо без сертификата подписанта, либо вставляется не тот сертификат подписанта (вышестоящий УЦ).

Код на kotlin


Подписываемый файл и сама отсоединенная подпись в приложенных файлах

P.S. CAdESSignature(false) тут изменение параметра не помогает
cAdESSignature.addSigner(JCSP.PROVIDER_NAME, null, null, privateKey, chain, CAdESType.CAdES_BES, null, false, null, null, null, true) тут изменение последнего аргумента тоже не помогает
data.txt.sig (10kb) загружен 2 раз(а).
data.txt (1kb) загружен 2 раз(а).
Offline Андрей *  
#2 Оставлено : 1 июня 2022 г. 16:24:08(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
В cms вложена цепочка и есть сертификат подписанта:
Серийный номер: 030419600082AE8596474A6F3560F89879

Snimok ehkrana ot 2022-06-01 17-22-16.png (35kb) загружен 6 раз(а).

Protokol proverki EhP dlja data.txt (20220601 172225.465).pdf (8kb) загружен 4 раз(а).
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
lomik_xp оставлено 22.06.2022(UTC)
Offline lomik_xp  
#3 Оставлено : 2 июня 2022 г. 9:07:19(UTC)
lomik_xp

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

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

Сказал(а) «Спасибо»: 5 раз
Автор: Андрей * Перейти к цитате
В cms вложена цепочка и есть сертификат подписанта:
Серийный номер: 030419600082AE8596474A6F3560F89879


С этим разобрались, хорошо. Тогда почему не включается сертификат подписанта и строится кривая отсоединенная подпись Cades-Bes?

По примеру из CryptoPro для android-csp-5.0.42506

Код на Kotlin


Данные
data2.txt (1kb) загружен 3 раз(а).
Подпись
data2.txt.sig (2kb) загружен 3 раз(а).

Как получить корректную отсоединенную подпись с включенным сертификатом? И чтобы проверялась хотя бы на https://dss.cryptopro.ru/Verify/Verify/
Offline Eugene21  
#4 Оставлено : 6 июня 2022 г. 8:59:43(UTC)
Eugene21

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

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

Коллеги, добрый день, у нас возникла такая же проблема, как её можно избежать?
Offline Евгений Афанасьев  
#5 Оставлено : 6 июня 2022 г. 11:47:44(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте. В папке javadoc дистрибутива есть файл cades-javadoc.jar, в нем описание методов и конструкторов CadesSignature.
Для создания совмещённый подписи используйте соответствующий конструктор без параметров, для добавления произвольных сертификатов используйте setCertificateStore(список X509CertificateHolder), или для добавления цепочки (построится в ходе создания подписи) используйте расширенный метод addSigner с параметром addCertificateChain=true.
thanks 2 пользователей поблагодарили Евгений Афанасьев за этот пост.
Андрей * оставлено 06.06.2022(UTC), lomik_xp оставлено 22.06.2022(UTC)
Offline lomik_xp  
#6 Оставлено : 6 июня 2022 г. 12:04:11(UTC)
lomik_xp

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

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

Сказал(а) «Спасибо»: 5 раз
Автор: Евгений Афанасьев Перейти к цитате
Здравствуйте. В папке javadoc дистрибутива есть файл cades-javadoc.jar, в нем описание методов и конструкторов CadesSignature.
Для создания совмещённый подписи используйте соответствующий конструктор без параметров, для добавления произвольных сертификатов используйте setCertificateStore(список X509CertificateHolder), или для добавления цепочки (построится в ходе создания подписи) используйте расширенный метод addSigner с параметром addCertificateChain=true.


Не согласен. В приведенных выше файлах data2 и его подписи в asn1-контейнере подписи в SignerInfos содержится не тот сертификат подписанта которым были подписаны данные, соответственно возникает ошибка проверки подписи "Произошла ошибка. В сообщении не найден сертификат подписи." ошибка с https://dss.cryptopro.ru/Verify/Verify/

По цитате:
1. Подпись несовмещенная, простая
2 и 3. Другие сертификаты не интересуют, только подписанта

Пока есть мнение что подпись при использовании алгоритма подписания приведенного в коде сообщения с data2 некорректна.

P.S. Документацию читали, подразумевается что обычное подписание (Cades-BES) с отсоединенной подписью будет включать правильного подписанта.
Offline Евгений Афанасьев  
#7 Оставлено : 6 июня 2022 г. 22:09:31(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Подпись из первого поста успешно проверяется: она совмещенная, содержит сертификаты (всю цепочку), потому что вы использовали расширенный addSigner с addCertificateChain=true.
Подпись из третьего поста не проверяется, сертификата в ней нет, потому что из кода убран расширенный addSigner, а setCertificateStore не используется. Для добавления одного сертификата можно использовать setCertificateStore.
"подразумевается что обычное подписание (Cades-BES) с отсоединенной подписью будет включать правильного подписанта." - будет так, как вы настроите. По умолчанию в подпись (совмещенную/отделенную - зависит от конструктора) сертификаты не добавляются.

Отредактировано пользователем 6 июня 2022 г. 22:11:46(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
lomik_xp оставлено 22.06.2022(UTC)
Offline lomik_xp  
#8 Оставлено : 7 июня 2022 г. 8:03:58(UTC)
lomik_xp

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

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

Сказал(а) «Спасибо»: 5 раз
Автор: Евгений Афанасьев Перейти к цитате
Подпись из первого поста успешно проверяется: она совмещенная, содержит сертификаты (всю цепочку), потому что вы использовали расширенный addSigner с addCertificateChain=true.
Подпись из третьего поста не проверяется, сертификата в ней нет, потому что из кода убран расширенный addSigner, а setCertificateStore не используется. Для добавления одного сертификата можно использовать setCertificateStore.
"подразумевается что обычное подписание (Cades-BES) с отсоединенной подписью будет включать правильного подписанта." - будет так, как вы настроите. По умолчанию в подпись (совмещенную/отделенную - зависит от конструктора) сертификаты не добавляются.


Спасибо, развернутый ответ

Тему можно закрыть как решенную

Отредактировано пользователем 7 июня 2022 г. 8:04:38(UTC)  | Причина: Не указана

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