为什么这两个itext 7签名和验证的文档中的一个不适用于Adobe DC阅读器?
我有两个通过认证的PDF文档(使用基于Itext 7的相同机制进行签名和验证),当我使用Adobe Reader DC检查其有效性时,只有一个具有绿色标记。为什么这两个itext 7签名和验证的文档中的一个不适用于Adobe DC阅读器?
好一个: https://1drv.ms/b/s!AkF6t4TavwMvgxWaidlUqvPvHH1r
坏一个: https://1drv.ms/b/s!AkF6t4TavwMvgxQCMdGY61S1EvUh
问候
大卫大号
这不是一个Adobe的错误,这是一个特点。 (和一个iText错误)
当Adobe执行密码验证时,它还会执行额外的检查以查看签名是否受到攻击。它分析了几个嫌疑人,如果分析结果是否定的,Adobe会告诉你一个错误消息。这是Adobe误报分析和有效性。但是,这些隐藏的要求有一个解决方法。
不幸的是,在特定情况下的iText 7,在非附加模式使用时,引入了由规范不允许改变。问题在于iText引入了小节。这是后话了规范允许你这样做,但是这是明令禁止的第一个版本:
第7.5.4节对照表 [...]对于从未增量更新文件,交叉引用节应只包含一个子部分,其对象的编号从0开始。[...]
下面你会发现第一次修订的外部参照非附加模式使用的iText后,每个彩色矩形都是一个新的小节。要符合,应该只有一个矩形。
这将在即将发布的7.0.4版本中修复,计划在7月底完成。
*这不是Adobe bug * - 同时,Adobe同时表示“文档作者不允许对自应用此签名以来对此文档所做的一些更改”。和“自从应用这个签名以来,这个文件没有发生任何变化。”人们可以认为这不是一个错误,而是一个垃圾进入,垃圾进出*的情况,但Adobe应该仍然考虑在他们的签名验证输出中防止这种矛盾。 – mkl
的确如此。我上周向Adobe报告了这个令人困惑的报告,我们会看看他们是否对此做了任何事情。 –
由于多个其他工具验证这两个文件没有任何问题......我们可能认为这是Adobe Reader读取器的错误。
特别是使用Adobe Acrobat本身撕裂:
*具有相同的机制* - 这个机制是如何设计的?例如。你是否签署增量更新? – mkl
嗨,看看这个较旧的文章解释方法: –
https://stackoverflow.com/questions/39151230/in-itext-7-how-to-sign-a-pdf-with-2-steps –