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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Ozzy  
#1 Оставлено : 27 февраля 2017 г. 3:18:44(UTC)
Ozzy

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

Группы: Участники
Зарегистрирован: 26.12.2011(UTC)
Сообщений: 22
Откуда: Москва

Доброго всем дня.

Есть веб-приложение. На одной из страниц этого приложения, осуществлется проверка подписи к файлу. Файл может быть большой и, чтобы снизить время проверки и нагрузку на сервер, для проверки подписи на сервер отправлется сама подпись и хэш файла.

Подпись - ГОСТ отделённая PKCS#7. На клиенте используется плагин для браузеров КриптоПро. На сервере КритоПро.CSP серверная + КриптоПро.NET.

Всё было хорошо, но потом появились подписи, в которых отсутствует подписанный атрибут, содержащий хэш подписываемых данных. Попытался достать хэш из подписи, но безуспешно. Остановился на том, что извлёк значение подписи, как это описано тут п.10. 64 байта данных с которыми непонятно что делать. Гугл не помог. Единственное что Я попробовал - это проверить это значение с помощью вызова Gost3410CryptoServiceProvider.VerifyHash(...). Результат отрицательный. Хотя, подозрительно, что этот же провайдер делает подписи по хэшу тоже длиной 64 байта.

Вопрос: Как на сервере проверить подпись по хэшу, если в подписи отсутствует подписанный атрибут, соержащий хэш?

PS:
Провеяемые подписи формируются другими какими-то неподконтрольными организациями, поэтому заставить их добавлять туда этот атрибут - не вариант.
Отправлять на сервер файлы тоже не хочется.
Offline Максим Коллегин  
#2 Оставлено : 27 февраля 2017 г. 9:09:25(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Нужно хэшировать файл самостоятельно и получать хэш, иначе никак.
В первом случае хэшировать тоже необходимо, чтобы сверить значение хэша.
Знания в базе знаний, поддержка в техподдержке
Offline Ozzy  
#3 Оставлено : 27 февраля 2017 г. 14:38:09(UTC)
Ozzy

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

Группы: Участники
Зарегистрирован: 26.12.2011(UTC)
Сообщений: 22
Откуда: Москва

Вычислить хэш - не проблема. Проблема в том, что не с чем этот хэш сравнивать. Непонятно откуда взять значение хэша, которое использовалось при формировании подписи.
Offline Максим Коллегин  
#4 Оставлено : 27 февраля 2017 г. 15:39:27(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Нужно проверять только подпись. Подпись проверилась => хэш верный.
Знания в базе знаний, поддержка в техподдержке
Offline Ozzy  
#5 Оставлено : 27 февраля 2017 г. 16:14:46(UTC)
Ozzy

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

Группы: Участники
Зарегистрирован: 26.12.2011(UTC)
Сообщений: 22
Откуда: Москва

В общем-то в этом и вопрос.

Автор: Ozzy Перейти к цитате

Вопрос: Как на сервере проверить подпись по хэшу, если в подписи отсутствует подписанный атрибут, соержащий хэш?


Offline Максим Коллегин  
#6 Оставлено : 27 февраля 2017 г. 17:17:51(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Если на CryproApi: - CryptCreateHash, CryptSetHashParam(HP_HASHVAL), CryptImportKey(PublicKey), CryptVerifySignature
Знания в базе знаний, поддержка в техподдержке
Offline Ozzy  
#7 Оставлено : 27 февраля 2017 г. 18:09:59(UTC)
Ozzy

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

Группы: Участники
Зарегистрирован: 26.12.2011(UTC)
Сообщений: 22
Откуда: Москва

Спасибо за ответ. Я написал в ветку "КриптоПро .NET" в ожидании найти решение для .NET. Есть ли такое? Стандартными средствами .NET или КриптоПро.NET. Может быть CAPICOM или даже CADESCOM тут мне поможет?
Offline Максим Коллегин  
#8 Оставлено : 28 февраля 2017 г. 14:00:23(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Подобное можно написать и на .NET
http://cpdn.cryptopro.ru...c9-b47e-d69c177258ab.htm
Проверка подписи под хэшом
\cs\SignHash.cs
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.