证书撤销
证书撤销
数字证书的“生命”不一定会延续到失效日期。
当订户个人身份信息发生变化,或者订户私钥丢失、泄露或者疑似泄露时,证书订户应及时地向CA提出证书的撤销请求,CA也应及时地把此证书放入公开发布的证书撤销列表。证书的撤销也表示了证书生命的终结。
此外,数字证书在一些特殊情况下也可能在其失效日期之前被撤销。例如,数字证书订户没有按时向CA公司缴纳年费,数字证书订户擅自将证书进行了CA所不允许的用途且被CA发现,或者政府机关等权力部门(超出PKI系统技术范畴但是具有法律行政权力的部门单位)提出对尚处于有效期内的某数字证书的撤销要求。
当发生上述各种情况时,相应的数字证书继续正常使用可能会造成较为严重的影响,应当及时撤销。比如私钥泄露,可能会被其它获得此私钥的实体仿造数字签名去签署各种电子文件等,造成不可预计的各种结果包括经济损失。
CA一般采用证书撤销列表的方式将被撤销的证书告知其他订户,CRL中列举着所有在有效期内但被撤销的数字证书。
证书撤销的流程如下:
1. 订户或者其上级单位向RA提出撤销请求;
2. RA审查撤销请求;
3. 审查通过后,RA将撤销请求发送给CA或者CRL签发机构;
4. CA或者CRL签发机构修改证书状态,并签发新的CRL。
当该数字证书被放入CRL后,数字证书则被认为失效。注意,失效并不意味着无法被使用。如果窃取到甲的私钥的乙用甲的私钥签名了一份文件发送给丙,并附上甲的证书,如果丙忽视了对CRL的查看,丙就依然会用甲的证书成功的验证这份非法的签名,并会认为甲确实对这份文件签名。
随之而来一个话题,就是如何让各依赖方能够容易、及时、正确地得到他们需要了解的证书的撤销信息。这涉及到证书撤销状态的发布方式和发布时间这两个方面。
首先,我们已经知道CA一般会初始化和维持一个CRL,罗列着已经被撤销的数字证书。CRL的发布方式一般是通过网络,包括Web、FTP等,在数字证书的扩展里一般有存放CRL的地址。除此之外,本地一般会通过一个CRL缓存机制来缓存着一份最新的CRL。
其次,CRL的发布间隔时间也是一个值得考虑的问题。这里存在着一个博弈,如果CA非常频繁地更新CRL,那么CA运营的成本将提高,但是可以把作废证书可能造成的损失降低。反之,降低CRL的更新频率,CA在节省这方面成本的同时,也加大了作废证书由于没有及时发布而使得依赖方蒙受损失的风险。CA应该选择合适的证书撤销列表发布策略来达到最优化的成本和风险控制[/url]]。上面所提到的CRL缓存时间和CA的CRL更新周期应该是一致,使得本地缓存的CRL是当前最新的CRL。
常用的证书撤销状态发布方式还有在线证书状态协议(Online Certificate Status Protocol,简称为OCSP),该协议为依赖方提供对证书状态的实时在线查询。依赖方不用检查证书撤销列表而是向证书状态查询服务器在线询问某证书的状态。但是OCSP服务器必须对查询的结果进行数字签名,而签名是消耗计算资源的操作,所以对OCSP服务器的要求很高。由于查询者可以是任何实体,没有办法进行身份验证,所以OCSP服务器的这种在线的响应方式很可能会遭到DOS/DDOS攻击。
证书撤销树(Certificate Revocation Tree,简称为CRT)是一个比较折中的方案。CRT是基于二叉HASH树的对传统CRL的改造,它基本上拥有了CRL和OCSP的优势,且可以快速地返回查询结果。
[[i]] Chengyu Ma, Nan Hu, Yingjiu Li. On the Release of CRLs in Public Key Infrastructure. 15th USENIX Security Symposium.
参考资料
最新修订时间:2009-09-27 17:24
目录
概述
参考资料