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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Евгений Афанасьев  
#11 Оставлено : 20 марта 2014 г. 18:58:21(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Для подписи - да, достаточно ключа AT_SIGNATURE.
Offline s_Vace  
#12 Оставлено : 21 марта 2014 г. 12:26:49(UTC)
s_Vace

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

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

Вчера я скинул по ошибке лишь часть ответа.

Дело в том, что в нашем случае реализация шифрования не предусматривает никакого контакта с приватным ключом отправителя.
Так же, не совсем понятно почему Вы сравниваете (в другом Вашем письме) открытую часть нашего сертификата и закрытую часть Вашего сертификата.
При подписывании файла, как уже говорилось ранее, используется только Ваш сертификат, а именно его закрытая часть, которая осталась у Вас при генерации запроса.
При шифровании файла, необходимо отмечать сертификат получателя, с помощью которого это шифрование можно снять, при помощи открытой части ключа.
Ни на одном из этапов подписи и шифрования части различных сертификатов не фигурируют вместе.

А в образце идет генерирование симметричного ключа, на котором потом идет шифрование.
А они мне, получается, говорят про асимметричное шифрование, которое, судя по сообщениям на этом форуме, в крипто про не реализовано вообще.
Теперь мне совсем не понятно, почему у меня работало с cryptcp?

Отредактировано пользователем 21 марта 2014 г. 13:38:51(UTC)  | Причина: Не указана

Offline s_Vace  
#13 Оставлено : 21 марта 2014 г. 15:56:57(UTC)
s_Vace

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

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

Запросил новый сертификат - точно такое же несоответствие параметров.
Offline s_Vace  
#14 Оставлено : 25 марта 2014 г. 13:11:56(UTC)
s_Vace

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline Евгений Афанасьев  
#15 Оставлено : 31 марта 2014 г. 9:28:02(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 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 кодировке.
Offline s_Vace  
#16 Оставлено : 4 апреля 2014 г. 16:24:17(UTC)
s_Vace

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

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

Автор: afev Перейти к цитате
EllipticParamsSpec содержит параметры подписи (или обмена), которые определяют параметры эллиптической кривой и точки. Привести параметры нельзя, можно только указать при генерации ключевой пары (для подписи или обмена).


Здравствуйте. Появилась возможность вернуться к этой проблеме.

Правильно ли я понимаю, что данный параметр я должен устанавливать самостоятельно, когда создаю запрос на сертификат в нбки?

Если да, то не могли бы вы подсказать, в каком из образцов можно посмотреть, каким образом задавать этот параметр?

Дешифрование пока оставлю на потом, лучше сначала разобраться с шифрованием...
Offline Евгений Афанасьев  
#17 Оставлено : 8 апреля 2014 г. 13:05:21(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 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)  | Причина: Не указана

Offline s_Vace  
#18 Оставлено : 8 апреля 2014 г. 13:48:40(UTC)
s_Vace

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline Евгений Афанасьев  
#19 Оставлено : 8 апреля 2014 г. 13:57:18(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 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)  | Причина: Не указана

Offline s_Vace  
#20 Оставлено : 8 апреля 2014 г. 14:00:34(UTC)
s_Vace

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

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

Отлично, спасибо. Это прогресс.

Могу ли я попробовать запросить свой НБКИ, чтобы они мне прислали открытый сертификат получателя, чтобы он был exchange key?

И не знаете ли вы, почему утилита cryptcp работает(шифрует и подписывает) с сертификатами из моего нбки не обращая внимания на эти параметры?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (6)
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.