Цифровая подпись в PDF не проверяется на соответствие после добавления аннотаций

Я просматривал официальную спецификацию PDF PDF. . Я нашел PDF-файл с цифровой подписью здесь. Пока я анализировал его словарь-каталог, я увидел это:

введите здесь описание изображения

Цифровая подпись представляет собой поле подписи, в котором указывается диапазон байтов содержимого, к которому применяется подпись. Любой контент, добавленный поверх него, такой как аннотации, примечания и т. д., должен входить в виде добавочных обновлений, поэтому достоверность исходного контента должна сохраняться (исключая прямое редактирование контента, например, изменение Sample< /strong> слово в Sample2). Однако, когда я открываю файл в Nitro, добавляю к нему некоторые выделения или примечания, сохраняю его и открываю в Acrobat, теперь он говорит, что подпись недействительна. Что подводит меня к моим вопросам:

  1. Почему Acrobat показывает его как недействительный? Поле подписи не предотвращает добавление добавочных обновлений, почему именно оно недействительно?

  2. Почему Acrobat не позволяет добавлять примечания или выделения? Например, Nitro это позволяет. Не существует словаря Perms, который указывал бы ограничение на уровне DocMDP, так что же именно Adobe интерпретирует как блокировку на уровне документа?


person SexyBeast    schedule 30.04.2018    source источник


Ответы (1)


Как уже объяснялось в мой ответ на ваш предыдущий вопрос по этой теме, файл вы называете официальным Спецификация PDF — это совсем не то. Официальной спецификацией PDF является ISO 32000-1 (с 2008 г.) и ISO 32000-2 (обновление 2017 г.).

Этот ответ также указывает на происхождение записи P в словаре преобразования FieldMDP, который показан на снимке экрана:

Он взят из словаря Lock того же словаря сигнатур и определен в Дополнение Adobe к ISO 32000, уровень расширения 3 (который, к сожалению, от Adobe действительно ссылается на PDF Reference 1.7 вместо ISO 32000-1):

P number *(Необязательно; Extension Level 3) Права доступа, предоставленные для этого документа. Далее следуют допустимые значения:

1, никакие изменения в документе не допускаются; любое изменение в документе делает подпись недействительной.

Это расширение ISO 32000-1 было добавлено к стандарту ISO 32000-2.

Таким образом,

  1. Почему Acrobat показывает его как недействительный? Поле подписи не предотвращает добавление добавочных обновлений, почему именно оно недействительно?

Поскольку он действительно предотвращает любые изменения, см. выше.

  1. Почему Acrobat не позволяет добавлять примечания или выделения? Например, Nitro это позволяет. Не существует словаря Perms, который указывал бы ограничение на уровне DocMDP, так что же именно Adobe интерпретирует как блокировку на уровне документа?

Потому что Nitro (по крайней мере, версия, которую вы тестировали), вероятно, просто поддерживает ISO 32000-1, но не расширение Adobe 3, не говоря уже об ISO 32000-2.

person mkl    schedule 30.04.2018
comment
Ага. Понятно. Запись P отсутствует в старой спецификации. Новая спецификация начинается со следующей строки: Добавить новую запись P в Таблицу 8.82 на странице 697 Справочника PDF. Но теперь, когда ключи Action и P позволяют обозначать возможность заполнения форм, что, если ключи Action имеют значение All, означающее, что все поля формы должны быть заблокированы, тогда как P содержит 2, что означает, что поля формы можно изменять? - person SexyBeast; 01.05.2018
comment
Значение P, равное 2, просто позволяет редактировать поля формы, которые не защищены иным образом (будь то с помощью флагов полей или с помощью Lock с Action значение, включая его). - person mkl; 01.05.2018
comment
Спасибо. Просто чтобы убедиться, что я понимаю, основываясь на новой спецификации, на которую вы ссылаетесь, если первая версия PDF имела значение P 2 (что позволяет подписывать), а последующее изменение добавляет поле со значением P равным 3, поскольку 3 является менее ограничивающим, чем 2, оно будет проигнорировано, и все дальнейшие изменения должны будут соответствовать правилам 2, если только кто-то не установит P на 1. Верно? Однако что произойдет, если в последующих полях P будет установлено значение 1? Значит, все будущие обновления должны соответствовать 1, а все прошлые обновления — 2? - person SexyBeast; 01.05.2018
comment
Верный. Ограничения становятся только жестче. И новое значение считается, начиная с ревизии, в которой данное поле подписи было подписано. Таким образом, после подписания поля подписи с P = 1 никакие изменения больше не допускаются. За исключением случаев, когда вы поддерживаете ISO 32000-2 или расширения ETSI к ISO 32000-1, тогда допускается добавление информации, связанной с проверкой, и меток времени документа. - person mkl; 01.05.2018
comment
Спасибо МКЛ! Как обычно, авторитетный ответ! Не связанный с этим вопрос, можете ли вы порекомендовать какое-либо программное обеспечение, которое позволяет пользователю добавлять подпись PKCS SHA1 или x509.rsa.sha1 или позволяет применять различные аспекты FieldMDP или DocMDP, например, указывать определенные поля формы для блокировки? Acrobat, кажется, разрешает только отдельную подпись PKCS7, по крайней мере, Acrobat DC, и не позволяет указывать поля формы. - person SexyBeast; 02.05.2018
comment
@SexyBeast Можете ли вы порекомендовать какое-либо программное обеспечение, которое позволяет пользователю добавлять подпись PKCS SHA1 или x509.rsa.sha1 - Ничего актуального. adbe.x509.rsa_sha1 и adbe.pkcs7.sha1 устарели в PDF 2.0. Подпись типа adbe.pkcs7.sha1 даже требует использования SHA1. Я не могу рекомендовать использование какой-либо текущей программы, активно поддерживающей создание устаревших или даже явно небезопасных подписей. Если со старыми программами все в порядке, я бы предложил использовать соответственно старую версию Adobe Acrobat (предположительно, версию 6) с установленными необходимыми дополнительными обработчиками подписи. - person mkl; 02.05.2018
comment
@SexyBeast ... позволяет применять различные аспекты FieldMDP или DocMDP, например, указывать блокировку определенных полей формы? Acrobat, похоже, [...] не позволяет указывать поля формы.. Acrobat 9.5 по-прежнему позволял указывать поля, ср. это изображение; На самом деле я был бы удивлен, если бы Acrobat DC этого не сделал; к сожалению, я не могу проверить, так как у меня нет текущей версии Acrobat. - person mkl; 02.05.2018
comment
Спасибо, mkl! У меня есть Acrobat 9.5, однако я не могу найти оповещение, изображение которого вы разместили. Можете ли вы указать шаги, с помощью которых я могу получить это оповещение? Я пытаюсь использовать PDF-файл, в котором есть поля формы. - person SexyBeast; 02.05.2018
comment
@SexyBeast Откройте файл в Adobe Acrobat — выберите пункт меню «Формы», «Добавить или изменить поля»… — Выберите поле своей подписи и щелкните правой кнопкой мыши для контекстного меню — выберите «Свойства» — выберите вкладку «Подписано». - person mkl; 02.05.2018
comment
Спасибо мкл. Я пробовал это, но у меня не появляется меню, как вы сказали: imgur.com/a/RMBSTRV - person SexyBeast; 02.05.2018
comment
@SexyBeast, вероятно, вам нужно использовать форму редактирования в дизайнере ... - person mkl; 02.05.2018
comment
Нет, наконец-то понял! Эта ссылка — wwwimages2.adobe.com/content/dam /acom/en/devnet/security/ стр. 63 мне помогло! - person SexyBeast; 02.05.2018