我正在通过官方PDF spec。我遇到了经过数字签名的PDF here。在我分析其目录词典时,我看到了:
数字签名采用签名字段的形式,指定签名所适用的内容的字节范围。添加在其上的任何内容(如注释,注释等)应作为增量更新进行,因此原始内容的有效性应继续保持为真(不包括直接编辑内容,例如更改样本< / strong> word to Sample2 )。但是,当我在Nitro中打开文件时,添加一些突出显示或注释,保存并在Acrobat中打开它,它现在表示签名无效。这让我想到了我的问题:
为什么Acrobat会将其显示为无效?签名字段不强制阻止添加增量更新,为什么它无效?
为什么Acrobat不允许添加注释或突出显示?例如,Nitro允许它。没有 Perms 字典可以指定 DocMDP 级别限制,那么Adobe究竟将其解释为文档级别锁定是什么?
答案 0 :(得分:2)
正如my answer已解释过previous question关于此主题的PDF spec,您调用的文件“官方Adobe supplement to ISO 32000, extension level 3”就是一切。官方PDF规范是ISO 32000-1(自2008年起)和ISO 32000-2(2017年更新)。
该答案还指出了您的sreenshot显示的 FieldMDP 转换字典中 P 条目的来源:
它来自同一签名字典的 Lock 字典,并在{{3}}中定义(不幸的是,它来自Adobe,确实引用了PDF Reference 1.7而不是ISO 32000-1) :
P number *(可选;扩展级别3)为此文档授予的访问权限。有效值如下:
1,不允许对文件进行任何更改;对文档的任何更改都会使签名无效。
ISO 32000-1的扩展已添加到标准ISO 32000-2。
因此,
- 为什么Acrobat将其显示为无效?签名字段不强制阻止添加增量更新,为什么它无效?
醇>
因为确实强制执行任何更改的预防,请参阅上文。
- 为什么Acrobat不允许添加注释或突出显示?例如,Nitro允许它。没有Perms字典可以指定DocMDP级别的限制,那么Adobe究竟将其解释为文档级锁定究竟是什么?
醇>
因为Nitro(至少你测试过的版本)可能只支持ISO 32000-1而不支持Adobe的扩展3,更不用说ISO 32000-2了。