假设我在1月签发了一个签名证书,并要求每天签发一个CRL (在1天内到期)来验证该签名的有效性。
然后在七月的某个时候,我需要撤销那张证书。
我的目标是不使先前所有与该密钥签署的电子邮件无效,而是给收件人一些保证,当他们收到消息时,该密钥是有效和正确的。CMS/PKCS7 7可能会做我需要的事情,如果:
考虑到对SMIME的不一致支持(例如gmail和Google),是否有任何软件或技术可以以解决我的需求的方式进行验证?
我所寻找的是可行的,还是我为了错误的目的使用了错误的技术?
发布于 2015-03-02 23:31:09
您正在寻找的理论上是可行的,只要您添加缺失的额外部分,即某种形式的时间戳。然而,现有的、已部署的实现的行为可能是一个问题。
概念上的想法是,如果您在某条消息的日期T上验证一个签名,那么,在稍后的某个日期T',您仍然可以记住签名是正确的,并根据这一信念行事-即使签名在日期T‘不再可验证,例如因为签名者的证书在同一时间被撤销。
在撤销的情况下,每个撤销信息(无论是在CRL或OCSP响应中)都有一个吊销日期。该字段在CRL中称为revocationDate,以下列方式为已定义:
The date on which the revocation occurred is specified.因此,当CRL说一个证书在6月17日14:10 +00:00被撤销时,它还暗含着在6月15日,证书没有被撤销。因此,如果收件人能够以某种方式确保他在撤销日期之前的某个日期收到电子邮件(及其签名),并且存储的电子邮件没有以任何方式更改,那么该签名在概念上仍然是可验证的。
上述理论中的一个严重漏洞是,现有的CA不一定以所需的精度写入撤销日期。例如,如果使用Microsoft的PKI (Active Directory certificate )撤销两次相同的证书,则吊销日期将是第二次吊销的日期,而不是第一次。但是,如果您使用微软的FIM CM产品管理智能卡上的证书(前沿身份管理--证书管理),那么您将重复使用这些证书。
通常,证明某一数据在前一日期存在的证据依赖于时间戳。对于签署文件的长期存档,在签署者的证书过期之后(不仅是在签字人的证书过期之后,而且在一些中间CA证书也过期之后),您需要定期地应用时间戳,就像一层新的油漆。有些标准已经存在,但它们并不比简单的CMS更复杂(CAdES建立在CMS的基础上,但是有一些相当多毛的额外属性)。有关更多讨论和指针,请参见这个答案。
https://security.stackexchange.com/questions/82555
复制相似问题