5 月 4 日在五一假期的最后一天,从上午开始很多朋友陆续发现自己的扩展被禁用,无法安装新扩展,这种情况一直持续到当天晚上,我们放出了热更新,但用户需要等待一段时间才能接收到,且关闭了实验项目的用户需手动操作。随后为了修复这个问题我们陆续发布了 66.0.4、66.0.5 两个小版本,对于使用 52-60 等不支持版本,和 61-65 非最新版的用户,也可以通过安装扩展的方式恢复使用。
问题发生时是在假期,这多少减少了遇到此问题的用户数,Firefox 的现有机制决定了我们并没有多少有效且及时的方式来快速的解决这件事。从统计数据来看,有 60% 的用户安装了扩展,中国用户由于同步机制的存在可能要更高。无论是什么原因,当一个问题会影响超过 60% 的用户时,都是不能被忽视的。考虑到部分用户为了接收热更新被迫开启了实验项目,Mozilla 删除了 5 月 4 日至 11 日收集的所有遥测数据。这篇文章会说明为什么会发生这件事,已经后续的止损,修复是如何进行的。
扩展在 Firefox 中安装运行需要被签名,签名的流程是根证书离线存于硬体安全模块(HSM)中,根证书用于签署新的中间证书,中间证书用于签署最终实体证书,后者又签署单独的附加组件。中间证书是保持在线的,每隔几年需要由根证书重新签署。