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

0 java pdf digital-signature pdfbox

我正在使用此作为参考为pdf添加视觉签名 - /sf/answers/1955846721/

我能够正确打印细节.但是,在Acrobat中打开时,pdf不会显示绿色勾号,尽管它是"已签名且所有签名都有效".在签名面板中.

这是我需要的一个例子:

截图

如何确保出现有效性标志?

我正在使用pdfBox版本2.0.1

mkl*_*mkl 6

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

评论中的OP要求提供有关此文件的文件; 这个答案侧重于此.


关于Adobe Acrobat的弃用

在Adobe Acrobat版本6中,Adobe放弃了创建PDF,其中包含PDF本身提供的文档内签名有效性可视化,参见 数字签名外观第8页:

摘录第8页

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

在Adobe 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副本,再也没有提到那些"层" n1,n3n4.实际上根本没有提到这样的层,ISO规范期望通常的单一外观流没有变体.

关于PAdES的弃用

PAdES第6部分(关于"电子签名的可视化表示"的ETSI TS 102 778-6 V1.1.1)最终要求

符合标识的处理程序不应在页面内容中显示签名验证的结果.

(第6节 - AdES签名验证的直观表示)

因此,通过将这些"层" n1,n3n4添加到PDF中的签名,可以强制Adobe Reader充当不符合PAdES的签名处理程序,根据您的特定安全环境,该处理程序可能是一个显示停止.

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

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

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

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