Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Проверка подписи не по данным а по хешу данных
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Сейчас проверил: CryptMsgControl(msgObject, 0, CMSG_CTRL_VERIFY_SIGNATURE, certificateContext->pCertInfo) Возвращает false, и код ошибки как под win так и под linux: 0x80091007 Возможно сообщение некорректное? На входе отсоединенная подпись, которая валидируется утилитами. П.С. Или скорее тут причина в том что не идет "разворот" подписи при проверке через CryptMsgControl Отредактировано пользователем 21 ноября 2013 г. 8:35:33(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Сейчас проверил: CryptMsgControl(msgObject, 0, CMSG_CTRL_VERIFY_SIGNATURE, certificateContext->pCertInfo)
Возвращает false, и код ошибки как под win так и под linux: 0x80091007
Возможно сообщение некорректное? На входе отсоединенная подпись, которая валидируется утилитами.
П.С. Или скорее тут причина в том что не идет "разворот" подписи при проверке через CryptMsgControl Ошибка то звучит как "Неправильное значение хэша". Значит или не для этого сертификата подпись, или например подпись не перевернули перед проверкой. |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Да скорее всего алгоритм проверки "прямой". Автор: Юрий Тогда как вариант можно вытащить хэш раскодированием ASN.1 сообщения (CryptDecodeObject).
Это из CMSG_ENCRYPTED_DIGEST надо декодировать? П.С. Разве сам хеш по которому идет проверка подписи присутствует в CMS? Отредактировано пользователем 21 ноября 2013 г. 10:15:54(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Да скорее всего алгоритм проверки "прямой". Автор: Юрий Тогда как вариант можно вытащить хэш раскодированием ASN.1 сообщения (CryptDecodeObject).
Это из CMSG_ENCRYPTED_DIGEST надо декодировать? П.С. Разве сам хеш по которому идет проверка подписи присутствует в CMS? Там только подпись. То есть можно декодировать подпись, потом на существующий проверяемый хэш сделать подпись и сверить её с декодированной. |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Ок. Если я правильно вас понял:
1. CryptMsgOpenToDecode 2. CryptMsgGetParam(CMSG_ENCRYPTED_DIGEST) 3. CryptDecodeObject(<тип>)
Какой тип использовать на третьем шаге?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Ок. Если я правильно вас понял:
1. CryptMsgOpenToDecode 2. CryptMsgGetParam(CMSG_ENCRYPTED_DIGEST) 3. CryptDecodeObject(<тип>)
Какой тип использовать на третьем шаге? Здесь нужна только "CryptDecodeObject", остальные функции без надобности. В этом варианте только ASN.1, только хардкор :) Смотрите как описывается ASN.1 структура в соответствующем RFC и соответственно декодируйте данные. В основном, конечно, будут декодироваться структуры типа "SEQUENCE". |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Автор: Юрий Автор: dmishin Ок. Если я правильно вас понял:
1. CryptMsgOpenToDecode 2. CryptMsgGetParam(CMSG_ENCRYPTED_DIGEST) 3. CryptDecodeObject(<тип>)
Какой тип использовать на третьем шаге? Здесь нужна только "CryptDecodeObject", остальные функции без надобности. В этом варианте только ASN.1, только хардкор :) Смотрите как описывается ASN.1 структура в соответствующем RFC и соответственно декодируйте данные. В основном, конечно, будут декодироваться структуры типа "SEQUENCE". Да но раз самого хеша в структуре нет, то потом еще предполагается его вычисление по подписываемым атрибутам?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Автор: Юрий Автор: dmishin Ок. Если я правильно вас понял:
1. CryptMsgOpenToDecode 2. CryptMsgGetParam(CMSG_ENCRYPTED_DIGEST) 3. CryptDecodeObject(<тип>)
Какой тип использовать на третьем шаге? Здесь нужна только "CryptDecodeObject", остальные функции без надобности. В этом варианте только ASN.1, только хардкор :) Смотрите как описывается ASN.1 структура в соответствующем RFC и соответственно декодируйте данные. В основном, конечно, будут декодироваться структуры типа "SEQUENCE". Да но раз самого хеша в структуре нет, то потом еще предполагается его вычисление по подписываемым атрибутам? Данная тема называется "Проверка подписи не по данным, а по хешу данных". Так что предполагается, что хэш для проверки есть априори (то есть до проверки). Но если его нет, то его, конечно, надо вычислить перед проверкой :) |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Хеш есть только от самого документа. Если бы был хеш по которому проверяется подпись, то вопросов бы уже не осталось. точнее если бы под линуксом все отработало так же как и под win...
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Хеш есть только от самого документа. Если бы был хеш по которому проверяется подпись, то вопросов бы уже не осталось. точнее если бы под линуксом все отработало так же как и под win... Linux - постоянный поставщик "умственного секса" на рынке разработки софта (с) Юрий Строжевский :) |
С уважением, Юрий Строжевский |
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Проверка подписи не по данным а по хешу данных
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close