如何保護(hù)隱私之如何隔離瀏覽器
看過(guò)《如何保護(hù)隱私之關(guān)于軟件和服務(wù)的選擇》,了解了《如何保護(hù)隱私之瀏覽器如何導(dǎo)致隱私泄漏》以及《瀏覽器Cookie的防范方法》之后,面對(duì)瀏覽器存在的安全隱患,我們?cè)撊绾胃綦x瀏覽器呢?
★如何隔離瀏覽器?
◇為啥要隔離瀏覽器?
舉例1:
你經(jīng)常使用 Gmail,并且依賴于 Gmail 的自動(dòng)登錄功能。這種情況下,你就不能禁用 google.com 域名對(duì)應(yīng)的 cookie(禁用了就無(wú)法自動(dòng)登錄)。但是,如果你不禁用 google.com 域名對(duì)應(yīng)的 cookie,當(dāng)你使用 Google 的搜索功能時(shí),Google 會(huì)知道你的搜索偏好(這涉及到隱私)。
舉例2:
雖然瀏覽器插件會(huì)導(dǎo)致隱私問(wèn)題(本系列前面的博文有提到),但有些瀏覽器插件是你不得不安裝的。比如你想看在線視頻,不得不裝 Flash 插件;比如你使用網(wǎng)銀,不得不安裝某些登錄的控件。
如果學(xué)會(huì)了"瀏覽器隔離"的招數(shù),就可以搞定上述難題,魚和熊掌兼得。下面,俺分別介紹幾種不同的隔離方法。
◇多瀏覽器
這是最簡(jiǎn)單的隔離方法——使用不同類型的瀏覽器(比如同時(shí) Firefox 和 Chrome)。
對(duì)于剛才的第一個(gè)例子。你可以在 "A瀏覽器" 里面登錄 Gmail,通過(guò)設(shè)置允許 "A瀏覽器" 存儲(chǔ) google.com 域名的 cookie;然后你用 "B瀏覽器" 進(jìn)行 Google 搜索。
只要你確保一點(diǎn):從來(lái)不在 "B瀏覽器" 中登錄 Gmail,那么 "B瀏覽器" 的 cookie 中就不會(huì)有你的用戶標(biāo)識(shí)。所以你用 "B瀏覽器" 進(jìn)行 Google 搜索的時(shí)候,Google 不知道你是誰(shuí)。
◇多實(shí)例
但是有些用戶就喜歡某款瀏覽器,不喜歡混用。那就可以考慮 "多實(shí)例" 的招數(shù)。目前的三大瀏覽器中,F(xiàn)irefox 和 Chrome 支持多實(shí)例,IE 不支持。啥是多實(shí)例捏?稍微解釋一下。
所謂的瀏覽器多實(shí)例,洋文稱之為 "Multiple Profiles"。
不論是 Firefox 還是 Chrome,默認(rèn)安裝的時(shí)候,只有一個(gè)實(shí)例(Profile)。和瀏覽器相關(guān)的各種信息,包括:插件、擴(kuò)展、外觀(皮膚)、頁(yè)面緩存、cookie、等等,都存儲(chǔ)在這個(gè)實(shí)例中。
反之,如果使用多實(shí)例,每個(gè)實(shí)例都具有獨(dú)立的插件、獨(dú)立的擴(kuò)展、獨(dú)立的外觀(皮膚)、獨(dú)立的頁(yè)面緩存、獨(dú)立的cookie、等等。不同實(shí)例之間是相對(duì)隔離的,不會(huì)互相影響。
對(duì)于 Chrome,再特別提醒一下:
Chrome 同時(shí)支持 "Multiple Profiles" 和 "Multiple Accounts"。但別把這兩者搞混了。即使你配置了多個(gè)Accounts,依然在同一個(gè)實(shí)例里(有興趣的同學(xué)可以看chromium 官網(wǎng)的相關(guān)介紹)
關(guān)于多實(shí)例的配置,一年前寫《如何防止黑客入侵》系列的時(shí)候,已經(jīng)介紹過(guò)了(請(qǐng)翻墻看"這里"),今天就不再浪費(fèi)口水了。
◇多用戶
萬(wàn)一你喜歡的瀏覽器是 IE,而 IE 又不支持"多實(shí)例",咋辦捏?招數(shù)還是有滴,那就是"多用戶"。
你可以創(chuàng)建多個(gè)操作系統(tǒng)用戶,然后在不同的操作系統(tǒng)用戶中分別運(yùn)行同一款瀏覽器。所有主流的操作系統(tǒng)都會(huì)對(duì)系統(tǒng)用戶的資源進(jìn)行隔離。所以,你在不同的操作系統(tǒng)用戶中運(yùn)行的瀏覽器,也是互相隔離的(包括 插件、擴(kuò)展、cookie、緩存、都不會(huì)互相影響)。
在多用戶方式下運(yùn)行瀏覽器,你可以使用"快速用戶切換"的功能,在不同用戶的桌面之間切換。但是有一個(gè)缺點(diǎn):你一次只能看到某一個(gè)用戶運(yùn)行的軟件,其它用戶運(yùn)行的軟件看不到。其實(shí)有一個(gè)小技巧,可以在同一個(gè)桌面運(yùn)行多個(gè)用戶的軟件。具體請(qǐng)看這篇博文中的"多用戶瀏覽器共享同一個(gè)桌面的技巧"。
◇多虛擬機(jī)
大部分場(chǎng)合用上述三招基本就能搞定了。但有捏,有時(shí)你會(huì)碰到一些比較變態(tài)的網(wǎng)銀控件,一定要用系統(tǒng)管理員才能安裝,有的控件甚至做到了"驅(qū)動(dòng)級(jí)"。對(duì)于這種變態(tài)的控件,即使用"多用戶"的隔離方案,也行不通了。只能使用"多虛擬機(jī)"來(lái)隔離。
"多虛擬機(jī)"的方案,說(shuō)起來(lái)挺簡(jiǎn)單——就是安裝多個(gè)操作系統(tǒng)虛擬機(jī),把瀏覽器安裝到虛擬機(jī)中。利用虛擬機(jī)來(lái)進(jìn)行隔離,每個(gè)虛擬機(jī)就如同一臺(tái)單獨(dú)的電腦,這種隔離性,比前面三個(gè)方案更加徹底。如果你不熟悉操作系統(tǒng)虛擬機(jī),請(qǐng)先看《掃盲操作系統(tǒng)虛擬機(jī)》系列博文。#p#
★DNT(Do Not Track)
說(shuō)完了瀏覽器的隔離,再來(lái)說(shuō)幾個(gè)雜項(xiàng)。首先說(shuō)說(shuō) DNT 這玩意兒。
◇DNT 是啥?
DNT 是洋文 Do Not Track 的縮寫,中文譯作"請(qǐng)勿追蹤"。它最早是由 Mozilla 的一個(gè)工程師在 2009 發(fā)明的,如今已經(jīng)成為 W3C 的標(biāo)準(zhǔn)。截至 2012年底,所有知名的瀏覽器都已支持 DNT 標(biāo)準(zhǔn)。
◇DNT 的原理
這玩意兒說(shuō)白了沒(méi)啥技術(shù)含量,其原理大致如下:
如果你在瀏覽器中啟用了 DNT,那么瀏覽器每次訪問(wèn)網(wǎng)站的時(shí)候,會(huì)在 HTTP 請(qǐng)求的 header 部分加入一個(gè) DNT 的標(biāo)識(shí)。網(wǎng)站的服務(wù)器接收到這個(gè) HTTP 請(qǐng)求,看到此標(biāo)識(shí),就知道該用戶不希望被追蹤。
如果這個(gè)網(wǎng)站遵循 W3C 的規(guī)范——當(dāng)它看到這個(gè) DNT 標(biāo)識(shí),就不應(yīng)該使用 cookie 之類的手段來(lái)追蹤用戶的行為。反之,如果這個(gè)網(wǎng)站不遵循 DNT 的規(guī)范,它就會(huì)直接無(wú)視 HTTP 請(qǐng)求中的 DNT 標(biāo)識(shí)。
◇DNT 有用嗎?
通過(guò)上述介紹你應(yīng)該可以看出:DNT 技術(shù)并不是一項(xiàng)很保險(xiǎn)的防范措施。DNT 要起作用需要靠網(wǎng)站方面自覺(jué)配合。如果你訪問(wèn)的網(wǎng)站比較流氓,不愿意配合這個(gè)規(guī)范,那你的 DNT 設(shè)置就形同虛設(shè)。
所以,DNT 是一個(gè)有點(diǎn)雞肋的功能,不能全指望它,但"啟用"比"不啟用"要好——畢竟那些正規(guī)的網(wǎng)站(比如 Twitter)還是會(huì)遵循 DNT 規(guī)范的。#p#
★User Agent
◇什么是 UserAgent?
瀏覽器方面還有一個(gè)涉及到隱私的因素,而且不太為人所知,那就是 User Agent。
瀏覽器的 User Agent 是用來(lái)標(biāo)識(shí)客戶端的信息(包括 瀏覽器的類型和版本、操作系統(tǒng)類型和版本、等等)。瀏覽器向網(wǎng)站發(fā)起 HTTP 請(qǐng)求時(shí),會(huì)在 HTTP header 中加入 User Agent 信息。
◇User Agent 有啥用?
因?yàn)?User Agent 標(biāo)識(shí)了瀏覽器客戶端的信息,網(wǎng)站拿到這些信息之后,就可以針對(duì)客戶端的不同,發(fā)送針對(duì)性的網(wǎng)頁(yè)。比方說(shuō),如果客戶端是移動(dòng)設(shè)備(屏幕較小),就發(fā)送針對(duì)小尺寸屏幕的網(wǎng)頁(yè)。
從這里的介紹可以看出,User Agent 本身是有用的。
◇User Agent 有啥隱私問(wèn)題?
但是,有些瀏覽器的 User Agent 寫得太詳細(xì)了。這就導(dǎo)致:很多額外的客戶端信息也通過(guò) User Agent 提交到 Web 服務(wù)端。網(wǎng)站拿到這么詳細(xì)的信息,就可以知道你操作系統(tǒng)和瀏覽器的很多細(xì)節(jié)。另外,User Agent 越詳細(xì),"獨(dú)特性"就越明顯。那么網(wǎng)站就可以利用 User Agent,大致猜測(cè)某些頁(yè)面訪問(wèn)是否來(lái)自同一個(gè)人。
放幾個(gè)比較詳細(xì)的 User Agent 給大伙兒參觀一下:
(某個(gè) IE)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)
(某個(gè) Opera)
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01
(某個(gè)騰訊瀏覽器)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; QQPinyin 686; QQDownload 661; GTB6.6; TencentTraveler 4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)
想知道自己的瀏覽器,User Agent 是啥樣的嗎?打開(kāi) http://www.useragentstring.com/ 就可以看到了。
◇要不要修改 User Agent?
對(duì)于大部分網(wǎng)友而言,如果對(duì)隱私方面的要求不高,沒(méi)必要修改 User Agent。因?yàn)?User Agent 雖然會(huì)泄漏某些信息,但是泄漏的信息量比較有限。所以,User Agent 相對(duì)于 cookie 而言,隱私問(wèn)題不是很嚴(yán)重。
但如果你對(duì)隱私的要求很高,可以考慮修改自己瀏覽的默認(rèn) User Agent,偽造一個(gè)假的。
◇如何修改 User Agent?
要想避免 User Agent 泄漏隱私,簡(jiǎn)單的辦法就是修改瀏覽器默認(rèn)的 User Agent
俺簡(jiǎn)單說(shuō)一下三大瀏覽器如何修改默認(rèn)的 User Agent
Firefox
在地址欄輸入 about:config 敲回車,打開(kāi)首選項(xiàng)界面
點(diǎn)右鍵,新建一個(gè)字符串類型的"首選項(xiàng)",該首選項(xiàng)的名稱必須是 general.useragent.override ,該首選項(xiàng)的值就是新的 User Agent
Chrome
在 Chrome 的啟動(dòng)參數(shù)中加上 --user-agent="XXX"
XXX 就是新的 User Agent。(可以在快捷方式中追加命令行的啟動(dòng)參數(shù))
IE
用 regedit 打開(kāi)注冊(cè)表,編輯如下鍵值
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsUser Agent
輸入新的 User Agent
◇User Agent 修改成啥樣?
用上述方式,可以偽造你瀏覽器的 User Agent。那么,偽裝的 User Agent 該如何寫捏?下面這3個(gè)鏈接包含了三大瀏覽器常見(jiàn)的 User Agent,供大伙兒參考。
Firefox 的 User Agent、Chrome 的 User Agent、IE 的 User Agent
你可以把自己瀏覽器的 User Agent 偽裝成另外的兩種之一。