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

Уведомление

Icon
Error

8 Страницы«<23456>»
Опции
К последнему сообщению К первому непрочитанному
Offline Юрий  
#31 Оставлено : 11 ноября 2013 г. 8:48:28(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: dmishin Перейти к цитате
Автор: Юрий Перейти к цитате
Два момента:
1) CMSG_DETACHED_FLAG - это значит, что подпись отделённая и для проверки нужно загружать данные, для которых делалась подпись. Это делается с помощью отдельного вызова CryptMsgUpdate;

Ок. Убрал флаг за ненадобностью.

Подпись присоединённая и подпись отсоединённая - это как говориться "две большие разницы" и флаг CMSG_DETACHED_FLAG очень важен для работы с подписями.
Так что проверьте перед верификацией подписи что подпись у вас действительно отсоединённая.

С уважением,
Юрий Строжевский
Offline dmishin  
#32 Оставлено : 11 ноября 2013 г. 9:33:31(UTC)
dmishin

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Автор: Юрий Перейти к цитате
Автор: dmishin Перейти к цитате
Автор: Юрий Перейти к цитате
Два момента:
1) CMSG_DETACHED_FLAG - это значит, что подпись отделённая и для проверки нужно загружать данные, для которых делалась подпись. Это делается с помощью отдельного вызова CryptMsgUpdate;

Ок. Убрал флаг за ненадобностью.

Подпись присоединённая и подпись отсоединённая - это как говориться "две большие разницы" и флаг CMSG_DETACHED_FLAG очень важен для работы с подписями.
Так что проверьте перед верификацией подписи что подпись у вас действительно отсоединённая.


Из той информации, что мне попадалась я понял, что отличие только в наличии самих данных в одном из атрибутов CMS?
Offline Юрий  
#33 Оставлено : 11 ноября 2013 г. 9:45:16(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: dmishin Перейти к цитате
Автор: Юрий Перейти к цитате
Автор: dmishin Перейти к цитате
Автор: Юрий Перейти к цитате
Два момента:
1) CMSG_DETACHED_FLAG - это значит, что подпись отделённая и для проверки нужно загружать данные, для которых делалась подпись. Это делается с помощью отдельного вызова CryptMsgUpdate;

Ок. Убрал флаг за ненадобностью.

Подпись присоединённая и подпись отсоединённая - это как говориться "две большие разницы" и флаг CMSG_DETACHED_FLAG очень важен для работы с подписями.
Так что проверьте перед верификацией подписи что подпись у вас действительно отсоединённая.


Из той информации, что мне попадалась я понял, что отличие только в наличии самих данных в одном из атрибутов CMS?

Отличается как структура подписи, так и процессы создания и проверки подписи. Почитайте лучше стандарт RFC5652.
С уважением,
Юрий Строжевский
Offline dmishin  
#34 Оставлено : 11 ноября 2013 г. 10:19:40(UTC)
dmishin

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Автор: Юрий Перейти к цитате

Отличается как структура подписи, так и процессы создания и проверки подписи. Почитайте лучше стандарт RFC5652.


Раз отправляете в RFC дали бы ссылку на конкретный пункт. При беглом осмотре нашел только то, что при наличии подписанных атрибутов для подписи берется хеш от этих атрибутов.
Поиск по слову detached тоже ничего не дал.
Offline Юрий  
#35 Оставлено : 11 ноября 2013 г. 10:51:13(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: dmishin Перейти к цитате
Автор: Юрий Перейти к цитате

Отличается как структура подписи, так и процессы создания и проверки подписи. Почитайте лучше стандарт RFC5652.


Раз отправляете в RFC дали бы ссылку на конкретный пункт. При беглом осмотре нашел только то, что при наличии подписанных атрибутов для подписи берется хеш от этих атрибутов.
Поиск по слову detached тоже ничего не дал.

5.2. EncapsulatedContentInfo Type
5.4. Message Digest Calculation Process
5.6. Signature Verification Process
С уважением,
Юрий Строжевский
Offline dmishin  
#36 Оставлено : 11 ноября 2013 г. 11:18:44(UTC)
dmishin

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Автор: Юрий Перейти к цитате

5.2. EncapsulatedContentInfo Type
5.4. Message Digest Calculation Process
5.6. Signature Verification Process


Сравнение хеша с вычисленным хешом от вложенных данных? Или что-то еще?
Offline dmishin  
#37 Оставлено : 20 ноября 2013 г. 13:40:38(UTC)
dmishin

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Вернулся к задаче и сейчас застрял на получении хеша сообщения:

CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);

Под win работает, а под linux выдает ошибку: 0x80091004

В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами?
Offline Юрий  
#38 Оставлено : 20 ноября 2013 г. 13:45:58(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: dmishin Перейти к цитате
Вернулся к задаче и сейчас застрял на получении хеша сообщения:

CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);

Под win работает, а под linux выдает ошибку: 0x80091004

В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами?

Предположения:
1) Используется совместный тип сообщения. То есть указывается "CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)". А надо только "PKCS_7_ASN_ENCODING";
2) Отсутствует вызов "CryptMsgUpdate";
С уважением,
Юрий Строжевский
Offline dmishin  
#39 Оставлено : 20 ноября 2013 г. 13:56:08(UTC)
dmishin

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 6 раз в 6 постах
Автор: Юрий Перейти к цитате
Автор: dmishin Перейти к цитате
Вернулся к задаче и сейчас застрял на получении хеша сообщения:

CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);

Под win работает, а под linux выдает ошибку: 0x80091004

В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами?

Предположения:
1) Используется совместный тип сообщения. То есть указывается "CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)". А надо только "PKCS_7_ASN_ENCODING";
2) Отсутствует вызов "CryptMsgUpdate";



1 - не помогло
2 - исключаю, т.к. под win не повторяется

П.С.
Подстановка произвольного значения вместо типа сообщения никак не влияет на работу программы под linux, а вот под win выдает ошибку.

Отредактировано пользователем 20 ноября 2013 г. 14:05:47(UTC)  | Причина: Не указана

Offline Юрий  
#40 Оставлено : 20 ноября 2013 г. 14:06:35(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: dmishin Перейти к цитате
Автор: Юрий Перейти к цитате
Автор: dmishin Перейти к цитате
Вернулся к задаче и сейчас застрял на получении хеша сообщения:

CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);

Под win работает, а под linux выдает ошибку: 0x80091004

В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами?

Предположения:
1) Используется совместный тип сообщения. То есть указывается "CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)". А надо только "PKCS_7_ASN_ENCODING";
2) Отсутствует вызов "CryptMsgUpdate";



1 - не помогло
2 - исключаю, т.к. под win не повторяется

П.С.
Подстановка произвольного значения вместо типа сообщения никак не влияет на работу программы под linux, а вот под win выдает ошибку.

Тогда как вариант можно вытащить хэш раскодированием ASN.1 сообщения (CryptDecodeObject).
С уважением,
Юрий Строжевский
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
8 Страницы«<23456>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.