Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Для подписи - да, достаточно ключа AT_SIGNATURE. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2014(UTC) Сообщений: 16
|
Вчера я скинул по ошибке лишь часть ответа. Дело в том, что в нашем случае реализация шифрования не предусматривает никакого контакта с приватным ключом отправителя. Так же, не совсем понятно почему Вы сравниваете (в другом Вашем письме) открытую часть нашего сертификата и закрытую часть Вашего сертификата. При подписывании файла, как уже говорилось ранее, используется только Ваш сертификат, а именно его закрытая часть, которая осталась у Вас при генерации запроса. При шифровании файла, необходимо отмечать сертификат получателя, с помощью которого это шифрование можно снять, при помощи открытой части ключа.Ни на одном из этапов подписи и шифрования части различных сертификатов не фигурируют вместе. А в образце идет генерирование симметричного ключа, на котором потом идет шифрование. А они мне, получается, говорят про асимметричное шифрование, которое, судя по сообщениям на этом форуме, в крипто про не реализовано вообще. Теперь мне совсем не понятно, почему у меня работало с cryptcp? Отредактировано пользователем 21 марта 2014 г. 13:38:51(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2014(UTC) Сообщений: 16
|
Запросил новый сертификат - точно такое же несоответствие параметров.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2014(UTC) Сообщений: 16
|
А где можно посмотреть, за что конкретно отвечают параметры ru.CryptoPro.JCP.params.h у моего приватного ключа и ru.CryptoPro.JCP.params.EllipticParamsSpec у публичного ключа получателя? Ну или привести параметр моего приватного ключа к значению равному значению параметра публичного ключа получателя? Или возможно отключить эту проверку, если вдруг она не влияет ни на что? Ну вот, прислали мне зашифрованный файл, который, как сказали мне - зашифрован только моим публичным сертификатом. Вызываю DecryptPKCS7, получаю: com.objsys.asn1j.runtime.Asn1TagMatchFailedException: ASN.1 decode error @ offset 0: Tag match failed: expected [UNIVERSAL 16], parsed [APPLICATION 16] Verified: false at com.objsys.asn1j.runtime.Asn1Type.matchTag(Asn1Type.java:449) at com.objsys.asn1j.runtime.Asn1Type.matchTag(Asn1Type.java:466) at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.ContentInfo.decode(ContentInfo.java:55) at com.objsys.asn1j.runtime.Asn1Type.decode(Asn1Type.java:218) at CMS_samples.CMSVerify.CMSVerify(CMSVerify.java:99) at CMS_samples.PKCS7Env.DecryptPKCS7(PKCS7Env.java:369) at CMS_samples.PKCS7Env.main(PKCS7Env.java:417) Отредактировано пользователем 25 марта 2014 г. 13:42:00(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
EllipticParamsSpec содержит параметры подписи (или обмена), которые определяют параметры эллиптической кривой и точки. Привести параметры нельзя, можно только указать при генерации ключевой пары (для подписи или обмена). Отключить проверку нельзя. Если прислали файл, зашифрованный только с помощью вашего сертификата, то использовали эфемерную пару и ваш открытый ключ. Если ваш открытый ключ содержал параметры обмена (1.2.643.2.2.36.0), то файл был успешно зашифрован. Ошибка Код:
com.objsys.asn1j.runtime.Asn1TagMatchFailedException: ASN.1 decode error @ offset 0:
Tag match failed: expected [UNIVERSAL 16], parsed [APPLICATION 16]
, возможно, из-за того, что подпись в base64, а должна быть в der кодировке. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2014(UTC) Сообщений: 16
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) EllipticParamsSpec содержит параметры подписи (или обмена), которые определяют параметры эллиптической кривой и точки. Привести параметры нельзя, можно только указать при генерации ключевой пары (для подписи или обмена). Здравствуйте. Появилась возможность вернуться к этой проблеме. Правильно ли я понимаю, что данный параметр я должен устанавливать самостоятельно, когда создаю запрос на сертификат в нбки? Если да, то не могли бы вы подсказать, в каком из образцов можно посмотреть, каким образом задавать этот параметр? Дешифрование пока оставлю на потом, лучше сначала разобраться с шифрованием...
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Здравствуйте. Эти параметры устанавливаются автоматически в зависимости от идентификатора набора параметров - их фактически два (пока): контейнер с ключом подписи (ГОСТ Р 34.10-2001, 1.2.643.2.2.19) или с ключом обмена (ГОСТ Р 34.10-2001, 1.2.643.2.2.98). А то, какой идентификатор выбирается, зависит, например, от того, какой флажок поставить при генерации контейнера в панели JCP - ключ подписи (signature) или обмена (exchange) для аутентификации клиента/сервера. Соответственно, запросы на сертификаты в этих случаях будут немного отличаться. Т.к. вы используется шифрование, то вам потребуется ключ обмена в контейнере с идентификатором набора параметров и параметрами, например: Код:
ru.CryptoPro.JCP.params.AlgIdSpec: 1.2.643.2.2.98
ru.CryptoPro.JCP.params.EllipticParamsSpec: 1.2.643.2.2.36.0
ru.CryptoPro.JCP.params.DigestParamsSpec: 1.2.643.2.2.30.1
ru.CryptoPro.JCP.params.CryptParamsSpec: 1.2.643.2.2.31.1
В сертификате всегда присутствует идентификатор набора 1.2.643.2.2.19 (даже если используется закрытый ключ обмена), однако параметры закрытого ключа и сертификата всегда совпадают. Например, в случае Код:
final KeyPairGenerator kg = KeyPairGenerator.getInstance(JCP.GOST_DH_NAME);
final KeyPair keyPair = kg.generateKeyPair();
будет сгенерирована ключевая пара на алгоритме ГОСТ Р 34.10-2001 DH с идентификатором набора 1.2.643.2.2.98 и соответствующими параметрами (ключ обмена) для подписи и шифрования. Здесь, например, доступен сертификат сервера с подходящими параметрами. Отредактировано пользователем 8 апреля 2014 г. 13:20:24(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2014(UTC) Сообщений: 16
|
Добрый день. Спасибо за ответ. Возвращаясь к моему предыдущему сообщению, когда я писал: public-------------- ru.CryptoPro.JCP.params.AlgIdSpec: 1.2.643.2.2.19 ru.CryptoPro.JCP.params.EllipticParamsSpec: 1.2.643.2.2.35.1 ru.CryptoPro.JCP.params.DigestParamsSpec: 1.2.643.2.2.30.1 ru.CryptoPro.JCP.params.CryptParamsSpec: 1.2.643.2.2.31.1 Это параметры публичного ключа получателя, то есть НБКИ. раз параметр AlgIdSpec у открытого ключа получателя равен 1.2.643.2.2.19, означает ли это, что используется Signature key и мне также необходимо использовать Signature key? Если это так, то получается, что шифрованием нельзя пользоваться с такими ключами... А почему мы ранее сравнивали параметры ru.CryptoPro.JCP.params.h: 1.2.643.2.2.36.0 и ru.CryptoPro.JCP.params.EllipticParamsSpec: 1.2.643.2.2.35.1 ? И не понятно, опять же...Почему утилита cryptcp работает с этим открытым сертификатом получателя? Отредактировано пользователем 8 апреля 2014 г. 13:56:16(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
1.2.643.2.2.35.1 - идентификатор параметров подписи, идентификатор параметров обмена(по умолчанию) - 1.2.643.2.2.36.0. Да, нужен exchnage key, не signature. Сравнивали, т.к. параметры не совпадают - в открытом ключе от NBKI (как я понял) находится 1.2.643.2.2.35.1, а нужен 1.2.643.2.2.36.0. Отредактировано пользователем 8 апреля 2014 г. 14:00:48(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2014(UTC) Сообщений: 16
|
Отлично, спасибо. Это прогресс.
Могу ли я попробовать запросить свой НБКИ, чтобы они мне прислали открытый сертификат получателя, чтобы он был exchange key?
И не знаете ли вы, почему утилита cryptcp работает(шифрует и подписывает) с сертификатами из моего нбки не обращая внимания на эти параметры?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close