
首先,我對我的英語不好感到抱歉。我還在學習。事情是這樣的:
當我為每個 IP 位址託管一個網站時,我可以使用「純」SSL(無 SNI),並且在使用者告訴我他想要檢索的主機名稱和路徑之前就發生金鑰交換。密鑰交換後,所有資料都可以安全地交換。也就是說,如果有人碰巧嗅探網絡,則不會洩露任何機密資訊*(請參閱註腳)。
另一方面,如果我每個 IP 位址託管多個網站,我可能會使用 SNI,因此我的網站訪客需要告訴我目標主機名,然後我才能向他提供正確的憑證。在這種情況下,嗅探他的網路的人可以追蹤他正在訪問的所有網站網域。
我的假設有錯嗎?如果不是,假設使用者也使用加密的 DNS,這是否會帶來隱私問題?
註腳:我還意識到嗅探器可以對 IP 位址進行反向查找並找出訪問了哪些網站,但透過網路電纜以明文形式傳輸的主機名稱似乎使審查機構更容易進行基於關鍵字的網域阻止。
答案1
你的分析不正確。使用 SNI 比不使用 SNI 更安全。
如果沒有 SNI,IP 位址將唯一標識主機。因此,任何能夠確定 IP 位址的人都可以確定主機。
使用 SNI,IP 位址不能唯一標識主機。有人必須實際攔截並查看一些流量才能確定確切的主機。這比僅僅取得IP位址更困難。
因此,使用 SNI 比不使用 SNI 時(稍微)更安全。
任何想要基於封包資料的侵入性分析進行封鎖的人也會基於 IP 位址進行封鎖。他們將根據帶或不帶 SNI 的 IP 位址阻止「壞的」。
然而,你的問題的答案是「是」。 SNI 確實代表了隱私問題。透過 SNI,能夠攔截流量的人不僅可以獲得 IP 位址,還可以獲得主機名稱。
答案2
你是對的。 SNI 是訪客的主要隱私問題 - 它會將訪客連接的確切網站暴露給他們的 ISP 和其他被動監聽方。但是,DNS 也是如此……嗯……過去:谷歌正在解決這個問題:-
https://thehackernews.com/2017/10/android-dns-over-tls.html
知道 IP 位址並不能告訴 ISP 該 IP 位址上有哪個網站,除非他們主動出去查看自己,這與他們被動嗅探客戶資料包是完全不同的事情。
答案3
您說得對,這代表了潛在的隱私問題:使用 SNI,網域以未加密的方式發送。
這就是為什麼ESNI(加密 SNI)是由 Cloudflare 提出的,他們已經在他們的 CDN 中實現了它。在撰寫本文時,瀏覽器支援接近零,但這似乎是未來!