如何在不使用时间戳的情况下启用 pdf LTV?

how do I make pdf LTV enabled without using timestamps?

我对这个话题很陌生。我已经使用 PKCS#12 数字证书签署了一份 PDF 文档。在 Adob​​e Reader 中,当我打开签名面板时,我可以看到 "Signature is LTV enabled"。阅读 this 文章,我无法真正理解是否需要应用时间戳。如果不是,我如何验证应用签名的时间?或者我应该添加什么样的验证信息?

术语 LTV 已启用

首先,术语LTV enabled 是Adobe 引入的一个术语,没有正确指定。特别是它 not 与 ETSI 在其 PAdES 规范第 4 部分(ETSI TS 102 778-4)中使用的 LTVPDF 文档 相同).

Steven Madwin(当时受雇于 Adob​​e)once put it like this:

When you open the file Acrobat (and when I say Acrobat I mean both Acrobat & Reader) does the signature validation. As part of the validation process it figures out if it has to go online to download revocation information, or, is all of the revocation information embedded in the PDF file. At this point it knows what it's going to say in the Signature Navigation Panel. If it had to download data then the signature is not LTV enabled, but if all of the revocation collateral is in the file then the signature is LTV enabled.

因此,该术语的含义取决于

  • Adobe 的验证码和
  • 该代码使用的相关安全设置。

更多背景请参见。 this answer.

OP 案例

观察到的 OP

I have signed a PDF document with PKCS#12 digital certificate. In Adobe Reader, when I open signature panel I can see that "Signature is LTV enabled".

并在评论中解释

my certificate must be self-signed

I have imported the certificate into the "Trusted Root Certification Authorities" in Internet options.

根据其安全设置,Adobe Acrobat / Reader 可能会自动信任在其运行的操作系统中配置为受信任根的证书。 OP 似乎就是这种情况。

因此,OP 的签名者证书是其系统上 Adob​​e 验证器的可信根证书。因此,他们在验证他的签名时不需要额外的验证相关信息,并将其称为 LTV enabled.

但是,在其他人的计算机上,相关证书不受信任,Adobe 验证器无法验证签名,更不用说调用它了 LTV enabled.

自签名证书和 LTV

LTV 对于使用自签名证书签名的签名几乎没有任何意义,特别是没有可以添加到文档中的感兴趣的撤销信息。

为什么?这是由于此处使用的信任模型。


基本上是分层的:

  • 我们首先信任一些机构(证书颁发机构),我们通过将它们的根证书注册为在我们的应用程序或操作系统中无条件信任。
  • 我们还信任所有由可信证书颁发的证书(如果可信证书未标记为最终实体证书)。

这听起来不错,直到人们意识到其中一些证书的私钥迟早会被泄露。显然,我们不想再信任此类受损的证书。在上面的基本模型中,这意味着我们必须撤销对直接或间接颁发受损证书的根证书的信任。由于此根可能直接或间接颁发了数百万个证书,因此这是不可取的。

因此我们通过添加吊销检查服务来扩展基本模型:

  • 我们再次从信任一些机构(证书颁发机构)开始,我们通过将它们的根证书注册为在我们的应用程序或操作系统中无条件信任。
  • 我们还信任所有由受信任证书颁发的证书(如果受信任证书未标记为最终实体证书,即)除非与颁发证书关联的吊销检查服务表明该证书具有已被撤销.

这听起来不错,直到人们意识到这些吊销检查服务可能会停止工作(例如,因为公司 运行 有问题的证书颁发机构倒闭了)。至少长期感兴趣的文件上的签名有可能以这种方式变得无法验证。

为了解决这个问题,引入了 LTV(长期验证)机制。他们基本上收集从受信任的根证书到签名者证书的证书链,以及除根证书之外的所有吊销检查服务的响应,并将它们与签名捆绑在一起。 (仍然必须明确信任根证书。)

使用这些信息,可以在证书颁发机构停止提供吊销检查服务很久之后验证签名。

(这有点简化;特别是发行、签署、撤销和验证时间必须考虑。但它应该给出一个想法...)


所以回到最初的说法,即 LTV 对于使用自签名证书签名的签名几乎没有任何意义:自签名证书是根证书,可以明确信任也可以不信任根本。既没有其他感兴趣的根、中间或终端实体证书,也没有可供他们收集的吊销检查响应。

Does it mean then with self-signed certificate I can never obtain PAdES LTV compliant pdf?

更重要的是,没有什么有趣的可以放入 PAdES LTV 验证相关信息。唯一感兴趣的 LTV 操作是添加文档时间戳(上面未解释)以缩短签名时间。