Можно ли добавить в PDF-файл защиту от несанкционированного доступа с отметкой времени, не подписывая его?

При подписании PDF-файла с помощью цифровой подписи можно использовать доверенную службу меток времени, чтобы добавить маркер меток времени, подписанный органом меток времени. При просмотре подписи PDF-файла будет сказано, что он содержит подписанную отметку времени и что с тех пор он не подвергался подделке (если это не так).

Технически происходит то, что хэш содержимого pdf отправляется в TSA (RCF3161), этот хэш помещается в структуру вместе с текущей отметкой времени (как определено органом по отметке времени) плюс некоторые метаданные, а затем подписывается и отправляется назад. Затем это обеспечивает доказательство того, что PDF-файл не был изменен с этого момента времени.

Таким образом, технически должно быть возможно создать такое доказательство метки времени без подписания самого документа дополнительной подписью. Поддерживается ли это как-то стандартом PDF (а также с точки зрения Acrobat Reader, который может каким-то образом показывать эту временную метку)?

Конечно, я мог бы просто сделать это вручную, взять хэш SHA-256 двоичного представления файла, отправить его в службу TSA и сохранить полученный токен во внешнем файле, но предпочтительно я хотел бы встроить защиту от несанкционированного доступа. в PDF и таким образом, чтобы Acrobat Reader мог его отобразить.

Это возможно? Если да, то как?


person matthias_buehlmann    schedule 20.01.2021    source источник
comment
Технически это не проблема. Это называется временными метками документа. См. ISO 32000-2:2017, раздел 12.8.5 Словарь меток времени документа (DTS).   -  person mkl    schedule 20.01.2021
comment
Спасибо, это действительно похоже на то, что я ищу! Совместимо ли это с PDF/A? Есть ли способ создать их с помощью Acrobat Reader? оптимально, я бы хотел иметь инструмент cli или иметь возможность делать это через какую-то библиотеку - но сначала я хочу проверить, как они отображаются позже в Acrobat Reader   -  person matthias_buehlmann    schedule 20.01.2021


Ответы (1)


Вы можете вставлять чистые временные метки RFC 3161 в PDF. Эта конструкция называется отметка времени документа.

Эта структура была первоначально определена в ETSI TS 102 778-4 (Приложение A.2) в 2009 году как средство для простой отметки времени ранее подписанного PDF-файла с некоторой информацией, связанной с проверкой, добавленной в ревизиях после подписанной. По мере развития PAdES эта спецификация, наконец, вошла в ETSI EN 319 142-1 (раздел 5.4.3).

Хотя ETSI мог указать структуру только как расширение стандарта ISO 32000-1 (PDF 1.7), ответственный комитет ISO добавил ее в основной стандарт ISO 32000-2 (PDF 2) в 2017 году.

По вашим вопросам в комментариях:

Совместимо ли это с PDF/A?

Я думаю, что они несовместимы с PDF/A-1, PDF/A-2 и PDF/A-3. Поскольку PDF/A-4 основан на ISO 32000-2, я предполагаю, что он будет совместим. (Я еще не ознакомился с ISO 19005-4...)

Есть ли способ создать их с помощью Acrobat Reader?

Это должно быть возможно с некоторыми версиями Adobe Acrobat. Это (в настоящее время) невозможно с базовой версией Adobe Acrobat Reader. Однако, вероятно, Adobe Acrobat Reader с некоторыми платными встроенными инструментами может их создать.

оптимально, я хотел бы иметь инструмент cli или иметь возможность сделать это через какую-то библиотеку

Любая неустаревшая общая библиотека подписи PDF должна поддерживать создание меток времени документа.

но сначала я хочу проверить, как они потом отображаются в Acrobat Reader

Как это:

https://kb.itextpdf.com/home/it7kb/faq/how-to-enable-ltv-for-a-timestamp-signature

Первая запись — это подпись со встроенной отметкой времени подписи, вторая запись — это отметка времени документа.

person mkl    schedule 20.01.2021
comment
Замечательно! это отличный ответ на мой вопрос, большое спасибо! - person matthias_buehlmann; 20.01.2021
comment
Итак, я создал этот PDF-файл s000.tinyupload.com/, который содержит метка времени документа. Документ также утверждает, что это PDF/A-1B, и когда я нажимаю «Проверить соответствие» в Adobe Reader, он говорит, что проверка прошла успешно. Как так? это ошибка в Adobe Reader? - person matthias_buehlmann; 01.02.2021
comment
Что ж, файл PDF/A-1 должен, прежде всего, быть действительным PDF-1.4 (согласно соответствующему справочнику Adobe PDF). Эта ссылка требует, чтобы тип словаря подписи был Sig (если он вообще присутствует). Для отметок времени документа это должно быть DocTimeStamp (как в вашем примере). Таким образом, отметка времени документа не может быть в формате PDF/A-1. Тесты Adobe явно неполные. - person mkl; 01.02.2021