【翻译】卡通图解DNS,你的信息怎么被泄露的?
原文鏈接:A cartoon intro to DNS over HTTPS
HTTP簡要課程
當(dāng)一個(gè)人解釋瀏覽器如何下載一個(gè)網(wǎng)頁的時(shí)候,他們常常會這么說:
這個(gè)系統(tǒng)就叫HTTP。
但是這個(gè)圖有點(diǎn)過于簡化了。你的瀏覽器不直接與服務(wù)器通信。可能是由于他們往往相離甚遠(yuǎn)。
一般,服務(wù)器可能距你幾千英里以外。這之間可能沒有直連你電腦和服務(wù)器的線路。
所以這個(gè)請求從瀏覽器到服務(wù)端,會經(jīng)過許多人的手。響應(yīng)返回回來的時(shí)候也會如此。
我把這個(gè)比喻為同學(xué)們在課堂上傳遞紙條。紙條的外面會寫要傳給誰,然后寫的人把它交給附近的人,然后拿到紙條的這個(gè)人又把紙條傳給他附近的人——這些人不一定是最終的接收方,而是這個(gè)傳遞路線上的經(jīng)手者。
這里的問題在于,這條路徑上的所有人都可以打開這個(gè)紙條然后讀里面的內(nèi)容。而且你事先無法知道這個(gè)紙條會經(jīng)過哪些人手中。
可能其中的某人會做一些壞事...
比如把里面的內(nèi)容公之于眾
或者改變里面的內(nèi)容
為了防止這些問題,一個(gè)新的、安全的HTTP版本出現(xiàn)了,叫做HTTPS。什么是HTTPS?就好比在每張紙條外面加了個(gè)鎖。
瀏覽器和服務(wù)端都知道怎么處理這把鎖,但是中間的那些人并不知道。
有了這個(gè),即使信息被多人傳遞,只有你和網(wǎng)站能夠看到信息的內(nèi)容。
這解決了很多的安全問題。但是仍然有很多在瀏覽器和服務(wù)端之間傳遞信息是沒有被加密的。這意味著中間的人仍然能夠發(fā)現(xiàn)你在做什么。
一個(gè)數(shù)據(jù)會被暴露的地方是在與服務(wù)端建立連接的時(shí)候。當(dāng)你發(fā)送初始信息給服務(wù)端的時(shí)候,你也發(fā)送了服務(wù)器名字(某些領(lǐng)域叫Server Name Indication)。這使得在一臺機(jī)器上運(yùn)行多個(gè)網(wǎng)站成為可能,因?yàn)橥ㄟ^這個(gè)名字它知道你請求的是哪一個(gè)。這個(gè)初始請求是建立加密連接的一環(huán),但是這個(gè)初始請求它本身是不加密的。
另外一個(gè)信息暴露的地方是在DNS。所以,什么是DNS?
DNS:域名系統(tǒng)
在上面?zhèn)骷垪l的比喻中,我說了接收方的名字會被寫在紙條的外面,這在HTTP請求中也是如此...這個(gè)名字用來表明這個(gè)紙條要去哪。
但事實(shí)上你無法使用名字告訴他們紙條要去哪。這之前的路由都不知道你說的是誰。然而,你需要告訴他們的是IP地址。這中間的路由才知道你要把消息發(fā)往哪。
這里就有一個(gè)問題。如果你是網(wǎng)站的運(yùn)營方,你不會想你的用戶去記住你的IP地址。你會想給你的網(wǎng)站取一個(gè)上口的名字...好記的名字。
這就是為什么我們需要域名系統(tǒng)(DNS)。你的瀏覽器使用DNS把網(wǎng)站名字轉(zhuǎn)換成IP地址。這個(gè)過程——把域名轉(zhuǎn)成IP地址——叫做域名解析。
然后瀏覽器怎么知道如何去做這件事呢?
一個(gè)選項(xiàng)是你可以有一個(gè)很長的列表,像瀏覽器中的電話簿。但是當(dāng)一個(gè)新的網(wǎng)站上線,或者遷移到新的服務(wù)器去,很難使你的列表保持更新。
所以與其用一個(gè)列表保存所有的域名,我們有許多互相關(guān)聯(lián)的更小的列表。這使得他們能被單獨(dú)地管理。
為了得到域名對應(yīng)的IP地址,你需要找到包含這個(gè)域名的列表。這個(gè)過程就像尋寶游戲一樣。
對于維基百科的英文版本網(wǎng)站en.wikipedia.org的尋寶是怎么樣的?
我們把這個(gè)域名分成幾部分:
有了這三部分,我們可以找到包含這個(gè)IP地址的列表。然而,我們在找尋的過程中需要一些幫助。這個(gè)幫我們找尋到寶藏(IP地址)的東西叫解析器(resolver)
首先,解析器會請求根DNS。它知道一些不同的根域名服務(wù)器,所以它會給其中的一個(gè)發(fā)送請求。解析器詢問根DNS可以去哪找到更多關(guān)于.org頂級域名下的地址信息。
這個(gè)根DNS會給出一個(gè)知道.org下相關(guān)地址信息的服務(wù)器地址。
解析器會告訴告訴操作系統(tǒng)en.wikipedia.org的IP地址。
這個(gè)過程叫做遞歸解析(recursive resolution),因?yàn)槟銖囊粋€(gè)服務(wù)器得到一個(gè)ip地址后,你需要回去向這個(gè)ip地址的服務(wù)器發(fā)起另一個(gè)相似的請求。
我說過我們需要一個(gè)解析器幫我們完成這一系列請求。但是瀏覽器是如何找到這個(gè)解析器的呢?一般,瀏覽器會委托操作系統(tǒng)去獲得一個(gè)解析器。
那么操作系統(tǒng)是如何知道該采用哪個(gè)解析器呢?這里有兩種方式。
你可以配置你的計(jì)算機(jī)去使用一個(gè)你信任的解析器。但是基本沒多少人這么做。
人們大多使用默認(rèn)配置。默認(rèn)地,操作系統(tǒng)會使用當(dāng)前網(wǎng)絡(luò)提供的解析器。當(dāng)計(jì)算器連接到網(wǎng)絡(luò)并獲得IP地址后,網(wǎng)絡(luò)也會推薦一個(gè)解析器供使用。
這意味著你使用的解析器一天之內(nèi)會變更好幾次。如果你下午決定去一家咖啡店上網(wǎng),那么你可能使用了一個(gè)與上午在家不同的解析器。當(dāng)然如果你配置了你信任的解析器也是一樣的,因?yàn)樵赿ns協(xié)議里沒有安全可言。
DNS是怎么被利用的
所以這個(gè)系統(tǒng)(DNS System)是如何讓用戶陷入一個(gè)弱勢地位呢?
通常解析器會告訴DNS服務(wù)器你在查詢的域名是什么。然而這個(gè)請求有時(shí)會包含你的整個(gè)IP地址。就算不是完整的IP地址,越多越多的請求會帶上你的大部分IP地址,這能和其他的信息結(jié)合起來察覺出你的身份。
這意味著你詢問過的每一個(gè)服務(wù)器都能知道你訪問的網(wǎng)站是什么。不僅如此,還意味著你與服務(wù)器之間的所有中間節(jié)點(diǎn)也能看到你的請求。
這里有兩種對用戶的數(shù)據(jù)造成威脅的方式。主要是跟蹤(tracking)和欺騙(spoofing)
跟蹤(tracking)
就像我上面說的,很容易通過IP地址得知是誰在訪問這個(gè)網(wǎng)站。這意味著DNS服務(wù)器和路徑上的中間人——叫做on-path routers——能夠建立一份你的畫像。他們可以記錄你訪問的所有網(wǎng)站。
這些數(shù)據(jù)是十分有價(jià)值的。很多人和公司會花很多錢來知道你瀏覽了些什么。
于是你的數(shù)據(jù)就被收集和販賣了。因?yàn)榫W(wǎng)絡(luò)給你的解析器可能根本靠不住。
即使你信任你的網(wǎng)絡(luò)推薦的解析器。那也僅限于你在家的時(shí)候。如我前面提到的,當(dāng)你去咖啡店或酒店等的時(shí)候,你可能使用了一個(gè)不同的解析器。誰知道它會怎么處理你的數(shù)據(jù)。
在沒有得到你同意的情況下收集和販賣你的數(shù)據(jù),這個(gè)系統(tǒng)還有一種更危險(xiǎn)的利用方式。
欺騙(Spoofing)
說到欺騙,指的是你到DNS服務(wù)器之前的某人改變了返回的結(jié)果。欺騙者可能會告訴你你訪問網(wǎng)站的假地址。這會阻止你訪問真的網(wǎng)站同時(shí)引導(dǎo)你進(jìn)入了詐騙網(wǎng)站。
比如,你實(shí)體超市進(jìn)行購物。你想要在某寶某東查詢某件商品的價(jià)格,看是否能在網(wǎng)上更便宜的買到。
但如果你連接的是超市的Wifi,你可能就用了他們的解析器。這個(gè)解析器可能劫持了你的電商的請求,然后欺騙你說網(wǎng)站不可訪問。
此篇只翻譯了文章中的教程部分,若想進(jìn)一步了解Mozilla提出的安全解決方案Trusted Recursive Resolver (TRR) and DNS over HTTPS (DoH),請查看原文
總結(jié)
以上是生活随笔為你收集整理的【翻译】卡通图解DNS,你的信息怎么被泄露的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021安妮爆发出装 lol安妮出装顺序
- 下一篇: Matrix 高斯消元Gaussian