Статус: Новичок
Группы: Участники
Зарегистрирован: 14.07.2020(UTC) Сообщений: 1 
|
Здравствуйте!
У нас имеется набор подписанных документов. К каждому документу прилагается набор подписей в формате PKCS7. Этими документами нам нужно обмениваться со сторонней системой, но для каждого документа можно передать только один контейнер с информацией о подписях. Подскажите, как программно (.Net) можно корректно слить все имеющиеся подписи в один контейнер? Вроде как, это можно сделать с помощью SignedCms, но что-то пока ничего не понятно, я новичок в криптографии.
Спасибо!
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
В вопросе недостаточно данных для ответа. Поясню, хотя формат называется PKCS7, у него есть вариации и без знания из какой вариации в какую нужен перевод, точно ответить сложно. Кроме того, формат самой подписи в контейнере также может быть разным. Опишу два крайних сценария - простейший и сложнейший. 1) исходные несколько PKCS7 в кодировка Base64 c заголовками и надо получить такой же Base64 c заголовками, но один со всеми подписями (без объединения DER структур). Тогда сработает просто склейка файлов, без всякого SignedCms. Этот сценарий подразумевает что целевая информационная система сможет правильно их разделить, очистить от заголовков, преобразовать кодировку и проверить каждую подпись отдельно (а не только первую по порядку). Другими словами, мы сваливаем все в кучу, а проверяющая сторона разбирает. Промежуточные сценарии - то же + преобразование кодировки, ну в принципе перекодировка в Base64 это несложно, заголовки есть в документации по формату, для этого нет острой необходимости в SignedCms, но конечно удобнее использовать преобразование из библиотек чем реализовать самому. 2) требуется получить PKCS7 содержащий все подписи в одной DER структуре (с преобразованием кодировки или без преобразования) - тогда задача объединения решается через SignedCms и мягко говоря "нетривиальна", даже может быть невозможна без изменения таких важных атрибутов как время подписи на текущее время. Детали зависят от формата самой подписи. Этот сценарий подразумевает, что целевая информационная система проверяет только первую DER структуру из PKCS7 файла и игнорирует остальное содержимое, то есть склейка не сработает и нам придется изначально "разложить все по полочкам". Посоветую сначала испробовать первый вариант (при необходимости с перекодировкой в Base64 - если целевая система поддерживает PKCS7 в Base64, то скорее всего умеет выполнять и все остальные операции по разбору и проверке), а если первый вариант не поможет - переходить ко второму. Уже с уточнением вопроса - какой именно формат у подписей в контейнере. Отредактировано пользователем 23 июля 2020 г. 1:50:49(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close