如何在 Okular 或其他 FOSS 程序中签署 pdf?

如何在 Okular 或其他 FOSS 程序中签署 pdf?

如何在 Okular 中签署 PDF?我尝试搜索了大约 20 分钟,但找不到任何答案……

我有一份我的签名的 .png 文件,我基本上想将其插入到文档的虚线上。电子时间戳等也很好,但不是必需的。

我发现本文,但它使用的是 GIMP 而不是 Okular。此外,它似乎没有为文档添加时间戳。

这篇文章有点旧了(2010 年),所以我想知道 Okular 是否有 PDF 签名器?这个帖子也很有帮助,但没有我想要的交钥匙解决方案。

答案1

如何在 Okular 中签署 PDF?

据我所知,目前 Okular 的后端都不支持电子签名,尽管该功能已被多次请求。

或者,可以使用 GPG 或其众多前端(例如 KDE 中的 Kleopatra 或 Kgpg)的独立签名对 PDF(或任何其他文件)进行签名。

我有一份我的签名的 .png 文件,我基本上想将其插入到文档的虚线上

不要这样做。

任何有权访问您的 PNG 或使用该 PNG 的任何文档(例如您打算嵌入此签名的 PDF)的人,都将获得您亲笔签名的完美、可无限复制的副本。它根本没有提供任何安全性,事实上,这对安全性是有害的:在看到文档上的潦草字迹后,收件人可能会认为它是真实的,而不会费心检查是否有实际(且合法有效的)电子签名。Acrobat 在这方面是(至少曾经是)一个大问题——我曾见过由于这个构思拙劣的功能而轻易“伪造”的文档。

答案2

Okular(和 Poppler)将于 2021 年 4 月开始在其正式版本中支持 PDF 中的数字签名。详情请参阅德累斯顿工业大学发帖,该组织赞助了该功能的实施。请注意,这并不是要插入带有扫描签名的图形,而是要向 PDF 添加可靠的数字认证,类似于某些 Adob​​e 产品所支持的功能。

截至 2020 年 12 月,已经可以在本地编译 Okular 和 Poppler PDF 库的当前开发版本以获取该功能。德累斯顿工业大学的帖子提供了说明和构建脚本。

我已经按照脚本中的说明(请注意在线预览中的截断行!)在 KDE Neon 5.20(基于 Ubuntu 20.04 LTS)上使用 Poppler 完成了安装。提交 407293bf和 Okular提交 110ccd61(当然,未来的版本应该会继续工作,所以这只是为了完全可重复性)。我已经安装了/usr/local/并创建了一个启动脚本okular-sign,其变量定义与 TU Dresden 手册中一样。Okular 的新版本标识为“版本 21.03.70”。与 KDE 的典型情况一样,这个 Okular 的“本地”版本确实会干扰发行版中的官方版本,即使启动旧二进制文件,官方版本也会部分更改为新版本(大概这是由于 KDE 的系统范围注册了“部分”或某些此类组件)。我希望当我的发行版软件包中发布签名支持时,可以恢复到官方版本。

安装成功后,我可以创建一个数字签名,如帖子中所述:

  • 打开 PDF
  • 单击“工具”菜单中的“数字签名”。或者,在您喜欢的工具栏中添加“数字签​​名”图标并单击它。
  • 在您想要显示电子签名可见提示的位置绘制一个矩形。
  • 如果有多个私钥,对话框会询问要使用的私钥。选择您要使用的那个。
  • 输入您的密钥的密码。

然后,系统会提示您以新文件名保存已签名的 PDF。

答案3

Okular 受到后端 poppler 的限制。在过去的几个月里,poppler 一直在慢慢增加对 nss 后端的支持。https://bugs.freedesktop.org/show_bug.cgi?id=16770

然而,直到该功能在其 API 中公开(也正在开发中)并且该 API 在 Okular 中使用之前,它将无法签署/验证已签署的 PDF。

最新版本的 poppler 附带的 cli 工具 pdfisg 可以读取签名并确定签名是否有效以及证书颁发者是否可信。

对于签名,有一个名为 PortableSigner 的 FOSS java 应用程序可以签署 PDF 文档。http://portablesigner.sourceforge.net/

LibreOffice 的最新版本还具有文档签名功能。

答案4

没有可以签署 Adob​​e PDF 的 FOSS PDF 阅读器。原因是使用 Adob​​e 工具创建的可签署 PDF 使用 Adob​​e 专有的 PDF 格式扩展。PDF 是一种开放格式,但在这种情况下,Adobe 创建了自己的扩展,这些扩展由他们拥有、获得专利和许可,以防止其他人能够这样做。

使用 FOSS 软件对 PDF 进行签名的唯一方法是将 PDF 包装在开放的数字签名文件格式中。

您还可以研究远程签名服务,您的 PDF 将以 HTML 形式呈现给您,然后您可以对其进行签名。您可以使用类似于手写签名的图片进行弱签名 - 正如其他答案和评论所指出的那样,这是一个非常糟糕的主意。您可以使用加密密钥进行更强的签名 - 通常前提是远程签名服务持有您的密钥。我不知道是否有任何远程签名服务允许您持有密钥,例如,在双因素令牌设备上或在您自己的硬盘上加密。

相关内容