pdfBox - 签名有效性复选标记在 Acrobat 阅读器中不可见

IT小君   2021-10-13T08:46:59

我正在使用此作为参考向 pdf 添加视觉签名 - https://stackoverflow.com/a/27940667/7103795

我能够正确打印详细信息。但是在 Acrobat 中打开该 pdf 时,它不会显示绿色勾号,尽管它写着“已签名且所有签名均有效”。在签名面板中。

这是我需要的一个例子:

截屏

我怎样才能确保有效性标志出现?

我正在使用 pdfBox 版本 2.0.1

评论(1)
IT小君

近十年前,签名有效性的文档内可视化已被弃用。Adobe Reader 仅出于向后兼容性的原因支持它们,但它们从未成为 iso pdf 规范的一部分。

评论中的 OP 要求提供相关文档;这个答案侧重于这一点。


弃用 Adob​​e Acrobat

在 Adob​​e Acrobat 版本 6 中,Adobe 不再使用由 PDF 本身提供的文档内签名有效性可视化来创建 PDF,参见。数字签名出现第 8 页:

摘录第8页

有效性仍显示在文档中的签名可视化中,但用于可视化状态的图形现在由 Adob​​e Acrobat 本身生成。仅为了兼容性,使用这些自定义外观继续显示具有其自身有效性外观的旧文档。

在 Adob​​e Acrobat 版本 9 中,Adobe 最终不再使用文档内签名有效性可视化,参见。Adobe Acrobat 9 数字签名、更改和改进第 10 页:

摘录第10页

因此,由于 Acrobat 9 Adob​​e 仅在签名面板中显示自己的图标,而不是文档本身,因此需要业务用户通过检查签名面板来评估签名的有效性并相应地生成签名。

仅出于兼容性原因,具有其自身有效性外观的旧文档仍继续使用文档区域内的那些自定义外观来显示。

弃用 ISO 32000-1

2008年 7 月 1的官方 PDF 规范 ISO 32000-1没有指定 PDF 可以为签名有效性提供可视化的任何方式。看看Adobe 共享的 ISO 32000-1 的副本,不再提及那些“层” n1n3n4实际上根本没有提到这样的层,ISO 规范期望没有变体的通常的单一外观流。

弃用 PAdES

PAdES 第 6 部分(关于“电子签名的视觉表示”的ETSI TS 102 778-6 V1.1.1)最终需要

符合要求的签名处理程序不应在页面内容中显示签名验证的结果。

(第 6 部分 - AdES 签名验证的可视化表示)

因此,通过将这些“层” n1n3n4 添加到 PDF 中的签名,您可以强制 Adob​​e Reader 充当不符合 PAdES 的签名处理程序,这可能是取决于您的特定安全环境的显示阻止程序。

...并根据 ISO 32000-2:2017:禁止

根据更新的 PDF 规范 ISO 32000-2,签名有效性的文档内可视化甚至被禁止:

PDF 处理器不应将签名的验证状态(例如,通过的复选标记或失败的 X)合并到签名字段的外观中。

(ISO 32000-2 第 12.7.5.5 节 — 签名字段)

2021-10-13T08:46:59   回复