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

Уведомление

Icon
Error

5 Страницы<12345>
Опции
К последнему сообщению К первому непрочитанному
Offline burning-dragon  
#21 Оставлено : 20 сентября 2013 г. 16:56:29(UTC)
burning-dragon

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

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

Да, проверил. Но при этом попытка расшифровать его с помощью CryptDecryptMessage заканчивается ошибкой "Набор ключей не определен. (0x80090019)"
При этом если использовать CryptEncryptMessage на тех же входящих данных, то расшифровка проходит успешно.
Пример файла зашифрованного CryptEncryptMessage

Upd:

Нашел различия в параметрах алгоритма
Алгоритм шифрования содержимого:
В стриме
0000 30 13 04 08 b6 66 38 fa 69 c9 97 35 06 07 2a 85
0010 03 02 02 1f 01
04 08 c4 6e 63 71 e1 6e e1 2b
в блоке из CryptEncryptMessage
0000 30 13 04 08 c4 6e 63 71 e1 6e e1 2b 06 07 2a 85
0010 03 02 02 1f 01
04 08 b6 66 38 fa 69 c9 97 35

Отсюда вытекает вопрос какие параметры алгоритма выставляются в CryptEncryptMessage?

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

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

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Причем тут CryptEncryptMessage? Код приведен для работы с другой функции.
С уважением,
Юрий Строжевский
Offline burning-dragon  
#23 Оставлено : 20 сентября 2013 г. 17:39:39(UTC)
burning-dragon

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

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

При том, что требуется обеспечение совместимости данных зашифрованных через поток (CryptMsgOpenToEncode) и данных полученных полученных через CryptEncryptMessage.
Offline Юрий  
#24 Оставлено : 20 сентября 2013 г. 20:40:42(UTC)
Юрий

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: olin Перейти к цитате
Это нормальное CMS-сообщение. Можете проверить себя с помощью
Код:

certutil encrypted_enveloped_stream.dat 

На самом деле это утверждение ложно. В конце представленного сообщения записан "мусор".
Предупреждение от dumpasn1: Warning: Further data follows ASN.1 data at position 2958.

Поэтому и ошибки с CryptDecryptMessage.

В общем ищите что там у вас делается с записью в поток, особенно на завершающем этапе.
С уважением,
Юрий Строжевский
Offline Русев Андрей  
#25 Оставлено : 20 сентября 2013 г. 22:38:52(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,519

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 617 раз в 427 постах
Автор: Юрий Перейти к цитате
Автор: olin Перейти к цитате
Это нормальное CMS-сообщение. Можете проверить себя с помощью
Код:

certutil encrypted_enveloped_stream.dat 

На самом деле это утверждение ложно. В конце представленного сообщения записан "мусор".
Предупреждение от dumpasn1: Warning: Further data follows ASN.1 data at position 2958.

Я бы не был столь уверенным в правильности работы dumpasn1: в поточно-созданных сообщениях с неопределённой длинной блока (NDEF) она вообще находит ошибки...

2 burning-dragon: а можете прислать в личку контейнер с сертификатом? Можно как файлы, можно как экспортированную ветку реестра...
Официальная техподдержка. Официальная база знаний.
Offline Юрий  
#26 Оставлено : 21 сентября 2013 г. 7:10:50(UTC)
Юрий

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: olin Перейти к цитате
Автор: Юрий Перейти к цитате
Автор: olin Перейти к цитате
Это нормальное CMS-сообщение. Можете проверить себя с помощью
Код:

certutil encrypted_enveloped_stream.dat 

На самом деле это утверждение ложно. В конце представленного сообщения записан "мусор".
Предупреждение от dumpasn1: Warning: Further data follows ASN.1 data at position 2958.

Я бы не был столь уверенным в правильности работы dumpasn1: в поточно-созданных сообщениях с неопределённой длинной блока (NDEF) она вообще находит ошибки...

Если есть сомнения то посчитайте "руками": вот первые четыре байта из проверяемого файла
Цитата:
0x30 0x82 0x0B 0x8A

По этим байтам можно видеть, что верхняя объемлющая структура имеет тип SEQUENCE и длину в 2954 байт. Добавляя эти первые 4 байта получаем, что весь файл должен быть не длиннее 2958 байт, что совпадает с данными dumpasn1.
Длина же проверяемого файла составляет 3041 байт, что позволяет утверждать, что в конце записан "мусор".

Отредактировано пользователем 21 сентября 2013 г. 7:12:36(UTC)  | Причина: Не указана

С уважением,
Юрий Строжевский
Offline Андрей Писарев  
#27 Оставлено : 21 сентября 2013 г. 8:50:25(UTC)
Андрей *

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

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

Сказал «Спасибо»: 582 раз
Поблагодарили: 2311 раз в 1810 постах
Автор: olin Перейти к цитате
Автор: Юрий Перейти к цитате
Автор: olin Перейти к цитате
Это нормальное CMS-сообщение. Можете проверить себя с помощью
Код:

certutil encrypted_enveloped_stream.dat 

На самом деле это утверждение ложно. В конце представленного сообщения записан "мусор".
Предупреждение от dumpasn1: Warning: Further data follows ASN.1 data at position 2958.

Я бы не был столь уверенным в правильности работы dumpasn1: в поточно-созданных сообщениях с неопределённой длинной блока (NDEF) она вообще находит ошибки...
.



Да, есть другие программы, которые игнорируют мусор (ASN.1 Dump Utility, использует код из ASN dump).

Прикрепляю свой пример файла:
поточно-созданного сообщения (зашифрованного) - не выдает сообщения о проблемах с ASN1.
Смотрел в ASN.1 Dump Utility и guiDumpASN-ng ( использует код из ASN dump)



Вложение(я):
27D9F561.zip (86kb) загружен 4 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Техническую поддержку оказываем тут
Наша база знаний
Offline Юрий  
#28 Оставлено : 21 сентября 2013 г. 9:29:56(UTC)
Юрий

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: Андрей * Перейти к цитате
Автор: olin Перейти к цитате
Автор: Юрий Перейти к цитате
Автор: olin Перейти к цитате
Это нормальное CMS-сообщение. Можете проверить себя с помощью
Код:

certutil encrypted_enveloped_stream.dat 

На самом деле это утверждение ложно. В конце представленного сообщения записан "мусор".
Предупреждение от dumpasn1: Warning: Further data follows ASN.1 data at position 2958.

Я бы не был столь уверенным в правильности работы dumpasn1: в поточно-созданных сообщениях с неопределённой длинной блока (NDEF) она вообще находит ошибки...
.



Да, есть другие программы, которые игнорируют мусор (ASN.1 Dump Utility, использует код из ASN dump).

Прикрепляю свой пример файла:
поточно-созданного сообщения (зашифрованного) - не выдает сообщения о проблемах с ASN1.
Смотрел в ASN.1 Dump Utility и guiDumpASN-ng ( использует код из ASN dump)

Собственно дело не в том, что в поточно-созданном сообщении всегда есть мусор. Наоборот - обычно его там нет.
Мой вариант работы с сообщениями, созданными с использованием "потоков" был успешно создан и работает в КриптоАрм уже 10 лет (кстати в октябре-ноябре КриптоАрму будет ровно 10 лет! Та-дам!).

С уважением,
Юрий Строжевский
Offline burning-dragon  
#29 Оставлено : 21 сентября 2013 г. 10:00:51(UTC)
burning-dragon

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

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

Для исключения возможности попадания в поток лишних данных ввел дополнительный контроль в callback-е. Ситуацию это не изменило.
Еще хочу отметить, что на содержимое потока существенное влияние оказывает значение CMSG_STREAM_INFO::cbContent.
Например при значении 1024 (как и при -1) данные становятся не валидными в смысле ASN1. Пороговое значение не определял, но при значениях от 1 до 512 данные успешно извлекаются той же certutil.
При этом при попытке расшифровать возникает та же ошибка отсутствия ключей. Так же указанная величина существенно влияет на содержимое данных.
Offline Юрий  
#30 Оставлено : 21 сентября 2013 г. 10:39:10(UTC)
Юрий

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

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

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: burning-dragon Перейти к цитате
Для исключения возможности попадания в поток лишних данных ввел дополнительный контроль в callback-е. Ситуацию это не изменило.
Еще хочу отметить, что на содержимое потока существенное влияние оказывает значение CMSG_STREAM_INFO::cbContent.
Например при значении 1024 (как и при -1) данные становятся не валидными в смысле ASN1. Пороговое значение не определял, но при значениях от 1 до 512 данные успешно извлекаются той же certutil.
При этом при попытке расшифровать возникает та же ошибка отсутствия ключей. Так же указанная величина существенно влияет на содержимое данных.

Поймите что очень у многих людей до вас получалось использовать потоковые функции. И результат этих функций потом упешно читался функцией CryptDecryptMessage.

С кодом, относящимся к CryptoAPI, вроде все нормально, но тем не менее "мусор" в вашем выходном сообщении есть.

Так что просто ищите что же ошибочно в коде, не относящемся к CryptoAPI. Поменяйте цикл чтения из потока, перепишите все без использования "умных" объектов.
Возможно что-то у себя и найдёте. То есть ещё раз - скорее всего ошибка где-то в вашей программе в части не относящейся к CryptoAPI. Экспериментируйте.
С уважением,
Юрий Строжевский
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
5 Страницы<12345>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.