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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline comdiv  
#1 Оставлено : 23 июля 2025 г. 16:42:21(UTC)
comdiv

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

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

Сказал(а) «Спасибо»: 1 раз
Я вообще скажем так полный нуб в криптографии. И тем более в нюансах CPro, но вот пориходится использовать подпись в одном проекте.

Значит API НСИС

Там требуется - взять URL, сконкатенировать с солью и меткой времени, подписать полученную строку в формате RAW + их внутренний ID серта.

Одно приложение на Windows использует COM объект Cades-что-то там (потом смогу посмотреть если надо и укажу что конкретно) и им подписывает, получает 64-байтовую RAW подпись, она проходит потом проверку.

Надо сделать с нуля другое приложение, на Linux и только с базовой установкой СSP.

Сверили, что сертификат точно используется какой надо (по тумбпринту и серийному номеру)


Мы попробовали 2мя путями в лоб и оба не прошли

Первый был очевидный

1. положить нужную строку в файл, скажем src.txt
2. вызвать `csptest -keys -sign GOST12_256 -cont <MYCONTAINER> -keytype exchange -in src.txt -out src.sig; cat src.sig | base64`

Вроде это и есть RAW, требуемое по документации. Но это НЕ прокатило. Ругается сайт.
Тех поддержка говорит, что подписываемый контент мы формируем верно, серт что надо. Но вот подпись у них проверку ну не проходит.

Дальше уже пошли метания, биения в бубен которые ни к чему не привели.

Появилась мысль, что нужна CADES и что `csptest` его не использует. Техподдержка не может толком ответить нужен CADES или нет вижу только, что COM объект
в Windows решении используется со словом CADES в названии...

Стали делать cryptcp -sign -der -cadesbes ... но потом не понятно как извлечь RAW из полученного PKCS7, ну попробовали, так наудачку
закинуть EncryptedDigest который через openssl смогли там идентифицировать и дернуть - но это я так понял не RAW в общем он тоже не подошел.


В общем очень надеюсь, что кто-то знает что с этим делать. Прямо замучились....


P.S. мне еще пишет ТП "правильно ли вы хэшируете?", я считал, что csptest сам в процессе подписания хэширует сырой контент, может я ошибся и надо еще было отдельно хэшировать?
Offline comdiv  
#2 Оставлено : 23 июля 2025 г. 16:49:37(UTC)
comdiv

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

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

Сказал(а) «Спасибо»: 1 раз
Ну похоже там именно CADES нужна и возникает резонный вопрос как же делать RAW с Cades на Linux, и настоятельно желательно или чисто консольными утилитами, либо минимальным кодингом на golang, сам пакет c cades-pki я поставил. Но я так понимаю, что csptest с ним не работает, а cryptcp не делает RAW...
Offline Русев Андрей  
#3 Оставлено : 23 июля 2025 г. 17:41:38(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,521

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 618 раз в 428 постах
Здравствуйте.
С точки зрения безопасности этот протокол вызывает вопросы. Вероятно, имеется в виду RawSignature. Чисто технически, кажется, что вам надо заменить base64 на hexdump в духе:
Код:
csptest -keys -sign GOST12_256 -cont <MYCONTAINER> -keytype exchange -in src.txt -out src.sig; cat src.sig | hexdump -e '/1 "%02X"'
Официальная техподдержка. Официальная база знаний.
Offline comdiv  
#4 Оставлено : 23 июля 2025 г. 18:00:14(UTC)
comdiv

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

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

Сказал(а) «Спасибо»: 1 раз
Нет, у них там именно base64
Offline Русев Андрей  
#5 Оставлено : 23 июля 2025 г. 18:57:44(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,521

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 618 раз в 428 постах
Может, у вас перенос строки в конце файла, который пытаетесь подписать?
Официальная техподдержка. Официальная база знаний.
Offline comdiv  
#6 Оставлено : 23 июля 2025 г. 20:00:41(UTC)
comdiv

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

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

Сказал(а) «Спасибо»: 1 раз
Тоже уже проверял. Пока ощущение тупика и что какая то магия. В требованиях нет ничего про cades например.
Offline Андрей *  
#7 Оставлено : 23 июля 2025 г. 20:31:46(UTC)
Андрей *

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

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

Сказал «Спасибо»: 584 раз
Поблагодарили: 2316 раз в 1814 постах
Автор: comdiv Перейти к цитате
Тоже уже проверял. Пока ощущение тупика и что какая то магия. В требованиях нет ничего про cades например.


такой вариант:
в Windows и Linux подпишите src.txt и пришлите всё для проверки (что отправляли\сертификат)

и нет ли проблемы в кодировании base64? urlsafe?
Техническую поддержку оказываем тут
Наша база знаний
Offline comdiv  
#8 Оставлено : 24 июля 2025 г. 7:25:43(UTC)
comdiv

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

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

Сказал(а) «Спасибо»: 1 раз
На Windows сейчас пока не могу сделать
Прикрепляю raw.src (что подписываю) - там нет ни переносов ни символов вне ASCII - и на Windows и на Linux будет одинаково
Прикрепляю raw.bin (это результат команды) csptest -keys -sign GOST12_256 -cont <CONTAINER_NAME> -keytype exchange -in raw.src -out raw.bin
Прикрепляю raw.base64 (это собственно raw.bin) но в base64 (без переносов) base64 -w 0 raw.bin
Прикрепляю raw.cer (это сертификат которым собственно подписываем)
Я убеждался что подпись верна через csptest -keys -verify GOST12_256 -in raw.src -signature raw.bin -cert raw.cer

raw.zip (3kb) загружен 1 раз(а).
Offline comdiv  
#9 Оставлено : 24 июля 2025 г. 8:00:04(UTC)
comdiv

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

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

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