Автор: TolikTipaTut1 Автор: Alexander Kumanyaev Подскажите, возможно ли у отделенной подписи Cades Bes удалять подписанта перед сохранением подписи и добавлять его обратно после ее чтения, а сам сертификат подписанта хранить отдельно?
Требуется хранить подпись максимально сжато, т.к. файлов очень много, а подписывают их одни и те же люди.
Правильно ли я понял: вы хотите, после создания ЭП (например, формата CAdES-BES), ее разобрать на составные части, а потом, при "чтении", заново ее собрать. Вы эту ЭП будете передавать другим лицам, вне вашей организации? Потому что стандартных средств "разборки" и "сборки" CAdES-BES лично я не знаю.
Меня там слегка перекоробило от того что топикстартер подписывает хэш - зачет конечно по знанию RAW подписи, вот только есть разница сколько раз хэш вычислять в cades, правда? Если подписываются атрибуты, то это значит что хэш документа не сам идет на вход CryptSignHash, а включается в какой-то вторичный блок вместе с остальными атрибутами и вот уже хэш этого блока идет на CryptSignHash. Догадайтесь что еще там будет в этом блоке... а не данные ли это о поиске сертификата подписавшего? Или где топикстартер нашел в cades-bes доказательства - их там нет! Доказательства и метки доверенного времени появляются как минимум в cades X long type и всех более сложных форматах. Об этом изящно намекнул Андрей, но кажется иронию не распознали.
Про пропиетарный формат это Вы конечно глобально замахнулись, но этого собственно не нужно. Поясню свою мысль, на основе которой я отвечал топикстартеру. Что имел ввиду он - пусть сам отвечает, я расскажу свое видение. Смысл в том, что
внутри своей ИС подпись можно хранить разобранной, а вот когда понадобиться ее передать контрагенту или проверить, то выполняется сборка частей и
из ИС выдается полная подпись. Контрагенту просто нет нужды ставить какие-то несертифицированные программки - он имеет дело с собранной подписью общепринятого формата.
Автор: TolikTipaTut1 P.S. Пожалуйста, не пинайте меня сильно...) Я понимаю, что это не совсем правильно, но исходя из требований - это самый "сжатый" вариант... Но мне кажется, что затраты, которые возникнут в ходе реализации этого варианта, будут несопоставимы с профитом.
P.P.S. Или, возможно, вы сможете так хранить у себя эти ЭП, а при передаче ЭП внешним контрагентам: собирайте CAdES-BES обратно и передавайте нормальное сообщение
Да - да. Только вот CAdES-BES разбирать несколько неперспективно (максимум сертификат не включать), формат должен быть посложнее.
По поводу возможности разборки - в подписи cades есть подписанные атрибуты и неподписанные атрибуты. Как правило, подписанные подписаны тем, кто подписывает документ. Их разбирать нельзя - подпись математически нарушится. Также мало смысла отделять метку доверенного времени на подпись - ну она каждый раз новая, никуда больше не пристроить. Неподписанные же атрибуты можете блоками добавлять или удалять, Вашу подпись это
математически не нарушит.
НЕподписанные атрибуты, как правило, это что уже имеет подпись из других источников - списки отзыва сертификатов подписаны ключом УЦ, метки доверенного времени - ключом сервера TSP, ответы OCSP - ключом ответчика. Представьте, Вы "штампуете" одной ключевой парой подписи формата cades X long type. 100 документов за сутки, с доказательствами, которые по сути одни и те же, отличие только в моменте времени (ну хэш от этого меняется, но это несущественно).
Далее, допустим к концу суток Ваш сертификат еще не отозван. Тогда в принципе все подписи останутся верными если доказательства "в течение дня" заменить на доказательства "в конце дня" (после замены будет выглядеть как будто их доусовершенствовали позже чем подписали, но это не ломает проверку подписи). По сути доказательства - показывают что сертификат был действителен все время от его выпуска до момента сбора доказательств. Поэтому технически мы могли бы заменять момент дальше и дальше пока сертификат не кончится или пока его не отзовут.
Итак, у нас появился у всех 100 подписей за день одинаковый блок доказательств (плюс метка доверенного времени на доказательства). Тогда почему бы его не хранить отдельно и сэкономить место на 99 таких блоков. Формально конечно этого же можно добиться просто заархивировав файлы подписи (если они не шифруются после подписания). Без манипуляций архивированный размер будет чуть больше, так как время отличается.
Идеи дальше, допустим мы не уверены в сервере TSP и получаем метку от двух серверов. Тогда мы можем доказательства сервера 1 подтвердить меткой сервера 2, и наоборот. Тогда если один из серверов (пусть 2) скомпрометирует ключ и его сертификат будет отозван, мы сможем доказать что метка была сделана до отзыва по метке от сервера 1. Чтобы не остаться с одним сервером, мы вводим сервер 3 вместо сервера 2 и продолжаем взаимные подтверждения. Понятно, что такая "косичка" из доказательств займет очень много времени если ее продолжать несколько лет и ее уже проще хранить отдельно. Ну просто представьте обновлять в каждой подписи сделанной за 10 лет... хотя бы раз в год и 3 месяца на которые выдают сертификаты... думаю есть занятия поинтереснее. Не проще ли обновлять каждый день но только 2-3 доказательства.
(пошел на обед... продолжение возможно следует)
Отредактировано пользователем 27 декабря 2021 г. 8:29:19(UTC)
| Причина: Не указана