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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline rebeled  
#1 Отправлено: : 1 июня 2021 г. 13:02:45(UTC)
rebeled

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 1 раз в 1 постах
Генерю тестовый запрос на сертификат:
Цитата:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 80 -provname 'Crypto-Pro GOST R 34.10-2012 KC1 CSP' -exprt -rdn "SNILS=12347007899, INN=123406517899, E=test@email.ru, CN=TestCN, SN=TestSN, G=TestG, C=RU, ST=69 Тверская область" -cont '\\.\HDIMAGE\14887007123' -certusage 1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.4,1.2.643.6.7,1.2.643.6.15,1.2.643.6.17.1,1.2.643.6.14 -ku -du -both -ca http://cryptopro.ru/certsrv -pin ''

Получаю сертификат в хранилище:
Цитата:
/opt/cprocsp/bin/amd64/certmgr -list
Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : SNILS=12347007899, INN=123406517899, E=test@email.ru, CN=TestCN, SN=TestSN, G=TestG, C=RU, S=69 Тверская область
Serial : 0x120054638E557B69974F131BD100010054638E
SHA1 Hash : 6a65d9399404868b75d66d5355e1f8d34a2c03b2
SubjKeyID : 43962dd47742905a17c05c1e070082b11206dd2c
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
Not valid before : 01/06/2021 09:36:05 UTC
Not valid after : 01/09/2021 09:46:05 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\14887007.000\825C
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL : http://testca.cryptopro....Test%20Center%202(1).crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro....Test%20Center%202(1).crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2
1.3.6.1.5.5.7.3.4
1.2.643.6.7
1.2.643.6.15
1.2.643.6.17.1
1.2.643.6.14

Качаю сертификат тестовго УЦ http://testca.cryptopro....Test%20Center%202(1).crt
Ставлю в рутовоке хранилище:
Цитата:
/opt/cprocsp/bin/amd64/certmgr -inst root -file ./test-ca-2014_CRYPTO-PRO\ Test\ Center\ 2\(1\).crt


Цитата:
/opt/cprocsp/bin/amd64/certmgr -list -store uRoot
Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial : 0x37418882F539A5924AD44E3DE002EA3C
SHA1 Hash : cd321b87fdabb503829f88db68d893b59a7c5dd3
SubjKeyID : 4e833e1469efec5d7a952b5f11fe37321649552b
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 27/05/2019 07:24:26 UTC
Not valid after : 26/05/2024 07:34:05 UTC
PrivateKey Link : No


Подписываю им через Криптопро Browser Plugin и CSP 4.0, отправляю на проверку на сервер, пытаюсь извлечь информацию о сертификатах:
Цитата:
final Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(buffer);
final ContentInfo all = new ContentInfo();
all.decode(asnBuf);
final SignedData cms = (SignedData) all.content;


Ожидаю, что в cms.certificates.elements будет 2 сертификата:
  1. Тестового УЦ
  2. Личный TestCN


Однако наблюдаю лишь
  1. Личный TestCN


При подписи пром сертификатом от минкомсвязи вижу что ожидал:
  1. Минкомсвязь
  2. Личный боевой


Гугление и дебаг результатов не дали. Подскажите пожалуйста, куда копать
Offline Евгений Афанасьев  
#2 Оставлено : 1 июня 2021 г. 13:54:44(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Возможно, на стороне подписи надо как-то указать, чтобы была включена вся цепочка в подпись.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
rebeled оставлено 01.06.2021(UTC)
Offline rebeled  
#3 Оставлено : 1 июня 2021 г. 14:35:46(UTC)
rebeled

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

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

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

Ну пром сертификат приходит же с цепочкой. Подпись на клиенте через cadesplugin
Цитата:
var find1 = yield CertificatesObj.Find(
CAPICOM_CERTIFICATE_FIND_KEY_USAGE,
CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE);
var find2 = yield find1.Find(CAPICOM_CERTIFICATE_FIND_TIME_VALID);
var find3 = yield find2.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, szThumbprint);

var oCertificate = yield find3.Item(1);

var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);

var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_Content(data);

var signature = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES);
Offline rebeled  
#4 Оставлено : 1 июня 2021 г. 15:04:23(UTC)
rebeled

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

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

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

Цитата:
var CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;// Включать всю цепочку сертификатов
...
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);

на клиенте помогло, спасибо!
Offline Евгений Афанасьев  
#5 Оставлено : 1 июня 2021 г. 15:05:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Сравните ответы от двух клиентов, где происходит подпись. Если они ощутимо разные по размеру, значит, один из них кладет цепочку, а другой - 1 сертификат.
Автор: rebeled Перейти к цитате

Автор: Евгений Афанасьев Перейти к цитате
Здравствуйте.
Возможно, на стороне подписи надо как-то указать, чтобы была включена вся цепочка в подпись.

Цитата:
var CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;// Включать всю цепочку сертификатов
...
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);

на клиенте помогло, спасибо!

Хорошо.

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

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