
5月4日,在莫斯科的凌晨四点(或稍晚些时候,取决于运气),所有已安装的扩展程序都不再对Firefox浏览器的用户起作用,并且不可能安装新的附加组件。 问题出在浏览器端-用来签署所有扩展名的中间证书已过期。 此事件与信息安全有间接关系-运气不好是由于开发人员出于逻辑上的愿望保护用户免受恶意扩展(从2015年开始),并且由于没有人注意到证书即将过期。
不过,这是一个有趣的故事,结局适中:可以在12小时内解决一个相当平凡的问题。 这也是一个有据可查的事件,开发人员提供了很多信息,用户获得了许多令人难以置信的
戏剧性信息。 在此过程中,出现了隐私问题,这一问题得到了有效解决。
关于扩展名问题的第一份报告甚至在5月3日证书过期之前就已出现。 关于Reddit至少有这样一种
讨论 。 该计算机上线程的作者设置的日期错误,因此他是最早发现该错误的人之一(并通过设置正确的日期“修复”了该错误,但时间不长)。 稍后,所有用户都出现了问题,但是出现的时间不同:每隔24小时检查一次用于签署扩展名的证书的有效性。 此处详细介绍了不同程度的详细历史:
新闻 ,
错误报告 ,
技术支持 ,包含技术细节的
博客文章 ,以及代表CTO Firefox的事件
故事 。
这就是在Firefox中对扩展名进行签名的过程。 链顶部的根证书位于脱机存储中,每隔几年就会在其帮助下创建一个中间证书,用于对扩展进行签名。 这是临时证书,于5月4日到期。 Firefox开发人员的第一个解决方法是发布一个补丁,该补丁会暂时停止对扩展证书的验证。 如果在检查之前向您飞过此类补丁,那么问题就已经过去了。 此外,开发人员有两种方法:发行新版本的Firefox或新证书,以在当前版本中进行有效的扩展签名。 重新签名所有添加项(超过15,000)是不可能的。 也许更准确地说,但是这将花费很长时间。
鉴于时间紧迫(他们在5月3日晚上,当然是在星期五发现了Firefox中的问题!),因此决定研究这两种方法。 从技术上讲,有机会发布新证书,a)必须生成此证书,b)尽快将其交付给用户。 第一部分的复杂性在于,根证书存储在硬件模块中,但仍需要访问(
在林中或在银行单元中 )。 另外,当开发人员获得根证书时,不可能立即生成一个新的中间证书,并且每次都要花费一两个小时进行必要的测试。 如何运送? 为此,我们使用了Firefox Studies机制-实际上是“来自浏览器开发人员”的附件分发系统,在正常情况下,该系统用于实验代码。 事实证明,这比构建新版本并通过常规渠道发送更新要快。
但是,这里也出现了同样的隐私问题。 仅当将浏览器使用情况信息发送回Firefox开发人员时,才包含Firefox Studies作为实验系统。 这对于Beta测试是合乎逻辑的,但是在交付所有用户通常需要的补丁的情况下看起来有些奇怪。 这个问题已得到很好解决:Firefox决定
删除 5月4日至5月11日收到的所有遥测。
这不是理想的解决方案。 那些禁用遥测(和研究)的用户必须手动启用这些选项。 在某些版本中,此选项根本没有。 浏览器的Android版本不支持研究。 永久受影响的较旧版本Firefox的用户,他们不想进行更新,但使用附加组件。 5月8日,发布了Firefox
66.0.5和Firefox
ESR 60.6.3版本,最终解决了证书问题,不再需要遥测研究。 已计划从Firefox 52开始针对旧版本的浏览器进行更新。此问题已解决,但对于许多用户而言,它没有通过就无法通过-扩展中存在数据丢失和设置的情况。
这个故事有两个结论。 首先,Firefox承诺在基础架构中建立一个“定时炸弹”跟踪系统,以防止将来发生这种情况。 其次,很明显,甚至采用不同方式向用户分发补丁程序的更新分发系统或多或少都没有我们想要的有效。 据CTO Firefox称,即使他们希望禁用任何其他实验性功能和/或遥测功能,浏览器用户也应该能够接收更新和修补程序。 这是一个愉快的结局故事,它可能会导致Firefox的更新机制得到改善,Firefox是一种罕见的主流浏览器,与任何主要的IT公司都不相关。 但是请不要忘记,她开始用自己的腿进行寓言式的射击。
免责声明:本摘要中表达的观点可能并不总是与卡巴斯基实验室的官方立场相符。 亲爱的编辑们通常建议以健康的怀疑态度对待任何观点。