检查特定时间的证书有效性

时间:2012-08-31 12:11:52

标签: certificate ocsp

我正在使用具有PDF签名选项的系统。

现在,在创建一个互补的Android应用程序时,我遇到了一个难题:如何检查证书的有效性?

问题是,我对签名时证书是否有效感兴趣。现在我知道,Adobe有这种功能,但我想知道如何自己实现这样的功能。

我已经成功检查了证书对OCSP的状态,但它唯一给我的证书状态,无论是否已被撤销/暂停和日期(这是一个incorect,仍然困扰我) 。我还看了一下CRL,但似乎每个证书只有一个记录,这意味着它无法告诉我证书在特定时间点是否有效。

示例:

Certificate 01 4D 44 5B - issued on 20.08.2012 - suspended on 21.08.2012 - reactivated on 22.08.2012

PDF document1 - signed on 20.08.2012

PDF document2 - signed on 21.08.2012

现在,如果我们在Adobe Reader中检查文档有效性, PDF1将显示有效,PDF2将显示为无效

Adob​​e如何知道,以及如何找到相同的信息?也许有一些操作系统程序,我可以查看谁的来源,找到这个?

1 个答案:

答案 0 :(得分:2)

这通常通过在数字签名中嵌入时间戳来完成,通常由不同但受信任的CA签署,如Microsoft authenticode中使用的那样。将此时间戳与证书的有效期进行比较,以确定证书在签名时是否有效。

另请参阅How does countersign in code signing work?signtool.exe /t option以获取更多相关内容。