Как подписать 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.