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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline EugeneNSK  
#1 Оставлено : 31 августа 2022 г. 11:40:56(UTC)
EugeneNSK

Статус: Участник

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

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

Столкнулся с такой ситуацией.
При шифровании (PKCS7) на несколько сертификатов создаю EnvelopedSignature
и добавляю их через envelopedSignature.addKeyTransRecipient(cert).

При добавлении, внутри библиотек КриптоПро, проходит проверка сертификата на предмет использования ключа.
И если "Шифрование ключей" не заявлено, то выбрасывается исключение.

Но через КриптоАРМ шифрование таким сертификатом проходит, как и через плагин на портале Центробанка.

Хотел узнать почему разное поведение при одинаковой операции шифрования на разных "продуктах".

Спасибо!


Offline Евгений Афанасьев  
#2 Оставлено : 2 сентября 2022 г. 21:56:22(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Приведите стек ошибки. Скорее всего, бросается исключение из стандартного вызова вроде Cipher.init.
Offline EugeneNSK  
#3 Оставлено : 5 сентября 2022 г. 13:43:21(UTC)
EugeneNSK

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
Здравствуйте.
Приведите стек ошибки. Скорее всего, бросается исключение из стандартного вызова вроде Cipher.init.

Добрый день!

Стэк:
Caused by: ru.CryptoPro.CAdES.exception.EnvelopedException: Wrong key usage
at ru.CryptoPro.CAdES.EnvelopedSignature.addKeyTransRecipient(Unknown Source)

Он небольшой, вызовы внутри приложения опустил.
Offline Евгений Афанасьев  
#4 Оставлено : 5 сентября 2022 г. 17:04:29(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Какая у вас версия JCP в формате x.y.zzzzz?
Offline EugeneNSK  
#5 Оставлено : 6 сентября 2022 г. 8:17:15(UTC)
EugeneNSK

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
Какая у вас версия JCP в формате x.y.zzzzz?

Такое поведение на версиях JCP 2.0.41940-A и 2.0.40450-A
И на версии JCSP 5.0.40363-A
Offline Евгений Афанасьев  
#6 Оставлено : 6 сентября 2022 г. 21:14:20(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
С начала добавления EnvelopedSignature в методе addKeyTransRecipient присутствует проверка наличия Key Usage "KeyEncipherment" в сертификате получателя. Она требовалась, поскольку стандартный Cipher проверяет этот бит.
Offline EugeneNSK  
#7 Оставлено : 7 сентября 2022 г. 8:20:27(UTC)
EugeneNSK

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
С начала добавления EnvelopedSignature в методе addKeyTransRecipient присутствует проверка наличия Key Usage "KeyEncipherment" в сертификате получателя. Она требовалась, поскольку стандартный Cipher проверяет этот бит.


Понял, спасибо
Offline Евгений Афанасьев  
#8 Оставлено : 7 сентября 2022 г. 12:26:49(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
В последних версиях в связи с доработками проверка была изменена на проверку бита keyagreement (согласование ключей). Попробуйте с одной из последних сборок.
Offline EugeneNSK  
#9 Оставлено : 15 декабря 2022 г. 11:44:13(UTC)
EugeneNSK

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
В последних версиях в связи с доработками проверка была изменена на проверку бита keyagreement (согласование ключей). Попробуйте с одной из последних сборок.


Добрый день!

Что-то я затянул с ответом.
Да, вы правы, на последних версия JCP/JCSP шифрование на таких сертификатах успешно проходит.

Т.е. на сертифицированных версиях библиотек шифрование сертификатом без атрибута "Шифрование ключей" невозможно.
На последних НЕ сертифицированных версиях шифрование доступно с атрибутом "Согласование ключей" и без атрибута "Шифрование ключей".

Тут возник интересный момент. Если попытаться выполнить шифрование (например на версии JCSP 5.0.42898-A) сертификатом,
у которого нет атрибута "Согласование ключей", то возникнет ошибка -
Цитата:
Wrong key usage.

Как я понял это можно исправить выставив системную настройку
Цитата:
ru.CryptoPro.key_agreement_validation=false

Это валидный кейс в целом?
Offline Евгений Афанасьев  
#10 Оставлено : 15 декабря 2022 г. 15:10:34(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Автор: EugeneNSK Перейти к цитате
Это валидный кейс в целом?

Да, проверку можно отключить с помощью указанного свойства.

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