Mozilla公司
使用基于仍在使用的协议的外部服务进行证书验证
为了阻止已被泄露并被证书颁发机构撤销的证书,Firefox 自 2015 年起使用了集中式黑名单
默认情况下,如果无法通过 OCSP 进行验证,浏览器会认为该证书有效。 该服务可能由于网络问题和内部网络限制而不可用,或者被攻击者阻止——要在 MITM 攻击期间绕过 OCSP 检查,只需阻止对检查服务的访问即可。 部分为了防止此类攻击,已经实施了一项技术
CRLite 允许您将所有已撤销证书的完整信息整合到一个易于更新的结构中,大小仅为 1 MB,这使得在客户端存储完整的 CRL 数据库成为可能。
浏览器将能够每天同步其有关已撤销证书的数据副本,并且该数据库在任何条件下都可用。
CRLite 结合了来自
为了消除误报,CRLite 引入了额外的校正过滤级别。 生成结构后,将搜索所有源记录并识别任何误报。 根据此检查的结果,创建一个附加结构,该结构级联到第一个结构并纠正由此产生的误报。 重复该操作,直到完全消除控制检查期间的误报。 通常,创建 7-10 层足以完全覆盖所有数据。 由于数据库的状态由于定期同步而稍微滞后于 CRL 的当前状态,因此使用 OCSP 协议对 CRLite 数据库上次更新后颁发的新证书进行检查,包括使用
使用布隆过滤器,来自 WebPKI 的 100 月份信息片段(涵盖 750 亿个有效证书和 1.3 万个已撤销证书)能够打包成 16 MB 大小的结构。 结构生成过程非常消耗资源,但它是在 Mozilla 服务器上执行的,并且为用户提供了现成的更新。 例如,以二进制形式,生成过程中使用的源数据存储在 Redis DBMS 中时需要大约 6.7 GB 的内存,而以十六进制形式,所有证书序列号的转储大约需要 40 GB 的内存。 聚合所有已撤销和活动证书的过程大约需要 20 分钟,基于布隆过滤器生成打包结构的过程还需要 XNUMX 分钟。
Mozilla 目前确保 CRLite 数据库每天更新四次(并非所有更新都会传递给客户端)。 增量更新的生成尚未实现 - 使用 bsdiff4(用于为版本创建增量更新)无法为 CRLite 提供足够的效率,并且更新量过大。 为了消除这个缺点,计划重新设计存储结构的格式,以消除不必要的层重建和删除。
CRLite 目前在 Firefox 中以被动模式工作,并与 OCSP 并行使用,以累积有关正确操作的统计信息。 CRLite 可以切换到主扫描模式;为此,您需要在 about:config 中设置参数 security.pki.crlite_mode = 2。
来源: opennet.ru