7

Можно ли встраивать подписи GPG в файлы PDF так, как это можно сделать с помощью подписей X.509?

(До сих пор я использовал JSignPDF для подписи своих счетов, но теперь закон немного смягчился, и он больше не требует X.509 (просто я предоставляю некоторую гарантию целостности и подлинности, для которой, я полагаю, ГПГ должно быть достаточно). Теперь я знаю, что могу использовать отдельные подписи, но я не хочу путать своих клиентов с тем, почему я отправляю им эти * сиг-файлы.)

4 ответа4

0

не думайте, что это возможно ... потому что это обходит общую идею подписания и проверки документов. см. руководство GPG - подпись хранится отдельно, просто потому, что ее встраивание приведет к изменению файла и, следовательно, сделает недействительной встроенную подпись.

ближайший параметр командной строки может быть gpg --clearsign .

также посмотрите разницу между --sign и --clearsign:

--clearsign создает данные + подпись, где данные остаются удобочитаемыми. Вам нужен OpenPGP для проверки подписи, но если вам просто нужно прочитать текст, вам не нужно никакого специального программного обеспечения. Данные удобочитаемы.

LibreOffice также может подписывать PDF-файлы.

0

Немного другой ответ - можете ли вы делать подписи с помощью ключей PGP, таких как Yubikey NEO? Наш подход состоял в том, чтобы получить сертификат X.509 для ключа в ключе PGP и затем использовать его с JSignPdf - сложная часть заключалась в создании запроса на сертификацию.

0

Частичный ответ:

Процесс работы подписи X.509 подробно описан компанией Adobe: подпись - это просто дополнительный объект в файле PDF, который содержит, помимо прочего, диапазон байтов, для которого создается подпись. затем

Процесс подписания выглядит следующим образом:

  1. Документ для подписи превращается в поток байтов.
  2. Весь PDF-файл записывается на диск с оставшимся подходящим размером для значения подписи, а также с наихудшими значениями в массиве ByteRange. ByteRange - это массив из четырех чисел. Первое число в каждой паре - это смещение в файле (с начала, начиная с 0) начала потока байтов, который должен быть включен в хеш. Второе число - длина этого потока. Две пары определяют две последовательности байтов, которые определяют, что должно быть хешировано. Фактическое значение подписи сохраняется в ключе /Contents между концом первой последовательности и началом второй. На рисунке 4 хэш рассчитывается для байтов от 0 до 839 и от 960 до 1200.
  3. Как только местоположение значения подписи известно с точки зрения смещений в файле, массив ByteRange перезаписывается с использованием правильных значений. Поскольку смещения байтов не должны изменяться, дополнительные байты после нового оператора массива перезаписываются нулями.
  4. Хеш всего файла вычисляется с использованием байтов, заданных действительным значением ByteRange, с использованием алгоритма хеширования, такого как SHA-256. Acrobat всегда вычисляет хэш для подписи документа по всему файлу PDF, начиная с байта 0 и заканчивая последним байтом в физическом файле, но исключая байты значения подписи.
  5. Хэш-значение шифруется с помощью личного ключа подписавшего, и генерируется объект с сигнатурой объекта PKCS # 7 в шестнадцатеричном формате.
  6. Объект подписи помещается в файл на диске, перезаписывая значение заполнителя / содержимого. Любое пространство, не используемое для объекта подписи, перезаписывается нулями.
  7. Файл PDF повторно загружается в Acrobat, чтобы обеспечить идентичность версий в памяти и на диске.

Нет причин, по которым нельзя делать это с помощью подписи, рассчитанной на gpg.

Теперь также должно быть очевидно, что встраивание подписи не «обходит общую идею подписи и проверки документов», как упоминалось в другом ответе.

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

-2

PortableSigner - это инструмент для цифровой подписи (с сертификатами X.509) файлов PDF, скачать его можно здесь

http://sourceforge.net/projects/portablesigner/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .