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

Уведомление

Icon
Error

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

Статус: Активный участник

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

Сказал(а) «Спасибо»: 21 раз
Здравствуйте.

Наш код на C++, использующий КриптоПРО CSP, проходит сейчас экспертизу. Поступило следующее замечание эксперта:

Функция CryptSetHashParam используется с недопустимыми параметрами (HP_HASHVAL). Разрешено использование только с символьными аргументами HP_HASHSIZE, HP_OID/KP_HASHOID, HP_OPEN.

--- скорее всего, это замечание основано на вашем документе:

http://shels-m.ru/files/support/Rules.pdf

(много копий его гуляет по Интернету). Но там это ограничение идет в разделе "Функции работы с алгоритмами хэширования" - то есть при расчете дайджеста. Я согласен, что когда вычисляется дайджест устанавливать его значение (вызывать CryptSetHashParam с параметром HP_HASHVAL) не правильно - мы же его вычисляем. Но в нашем коде функция CryptSetHashParam с параметром HP_HASHVAL вызывается не при вычислении дайджеста, а при создании подписи и при проверке подписи. При создании подписи и при проверке подписи дайджест у нас уже есть и нам надо его передать (через хендл HCRYPTHASH) в функции CryptSignHash или CryptVerifySignature соответственно.

Вопрос № 1: можно ли при создании подписи использовать CryptSetHashParam с параметром HP_HASHVAL? Если нет, то почему - оно ведь работает без ошибок?

Вопрос № 2: можно ли при проверке подписи использовать CryptSetHashParam с параметром HP_HASHVAL? Если нет, то почему - оно ведь работает без ошибок?

Спасибо.

С уважением, Константин Ткачук.
Offline Андрей *  
#2 Оставлено : 16 октября 2020 г. 13:31:10(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: idtks Перейти к цитате
З Разрешено использование только с символьными аргументами HP_HASHSIZE, HP_OID/KP_HASHOID, HP_OPEN.


Если используется HP_HASHVAL - то требуются дополнительные тематическия исследования.
Приложение № 2 об этом.
Техническую поддержку оказываем тут
Наша база знаний
Offline idtks  
#3 Оставлено : 16 октября 2020 г. 13:46:31(UTC)
idtks

Статус: Активный участник

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

Сказал(а) «Спасибо»: 21 раз
А что такого страшного в "дополнительных тематических исследованиях"? Почему эксперт располагая исходным кодом нашей библиотеки не хочет или не может их провести?

Так же почему вы сами включили в свой документ такие ограничения на вызов CryptSetHashParam с параметром HP_HASHVAL?

С уважением, Константин Ткачук.
Offline two_oceans  
#4 Оставлено : 19 октября 2020 г. 10:27:21(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Добрый день.
Как я понимаю, проблема в том, что данные хэша берутся (или могут браться) откуда-то извне (по отношении к библиотеке). Поэтому для мотивированного вывода эксперт должен иметь не только исходник библиотеки, а увидеть всю цепочку от места, где хэш был посчитан, и до места, где вы его загружаете данным параметром. Другими словами, не просто библиотеку, а всю готовую информационную систему. Если данные хэша пересылаются по сети, то все еще сложнее, так как появляется зависимость от защиты хэша от изменения, проверки подлинности отправителя, защиты от ДДОС, защиты от утечки данных (через различного рода электромагнитные поля в том числе) и т.д. То есть исследование пойдет "совсем не в ту сторону". Потому надежнее перегнать сам файл и локально посчитать хэш внутри библиотеки.

Если же Вы просто внутренне в одной функции считаете хэш и сразу передаете в другую для загрузки на подписание (да, видел и такие перлы на форуме), то желательно передавать не данные, а сам хэндл (так избежите ограничения на параметр).
thanks 1 пользователь поблагодарил two_oceans за этот пост.
idtks оставлено 19.10.2020(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.