【问题标题】:How to check 'PDF Digital Signature' whether it is 'PAdES' standard or not?如何检查“PDF 数字签名”是否为“PAdES”标准?
【发布时间】:2018-01-05 20:56:07
【问题描述】:

我们如何检查我们在 PDF 上的数字签名是否符合“PAdES”标准?

最好的问候 Pearapon S.

泰国曼谷

【问题讨论】:

  • 检查规范的标准。
  • 非常感谢,但是,你能给我一些我需要从 PDF 文件中检查的标准的例子吗?我在哪里可以从 PDF Reader 中找到它们?
  • 您使用哪种编程环境和哪种PDF库?
  • 我们使用了“Java iText 库版本 5.4.2”。它可以在PDF文件上生成数字签名,可以在PDF阅读器上成功验证。但我们不知道它是否符合“PAdES”。
  • 你想创建一个程序来检查你创建的签名是否是一个有效的PAdES?还是您想手动检查,即使用十六进制查看器和规范?此外,PAdES 是一个非常通用的术语。你能告诉你要检查的个人资料吗?

标签: pdf digital-signature pades


【解决方案1】:

OP 使用第三方软件(手头的 iText 5.4.2)来创建 PAdES 签名,现在想要检查生成的签名是否确实满足 PAdES 规范。这里有一些想法:

“PAdES 签名”是什么意思?

首先,您必须定义“PAdES 签名”的含义:

  • 您指的是即将发布的 PDF 2.0 规范中定义的术语吗:

    使用 SubfilterETSI.CAdES.detached 的 PDF 签名称为 PAdES 签名,它们遵循两个 CMS 配置文件之一创建为与 ETSI EN 319 122 中定义的相应 CAdES 配置文件兼容。

    (ISO 32000-2 FDIS 第 12.8.3.4 节 - PDF 中使用的 CAdES 签名)

  • 您是否更具体地说是指遵循 ETSI EN 319 142-1 中规定的 PAdES 基线签名配置文件之一的签名?

    第 6 条定义了四个级别的 PAdES 基线签名,旨在促进互操作性并涵盖 PAdES 签名的生命周期,即:

    a) B-B 级别要求在生成签名时包含已签名和一些未签名的属性。

    b) B-T 级别为现有签名的生成和包含可信令牌提供了要求,以证明签名本身在特定日期和时间确实存在。

    c) B-LT 级别要求在签名文档中包含验证签名所需的所有材料。此级别旨在解决验证材料的长期可用性问题。

    d) B-LTA 级别对包含电子时间戳的要求提供了允许在签名生成后很长时间内对其进行验证的要求。此级别旨在解决验证材料的长期可用性和完整性问题。

    (ETSI EN 319 142-1 V1.1.1 第 6 节 - PAdES 基线签名)

  • 或者来自 ETSI EN 319 142-2 的其他 PAdES 签名配置文件之一是否也符合条件?

    本文档包含使用 PDF 签名的配置文件,如 ISO 32000-1 [1] 中所述,并基于 CMS 数字签名 [i.6],它通过提供更多限制来实现 PDF 签名的更大互操作性ISO 32000-1 [1] 的那些。第一个配置文件与 ETSI EN 319 142-1 [4] 无关。

    本文档还包含第二组配置文件,这些配置文件扩展了 PAdES 第 1 部分 [5] 中的配置文件范围,同时保留了一些增强 PAdES 签名互操作性的功能。这些配置文件定义了三个级别的 PAdES 扩展签名,以解决增量要求,以长期保持签名的有效性,以某种方式始终解决在其以下级别解决的所有要求。这些 PAdES 扩展签名提供了比 ETSI EN 319 142-1 [4] 中指定的 PAdES 基线签名更高程度的可选性。

    本文档还定义了第三个配置文件,用于使用嵌入在 PDF 文件中的 XAdES 签名的任意 XML 文档。

    (ETSI EN 319 142-2 V1.1.1 第 1 节 - 范围)

特别是您必须知道您是否还考虑额外的 PAdES 签名配置文件“用于 PDF 中的 CMS 数字签名”或“用于 XAdES 签名在 PDF 中签名 XML 内容”,因为这两个配置文件与其他配置文件大不相同。

我假设您不考虑这两个配置文件,因为前者或多或少是旧的 ISO 32000-1 CMS 签名,但大多数签名者无论如何都遵循一些限制,而后者是 XML 签名,它们是完全不同的动物完全一致。

所有其余配置文件的主要区别在于验证相关信息的数量和类型以及添加到文档中的时间戳,以使验证越来越少地依赖于必须在线检索的数据。

检查选项

  1. 手动:您使用 PDF 浏览器(如 iText RUPS 或 PDFBox PDF 调试器)、十六进制查看器、ASN.1 Dump 实用程序、上面列表中适用的基本规范以及基本规范中引用的附加规范和检查所有条件。

    单个签名需要相当长的时间,但最终您可以了解有关测试签名的所有信息。如果你有使用这些工具和使用规范的经验,或者你真的有很多时间学习,我只推荐这个。

  2. 以编程方式:您采用通用 PDF 库(如果您采用不同于创建签名的库,结果的可信度可能会增加)、安全功能库(例如 BouncyCastle)、基本规范和其他的,并开始实施一个程序来测试规范中的标准。

    这需要相当长的时间来开发,但可以重复使用,例如用于质量保证和回归预防。如果你有一些使用这些库和处理规范的经验,或者你真的有很多时间学习,我只推荐这个。

  3. 您使用为您评估签名的现有软件或服务,例如ETSI 签名一致性检查器 (http://signatures-conformance-checker.etsi.org/pub/index.shtml),一个免费的在线工具,它执行大量检查以验证 ETSI 高级电子签名的一致性。

    这显然是最快的选择,但您通常无法确定测试执行的可靠性。因此,作为第一个意见,这是很好的,但取决于有多少风险,我想要更多的安全性。

  4. 您可以聘请专家根据所需的个人资料分析和评估您签名的有效性。

    这可能很昂贵,但至少你有一个人可以求助,如果你以后因为一些不合规而陷入麻烦。

【讨论】:

  • 非常感谢,mkl
猜你喜欢
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
相关资源
最近更新 更多