信息來(lái)源:FreeBuf
根據(jù)Net MarketShare的數(shù)據(jù)顯示,2016年8月份Firefox瀏覽器占全球市場(chǎng)份額7.69%,僅次于Chrome和IE,排名第三。可見(jiàn),F(xiàn)irefox是一款比較受歡迎的瀏覽器,那么,F(xiàn)irefox瀏覽器的開(kāi)發(fā)人員又在其安全性方面做了哪些努力呢?下面,筆者就詳細(xì)介紹下Firefox瀏覽器新增的安全機(jī)制—附加組件簽名機(jī)制,以幫助用戶更好地了解和使用Firefox。
歷史版本
自從2002年Firefox誕生以來(lái),其版本更新非??欤瑘D1顯示了其穩(wěn)定版本的更新情況。截至2016年9月23日,最新穩(wěn)定版本是49.0.1。
圖1Firefox歷史版本
附加組件簽名機(jī)制
1、什么是附加組件
附加組件是一種通過(guò)增添額外的功能或樣式讓用戶實(shí)現(xiàn)個(gè)性化 Firefox 的應(yīng)用程序,包括擴(kuò)展、外觀、插件、服務(wù)等類型,可通過(guò)在Firefox中訪問(wèn)地址about:addons查看(如圖2所示)。
圖2Firefox附加組件
然而,任何事物都具有兩面性。附加組件在給用戶提供了方便的同時(shí),也帶來(lái)了一定的風(fēng)險(xiǎn)。例如,某些附加組件會(huì)篡改瀏覽器設(shè)置或者竊取用戶信息,有的會(huì)在網(wǎng)頁(yè)中注入廣告等,這樣的情況現(xiàn)在越來(lái)越普遍。因此,必須有措施來(lái)更好地管理附加組件。
2、附加組件的黑名單
為了更好的保障用戶的安全,Mozilla維護(hù)了一個(gè)附加組件的黑名單列表,已知會(huì)造成 Firefox 穩(wěn)定性或安全性問(wèn)題的附加組件(擴(kuò)展、主題和插件)會(huì)放入“阻擋列表”(Blocklist,如圖3所示)。
圖3 附加組件阻擋列表
附加組件的黑名單系統(tǒng)阻擋了很多惡意附加組件,然而仍然存在一些問(wèn)題,比如:新增的附加組件的安全性如何保障?第三方的附加組件的安全性如何保障?等等,附加組件的簽名機(jī)制應(yīng)運(yùn)而生。
3、附件組件簽名機(jī)制
為了更好的管理附加組件,Mozilla 根據(jù)一套安全準(zhǔn)則對(duì)附加組件進(jìn)行驗(yàn)證并為其“簽名”,需要簽名的類型包括擴(kuò)展。下面,筆者就講一講這簽名機(jī)制是如何在Firefox中發(fā)展的。
3.1 標(biāo)記階段
Firefox 40版本起(Firefox 40 – 42),未被簽名的擴(kuò)展將被標(biāo)記,圖4顯示了Firefox 40中提示用戶擴(kuò)展Youdao Word Capturer未通過(guò)Firefox的驗(yàn)證。
圖4 Firefox40提示用戶未簽名的擴(kuò)展
此時(shí),如果用戶選擇禁用此擴(kuò)展,那么將變成如圖5所示情形:
圖5Firefox40中用戶禁用未簽名的擴(kuò)展
這可以阻止一部分惡意擴(kuò)展,但需要用戶的配合,即需要用戶手動(dòng)禁用未簽名的擴(kuò)展,無(wú)疑這對(duì)用戶的安全意識(shí)以及用戶對(duì)Firefox的熟悉程度有較高的要求。
3.2 禁用階段
從Firefox 43版本起(Firefox 43 – 47),未被簽名的擴(kuò)展將直接被禁用,圖6顯示了Firefox 47中直接將未簽名的擴(kuò)展Youdao Word Capturer禁用了。對(duì)比圖5和圖6,最顯著的差別是Firefox43中(圖6所示)用戶無(wú)法直接從界面中啟用被禁用的未簽名擴(kuò)展。
圖6 Firefox 47禁用未簽名的擴(kuò)展
此時(shí),F(xiàn)irefox默認(rèn)將未經(jīng)簽名的擴(kuò)展禁用了,并且沒(méi)有“啟用”選項(xiàng),相比于Firefox40 – 42版本的標(biāo)記方式,這將大大地提高了附加組件的安全性。然而,這就是萬(wàn)無(wú)一失的嗎?
強(qiáng)制關(guān)閉附加組件簽名機(jī)制
雖然從43版本開(kāi)始Firefox就禁用了未經(jīng)簽名的擴(kuò)展,然而,對(duì)于Firefox43 -47版本,用戶可以修改Firefox默認(rèn)配置強(qiáng)行關(guān)閉簽名機(jī)制。
手動(dòng)關(guān)閉Firefox的簽名機(jī)制
如圖7所示,在Firefox地址欄訪問(wèn)“about:config”,點(diǎn)擊“我保證會(huì)小心”進(jìn)入用戶個(gè)人配置界面,雙擊“xpinstall.signatures.required”將其設(shè)置為“false”(默認(rèn)情況下為true),此時(shí)即關(guān)閉了簽名機(jī)制。
圖7用戶強(qiáng)制關(guān)閉Firefox的附加組件簽名機(jī)制
修改Firefox的配置文件關(guān)閉簽名機(jī)制
以Windows 7為例,在路徑“C:\Users\用戶名\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\”( 路徑中的xxxxxxxx.default是安裝Firefox時(shí)瀏覽器隨機(jī)生成的user profile identifier)下找到用戶配置的文件prefs.js,按照其格式,添加語(yǔ)句“user_pref(“xpinstall.signatures.required”,false);”即可強(qiáng)制關(guān)閉簽名機(jī)制。
Firefox簽名機(jī)制被強(qiáng)行關(guān)閉后,再去查看擴(kuò)展的情況,發(fā)現(xiàn)未經(jīng)簽名的擴(kuò)展會(huì)僅僅會(huì)被標(biāo)記且為啟用狀態(tài)(與Firefox 40 – 42版本情況相似),如圖8所示,但其功能是正常的,那么又給了黑客可乘之機(jī)。
圖8強(qiáng)行關(guān)閉Firefox 47附加組件簽名機(jī)制后
禁用且不加載階段
從Firefox 48版本開(kāi)始,未被簽名的擴(kuò)展將被禁用且不再加載。換句話說(shuō),即使修改了Firefox的默認(rèn)配置(即將“xpinstall.signatures.required”設(shè)置為“false”),未經(jīng)簽名的擴(kuò)展也始終為禁用狀態(tài),如圖9所示。
圖9 Firefox48.0.1中“xpinstall.signatures.required”為“false”狀態(tài)下
未經(jīng)簽名的擴(kuò)展仍被禁用
然而,筆者在Firefox擴(kuò)展默認(rèn)的安裝路徑下(C:\Users\用戶名\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions)找到了被禁用擴(kuò)展的程序包,如圖10所示,這是否仍然存在一定風(fēng)險(xiǎn)呢?筆者能力有限,未能探究出這其中的奧秘,還望各路大神不吝指點(diǎn)。
圖10 被禁用的擴(kuò)展包仍然存在
總結(jié)
Firefox瀏覽器的附加組件機(jī)制極大地豐富了其功能,提高了用戶的瀏覽體驗(yàn),然而也有一系列的安全問(wèn)題。為此,Mozilla維護(hù)了一份附加組件的黑名單,并逐步添加了附加組件簽名機(jī)制,強(qiáng)制禁用未簽名的擴(kuò)展,提高了附加組件的安全性。然而,這并不意味著能百分之百地保障用戶安全。廣大用戶還應(yīng)提高個(gè)人安全意識(shí),不斷的了解和使用各種安全保障機(jī)制,才能使瀏覽器安全得到更好的保障。