Статус: Новичок
Группы: Участники
Зарегистрирован: 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 или нужно что-то другое?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
Здравствуйте. Цитата:cryptcp -verify file.png -f file.png.sgn -detached |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.07.2019(UTC) Сообщений: 4 Откуда: Москва Сказал(а) «Спасибо»: 5 раз
|
Спасибо, Андрей.
Не подскажете ли ещё один момент? После того, как создана подпись, чем её можно посмотреть в читаемом виде? Весьма полезно знать, как она устроена, чтобы проконтролировать использовавшиеся алгоритмы, например. Умеет ли это cryptocp или csptest? Или, может, при помощи какого-нибудь сайта можно её прочесть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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 ? Ну или поправьте, если вопрос некорректный. Заранее благодарен.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
Автор: faubrary Мне нужно браузерным плагином подписать небольшую строку (md5-хэш), основное требование -- сделать это в соответствии с ГОСТ-2012. ... Однако для такой короткой строки, как md5-хэш, вроде бы, не логично использовать ещё одно дополнительное хэширование, поэтому я и подписываю простым
signedData.SignCades(signer, cadesplugin.CADESCOM_CADES_BES, true); при вызове SignCades - внутри выполняется хеширование данных и подписывается в итоге хеш от данных, алгоритмы хеширования\подписания определяются на основе сертификата signer-а. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
1 пользователь поблагодарил two_oceans за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
Автор: faubrary Вначале идет информация о сертификате УЦ - 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)
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close