0

那里!我正在使用 pdfbox 1.8.11 进行 pdf 签名,我可以创建一个嵌入 DSS 字典的启用 LTV 的签名。现在的问题是有多个签名时的证书验证。

根据 PDF 2.0 LTV 和 PAdES LTV 规范,允许为每个签名添加 VRI,以便验证每个特定签名的相关撤销数据。

知道如何为签名添加 VRI 字典吗?由于 VRI 的密钥是 base-16 编码的哈希,这意味着我需要先有签名。据我所知(我希望我错了),签名是在将带有签名相关信息的 PDF 保存到输出流中时创建的。( PDDocument.saveIncremental(ins, outs))

==================================================== ==========

更详细:

当我想根据 PAdES LTV 和 PDF 2.0 LTV 规范验证 DSS 数据的签名时遇到了这个问题。首先关注的是 PDF 2.0 LTV 规范。

如果我理解正确:

  1. DSS 包含我们在已签名 PDF 中拥有的所有签名的撤销数据。

我遇到的情况:假设:有两个用户用户A和用户B,他们的证书是由同一个CA颁发的:s。(我认为这很常见。)

  1. 用户 A 使用 DSS 签署了文档(嵌入了 certs/crls/ocps)。
  2. 几天后,用户 B 使用 DSS (certs/crls/ocps) 签署了用户 A 签名的文档。注意!:crls 由颁发者标识符标识。

签名验证阶段:

当我想重建证书链时,针对 crls 和 ocsps 验证签名证书,尤其是当我想检查文件签名时 crl 是否过期时,我需要确保我使用的是正确的crl的版本。

对我来说,这意味着我应该检查与签名正确映射的 certs/crls/ocsps。否则验证不再可靠,同样毫无意义。

因此,即使最新的 PAdES 规范 103 不建议使用 VRI。说真的,我觉得不太对……

然后另一个问题:

正如我在下面评论的那样,我正在使用 pdfbox 签署 pdf。

  1. 如果我事先收集 DSS 数据,请在之后创建签名。(事实上​​,DSS 也是签名内容的一部分。)

    • 好事:acrobat 阅读器识别出我的签名已启用 LTV。
    • 坏事:在这种情况下,我无法在那里添加 VRI。VRI 的密钥是签名的散列值。
  2. 如果我先签署文件,然后用 VRI 得到签名和 DSS,acrobat reader 不再识别 DSS。我的签名不再为 acrobat reader 启用 LTV。这是我很困惑的问题。acrobat reader 在 LTV 验证中是否错误?

我觉得错了吗?如果有什么我理解错了,请指出。提前致谢!

4

1 回答 1

0

首先,我浏览过的最新的 PDF 2.0 草案已经有两年的历史了。因此,我的回答最好基于 ETSI 标准,而不是该草案。;)

如果我理解正确:

  1. DSS 包含我们在已签名 PDF 中拥有的所有签名的撤销数据。

不一定适用于所有签名。如果验证者只对单个签名的有效性感兴趣(如果文档中的签名具有不同的语义,则可能出现这种情况),它仍然应该添加获取的验证相关信息。

当我想重建证书链时,针对 crls 和 ocsps 验证签名证书,尤其是当我想检查文件签名时 crl 是否过期时,我需要确保我使用的是正确的crl的版本。

对我来说,这意味着我应该检查与签名正确映射的 certs/crls/ocsps。否则验证不再可靠,同样毫无意义。

你的目标到底是什么?您是否尝试重新制定以前的特定验证法案?或者您只是想验证签名?

在前一种情况下,您确实需要一些映射“用于验证此签名,使用了以下验证关系信息”,例如VRI结构。

但是,通常后者是您的任务,在这种情况下,您可以使用您找到的任何与验证相关的信息,只要它适用。因此,在您的由同一 CA 颁发的签名者证书的示例情况下,您可以使用相同的 CRL,只要 CRL 的有效期间隔对于签名的验证时间都可以,并且 CRL 本身的签名可以得到肯定的验证。

因此,

因此,即使最新的 PAdES 规范 103 不建议使用 VRI。说真的,我觉得不太对……

LTV 上的 PAdES 规范只是想保证签名可以被验证,而不是可以像以前一样被验证。考虑到这个任务,它是正确的。

如果我事先收集 DSS 数据,请在之后创建签名。(事实上​​,DSS 也是签名内容的一部分。)

好事:acrobat 阅读器识别出我的签名已启用 LTV。

坏事:在这种情况下,我无法在那里添加 VRI。VRI 的密钥是签名的散列值。

你不仅不能,你实际上是不允许的!正如 ETSI EN 319 142-1 V1.1.1 所说:

任何VRI字典都应位于文档增量更新部分。如果 VRI字典适用的签名字典本身在增量更新部分(参见 ISO 32000-1 [1] 的第 7.5.6 节),则VRI更新应在签名更新之后完成。

如果我先签署文件,然后用 VRI 得到签名和 DSS,acrobat reader 不再识别 DSS。我的签名不再为 acrobat reader 启用 LTV。这是我很困惑的问题。acrobat reader 在 LTV 验证中是否错误?

这是显示此行为的示例文件将有所帮助的地方

于 2016-10-26T21:27:24.843 回答