域名劫持域名服務(wù)器上都會(huì)保存一大堆的域名記錄(每條記錄包含“域名”和“IP地址”)。當(dāng)收到域名查詢(xún)的時(shí)候,域名服務(wù)器會(huì)從這堆記錄中找到對(duì)方想要的,然后回應(yīng)給對(duì)方。如果域名服務(wù)器上的某條記錄被【人為修改】了(改成錯(cuò)的),那么一旦要查詢(xún)這條記錄,得到的就是錯(cuò)誤的結(jié)果。這種情況稱(chēng)之為“域名劫持”?!镎l(shuí)有“域名劫持”的企圖?“域名劫持”通常是電信運(yùn)營(yíng)商(ISP)干的好事兒。很多寬帶用戶(hù)用的域名服務(wù)器就是
域名劫持
域名服務(wù)器上都會(huì)保存一大堆的域名記錄(每條記錄包含“域名”和“IP地址”)。當(dāng)收到域名查詢(xún)的時(shí)候,域名服務(wù)器會(huì)從這堆記錄中找到對(duì)方想要的,然后回應(yīng)給對(duì)方。
如果域名服務(wù)器上的某條記錄被【人為修改】了(改成錯(cuò)的),那么一旦要查詢(xún)這條記錄,得到的就是錯(cuò)誤的結(jié)果。這種情況稱(chēng)之為“域名劫持”。
★誰(shuí)有“域名劫持”的企圖?
“域名劫持”通常是電信運(yùn)營(yíng)商(ISP)干的好事兒。很多寬帶用戶(hù)用的域名服務(wù)器就是 ISP 提供給你的。
舉例:
前幾年曾經(jīng)出現(xiàn)過(guò):某個(gè) ISP 跟某網(wǎng)站勾結(jié),把維基百科的流量重定向到XX。具體搞法是:該 ISP 篡改自己的域名服務(wù)器的記錄,把里面跟維基百科 相關(guān)的域名記錄的 IP地址 修改為XX的 IP地址。如此一來(lái),假設(shè)你用的是這個(gè) ISP 的域名服務(wù)器,當(dāng)你在瀏覽器輸入 http://zh.wikipedia.org/的時(shí)候,你的電腦查詢(xún)到的 IP地址 其實(shí)是XX的 IP地址,所以瀏覽器打開(kāi)的是“XX”的主頁(yè)。
★如何對(duì)付“域名劫持”?
剛才說(shuō)了,“域名劫持”的根源在于:域名服務(wù)器上的記錄被人給改了。要對(duì)付這種耍流氓,最直接的辦法就是不要使用這種流氓 ISP 提供的域名服務(wù)器,改用國(guó)外那些比較靠譜的。目前口碑最好的,大概是 Google 提供的兩個(gè)域名服務(wù)器,IP地址 分別是 8.8.8.8 和 8.8.4.4 ——這倆不光是地址好記,更重要的是,不會(huì)耍流氓。
域名污染
先提醒一下:“域名污染”這個(gè)詞還有其它幾個(gè)別名,分別是“域名欺騙”、“域名緩存投毒”(洋文叫:DNS cache poisoning)。今后看到這幾個(gè)別名,要曉得是同一個(gè)意思。
“域名污染”的原理,簡(jiǎn)單說(shuō)來(lái)是這樣滴:當(dāng)你的電腦向域名服務(wù)器發(fā)送了“域名查詢(xún)”的請(qǐng)求,然后域名服務(wù)器把回應(yīng)發(fā)送給你的電腦,這之間是有一個(gè)時(shí)間差的。如果某個(gè)攻擊者能夠在域名服務(wù)器的“DNS應(yīng)答”還沒(méi)有到達(dá)你的電腦之前,先偽造一個(gè)錯(cuò)誤的“DNS應(yīng)答”發(fā)給你電腦。那么你的電腦收到的就是錯(cuò)誤的信息,并得到一個(gè)錯(cuò)誤的 IP地址。
★誰(shuí)有“域名污染”的企圖?
從技術(shù)上講,只要攻擊者能夠位于“你”和“域名服務(wù)器”的傳輸線(xiàn)路中間,那么攻擊者就有機(jī)會(huì)搞“域名污染”。能夠做到這點(diǎn)的,可能是一個(gè)黑客/駭客,也可能是 ISP。
★某國(guó)家防火墻的兩種“域名污染”
剛才俺解釋了“域名污染”的原理,那種形式不妨稱(chēng)為“直接污染”。由于某國(guó)家防火墻的特殊性,它不但可以做到“直接污染”,還可以做到“間接污染”。而普通的駭客頂多只能做到“直接污染”,難以做到“大范圍的間接污染”。
那么這兩種污染有啥區(qū)別捏?且聽(tīng)俺細(xì)細(xì)道來(lái)。
◇某國(guó)家防火墻部署在哪?
首先有必要先掃盲一下“某國(guó)家防火墻(其實(shí)是一種IDS,也就是入侵檢測(cè)系統(tǒng))的部署位置”。X國(guó)互聯(lián)網(wǎng)只有少數(shù)幾個(gè)國(guó)際出口(名氣較大的是:A出口、B出口、C出口)。如果你要訪(fǎng)問(wèn)國(guó)外網(wǎng)站,你的網(wǎng)絡(luò)數(shù)據(jù)流就必定會(huì)經(jīng)過(guò)其中的某個(gè)“國(guó)際出口”。
◇某國(guó)家防火墻的直接污染
因?yàn)槟硣?guó)家防火墻部署在國(guó)際出口。如果你用的是【國(guó)外的】域名服務(wù)器,你的“DNS請(qǐng)求”必定會(huì)經(jīng)過(guò)國(guó)際出口;同樣,域名服務(wù)器的“DNS應(yīng)答”必定也會(huì)經(jīng)過(guò)國(guó)際出口才能到你的電腦。這一來(lái)一回就給某國(guó)家防火墻 提供了機(jī)會(huì)。
這種污染就是俺所說(shuō)的“直接污染”。
◇某國(guó)家防火墻 的間接污染
剛才介紹了“使用國(guó)外域名服務(wù)器會(huì)被直接污染”。那如果你用的是【國(guó)內(nèi)的】域名服務(wù)器捏?就會(huì)被“間接污染”。過(guò)程如下:
1. 比方說(shuō)你用的是電信的 DNS服務(wù)器,然后你想要訪(fǎng)問(wèn)某個(gè)被不受歡迎的網(wǎng)站。
2. 對(duì)于不受歡迎的網(wǎng)站,其網(wǎng)站服務(wù)器必定在國(guó)外,而且網(wǎng)站的域名肯定也不會(huì)使用 CN 之下的域名。所以,被封鎖的網(wǎng)站,其上級(jí)域名的“權(quán)威域名服務(wù)器”肯定也是在國(guó)外。
3. 當(dāng)你向“電信的DNS服務(wù)器”查詢(xún)反共網(wǎng)站的域名,這臺(tái)“電信的DNS服務(wù)器”就會(huì)去找這個(gè)不受歡迎的網(wǎng)站的上一級(jí)域名對(duì)應(yīng)的“權(quán)威域名服務(wù)器”去進(jìn)行“域名查詢(xún)”。
4. 因?yàn)槭菑膰?guó)外進(jìn)行域名查詢(xún),相關(guān)的數(shù)據(jù)流必定要經(jīng)過(guò)國(guó)際出口。一旦經(jīng)過(guò)國(guó)際出口,就會(huì)被 某國(guó)家防火墻 污染。
5. 如此一來(lái),“電信的域名服務(wù)器”拿到的是已經(jīng)被污染的域名記錄(里面的IP是錯(cuò)的)。而且“電信的域名服務(wù)器”會(huì)把這條錯(cuò)誤的記錄保存在自己的域名緩存中。
6. 下次如果有另一個(gè)網(wǎng)友也找這臺(tái)“電信的域名服務(wù)”查詢(xún)這個(gè)不受歡迎的網(wǎng)站,也會(huì)查到錯(cuò)誤的結(jié)果。
上述過(guò)程不斷重復(fù),最終會(huì)導(dǎo)致:全國(guó)所有的域名服務(wù)器,它們的緩存中只要是包含了不受歡迎的網(wǎng)站的記錄,記錄中的 IP地址 必定是錯(cuò)的(這個(gè)錯(cuò)誤的 IP地址 也就是 某國(guó)家防火墻 偽造的那個(gè))。所以說(shuō)“間接污染”是很牛逼的,可以把錯(cuò)誤的域名記錄擴(kuò)散到全國(guó)。
剛才俺說(shuō)了,“域名污染”也叫“域名緩存投毒”。“投毒”一詞真的非常形象——就好象在某條河流的源頭下毒,從而把整條河流的水都污染。“域名污染”直接破壞了互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施。