powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
23 сообщений из 23, страница 1 из 1
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666331
Devillio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Ситуация такая, файл могут подгружать в БД в одном городе, а подписанты находятся в другом.
Сейчас так реализовано, что подписант вынужден скачивать файл, чтобы подписать.
А они иногда очень большие (сотни мб), это долго.
Можно ли хранить хеш этих файлов, и подписывать таким образом файл?
Если да, какими функциями это делается? Видел подобную реализацию в одном личном кабинете, сам файл закачивается в БД на сайте, и потом довольно быстро подписывается и доподписывается, только не понимаю как это у них работает.

Сейчас это CryptSignMessage, и CryptMsgOpenToDecode + CryptMsgControl(CMSG_CTRL_ADD_SIGNER)

Спасибо!
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666430
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Devillio,

именно так и делаю: вычисляют хэш, потом его подписывают. Хэш чаще всего не хранят, а при проверке вычисляют заново.

Хэши, естественно, следует выбирать исходя из задачи.
Для формирования ЭЦП высокой надежности используют криптографические хэши, например, разновидности SHA-2, в частности - SHA256. Формируется 32-байтный хэш, который и подписывается.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666439
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DevillioСейчас так реализовано, что подписант вынужден скачивать файл, чтобы подписать.
А они иногда очень большие (сотни мб), это долго.
Можно ли хранить хеш этих файлов, и подписывать таким образом файл?

Подписывать документ, не видя его, это ты круто придумал. Круче только подпись на чистом
листе бумаги или вообще передача личной печати другому лицу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666474
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDevillioСейчас так реализовано, что подписант вынужден скачивать файл, чтобы подписать.
А они иногда очень большие (сотни мб), это долго.
Можно ли хранить хеш этих файлов, и подписывать таким образом файл?

Подписывать документ, не видя его, это ты круто придумал. Круче только подпись на чистом
листе бумаги или вообще передача личной печати другому лицу.


Dimitry,
это уже стало "нормой" и есть решения (подпись в плагине по хеш-значению) от наших производителей СКЗИ.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666480
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012это уже стало "нормой" и есть решения (подпись в плагине по хеш-значению) от наших
производителей СКЗИ.

Тогда зачем передавать документ (или хэш) к подписывающему сертификату, когда проще
передать сертификат к документу?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666481
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а для проверки - есть https://www.gosuslugi.ru/pgu/eds
авторПодтверждение подлинности ЭП электронного документа. ЭП — отсоединенная, в формате PKCS#7 по значению хэш-функции
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666486
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsql2012это уже стало "нормой" и есть решения (подпись в плагине по хеш-значению) от наших
производителей СКЗИ.

Тогда зачем передавать документ (или хэш) к подписывающему сертификату, когда проще
передать сертификат к документу?..




Сертификат к документу ...?
Или речь про закрытый ключ поместить на сервер и пусть там сервер сам подписывает?
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666498
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012Или речь про закрытый ключ поместить на сервер и пусть там сервер сам подписывает?

Автор жалуется, что документы большие, передавать их к закрытому ключу для подписи долго.
Закрытый ключ маленький, его можно быстро передать к документу, подписать, потом удалить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666508
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsql2012Или речь про закрытый ключ поместить на сервер и пусть там сервер сам подписывает?

Автор жалуется, что документы большие, передавать их к закрытому ключу для подписи долго.
Закрытый ключ маленький, его можно быстро передать к документу, подписать, потом удалить.


Тогда уж лучше HSM , если своё решение,
но это дорого и как-то всё равно... противоречит логике о "закрытым ключом должен владеть только владелец"... хотя опять же есть "передача по доверенности и т.п. лазейки"...
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666513
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsql2012Или речь про закрытый ключ поместить на сервер и пусть там сервер сам подписывает?

Автор жалуется, что документы большие, передавать их к закрытому ключу для подписи долго.
Закрытый ключ маленький, его можно быстро передать к документу, подписать, потом удалить.

Жесть какую-то предлагаете.
Закрытый ключ он потому и закрытый, что извлечь его (по хорошему) с физического носителя не должнно быть никакой возможности
Кроме того, обычно, хранилище еще требует и ввода PIN кода.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666520
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел еще раз MSDN на предмет CryptoAPI (старый!)

Вполне себе есть (были) ф-ции

https://docs.microsoft.com/en-us/windows/desktop/api/wincrypt/nf-wincrypt-crypthashdata
https://docs.microsoft.com/en-us/windows/desktop/api/wincrypt/nf-wincrypt-cryptsignhasha

Другое дело, что возможно конверт с подписью нужно будет руками создавать. Ну или посмотреть Message ф-ции, могут ли они отдельно в сообщение (detach подпись) вставить сертификат и подпись по отдельности.

AFAIK.
p.s. в терминологии могу ошибаться, не особо разбираюсь, но пару лет назад приходилось подпись для интеграции со СМЭВ кодировать
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666523
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЖесть какую-то предлагаете.

А подписание одного, неизвестно откуда взявшегося, хэша, типа, не жесть?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666527
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://docs.microsoft.com/en-us/windows/desktop/api/Wincrypt/nf-wincrypt-cryptmsgopentoencode

....Indicates the message type. This must be one of the following values....
CMSG_HASHED - The pvMsgEncodeInfo parameter is the address of a CMSG_HASHED_ENCODE_INFO structure that contains the encoding information.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666533
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovLeonid KudryavtsevЖесть какую-то предлагаете.

А подписание одного, неизвестно откуда взявшегося, хэша, типа, не жесть?..

Откуда взялось - известно, из приложения.

1) Если в приложении закладок нету, то оно совсем не "неизвестно откуда взявшееся". А если есть закладки, то хоть документ, подписывай, хоть хэш. Это просто последовательность байтов, которые человек проверить не может.
2) Для идентификации документа человеком, ему мегабайты не нужны. Вполне может оказаться достаточно Названия, Номер, Дата, Контрагент, ИТОГОВАЯ сумма.

Другое дело, у меня работающего кода под руками нет. Не очень понятно, можно ли создать HASH не имея ключа (((. Это надо весь код с самого начала просматривать (инициализация крипто провайдера, выбор алгоритмов и т.д.)
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666545
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevОткуда взялось - известно, из приложения.

1) Если в приложении закладок нету, то оно совсем не "неизвестно откуда взявшееся". А если
есть закладки, то хоть документ, подписывай, хоть хэш. Это просто последовательность
байтов, которые человек проверить не может.

Точно то же работает и для передачи закрытого ключа в приложение. Если в нём есть закладки
- уже ничего не поможет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666612
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Выше предложение в общем случае вообще не выполнимо.

Если ключ на железном носителе (e-Token), то (по хорошему) извлечь его оттуда не должно быть никакой возможности. Более того, тот же Crypto PRO перед использованием e-Token'а попросит указать PIN.

По крайне мере, стандартные API функции при попытки извлечь закрытый ключ будут падать с error'ом.

Насколько я видел ГОСТОВ'вские e-Token'ы с подпиьсю, то выгрузка закрытых ключей с носителя была запрешена (насколько это ограничение аппаратное, а насколько програмное - не знаю). Раз в год e-Token'ы просто выбрасывались и пресылались новые.

AFAIK
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666624
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВыше предложение в общем случае вообще не выполнимо.Дмитрий говорит о том, что если пользователь подписывает документ, который не видит, то в чем тогда великий смысл такой подписи? Для галочки? Так с тем же успехом подписывать можно и на сервере, не напрягая пользователей. Просто снабдив сервер приватными ключами
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666658
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_Leonid KudryavtsevВыше предложение в общем случае вообще не выполнимо.Дмитрий говорит о том, что если пользователь подписывает документ, который не видит, то в чем тогда великий смысл такой подписи? Для галочки? Так с тем же успехом подписывать можно и на сервере, не напрягая пользователей. Просто снабдив сервер приватными ключами
Смысл в том, что подписать может только владелец (хранитель) ключа.
Владельцу (хранителю) ключа совершенно наплевать на содержание документа.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666662
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Я примерно так понимаю потребность топик-стартера:
1)
В табличке Лицо Принимающее Решение видит список

Договор N 1 от 01.01.2018 Международные Большие Машины - 100 000 $
Договор N 2 от 01.01.2018 Большая Консалтинговая Группа - 200 000 $
Договор N 3 от 01.01.2018 Молодой & Честный - 80 000 $

Выбирает нужный договор, нажимает подписать. Нужный договор (возможно 100500 Mb на 500 страницах с картинками, графиками и прочей ерундой) подписывается.

В общем-то, ВЫЧИТЫВАТЬ документы должен не начальник, а его подчиненные.

2) вторая жизненная ситуация.

Одна кнопка - загрузить документ в систему
Вторая кнопка - просмотреть
Третья кнопка - подписать

Хочет, может просмотреть. Хочет, может сразу подписать.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39666735
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Другое дело, у меня работающего кода под руками нет. Не очень понятно, можно ли создать HASH не имея ключа (((. Это надо весь код с самого начала просматривать (инициализация крипто провайдера, выбор алгоритмов и т.д.)

Для расчета хеша - не нужен ключ.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39667481
Devillio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем за информацию!
Мы - организация, которой по закону должна передаваться документация с ЭЦП. Для этого сейчас есть прекрасно (в части подписи, но не всего остального :)) работающее web-приложение. По факту крайне часто, если не сказать постоянно, люди подъезжают с файлами прямо сюда, чтобы подгрузить доки быстро (ну или по некоторым другим причинам :)), и не всегда (точнее, почти никогда) у них с собой ключ. И тогда после загрузки тот, кто файлы привез, отзванивается, что все загружено, и где-то там со своим ключом в личном кабинете все быстро подписывается без скачивания.
Похоже что при импорте делается хеш файла (CryptHashMessage - Creates a hash of the message - наверное, так). И через ЛК этот хеш подписывается, т.е. никакой, естественно, закрытый ключ никуда с клиентов не уходит.
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39667498
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну необязательно даже и CryptHashMessage пользовать, готовых реализаций хэш-функций вагон и телега
...
Рейтинг: 0 / 0
Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
    #39667575
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DevillioПохоже что при импорте делается хеш файла (CryptHashMessage - Creates a hash of the
message - наверное, так). И через ЛК этот хеш подписывается, т.е. никакой, естественно,
закрытый ключ никуда с клиентов не уходит.

Я бы в этом не был так уверен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Cripto-API, можно ли сохранить отдельно хеш файла, и подписывать этот файл по его хешу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]