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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Sergey_H21  
#1 Оставлено : 22 апреля 2020 г. 12:44:44(UTC)
Sergey_H21

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

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте!
Есть задача по формированию ЭП:

1. Из документа формируется строковая последовательность (ключевой буфер или дайджест), включающая все значимые данные документа.
2. Затем от дайджеста вычисляется хеш по стандарту ГОСТ 34.11-94 с параметрами GostR3411-94-CryptoProParamSet.
3. Полученное значение хеш-функции подписывается по стандарту ГОСТ 34.10-2001 с параметрами GostR3410-2001-CryptoPro-B-ParamSet.
4. 64 байта, полученные в результате шага 3 и представленные в виде, описанном в пункте 3.1 RFC 4490 и есть сформированная электронная подпись.

Хеш сформировать получается с помощью cpverify. Размер его 64 байта.
Далее хочу сформировать подпись с помощью csptest. Пробую различные ключи, но файл подписи формируется более чем 64 байта.

Подскажите пожалуйста можно ли с помощью csptest выполнить эту задачу, или нужно использовать что-то другое?

Спасибо
Offline Андрей *  
#2 Оставлено : 22 апреля 2020 г. 13:04:06(UTC)
Андрей *

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

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

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

Зачем нужен пункт 1?
Техническую поддержку оказываем тут
Наша база знаний
Offline Sergey_H21  
#3 Оставлено : 22 апреля 2020 г. 13:50:47(UTC)
Sergey_H21

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

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

Сказал(а) «Спасибо»: 1 раз
пункт 1 нужен чтобы из документа выделить только значимые поля которые требуются для подписания. Выглядит примерно так:
Пример дайджеста
acceptanceTerm=5
amount=100.01
date=2018-12-31
externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6
operationCode=02
payeeAccount=40802810600000200000
payeeBankBic=044525225
payeeBankCorrAccount=30101810400000000225
payeeInn=0
payeeName=Общество с ограниченной ответственностью "Получатель"
payerAccount=40802810600000200000
payerBankBic=044525225
payerBankCorrAccount=30101810400000000225
payerInn=0
payerName=Общество с ограниченной ответственностью "Клиент"
paymentCondition=1
priority=5
purpose=Назначение платежа
Offline Андрей *  
#4 Оставлено : 22 апреля 2020 г. 14:23:40(UTC)
Андрей *

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

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

Сказал «Спасибо»: 393 раз
Поблагодарили: 1612 раз в 1238 постах
Автор: Sergey_H21 Перейти к цитате
пункт 1 нужен чтобы из документа выделить только значимые поля которые требуются для подписания. Выглядит примерно так:
Пример дайджеста
acceptanceTerm=5
amount=100.01
date=2018-12-31
externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6
operationCode=02
payeeAccount=40802810600000200000
payeeBankBic=044525225
payeeBankCorrAccount=30101810400000000225
payeeInn=0
payeeName=Общество с ограниченной ответственностью "Получатель"
payerAccount=40802810600000200000
payerBankBic=044525225
payerBankCorrAccount=30101810400000000225
payerInn=0
payerName=Общество с ограниченной ответственностью "Клиент"
paymentCondition=1
priority=5
purpose=Назначение платежа



Вы понимаете к чему это может привести?
А завтра\через полгода появятся еще значимые данные, обновите алгоритм получения от них хеша?
и к старым нужна пометка, какие данные "были значимы" на тот момент?

Хешируйте целиком.
Техническую поддержку оказываем тут
Наша база знаний
Offline Sergey_H21  
#5 Оставлено : 22 апреля 2020 г. 14:35:29(UTC)
Sergey_H21

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

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

Сказал(а) «Спасибо»: 1 раз
Формирование дайджеста, хеширование и подписание его - это требование провайдера услуги. Мы не можем повлиять на алгоритм формирования дайджеста.
Сейчас задача заключается в том чтобы хеш этого дайджеста подписать. Нужно понять можно ли это сделать с помощью csptest или что-то другое использовать придется.
Offline Андрей *  
#6 Оставлено : 22 апреля 2020 г. 15:00:34(UTC)
Андрей *

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

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

Сказал «Спасибо»: 393 раз
Поблагодарили: 1612 раз в 1238 постах
Автор: Sergey_H21 Перейти к цитате
Формирование дайджеста, хеширование и подписание его - это требование провайдера услуги. Мы не можем повлиять на алгоритм формирования дайджеста.
Сейчас задача заключается в том чтобы хеш этого дайджеста подписать. Нужно понять можно ли это сделать с помощью csptest или что-то другое использовать придется.


Тогда сюда:
https://www.cryptopro.ru...ts&m=77710#post77710
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#7 Оставлено : 22 апреля 2020 г. 15:12:53(UTC)
Андрей *

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

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

Сказал «Спасибо»: 393 раз
Поблагодарили: 1612 раз в 1238 постах
Автор: Sergey_H21 Перейти к цитате
Формирование дайджеста, хеширование и подписание его - это требование провайдера услуги. Мы не можем повлиять на алгоритм формирования дайджеста.
Сейчас задача заключается в том чтобы хеш этого дайджеста подписать. Нужно понять можно ли это сделать с помощью csptest или что-то другое использовать придется.



"C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keys -cont "REGISTRY\\007706092944_05.11.2019 124400" -sign GOST12_256 -keytype exchange -in y:\file.ext -out y:\file.sig



"REGISTRY\\007706092944_05.11.2019 124400" - имя контейнера.
Техническую поддержку оказываем тут
Наша база знаний
Offline Sergey_H21  
#8 Оставлено : 22 апреля 2020 г. 16:49:11(UTC)
Sergey_H21

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

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

Сказал(а) «Спасибо»: 1 раз
Спасибо большое!

Сейчас встала задача - определить контейнер.

На компьютере установлен КриптоПро CSP и с помощью Plugin для браузера удается подписать документ используя установленный сертификат.
Используя тот же CN сертификата подпись удается создать и с помощью консоли:
csptest -sfsign -sign -in dg.hsh -out dg.sig -my 17392498

Но командой csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s не получается:
C:\1\cp>csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s
WARNING: Legacy parameter: "-sign GOST"
CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Windows CPU:IA32 FastCode:READY:AVX.
An error occurred in running the program.
ctkey.c:1004:AcquireContext("17392498")
Error number 0x80090016 (-2146893802).
Набор ключей не существует

Total: SYS: 0,422 sec USR: 0,063 sec UTC: 1,500 sec
[ErrorCode: 0x80090016]

Как можно определить контейнер?
Offline Андрей *  
#9 Оставлено : 22 апреля 2020 г. 17:35:55(UTC)
Андрей *

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

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

Сказал «Спасибо»: 393 раз
Поблагодарили: 1612 раз в 1238 постах
Автор: Sergey_H21 Перейти к цитате
Спасибо большое!

Сейчас встала задача - определить контейнер.

На компьютере установлен КриптоПро CSP и с помощью Plugin для браузера удается подписать документ используя установленный сертификат.
Используя тот же CN сертификата подпись удается создать и с помощью консоли:
csptest -sfsign -sign -in dg.hsh -out dg.sig -my 17392498

Но командой csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s не получается:
C:\1\cp>csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s
WARNING: Legacy parameter: "-sign GOST"
CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Windows CPU:IA32 FastCode:READY:AVX.
An error occurred in running the program.
ctkey.c:1004:AcquireContext("17392498")
Error number 0x80090016 (-2146893802).
Набор ключей не существует

Total: SYS: 0,422 sec USR: 0,063 sec UTC: 1,500 sec
[ErrorCode: 0x80090016]

Как можно определить контейнер?



Панель управления\КриптоПРО CSP\Сервис\Протестировать\По сертификату - выбрать сертификат, отобразится имя контейнера,
в результатах теста - будет детализация.


Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#10 Оставлено : 22 апреля 2020 г. 17:38:02(UTC)
Андрей *

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

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

Сказал «Спасибо»: 393 раз
Поблагодарили: 1612 раз в 1238 постах
либо через утилиту:
Цитата:

"C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keyset -enum_cont -verifycontext -fqcn

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
Sergey_H21 оставлено 22.04.2020(UTC)
Offline Sergey_H21  
#11 Оставлено : 23 апреля 2020 г. 17:07:45(UTC)
Sergey_H21

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

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

Сказал(а) «Спасибо»: 1 раз
Подписать документ удалось. Получил в файле 64 байта. Правда пришлось для этого установить новый сертификат.
Подскажите, пожалуйста, а можно ли результат сохранить в base64? Что-то не нашел этой опции.

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