有时在证书有效期前就得让证书不再有效,这即为证书的撤销。证书撤销的理由有许多,如用户身份的改变、密钥的泄露等。因此,得有一种有效与可信的方法在证书自然超期之前把它撤销。
但证书撤销的问题并未得到很好解决,现有的方法可分为:
·用周期性的发布机制诸如证书撤销列表(CRL),CRL还可分为几种不同的形式;
·在线查询机制,如在线证书状态协议(OCSP)。
下面介绍具体的证书撤销的方法。
1.完全CRL
CRL是一种含撤销的证书列表的签名数据结构。CRL的完整性与可靠性是通过它自己的数字签名进行确保的。CRL的签名者既可是颁发证书的签名者,也可不是。
完全CRL是把某个CA域内的全部撤销信息都含在一个CRL中。完全CBL适合于终端实体数目相对较少的域中。
2.Authority撤销列表(ARL)
ARL实际上是仅含CA的撤销信息的CRL。ARL的颁发者一般是上级CA,承担撤销子CA的证书或交叉证书的职责。当验证有关证书时,一个有效的ARL对任意签名的CA均一定得可见。
3.CRL分布点
CRL分布点可让一个CA的撤销信息由多个CRL发布出去,CRL分布点与完全CRL比较的优势如下。
(1)撤销信息可被分成许多可控的片段来防止超大CRL的增长。
(2)证书可体现CRL分布点的位置,如此用户则无需事先了解关于特定证书的撤销信息的存放位置。
4.重定向CRL
重定向CRL可用于展示在什么位置能找到每个CRL分段。重定对CRL给出相对标准CRL分布点更灵活的分段方位信息。这是用定义一种新的CRL扩展达到的。这种新扩展可在不影响已有证书的情况下,改变撤销信息的分段和/或分布位置。
5.增量CRL
增量CRL每次仅产生相对一个已颁发的基本CRL增加的撤销信息。这样增量CRL的文件大小比完全CRL小许多,改善了性能。可在同一个基本CRL的基础上,建立多个增量CRL每个后面的增量CRL除含有上一个增量CBL中的撤销信息外,还增加了新的已撤销证书。因此,只用检索最新的增量CRL,无需存储之前颁发的不同增量CRL。
6.间接CRL
间接CRL使在一个CRL中发布来自多个CA的撤销信息。间接CRL的使用可减少用户在证书验证过程中需检索的总的CRL数目。此方法在域间也是非常有效的,降低了流量负载和成本。撤销信息出自不同的地方,就必须确定在证书撤销列表中各个项目的相应CA,所以在每项里均有一个证书颁发者字段。
7.证书撤销树(CRT)
CRT技术是基于Merkle杂凑树的周期发布机制,就是说该树表示了某个PKI团体的全部撤销信息。要得到一个杂凑树,每个CA则需产生一系列的序列。每个序列表示一个范围,此范围的最低点代表本CA的某个撤销证书的序列号,而范围内的证书都没有被撤销。一个CA对应的各个序列排序,全体CA的序列集就能产生杂凑树。CRT的主要长处是它用一种很简洁的方式来代表大量的证书撤销信息。在数量级上,1个CRT的大小为log2N,N为已撤销证书的数量。
8.在线查询机制
在线查询机制一般要求用户是在线状态。目前最广泛的在线查询机制是在线证书状态协议(OCSP)。OCSP(RFC2560)是一种比较简单的请求/响应协议。它给出了从可信第三方(OCSP响应者)得到在线撤销信息的方式。