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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline wolfer  
#1 Оставлено : 1 марта 2017 г. 17:26:59(UTC)
wolfer

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Добрый день.
Стоит задача организации подписания СМЭВ сообщений в Linux через консольные вызовы. Раньше для этих целей успешно использовали OpenSSL. Когда вызовы openssl изменили на вызов утилит КриптоПро, сервис валидации СМЭВ стал отвечать что подпись корректна. Попробовали отвалидировать сообщение через openssl, также валидацию не проходит.

Не проходит даже валидация подписи простого текстового примера.
Цитата:

$ csptest -keys -cont '\\.\HDIMAGE\center-invest-esia' -sign GOST -in /tmp/123 -out /tmp/123.sig -password 123456789
CSP (Type:75) v3.9.8010 KC1 Release Ver:3.9.8495 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 14683971
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "center-invest-esia"
Signature key is available. HCRYPTKEY: 0xe768d3
Exchange key is available. HCRYPTKEY: 0xe80fc3
uec key is not available.
Hash object created with alg: GOST 0x801E
The data buffer has been hashed.
Signature length 64 found.
Signature was done.
Output file (/tmp/123.sig) has been saved
Signature saved into file /tmp/123.sig

Keys in container:
signature key
exchange key
Total: SYS: 0.000 sec USR: 0.160 sec UTC: 0.170 sec
[ErrorCode: 0x00000000]


$ certmgr -export -cont '\\.\HDIMAGE\center-invest-esia' -dest /tmp/1.crt
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores

Exporting:
=============================================================================
1-------
Issuer : E=test@cryptopro.ru, CN=center-invest-esia
Subject : E=test@cryptopro.ru, CN=center-invest-esia
Serial : 0x01
SHA1 Hash : 0x821752396f94ef3846b8e7f4ef0163f583e6cd51
SubjKeyID : 2774d2b2afd48cc9d4547462416c4f98f92bd406
Not valid before : 20/02/2017 09:37:45 UTC
Not valid after : 01/02/2030 09:37:45 UTC
PrivateKey Link : No
=============================================================================
Export complete

[ErrorCode: 0x00000000]

$ openssl x509 -engine gost -in /tmp/1.crt -inform DER -pubkey -noout > /tmp/1.pubkey
engine "gost" set.

$ cat /tmp/123 | openssl dgst -engine gost -verify /tmp/1.pubkey -signature /tmp/123.sig
engine "gost" set.
Verification Failure



Подскажите, как можно получить значение подписи, которое можно будет отвалидировать?
Offline wolfer  
#2 Оставлено : 7 марта 2017 г. 19:07:40(UTC)
wolfer

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Обнаружил ещё что публичные ключи получаемые через certmgr -export и csptest -expcert отличаются, поэтому вот пример исключающий эту неточность

Цитата:

$ csptest -keys -cont '\\.\HDIMAGE\center-invest-esia' -sign GOST -in /tmp/44 -out /tmp/44.s -password 123456789 -keytype signature -expcert /tmp/2.crt
CSP (Type:75) v3.9.8010 KC1 Release Ver:3.9.8495 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 19492675
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "center-invest-esia"
Signature key is available. HCRYPTKEY: 0x1311703
Saving AT_SIGNATURE key cert
Output file (/tmp/2.crt) has been saved
Certificate saved into file /tmp/2.crt
Hash object created with alg: GOST 0x801E
The data buffer has been hashed.
Signature length 64 found.
Signature was done.
Output file (/tmp/44.s) has been saved
Signature saved into file /tmp/44.s

Keys in container:
signature key
Total: SYS: 0.000 sec USR: 0.090 sec UTC: 0.110 sec
[ErrorCode: 0x00000000]


$ openssl x509 -in /tmp/2.crt -inform DER -engine gost -pubkey -noout > /tmp/1.pub
engine "gost" set.


$ cat /tmp/44 | openssl dgst -engine gost -verify /tmp/1.pub -signature /tmp/44.s
engine "gost" set.
Verification Failure


Помогите, люди добрые
Offline Максим Коллегин  
#3 Оставлено : 8 марта 2017 г. 19:19:22(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,422
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 734 раз в 632 постах
Вы точно хотите проверить 64 байта подписи сертификатом? Или открытым ключом? Или подпись всё таки нужна pkcs#7?
Знания в базе знаний, поддержка в центре поддержки
Offline wolfer  
#4 Оставлено : 8 марта 2017 г. 22:43:06(UTC)
wolfer

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
не совсем понял вопроса. Может я чего то не знаю об ЭЦП, но вроде ЭЦП проверяется публичным ключем, который можно получить в том числе и из сертификата. Что и делаю - выгружаю при подписании сертификат, достаю из него публичный, им и валидирую. Поправьте, если не прав.
нет, pkcs#7 не надо. Нужно только значение подписи определенного набора данных, для отправки СМЭВ-запроса.

Offline Максим Коллегин  
#5 Оставлено : 9 марта 2017 г. 8:19:13(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,422
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 734 раз в 632 постах
Всё верно. Попробуйте перевернуть байты подписи (63<->0, 62<->1 ....)
Знания в базе знаний, поддержка в центре поддержки
Offline wolfer  
#6 Оставлено : 9 марта 2017 г. 10:24:59(UTC)
wolfer

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Получилось! Спасибо большое!
А не подскажете, почему все таки отличаются публичные ключи в сертификатах полученном через -expcert при подписи и полученном через certmgr -export ? Причем тот, что из "certmgr -export" не подходит для валидации.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.