如何安全上網 瀏覽器隱私防護

2021-10-10 07:58:49 字數 2809 閱讀 4991

2023年爆發了「稜鏡門」事件想必大家都記憶尤新,因此今天來特地聊一下 瀏覽器的隱私防範。

1.如何選擇瀏覽器?

當今瀏覽器市場,名氣大且使用廣泛的國外瀏覽器,主要有:firefox、chrome、edge、ie、chromium等。其中,firefox和chromium是開源瀏覽器,chrome、edge和ie是閉源的。很多使用者可能會認為chrome和edge也 是開源的。雖然 chrome和edge 基於開源的 chromium,但是 它們包含自己的閉源的模組。

收集使用者資訊會給商業公司帶來利益,因此商業公司有收集使用者隱私的動機。

比如google 2023年所發布的 chrome 69 曝出了多個隱私方面的嚴重問題,先是自動登入憑證,同步瀏覽器資料;現在又有使用者發現瀏覽器的清空所有 cookies 功能不會清空掉所有瀏覽器儲存的 cookies,而是會選擇性保留所有 google 的 cookies,這一做法既帶來隱私方面的問題又會帶來安全方面的問題,因為使用者的 google 賬號通常會保留敏感資料,保留 cookies 可能會讓其他人更容易登入。

可參考:

因此,從商業化角度講,這幾款瀏覽器的安全性排名為firefox/chromium > chrome/edge > ie.

2.ca證書防範

什麼是ca證書?

在訪問乙個**時,多年前通常使用http 協議來傳輸 web 內容。由於http協議是明文傳輸的,因此使用者和**互動的內容可能被監聽甚至篡改。

可參考:http劫持 - 知乎

因此,誕生了https和tls協議。

https 協議,就是「http 協議」和「tls 協議(transport layer security)」的組合。來實現web內容加密。

tls協議如何實現加密呢?

可參考:

大致過程是客戶端先向**傳送client hello message交換金鑰握手,然後就可以密文傳輸。

ca證書起什麼作用?

由於在握手過程中雙方還沒有完成交換金鑰,因此該過程資料是明文傳輸,假設有乙個攻擊者處於「瀏覽器」和「**伺服器」的線路之間,這個攻擊者就可以攻破劫持並偽造雙方的金鑰,使得**以為攻擊者是客戶端,客戶端以為攻擊者是**,該過程也稱中間人攻擊。

因此**方面需要在某個 ca 那裡購買乙個數字證書。該證書通常會對應乙個檔案包含公鑰,還有乙個檔案包含私鑰。當瀏覽器訪問該**,w伺服器首先把包含公鑰的證書傳送給瀏覽器,瀏覽器驗證**發過來的證書。如果發現存在問題,瀏覽器會提示「ca 證書安全警告」。

如果作業系統中被植入惡意證書,會起到適得其反的作用,因此需要檢查並禁用惡意證書。

具體案例可參考:如何評價cnnic在使用者電腦內偷偷植入根證書的行為? - 知乎

如何看待中國沃通wosign偷偷收購自己的根ca startcom並且簽發github.com的證書? - 知乎

在windows中, 執行-certmgr可開啟證書管理器,在受信任的根證書列表中停用所有china、hongkong、macao相關的證書。

3.dns防範

一般來說,在網際網路上都有可信賴的網域伺服器,但為減低網路上的流量壓力,一般的網域名稱伺服器都會把從上游的網域名稱伺服器獲得的解析記錄暫存起來,待下次有其他機器要求解析網域名稱時,可以立即提供服務。一旦有關網域的局域網域名稱伺服器的快取受到汙染,就會把網域內的電腦導引往錯誤的伺服器或伺服器的**。

可參考:關於dns、http劫持、運營商劫持的一些事_幫助中心- dns.com,網域名稱dns解析服務商

dns劫持莫名其妙被小廣告彈窗?從運營商到路由器都有可能坑你_湃客_澎湃新聞-the *****

如何避免dns汙染?

dns over https利用http協議的get命令發出經由json等編碼的dns解析請求。[較於傳統的dns協議,此處的http協議通訊處於具有加密作用的ssl/tls協議(兩者統稱作https)的保護之下。

當前最新的chrome、chromium、firefox都已經支援doh,具體設定方法可參考:

如何在 firefox 中啟用 dns-over-https(doh) - 知乎

chrome/firefox配置「dns over https」,解決dns劫持問題-出家如初,成佛有餘

4.sni防範

伺服器名稱指示(英語:server name indication,縮寫:sni)是tls的乙個擴充套件協議。在該協議下,在握手過程開始時客戶端告訴它正在連線的伺服器要連線的主機名稱。這允許伺服器在相同的ip位址和tcp埠號上呈現多個證書,並且因此允許在相同的ip位址上提供多個安全(https)**(或其他任何基於tls的服務),而不需要所有這些站點使用相同的證書。

客戶端將包含其連線到的站點主機名的sni擴充套件新增到clienthello訊息。它在tls握手期間將clienthello傳送到伺服器。由於客戶端和伺服器此時不共享加密金鑰,因此clienthello訊息未被加密傳送。

在2023年7月左右的網際網路工程任務組(ietf)會議上,蘋果公司、cloudflare和mozilla的工程師在一項名為「加密伺服器名稱指示(esni,後改名ech)」的新協議上獲取了進展,該協議將能解決tls sni暴露給竊聽者的問題。

那麼為什麼以前無法對原始sni進行加密,現在可以加密了呢?如果客戶端和伺服器尚未協商,加密金鑰又從何而來?答案就是「dns」。伺服器在已知的dns記錄上發布乙個公鑰,客戶端可以在連線之前獲取該公鑰(a、aaaa和其他記錄已經是這樣做的了)。然後,客戶端將clienthello中的sni擴充套件替換為「加密的sni」擴充套件,該擴充套件不同於原來的sni擴充套件,而是使用對稱加密金鑰(用伺服器公共金鑰派生的金鑰)進行加密的。

目前只有firefox瀏覽器支援ech,設定方法為:

為firefox啟用esni的方法 - gulut's blog

firefox nightly + doh + ech: 讓網路連線更加安全 - 知乎

二 瀏覽器安全解讀

1 瀏覽器的同源策略,限制了來自不同源的 document 或指令碼對當前 document 讀取或設定某些屬性。同源策略是為了防止瀏覽器的指令碼頁面行為發生混亂。瀏覽器提出 origin 源這一理念,來自不同origin的物件無法互相干擾。2 瀏覽器沙箱 sandbox即是沙箱,設計的目的是為了讓...

瀏覽器安全與MSAA

對於網際網路應用而言,安全是乙個不可忽視的問題。特別是電子商務類應用,更是重中之重。由於目前國內電子商務發展越來越迅猛,很多木馬開始把注意力轉到它上面來。這些木馬往往有乙個很重要的特點就是具有明顯的經濟利益性目的。根據分析和研究表明,這類木馬通常並沒有使用很高深的技術手段,主要原因就是瀏覽器自身的脆...

瀏覽器安全 漏洞

很早時候瀏覽器安全這個詞就一直在我腦子裡轉,這次接觸瀏覽器安全後發現涉及面之廣超出了我的想象,又想到生而為人不能太貪,又不能不貪 對於知識的需求 所以適當了解做個記錄。安全漏洞的定義 安全漏洞是產品中的乙個弱點,它可能允許攻擊者破壞該產品的完整性,可用性或機密性。源於 好好學英語 安全漏洞三要素 1...