Статус: Новичок
Группы: Участники
Зарегистрирован: 15.12.2022(UTC) Сообщений: 2  Откуда: msk Сказал(а) «Спасибо»: 1 раз
|
Добрый день! Не вникая в технические детали всегда полагал, что преобразование уже созданной присоединенной подписи в отсоединенную или обратно математически невозможно, т.к. хеши при создании ЭП считаются от разных данных. Разных то ли из-за кодировок, то ли из-за по разному добавляемых подписываемых атрибутов - этот момент до конца не был понятен. Но вот, в документации "ЭЦП SDK" попалась функция CadesMsgConvertCreateContext() https://docs.cryptopro.r...smsgconvertcreatecontext в описании которой буквально написано "для преобразования отсоединённой подписи в присоединённую". Подскажите, действительно ли возможно постфактум добавлять в отсоединенное криптографическое PKCS#7 сообщение ранее подписанные данные? И, следовательно, аналогично "вырезать" содержимое из присоединенной подписи? Если возможно, то какими функциями это можно сделать? Задача весьма актуальна, т.к. арбитражные суды на данный момент принимают только отсоединенные подписи, но бывает что на руках есть только присоединенная.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,684   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
Здравствуйте. Вы откройте просто в asn1 viewer-ах... файл с ЭП (отсоединенная\присоединенная) и увидите, что там есть описание структур, сам файл, сертификаты и блок с подписанной информацией (хеш\дата время...) Ничего не мешает извлечь файл (он и извлекается при проверке\сохранении). Ничего не мешает создать новый файл ЭП, но пропустив блок с файлом вложенным в структуру, в ней будет NULL, что является признаком... отсоединенной ЭП. можно прямо в браузере: https://lapo.it/asn1js/ detached.png (30kb) загружен 5 раз(а). attached.png (44kb) загружен 6 раз(а). |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.12.2022(UTC) Сообщений: 2  Откуда: msk Сказал(а) «Спасибо»: 1 раз
|
Автор: Андрей *  Ничего не мешает создать новый файл ЭП, но пропустив блок с файлом вложенным в структуру, в ней будет NULL, что является признаком... отсоединенной ЭП.
Спасибо большое за наводку. Я даже когда-то пробовал проверить гипотезу, что подписи одинаковые, но т.к. из-за подписываемого атрибута времени хеши разные получались, то решил тогда, что наверно встроенное содержимое в присоединенной и отсоединенной как-то по разному кодируется и тогда забросил это дело. Сейчас попробовал выкусить OCTET_STRING с подписанным содержимым. Если его вообще убрать (потому что NULL в ANS.1 это физически $05 $00), то действительно получается валидная отсоединенная подпись. Еще, правда, пришлось длину всех вышестоящих контейнеров CONTEXT_SPECIFIC и SEQUENCE поправить на размер выкушенного элемента. Редактор это всё сам делает, а программно пришлось повозиться с вычислениями. Но вроде получается в обе стороны, и выкусить, и внедрить файл. Еще раз спасибо!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close