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

Уведомление

Icon
Error

6 Страницы<12345>»
Опции
К последнему сообщению К первому непрочитанному
Offline ыволавыд  
#21 Оставлено : 4 сентября 2019 г. 10:52:19(UTC)
ыволавыд

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

Группы: Участники
Зарегистрирован: 17.08.2019(UTC)
Сообщений: 21

Информацию по идентификаторам уточнил.
Написали что нужно использовать алгоритмы:
1. GOST3411_2012_256withGOST3410_2012_256
2. CryptoProSignature_2012_256
3. NONEwithGOST3410DH_2012_256
Это идентификаторы из КриптоПро JCP. Не нашел по ним подробной информации.
Не нашел информации как они соотносятся с методами CADESCOM
и можно ли их реализовать методам CADESCOM, задал вопрос в ТП, жду ответа.

Принимающая сторона не принимает именно подпись, хэш сравнили с ним все в порядке.
Со слов специалистов принимающей стороны подписывать нужно значение хэша в base64.
В CADESCOM.RawSignature для подписи используется хэш в виде HEXстроки, это не особо проблемно
потому что CAdESCOM.HashedData возвращает значение хэша в виде HEXстроки и его можно использовать для подписи (переводил хэш из HEXстроки в base64, хэш валидацию проходит)
С помощью хэш2 пробовал подписывать, подпись валидацию не проходит.

Попробую инвертировать хэш, спасибо за идею



Offline Андрей Писарев  
#22 Оставлено : 4 сентября 2019 г. 10:58:26(UTC)
Андрей *

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

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

Сказал «Спасибо»: 493 раз
Поблагодарили: 2034 раз в 1578 постах
Автор: ыволавыд Перейти к цитате

Со слов специалистов принимающей стороны подписывать нужно значение хэша в base64.


Как интерпретировали?
Может они реально кодируют так?

Данные => хеш => хеш в base64 (строка) => подписание (т.е. вычисление хеша от "хеша в base64, как строки" и подписание вычисленного хеша). d'oh!


p.s.
участвовал в "исследовании" таких ИС, когда обращались за помощью.
Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#23 Оставлено : 4 сентября 2019 г. 11:05:57(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
хэш сравнили на принимающей стороне и сами? если на принимающей стороне тогда наверно нет смысла инвертировать хэш, но вдруг подойдет. Вот с замечанием "подписывать нужно значение хэша в base64" наверно надо подумать... что если схема двойного хэширования такая (в принципе тоже что в сообщении выше от Андрея):
Код:
Хэш_HEXстрока = COMВычислитьХэшСуммуПоГОСТ_3411_2012(СтрокаДляФормированияДайджеста);
Хэш_ДвочиныеДанные = ПолучитьДвоичныеДанныеИзHexСтроки(Хэш_HEXстрока);
ХэшBase64 = Base64Строка(Хэш_ДвочиныеДанные);
Хэш2_HEXстрока = COMВычислитьХэшСуммуПоГОСТ_3411_2012(ХэшBase64);
...
oHashedData.SetHashValue(Хэш2_HEXстрока);
В общем идей немало, осталось все методично опробовать.

Отредактировано пользователем 4 сентября 2019 г. 11:10:24(UTC)  | Причина: Не указана

Offline ыволавыд  
#24 Оставлено : 4 сентября 2019 г. 11:12:34(UTC)
ыволавыд

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

Группы: Участники
Зарегистрирован: 17.08.2019(UTC)
Сообщений: 21

Для создания подписи в формате RAW использовал объект CADESCOM.RawSignature, точнее его метод SignHash, на вход метода подается объект содержащий значение подписи в виде HEXстроки. Получается цепочка
"данные => хэш в формате HEXстрока = > подпись в формате HEXстроки"
Пробовал
Цитата:
вычисление хеша от "хеша в base64, как строки"
, подпись валидацию не прошла
Offline Андрей Писарев  
#25 Оставлено : 4 сентября 2019 г. 11:31:07(UTC)
Андрей *

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

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

Сказал «Спасибо»: 493 раз
Поблагодарили: 2034 раз в 1578 постах
19 пост:
Цитата:

oHashedData.DataEncoding = 1; // CADESCOM_BASE64_TO_BINARY


Вы понимаете, что делаете?
Если Да - то почему передаете значение в hex?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#26 Оставлено : 4 сентября 2019 г. 11:36:01(UTC)
Андрей *

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

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

Сказал «Спасибо»: 493 раз
Поблагодарили: 2034 раз в 1578 постах
Свойство ICPHashedData::DataEncoding

Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#27 Оставлено : 4 сентября 2019 г. 11:56:53(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Андрей Писарев Перейти к цитате
19 пост:
Цитата:

oHashedData.DataEncoding = 1; // CADESCOM_BASE64_TO_BINARY


Вы понимаете, что делаете?
Если Да - то почему передаете значение в hex?
В принципе согласен, не стал комментировать сразу вот почему. Тут момент в том, распространяется DataEncoding только на принимаемые данные или на устанавливаемый хэш тоже, потому что дальше идет .SetHashValue вместо передачи данных для хэширования. Если DataEncoding не распространяется на SetHashValue, то эта строка тупо срабатывает вхолостую. Просветите - распространяется или нет?

Отредактировано пользователем 4 сентября 2019 г. 11:58:39(UTC)  | Причина: Не указана

Offline ыволавыд  
#28 Оставлено : 4 сентября 2019 г. 11:59:17(UTC)
ыволавыд

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

Группы: Участники
Зарегистрирован: 17.08.2019(UTC)
Сообщений: 21

При использовании SetHashValue, значение DataEncoding не влияет на устанавливаемое значение хэша, оно влияет только на хэширование. Пробовал оба варианта значения DataEncoding, на значение хэша это никак не повлияло, подаю hex потому что в SetHashValue другие форматы не принимаются.
Offline ыволавыд  
#29 Оставлено : 4 сентября 2019 г. 12:00:33(UTC)
ыволавыд

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

Группы: Участники
Зарегистрирован: 17.08.2019(UTC)
Сообщений: 21

Значение хэша получаю с DataEncoding = 0, хэш валидацию проходит.
Offline Андрей Писарев  
#30 Оставлено : 4 сентября 2019 г. 12:06:55(UTC)
Андрей *

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

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

Сказал «Спасибо»: 493 раз
Поблагодарили: 2034 раз в 1578 постах
Автор: two_oceans Перейти к цитате
Автор: Андрей Писарев Перейти к цитате
19 пост:
Цитата:

oHashedData.DataEncoding = 1; // CADESCOM_BASE64_TO_BINARY


Вы понимаете, что делаете?
Если Да - то почему передаете значение в hex?
В принципе согласен, не стал комментировать сразу вот почему. Тут момент в том, распространяется DataEncoding только на принимаемые данные или на устанавливаемый хэш тоже, потому что дальше идет .SetHashValue вместо передачи данных для хэширования. Если DataEncoding не распространяется на SetHashValue, то эта строка тупо срабатывает вхолостую. Просветите - распространяется или нет?



SetHashValue - да, принимает hex.
Не влияет...
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
6 Страницы<12345>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.