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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Simix  
#1 Оставлено : 27 сентября 2017 г. 14:22:23(UTC)
Simix

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

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

Сказал(а) «Спасибо»: 5 раз
Добрый день.
При подписи Рутокен ЭЦП получаю сообщение формата #PKCS7. Необходимо сохранить чистую подпись без сертификатов и остальной информации, а затем проверить ее, имея данные для подписи, сертификат, с помощью Крипто Про CSP.

Получение чистой подписи (все проверки убрал):
hMsg = ::CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0, 0, 0, 0, 0);
::CryptMsgUpdate(hMsg, sign, signsize, TRUE);
::CryptMsgGetParam(hMsg, CMSG_ENCRYPTED_DIGEST, 0, PureSign, &cbData);

Проверка чистой подписи:
::CryptCreateHash(provider.Handle(), "1.2.643.2.2.9", 0, 0, &hHash))
::CryptHashData(hHash, msg, msgsize, 0))//msg = данные, которые подписывались
//certContext = PCCERT_CONTEXT сертификата ключа, которым подписывали
::CryptImportPublicKeyInfo(provider.Handle(), X509_ASN_ENCODING || PKCS_7_ASN_ENCODING, &certContext->pCertInfo->SubjectPublicKeyInfo, &hKey);
::CryptVerifySignature(hHash, PureSign, cbData, hKey, 0, 0)
DWORD dwErr = GetLastError();

Получается что
dwErr == NTE_BAD_SIGNATURE

Что здесь неправильно?

Файл подписи PKCS7 проверяется успешно средством cryptcp.

Прикладываю данные для подписи и файл PKCS7 подписи.

Data.txt (1kb) загружен 2 раз(а).
Data.txt.sgn.rar (1kb) загружен 2 раз(а).

Отредактировано пользователем 27 сентября 2017 г. 14:23:30(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 27 сентября 2017 г. 15:09:40(UTC)
Андрей *

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

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

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Автор: Simix Перейти к цитате

Что здесь неправильно?



В CMS подписывается не только хеш, а атрибуты (дата\время + хеш)
Техническую поддержку оказываем тут
Наша база знаний
Offline Simix  
#3 Оставлено : 27 сентября 2017 г. 15:14:38(UTC)
Simix

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

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

Сказал(а) «Спасибо»: 5 раз
Были подозрения на время...

Не могли бы вы подробней уточнить, как правильно извлечь дату и время из PKCS7 и конкатенировать данные для подписи (хэш + дата/время)
Offline Андрей Писарев  
#4 Оставлено : 27 сентября 2017 г. 15:22:56(UTC)
Андрей *

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

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

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Автор: Simix Перейти к цитате
Были подозрения на время...

Не могли бы вы подробней уточнить, как правильно извлечь дату и время из PKCS7 и конкатенировать данные для подписи (хэш + дата/время)


Поясните, для чего?

Почему Вы просто не проверяете через поточные функции, как любое другое ПО (cryptcp, КриптоАРМ ..)?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
Simix оставлено 27.09.2017(UTC)
Offline Simix  
#5 Оставлено : 27 сентября 2017 г. 15:30:18(UTC)
Simix

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

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

Сказал(а) «Спасибо»: 5 раз
Требуется хранить миллионы документов с множеством подписей, при этом количество ключей и сертификатов ограниченное число.

Если хранить короткую подпись, то экономия размеров базы данных будет существенной.
Offline Андрей Писарев  
#6 Оставлено : 27 сентября 2017 г. 15:34:49(UTC)
Андрей *

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

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

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Автор: Simix Перейти к цитате
Требуется хранить миллионы документов с множеством подписей, при этом количество ключей и сертификатов ограниченное число.

Если хранить короткую подпись, то экономия размеров базы данных будет существенной.


Вы экономите, видимо, не там где нужно...

Пересмотрите архитектуру (cms хорошо сжимается, но не до 64 байт, конечно)
+ учтите требования у судов к ЭП под документами.
Какое ПО сможет проверить ЭП, в вашем варианте хранения ЭП?

Либо не используйте CMS изначально.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#7 Оставлено : 27 сентября 2017 г. 15:36:42(UTC)
Андрей *

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

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

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Внимательно:
Приказ Судебного департамента при Верховном Суде РФ от 28 декабря 2016 г. № 252 “Об утверждении Порядка подачи в арбитражные суды Российской Федерации документов в электронном виде, в том числе в форме электронного документа”

Цитата:

2.3. Требования к электронным документам
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
Simix оставлено 27.09.2017(UTC)
Offline Simix  
#8 Оставлено : 27 сентября 2017 г. 15:44:03(UTC)
Simix

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

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

Сказал(а) «Спасибо»: 5 раз
Спасибо, буду читать и думать.

При выгрузки во внешнюю среду короткую подпись можно обратно собрать в PKCS7.

А если сжимать - то потери в производительности будут.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.