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