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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline faubrary  
#1 Оставлено : 3 июля 2019 г. 18:46:45(UTC)
faubrary

Статус: Новичок

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

Сказал(а) «Спасибо»: 5 раз
После того, как данные подписаны плагином, их можно проверить на этом же компьютере, вызвав csptest.
А как их проверить на другом компьютере?

1. Отделённую подпись делаю так:
Код:
signedData.SignCades(signer, cadesplugin.CADESCOM_CADES_BES, true);

2. Проверяю так:
Код:
csptest -sfsign -verify -in data -signature data.sig -my "Подставить кому выдан или отпечаток" -detached -base64


На другом компьютере нет сертификата, которым подписывал, а без указания на него не работает csptest.
По косвенным признакам вижу, что многие данные сертификата включены в подпись.
Возможно, есть там и публичный ключ, но при помощи csptest не знаю, как в этом убедиться.
Если публичный ключ включён, то зачем для csptest указывать сертификат?

Возможно, требуется CAdES-X Long Type 1, а не BES?
Подскажите, пожалуйста, способ проверять подпись по встроенному в неё сертификату.
Хватит ли для этого csptest или нужно что-то другое?
Offline Андрей Писарев  
#2 Оставлено : 3 июля 2019 г. 22:14:36(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Здравствуйте.

Цитата:
cryptcp -verify file.png -f file.png.sgn -detached
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
faubrary оставлено 04.07.2019(UTC)
Offline faubrary  
#3 Оставлено : 4 июля 2019 г. 14:13:21(UTC)
faubrary

Статус: Новичок

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

Сказал(а) «Спасибо»: 5 раз
Спасибо, Андрей.

Не подскажете ли ещё один момент? После того, как создана подпись, чем её можно посмотреть в читаемом виде? Весьма полезно знать, как она устроена, чтобы проконтролировать использовавшиеся алгоритмы, например. Умеет ли это cryptocp или csptest? Или, может, при помощи какого-нибудь сайта можно её прочесть?
Offline Андрей Писарев  
#4 Оставлено : 4 июля 2019 г. 14:30:13(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: faubrary Перейти к цитате
Спасибо, Андрей.

Не подскажете ли ещё один момент? После того, как создана подпись, чем её можно посмотреть в читаемом виде? Весьма полезно знать, как она устроена, чтобы проконтролировать использовавшиеся алгоритмы, например. Умеет ли это cryptocp или csptest? Или, может, при помощи какого-нибудь сайта можно её прочесть?


Варианты разные, например:

1) КриптоАРМ - https://trusted.ru/products/cryptoarm/about/
2) парсеры ASN.1
https://www.sysadmins.lv.../asn1editor/default.aspx
онлайн:
http://lapo.it/asn1js/
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
faubrary оставлено 04.07.2019(UTC)
Offline faubrary  
#5 Оставлено : 4 июля 2019 г. 22:52:57(UTC)
faubrary

Статус: Новичок

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

Сказал(а) «Спасибо»: 5 раз
Спасибо ещё раз, опять всё получилось :)
Можно также смотреть openssl-ем:

base64 -d data.sig | openssl asn1parse -i -inform DER -in -

Остался последний вопрос. Мне нужно браузерным плагином подписать небольшую строку (md5-хэш),
основное требование -- сделать это в соответствии с ГОСТ-2012.

Посмотрев примеры https://cpdn.cryptopro.r...ades/plugin-samples.html ,
я не обнаружил явного указания алгоритма, кроме подписывания хэш-данных https://cpdn.cryptopro.r...mples-raw-signature.html
И в https://cpdn.cryptopro.r...ades/plugin-methods.html строка "2012" упоминается только в связи с хэшем.
Однако для такой короткой строки, как md5-хэш, вроде бы, не логично использовать ещё одно дополнительное хэширование,
поэтому я и подписываю простым

signedData.SignCades(signer, cadesplugin.CADESCOM_CADES_BES, true);

А когда рассматриваю распарсенный результат на http://lapo.it/asn1js/, в отношении подписи вижу

OBJECT IDENTIFIER 1.2.643.2.2.3 gostSignature (GOST R 34.10-2001 + GOST R 34.11-94 signature)

, что опять же не содержит заветной строки "2012".
Возможно, я зря волнуюсь и такая подпись отвечает ГОСТ-2012, но уверенности нет.

Подскажите, пожалуйста, как правильно сделать браузерным плагином подпись, соответствующую ГОСТ-2012 ?
Ну или поправьте, если вопрос некорректный.
Заранее благодарен.
Offline Андрей Писарев  
#6 Оставлено : 5 июля 2019 г. 0:17:56(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: faubrary Перейти к цитате


OBJECT IDENTIFIER 1.2.643.2.2.3 gostSignature (GOST R 34.10-2001 + GOST R 34.11-94 signature)

, что опять же не содержит заветной строки "2012".
Возможно, я зря волнуюсь и такая подпись отвечает ГОСТ-2012, но уверенности нет.

Подскажите, пожалуйста, как правильно сделать браузерным плагином подпись, соответствующую ГОСТ-2012 ?
Ну или поправьте, если вопрос некорректный.
Заранее благодарен.


Сертификат с открытым ключом ГОСТ-2001?
Получите новый, с ГОСТ-2012.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#7 Оставлено : 5 июля 2019 г. 0:38:59(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: faubrary Перейти к цитате
Мне нужно браузерным плагином подписать небольшую строку (md5-хэш),
основное требование -- сделать это в соответствии с ГОСТ-2012.
...
Однако для такой короткой строки, как md5-хэш, вроде бы, не логично использовать ещё одно дополнительное хэширование,
поэтому я и подписываю простым

signedData.SignCades(signer, cadesplugin.CADESCOM_CADES_BES, true);


при вызове SignCades - внутри выполняется хеширование данных и подписывается в итоге хеш от данных,
алгоритмы хеширования\подписания определяются на основе сертификата signer-а.
Техническую поддержку оказываем тут
Наша база знаний
Offline faubrary  
#8 Оставлено : 5 июля 2019 г. 6:15:55(UTC)
faubrary

Статус: Новичок

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

Сказал(а) «Спасибо»: 5 раз
> Сертификат с открытым ключом ГОСТ-2001?
> Получите новый, с ГОСТ-2012.

Нет, сертификат новый, вот OID его публичного ключа:

SEQUENCE (2 elem)
OBJECT IDENTIFIER 1.2.643.7.1.1.1.1 gost2012PublicKey256 (GOST R 34.10-2012 256 bit public key)
SEQUENCE (2 elem)
OBJECT IDENTIFIER 1.2.643.2.2.36.0 cryptoProSignXA (CryptoPro ell.curve XA for GOST R 34.10-2001)
OBJECT IDENTIFIER 1.2.643.7.1.1.2.2 gost2012Digest256 (GOST R 34.11-2012 256 bit digest)

Но, если я правильно читаю ASN-разбор, сама подпись вот такая, и в ней 2012 уже не упоминается:

SEQUENCE (1 elem)
OBJECT IDENTIFIER 1.2.643.2.2.3 gostSignature (GOST R 34.10-2001 + GOST R 34.11-94 signature)
BIT STRING (512 bit) 1000011110111100000111010000101111100111101101111111101001100010001101…

Я правильно Вас понял, что:

1. Новые особенности ГОСТ-2012 влияют только хэширование при подписывании.
2. Если я не указываю алгоритм хэширования явно, то берётся алгоритм из сертификата,
поэтому сертификат по ГОСТ-2012 будет подписывать ГОСТ-2012-ым алгоритмом хэширования.

Правильно?

Вот полная ссылка на разбор подписи:

http://lapo.it/asn1js/#M...ck02cT9cYmb83zUINw7Qeo1A

Отредактировано пользователем 5 июля 2019 г. 6:17:30(UTC)  | Причина: Не указана

Offline two_oceans  
#9 Оставлено : 5 июля 2019 г. 10:12:11(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Мне кажется Вы просто заблудились в трех соснах. [0] это похоже обертка над сертификатами, тогда если Вы про 1.2.643.2.2.3 по оффсету 793 то это получается подпись Вашего сертификата, а не подпись данных. Другими словами, Вы выпустили сертификат гост-2012 на старом тестовом УЦ и ключ тестового УЦ был все еще гост-2001, поэтому Ваш сертификат с открытым ключом гост-2012 подписан алгоритмом гост-2001 и гост-2001 мелькает в подписи как часть Вашего сертификата. Проверить легко - загрузите на этот же разборщик сам сертификат и проверьте значение подписи (в конце сертификата) на совпадение со значением подписи под оффсетом 793.

гост-2012 и правда не упоминается, да и кончается на открытом ключе что наводит на мысль о неполностью скопированной или не полностью разобранной подписи.

Отредактировано пользователем 5 июля 2019 г. 10:16:05(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
faubrary оставлено 05.07.2019(UTC)
Offline Андрей Писарев  
#10 Оставлено : 5 июля 2019 г. 10:51:11(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: faubrary Перейти к цитате

Вот полная ссылка на разбор подписи:

http://lapo.it/asn1js/#M...ck02cT9cYmb83zUINw7Qeo1A



Вначале идет информация о сертификате УЦ - CRYPTO-PRO Test Center 2 - он по ГОСТ-2001.

Внизу про подпись и там всё указано:
Цитата:

SEQUENCE (2 elem)
OBJECT IDENTIFIER 1.2.643.7.1.1.2.2 gost2012Digest256 (GOST R 34.11-2012 256 bit digest)




Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
faubrary оставлено 05.07.2019(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.