OP 使用第三方软件(本例中为 iText 5.4.2)来创建 PAdES 签名,现在想要检查生成的签名是否确实满足 PAdES 规范。这里有一些想法:
首先,您必须定义“PAdES 签名”的含义:
您指的是即将发布的 PDF 2.0 规范中定义的术语吗:
使用子过滤器值ETSI.CAdES.detached的 PDF 签名称为PAdES 签名,它们遵循为与 ETSI EN 319 122 中定义的相应 CAdES 配置文件兼容而创建的两个 CMS 配置文件之一。
(ISO 32000-2 FDIS 第 12.8.3.4 节 - PDF 中使用的 CAdES 签名)
您更具体地说是指遵循 ETSI EN 319 142-1 中指定的 PAdES 基线签名配置文件之一的签名吗?
第 6 条定义了 PAdES 基线签名的四个级别,旨在促进互操作性并涵盖 PAdES 签名的生命周期,即:
a) BB级别规定了生成签名时包含签名和一些未签名属性的要求。
b) BT 级别规定了现有签名的生成和包含可信令牌的要求,证明签名本身在特定日期和时间确实存在。
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],该配置文件通过提供超出 ISO 限制的附加限制来实现 PDF 签名更大的互操作性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 节 - 范围)
特别是,您必须知道您是否也在考虑 ETSI EN 319 142-2 中的附加 PAdES 签名配置文件“用于 PDF 中的 CMS 数字签名”或“用于 PDF 中的 XAdES 签名签名 XML 内容”,因为这两个配置文件差异很大与其余的相比。
我假设您不会考虑这两个配置文件,因为前者或多或少是旧的 ISO 32000-1 CMS 签名,带有一些大多数签名者无论如何都会遵循的限制,而后者是 XML 签名,它们是完全不同的动物。
所有其余配置文件的主要区别在于添加到文档中的验证相关信息和时间戳的数量和类型,以使验证越来越不依赖于必须在线检索的数据。
手动:您使用 PDF 浏览器(如 iText RUPS 或 PDFBox PDF 调试器)、十六进制查看器、ASN.1 转储实用程序、上面列表中的适用基本规范以及基本规范中引用的附加规范,然后检查所有标准。
对于单个签名来说,这需要相当长的时间,但最终您可以了解有关测试签名的所有信息。仅当您有使用这些工具和处理规范的经验,或者您确实有很多时间学习时,我才推荐这样做。
以编程方式:您采用通用 PDF 库(如果您采用与创建签名所用的库不同的库,结果的可信度可能会增加)、安全功能库(例如 BouncyCastle)、基本规范和附加规范,并开始实施测试规范中的标准的程序。
这需要相当长的时间来开发,但随后可以重复使用,例如用于质量保证和回归预防。仅当您有使用这些库和处理规范的经验,或者您确实有很多时间学习时,我才推荐这样做。
您使用现有的软件或服务来为您评估签名,例如ETSI 签名一致性检查器( http://signatures-conformance-checker.etsi.org/pub/index.shtml ),这是一种执行大量检查的免费在线工具为了验证 ETSI 高级电子签名的一致性。
这显然是最快的选择,但您通常无法确定测试执行的可靠性。因此,作为第一意见是好的,但根据风险程度,我想要更多的安全性。
您可以聘请专家根据所需的配置文件来分析和评估您签名的有效性。
这可能会很昂贵,但至少如果以后您因不合规而遇到麻烦,您可以求助于某人。