为什么这两个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

问候

大卫大号

+0

*具有相同的机制* - 这个机制是如何设计的?例如。你是否签署增量更新? – mkl

+0

嗨,看看这个较旧的文章解释方法: –

+0

https://stackoverflow.com/questions/39151230/in-itext-7-how-to-sign-a-pdf-with-2-steps –

这不是一个Adobe的错误,这是一个特点。 (和一个iText错误)

当Adobe执行密码验证时,它还会执行额外的检查以查看签名是否受到攻击。它分析了几个嫌疑人,如果分析结果是否定的,Adobe会告诉你一个错误消息。这是Adobe误报分析和有效性。但是,这些隐藏的要求有一个解决方法。

的,iText的是在非附加模式用于修改文件第一: document properties

不幸的是,在特定情况下的iText 7,在非附加模式使用时,引入了由规范不允许改变。问题在于iText引入了小节。这是后话了规范允许你这样做,但是这是明令禁止的第一个版本:

第7.5.4节对照表 [...]对于从未增量更新文件,交叉引用节应只包含一个子部分,其对象的编号从0开始。[...]

下面你会发现第一次修订的外部参照非附加模式使用的iText后,每个彩色矩形都是一个新的小节。要符合,应该只有一个矩形。 XREF table

这将在即将发布的7.0.4版本中修复,计划在7月底完成。

+0

*这不是Adobe bug * - 同时,Adobe同时表示“文档作者不允许对自应用此签名以来对此文档所做的一些更改”。和“自从应用这个签名以来,这个文件没有发生任何变化。”人们可以认为这不是一个错误,而是一个垃圾进入,垃​​圾进出*的情况,但Adobe应该仍然考虑在他们的签名验证输出中防止这种矛盾。 – mkl

+1

的确如此。我上周向Adobe报告了这个令人困惑的报告,我们会看看他们是否对此做了任何事情。 –

由于多个其他工具验证这两个文件没有任何问题......我们可能认为这是Adobe Reader读取器的错误。

特别是使用Adobe Acrobat本身撕裂:

Both "Some of the changes that have been made to this document since this signature was applied are not permitted by the document author." and "There have been no changes made to this document since this signature was applied." on the same dialog page