You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ETSI.CAdES.detached与adbe.pkcs7.detached PDF签名技术问询

ETSI.CAdES.detached PDF签名实现相关问题解答

一、四项核心修改的合规必要性

这四项均为ETSI EN 319 142-1规范下的合规必要项:

  • /SubFilter值:必须改为ETSI.CAdES.detached,这是PDF标识签名类型的核心字段,是区分CAdES与传统PKCS#7签名的关键依据。
  • DSS结构:需采用符合ETSI TS 102 778标准的Document Security Store,用于统一存储签名验证所需的证书、CRL、OCSP响应等材料,替代adbe模式下的LTV存储逻辑,是CAdES签名合规性的基础。
  • ESS属性:必须添加Enhanced Security Services相关属性(如id-ess-signing-certificate-v2、id-ess-revocation-refs等),这类属性属于签名的已认证部分,用于明确签名依赖的证书链、吊销状态,是CAdES签名完整性与可追溯性的核心要求。
  • Document-Time-Stamp(DTS):需在签名后添加文档时间戳,固化签名时刻的文档状态与验证材料有效性,是ETSI规范中保障长期有效性的强制要求。

二、长期有效性对比

若四项修改均合规实现,ETSI.CAdES.detached签名的长期有效性不弱于adbe.pkcs7.detached签名,甚至在标准化程度上更严谨:ETSI的DSS与DTS机制是专门针对长期验证设计的体系,只要按规范维护,可确保签名在证书过期后仍能被有效验证,其长期有效性的保障逻辑更清晰、更符合国际标准化要求。

三、ETSI需重盖时间戳而adbe模式无需的原因及规避方法

原因

adbe.pkcs7.detached的LTV模式逻辑是一次性嵌入所有验证材料,只要嵌入的CRL/OCSP在验证时未过期,即可完成签名验证;但该模式未强制要求后续维护,若嵌入的吊销信息过期,签名的长期有效性也会失效。

而ETSI EN 319 142-1的CAdES规范要求周期性用时间戳固化验证材料状态:当原始吊销信息过期后,时间戳可证明某一时刻这些材料是有效的,从而延续签名的长期可验证性——这是ETSI对长期有效性的标准化保障机制,而非adbe模式的“被动依赖嵌入材料有效期”。

规避方法

  • 嵌入长期归档型吊销信息:使用CA提供的归档CRL/OCSP(部分CA支持生成带有长期有效性标记的吊销响应),或符合ETSI TS 102 231标准的SCVP验证响应,减少吊销信息过期的影响。
  • 初始签名时添加覆盖型归档时间戳:在完成签名并嵌入所有验证材料后,立即添加一个覆盖整个签名域及验证材料的归档时间戳,将签名状态永久固化在时间点上,后续只要时间戳CA的根证书有效,无需重复操作。

四、ESS属性在SignedData结构中的构建方式

ESS属性属于SignedData中SignerInfo的authenticatedAttributes(已认证属性)部分,构建步骤如下:

  1. 确定核心ESS属性类型:
    • id-ess-signing-certificate-v2:存储签名证书的哈希值与标识信息,用于明确签名主体。
    • id-ess-certificate-refs:列出签名依赖的所有证书的哈希值、Issuer/Serial信息,构建完整证书链追溯关系。
    • id-ess-revocation-refs:绑定对应证书的CRL/OCSP响应哈希值,证明签名时刻的吊销状态。
  2. 按ASN.1编码规则将属性封装为Attribute结构,添加到SignerInfo的authenticatedAttributes中,确保属性值被包含在签名哈希计算范围内(即属性内容会被私钥签名,不可篡改)。
  3. 注意属性顺序:ETSI规范要求id-ess-signing-certificate-v2需放在已认证属性的靠前位置,避免验证时出现兼容性问题。

五、SignedData结构的其他变更

除ESS属性外,还有以下关键调整:

  • 签名算法OID:需使用符合ETSI规范的算法标识,例如SHA256withRSA对应OID为1.2.840.113549.1.1.11,需与ESS属性中的哈希算法保持一致。
  • 未认证属性扩展:文档时间戳会作为UnsignedAttributes添加到SignerInfo中,或作为独立的签名域嵌入PDF。
  • 归档属性支持:可添加id-aa-ets-archiveTimestampV3等归档时间戳属性,进一步强化长期有效性的保障。

六、PDFBox和BouncyCastle的支持情况

  • BouncyCastle:完全支持ETSI CAdES规范,提供了ESSCertIDv2、CMSSignedDataGenerator等工具类,可直接构建包含ESS属性的SignedData结构,同时支持时间戳的生成与嵌入。
  • PDFBox:需手动扩展实现部分逻辑:
    • 可通过PDSignature.setSubFilter("ETSI.CAdES.detached")直接设置签名类型标识。
    • DSS结构可通过PDDocumentSecurityStore类构建,PDFBox提供了添加证书、CRL、OCSP条目的API,需按ETSI规范组织内容。
    • 结合BouncyCastle生成的CAdES SignedData,嵌入到PDFBox创建的签名域中即可完成完整实现。

内容的提问来源于stack exchange,提问作者F.C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:54:33