07.31 Mozilla为Firefox开发类似Chrome的“站点隔离”功能

Mozilla为Firefox开发类似Chrome的“站点隔离”功能

Firefox浏览器背后的机构Mozilla Foundation正在努力为其浏览器添加一项新功能,类似于谷歌今年向Chrome用户推出的网站隔离功能。

网站隔离的工作原理是为用户在选项卡中加载的任何域打开新的浏览器进程,谷歌这样做是为了隔离不同进程中不同站点的代码,从而在网站之间创建更难以渗透的安全边界,并防止来自其他站点的恶意攻击来自其他站点的数据。谷歌在去年12月发布的Chrome 63中添加了站点隔离 。但当时只有当用户更改Chrome标记并在其每个浏览器中手动启用它时,它才可用。

有关Meltdown和Spectre漏洞的详细信息公开后[Meltdown对应CVE-2017-5754(乱序执行缓存污染),Spectre对应CVE-2017-5753(边界检查绕过)与CVE-2017-5715(分支目标注入)],Google加速了其网站隔离发布计划。从已经进行了几个月的实验项目开始,站点隔离成为Chrome防御Meltdown和Spectre攻击的主要防御手段,并立即进入加速推出阶段。

该计划于5月底谷歌发布Chrome 67时完成。根据Google的说法,99%更新到Chrome 67 的用户默认会启用网站隔离功能。

Mozilla启动了Project Fission

当对站点隔离的功能需求成为大势所趋时,Chrome不会是唯一具有网站隔离功能的浏览器。今年4月,Mozilla总部也开始开展类似功能的工作,该计划被称为Project Fission。

根据媒体消息,该项目仍处于早期阶段。实现每个域进程架构是一项相对简单的任务,特别是在Mozilla已经推出Electrolysis之后,这个项目将Firefox从单进程应用程序拆分为多进程架构。

目前,Firefox的工作原理是创建一个GUI(图形用户界面)流程和多个页面渲染流程。Firefox仍然被限制在它可以创建的最大渲染进程数量上,但是多进程架构已经就位。

由于Firefox创建了更多的进程,这些进程也开始占用PC机的内存,从而增加了RAM的使用,因此已经建立了最大呈现过程的限制。

技术层面上,切换到每个域/站点流程架构应该相对容易,但主要障碍仍然是RAM性能。

改进Firefox的RAM使用

本月,Mozilla工程师开始致力于提高性能。7月10日,Mozilla宣布启动Fission MemShrink,这是Project Fission的一个子项目,期间Mozilla工程师计划改进Firefox的RAM使用。我们引用Mozilla邮件列表中的内容:

Fission MemShrink项目是Project Fission(也称为站点隔离)最容易被忽视的方面之一,但在整个项目中举足轻重,所以我们需要努力达成。

问题在于:为了使站点隔离起作用,我们需要能够在普通的Firefox会话中运行至少*100个内容进程。这些进程中的每一个都有自己的基本内存和溢出内存,我们仅用于创建进程,而不管其中运行的是什么。在裂变后的站点内,每个进程的占用空间需要小于10MB,以便将Fission的额外‘开销’保持在1GB以下。目前,在我们的最佳平台Windows 10上,内存介于17到21MB之间。Linux和OS-X的容量在25到35MB之间。换句话说,普通会话在2到3.5GB之间。

这意味着,在最好的情况下,我们需要将内容进程中使用的内存至少减少 7MB。当然,问题在于我们可以在不失去功能的情况下减少内存,难以获得巨大成功。但是,我们可以争取很多中小‘战争’的胜利。

Firefox用户可以在此Bugzilla页面上跟踪Fission MemShrink的进展。Fission(站点隔离)功能的优点不容忽视。没有最后期限,甚至不能保证Fission MemShrink会成功,但我们至少知道Mozilla足够关心这个点,至少进行了认真的尝试。

Firefox过去经常被标记为“记忆猪”。即使Mozilla工程师无法在每个进程中减少7MB的内存使用量来使Fission MemShrink成功,他们设法削减的内容很可能会在Firefox中实现。

本文由 黑客视界 综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。


分享到:


相關文章: