Как подписать PDF в Okular или другой программе FOSS?

Как мне подписать PDF в Okular? Я пытался искать около 20 минут, но я не могу найти ответы...

У меня есть.png моей подписи, и я хочу вставить ее в документ пунктирной линией. Электронная временная метка и т. Д. Также была бы хороша, но не обязательна.

Я нашел эту статью, но она использует GIMP вместо Okular. Кроме того, это не похоже на метку времени документа.

Эта статья устарела (2010), поэтому мне интересно, есть ли у Okular подписчик PDF? Этот пост был также полезен, но не имеет решения под ключ, которое я ищу.

9 ответов

Решение

Как мне подписать PDF в Okular?

Насколько мне известно, в настоящее время ни один из бэкэндов Okular не поддерживает электронные подписи, хотя эта функция запрашивалась несколько раз.

В качестве альтернативы PDF (или любой другой файл) может быть подписан с использованием отдельной подписи с помощью GPG или любого из его многочисленных интерфейсов (таких как Kleopatra или Kgpg в KDE).

У меня есть.png моей подписи, и я хочу вставить ее в документ пунктирной линией

Не делайте этого.

Любой, имеющий доступ к вашему PNG или любому документу, в котором он используется, например, PDF, в который вы собираетесь встраивать его, будет иметь идеальную, бесконечно воспроизводимую копию вашей автограф-подписи. Он вообще не обеспечивает никакой безопасности и фактически наносит ему ущерб: увидев ваш набросок на документе, получатели могут испытать соблазн предположить, что он подлинный и не удосуживается проверить фактическую (и юридически действительную) электронную подпись. В этом отношении Acrobat является или, по крайней мере, когда-то был главным преступником - я видел документы, тривиально "подделанные" из-за этой непродуманной функции.

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

По состоянию на декабрь 2020 года уже можно скомпилировать текущую разрабатываемую версию Okular и библиотеку Poppler PDF локально, чтобы получить эту функцию. Инструкции и сценарий сборки приведены в сообщении TU Dresden.

Я завершил установку, используя инструкции сценария (следите за обрезанными строками в онлайн-предварительном просмотре!) на KDE Neon 5.20 (на основе Ubuntu 20.04 LTS), используя Poppler от Commit 407293bf и Okular от Commit 110ccd61 ( будущие версии ) . конечно должно продолжать работать, так что это просто для полной воспроизводимости). Я установил под/usr/local/и создал стартовый скриптokular-signс определениями переменных, как в руководстве TU Dresden. Новая версия Okular идентифицируется как «Версия 21.03.70». Как это типично для KDE, эта «локальная» версия Okular конфликтует с официальной версией из дистрибутива, которая частично меняется на новую версию даже при запуске старого бинарного файла (предположительно это связано с общесистемной регистрацией в KDE «частей» "или какой-то такой компонент). Я надеюсь, что можно будет вернуться к официальной версии, когда в пакетах моего дистрибутива появится поддержка подписи.

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

  • Открыть PDF-файл
  • Нажмите «Цифровая подпись» в меню «Инструменты». Альтернативно добавьте значок «Цифровая подпись» на предпочитаемую вами панель инструментов и щелкните его.
  • Нарисуйте прямоугольник там, где вы хотите видеть видимую подсказку для электронной подписи.
  • В диалоговом окне будет предложено использовать закрытый ключ, если их несколько. Выберите тот, который вы хотите использовать.
  • Введите кодовую фразу вашего ключа.

После этого будет предложено сохранить подписанный PDF-файл под новым именем.

Окуляр ограничен бэкэнд-попплером. В течение последних нескольких месяцев poppler постепенно добавлял поддержку для nss-сервера. https://bugs.freedesktop.org/show_bug.cgi?id=16770

Однако до тех пор, пока эта функциональность не будет представлена ​​в его API (также над которой ведется работа) и пока этот API не будет использован в Okular, он не сможет подписывать / проверять подписанные PDF-файлы.

Инструмент pdfisg cli, который поставляется с последней версией poppler, может считывать подписи и определять, действительна ли подпись и является ли издатель сертификата доверенным.

Для подписи существует Java-приложение FOSS PortableSigner, которое может подписывать документы в формате PDF. http://portablesigner.sourceforge.net/

Последние версии LibreOffice также имеют функцию подписи документов.

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

Единственный способ подписать PDF-файл с помощью программного обеспечения FOSS - это обернуть PDF-файл в открытый формат файла цифровой подписи.

Вы также можете исследовать службы удаленной подписи, где ваш PDF-файл будет представлен вам в виде HTML-кода, который вы затем сможете подписать. Вы можете подписать слабо с принятым изображением чего-то, что напоминает вашу рукописную подпись - что является очень плохой идеей, как отмечено другими ответами и комментариями. Вы можете подписать более надежно с помощью криптографического ключа - обычно при условии, что служба удаленной подписи удерживает ваш ключ. Я не знаю, позволяют ли какие-либо службы удаленной подписи хранить ключ, например, на устройстве с 2-факторным токеном или зашифровать на собственном жестком диске.

Сообщение в блоге разработчика LibreOffice о подписании существующих файлов PDF в LO 5.3 или новее: http://vmiklos.hu/blog/pdf-sign.html

IMHO pdfsig - это хороший выбор для проверки подписей PDF. Если вы хотите использовать рубиновый взгляд на драгоценный камень оригами, здесь вы найдете пример для встраивания подписи в PDF с вашим самоподписанным сертификатом.

Итак, прошло около 1,5 лет с тех пор, как я задал этот вопрос, и я до сих пор не нашел оптимального решения этой проблемы. Основным недостатком является поиск программы FOSS для криптографической подписи и проверки документа PDF.

Я думаю, что принятый ответ лучше описывает ситуацию, а также то, почему Okular не дотягивает.

Итак, я просто хотел поделиться своим текущим решением, которое вставляет png моего изображения с помощью GIMP. По сути, я следую шагам, изложенным в статье из моего вопроса. Но я также использую подключаемый модуль GIMP для обработки многостраничных PDF-файлов, обведите здесь: http://www.zyxware.com/articles/4438/how-to-export-multiple-layers-from-gimp-into-a-pdf-file А вот и плагин: https://www.dropbox.com/s/jzdkgv2f0jrbw6i/export-layers-to-pdf.py?dl=0

Я знаю, что решение не является криптографически правильным, но оно работает для меня! Но если кто-то может наметить решение FOSS, которое может криптографически подписать документ PDF, я с радостью приму этот ответ!

Существует продукт для подписи PDF-файлов foss. Это называется автофирма . Также см. документацию Manajoro .

Поскольку я читал кое-что о патентах в предыдущем комментарии (@user2800708), в Европе существует eIDAS ( electronic IDentification, Authentication and Trust Services), которая определяет стандарты и технологии реализации электронных подписей, цифровых сертификатов и других криптопримитивов. Фонд Connecting Europe (CEF) предоставляет библиотеку программного обеспечения с открытым исходным кодом под названием Digital Signature Services (DSS).

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

Для проверки цифровых подписей вы можете использовать последнюю версию masterpdf5 или последнюю версию Okular.

Вы можете использовать онлайн-инструменты, такие как

Adobe или SmallPdf

Другие вопросы по тегам