CRLite
定义
CRLite 是 Mozilla 为 Firefox 打造的压缩吊销数据集,浏览器无需联系 CA,就能在本地判断公开记录的证书是否已被吊销。
CRLite 是 Mozilla 基于 2017 年一项学术研究为 Firefox 实现的吊销检查方案。它把参与 CA 在 证书透明度日志中证书的吊销状态压缩成一组紧凑的过滤器:Mozilla 的服务器收集各 CA 发布的 CRL,结合 CT 数据计算后定期推送给 Firefox,浏览器在本地就能回答“这张证书吊销了吗”。由于过滤器是针对全部已知证书构建的,对覆盖范围内的证书可以给出确定的答案。
为什么重要
传统吊销检查有两难:实时查询 OCSP 会泄露浏览记录,而且通常是软失败;下载完整的 CRL 对浏览器来说又太重。CRLite 两头都避开了:CA 看不到用户访问了哪个站点,握手不增加延迟,攻击者也无法通过屏蔽响应服务器来绕过检查。它依赖 CA 发布完整的 CRL 并向根证书计划披露,而 SC-063 投票把 CRL 改为强制,正好保证了这一数据来源。Chrome 走的是另一条路:CRLSets,只覆盖经过筛选的一部分吊销记录。
例子
假设 example.com 的私钥泄露,CA 吊销了它的证书:序列号出现在 CA 下一版 CRL 中,Mozilla 的处理流程把它纳入下一次 CRLite 更新,此后 Firefox 用户访问 example.com 就会看到证书已被吊销的错误(SEC_ERROR_REVOKED_CERTIFICATE)。即使攻击者拦截了所有发往 CA 的流量,这个结果也不受影响。
常见误区
- CRLite 就是提前下载好的 CRL。 它是从多家 CA 的 CRL 推导出的压缩数据,体积远小于原始 CRL。
- 类似布隆过滤器的结构必然有误报。 CRLite 的过滤器针对全部已记录的证书构建,对覆盖范围内的证书给出精确结果。
- Chrome 也用 CRLite。 Chrome 用的是自家的 CRLSets,CRLite 是 Mozilla 的机制。