我正在开发一个.NET PDF签名应用程序,允许使用SmartCard(比利时ID)进行签名。另外,我想签名支持LTV。
我已经按照iText的说明和示例进行了操作,似乎效果很好。 Acrobat Reader DC表示签名有效,并提供LTV 但是有一个实际问题:包含的CRL太大了。我的测试ID为14MB。这意味着,对于每个签名,需要下载14MB,这会降低操作速度并显着增加每个签名PDF的文件大小。
我想知道在支持LTV时是否还有其他方法可以包含完整的CRL?包含完整的CRL似乎有点矫枉过正,而似乎需要的唯一“事情”是包含一个可验证的证据,证明链中的证书在签名时没有被撤销。我认为使用OCSP可能会提供这样的功能,但是简单地删除CRL并包含OcspClientBouncyCastle实例并不能解决问题。是否给予SignDetached的OCSP用于检查证书是否在签名时被撤销了?
相关问题涉及LTV“支持”本身。正如我所提到的,Acrobat Reader仅指示在包含CRL时该文件支持LTV。检查在线服务http://dss.nowina.lu/validation(欧盟参考)似乎表明了其他内容。在那里,即使没有嵌入式CRL的文件也有一个有效的检查背后的描述“是否是AdES-T验证结论?” (这是“长期验证数据”下的唯一检查点)。因此,我想知道甚至是否需要包含LTV的CRL?
可以说我很困惑:)。
顺便说一句,来自同一个验证服务的2个警告似乎无法解决:“'issuer-serial'属性不存在或不匹配!”并且“SSCD不支持签名者的证书!”。但也许那是另一个问题。
提前感谢您的帮助。
答案 0 :(得分:1)
我查看了您的示例文档。 不符合任何LTV配置文件,仅符合T-Level,即带有时间戳。
PDF签名仅通过使用子过滤器 ETSI.CAdES.detached 嵌入单个CMS容器来实现,其中包含
CMS容器证书集中的签署者证书的证书链
C = BE,CN =比利时根CA2
C = BE,CN = Citizen CA,SERIALNUMBER = 201103
C = BE,CN = Donny Tytgat(签名),SURNAME = Tytgat,GIVENNAME = Donny Geert,SERIALNUMBER = 81032305309);
签名的Adobe RevocationInfoArchival
属性,其中包含对签署者证书的单个良好OCSP响应;回复由
具有id-pkix-ocsp-nocheck
扩展名;
由
签名的签名时间戳因此,签名符合基线T-Level
符合T-Level 的PAdES签名必须是符合B-Level标准的信任服务 Provider [i.4]生成了一个可信令牌(时间标记或时间戳令牌),证明了签名本身 存在于某个日期和时间。
(第7节 - T级一致性要求 - ETSI TS 103 172 V2.2.2)
其中B级一致性定义为
本节定义了声称符合B级要求的PAdES签名必须满足的要求。 目前的条款规定了短期电子签名的合规要求。
此子句实际上是个人资料 PAdES-BES(不包含签名策略标识符的签名)和PAdES-EPES(签名 确实包含签名策略标识符签名。
(第6节 - B级一致性要求 - ibidem)
(还满足其他要求。)
不符合要求的LT级:
生成器应包括已在其中使用的全套撤销数据(CRL或OCSP响应) 验证签名者和签名中使用的CA证书。此集包括所有证书状态 验证签名证书所需的信息,用于验证证书中存在的任何属性证书 签名,以及用于验证任何时间戳令牌的签名证书(即TSA证书) 并入签名。
(第8节 - LT级别一致性要求 - ibidem)
因为没有关于CA证书或TSA证书的撤销信息。
因此,它也可以不符合LTA-Level
符合LTA-level 的PAdES签名应符合LT-Level的一个或多个符号 文件时间戳已被纳入
我想知道在支持LTV时是否还有其他方法可以包含完整的CRL?包含完整的CRL似乎有点矫枉过正,而似乎需要的唯一“事情”是包含一个可验证的证据,证明链中的证书在签名时没有被撤销。我认为使用OCSP可能会提供这样的功能
给定适当的PKI基础设施是可能的。但遗憾的是,CA和TSA证书都不包含有关OCSP响应者的信息。因此,比利时公民PKI不为这些证书提供OCSP服务,或者它只是不公开该条款。
BTW,这就是Diagnostic Tree的评论
<Message Id="0">OSCP Uri not found in certificate meta-data !</Message>
是您在使用http://dss.nowina.lu/validation服务验证签名时获得的。
在那里,即使没有嵌入式CRL的文件也有一个有效的检查背后的描述“是否是AdES-T验证结论?” (这是“长期验证数据”下的唯一检查点)。
此用户界面布局误导了您,如上所述,对LTV相关的配置文件有更多要求。