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中實現。

本文由 黑客視界 綜合網絡整理,圖片源自網絡;轉載請註明“轉自黑客視界”,並附上鍊接。


分享到:


相關文章: