自從進入網路時代,大家的生活也越多姿多彩起來,但也多出了很多煩惱。例如,資訊海洋中不時出現的大群垃圾,以及深淵,就令人防不勝防。
這裡說的正是上網過程中遇到莫名其妙的網頁跳轉,好端端的一個網頁,突然就變成了滿屏的廣告;或者本來能正常訪問的頁面,突然就打不開了,但QQ之類的軟體卻可以正常登入。這到底是什麼原因造成的呢?其實出現了這些令人困擾的異常現象,代表你可能是DNS劫持、投毒的受害者。
雖然我們常常上網,但並不是每個人都對開啟一個網頁背後的機制瞭如指掌。輕點滑鼠,網頁即呈現在眼前,何其熟悉的操作,但這熟悉操作的背後,卻蘊藏著一套環環相扣的流程。
從用戶點擊滑鼠、敲下回車,到網頁顯示,訊息首先會透過瀏覽器發送,再經由路由中轉,接著DNS將網域名稱解析成IP,找到伺服器後伺服器會傳送內容給用戶,接著再由路由轉送數據,最後瀏覽器將內容呈現給使用者。視實際情況,這個過程中可能還有更多關卡,例如防火牆、代理伺服器等。
在這套流程中,無論瀏覽器、路由、DNS、伺服器等任一環節中出了叛徒,都有可能導致網頁無法存取。而被人竄改最多的,或許就是DNS了。
DNS全名為網域名稱系統,它所扮演的角色,在於把網域名稱解析為IP位址。我們可以造訪到某個網站,靠的是連接到該網站伺服器的IP位址,DNS在這裡面起到的作用就是把「www.baidu.com」解析成「123.125.114.144」這樣的IP位址,讓你能夠連接到這個位址的伺服器來存取網站。
把網址解析為IP位址,就是DNS所扮演的角色了
在上網的流程中,有太多的因素可以影響到DNS,例如你的PC的設定、路由器的設定、運營商的設定等等,DNS一旦出現了差錯,就會無法把網域解析成為正確的IP位址,我們自然也無法存取到正確的頁面。因此,如果你發現開啟不了網頁,但QQ這樣直連IP的網路軟體卻可以正常服務,那麼DNS就是一個非常值得懷疑的原因。
DNS這個環節可以被太多因素影響,所以不少利害關係人會在這裡面做手腳。例如,DNS劫持就是非常常見的廣告投放手段。
一般情況下,如果你不特別設定DNS伺服器,那麼DNS伺服器就會由營運商來提供。照理來說,運營商提供的DNS伺服器應該用於正確地為你提供IP跳轉,但偏偏許多運營商DNS伺服器的人品都不堪入目。
你常常就能看到運營商會把你給跳轉到什麼開通上網套餐之類的頁面,甚至會出現你輸入A購物網但卻被跳轉到競爭對手B的情況,這就是所謂的DNS劫持。
開個百度,整個網頁都被強制跳到XX娛樂城去了,這就是典型的DNS劫持
要對付業者的DNS劫持,設定一個可靠的DNS伺服器往往可以解決問題。然而,許多朋友在設定了可靠的DNS伺服器後,仍然無法解析到正確的IP位址,例如某個網站的IP位址明明是可以Ping通的,但就是無法存取。這種情況,通常是DNS污染所導致的。
雖然DNS伺服器能夠正常運作,但我們向DNS伺服器發送網域名稱解析請求的時候,是透過UDP連線發送的。 UDP並不是什麼可靠的連接,所以網域解析請求能夠在半路上就被人攔截,然後冒充DNS伺服器寄給你錯誤的IP位址。 IP位址是錯的,我們自然也無法正常地造訪網站,有可能會看到廣告、釣魚頁面,也有可能什麼都看不見。
DNS預設使用UDP連接,且未經加密,容易遭遇污染、投毒
無論是那種情況,DNS出錯就代表你無法正確地造訪網站。在整個上網的流程中,DNS這環節無疑是脆弱且不受使用者控制的,如果一定要有人用DNS來害你沒法正常上網,大多數人都對此無能為力。那麼DNS頻頻出錯到底還有沒有救呢?
前面也提到過,要對付業者的DNS劫持,我們可以設定一個可靠的DNS伺服器來進行網域解析。目前許多安全廠商或網路企業甚至公益組織,都提供了DNS解析服務。
例如奇虎360、諾頓、Comodo、百度、阿里、Google等企業,都有提供DNS解析服務,你也可以選擇Open DNS這樣的老牌免費DNS服務。
這些DNS服務,都可以在網路上輕易搜到具體的IP位址,這裡就不一一羅列了。當然,並不是說用了這些DNS服務,就一定不會有DNS劫持,萬一這些企業人品也不行呢?至於誰靠譜,就得靠你來自個兒篩選了。
另外,DNS如果不是運營商所提供的話,速度表現並不一定理想。這裡推薦一款名為「DNS jumper」的軟體,它能夠比較全面得測試DNS的連線速度,並設定DNS。
利用DNS jumper,很容易就能夠找到適合你網路狀況的DNS。另外,如果業者DNS劫持行為太過猖獗,也可以到工信部投訴業者劫持網頁,這的確是非常行之有效的方法,有效到了某些業者竟然直接屏蔽了工信部的申訴網頁的程度。那麼該如何到工信部投訴業者呢?
首先,遇到網頁劫持的情況,不要直接向工信部投訴。依流程,先向業者投訴,無效後投訴到工信部,才會被接受。工信部張貼出來的申訴條件中也包括「已經向被申訴人投訴且對其處理結果不滿意或者其未在15日內答复」這一條,所以先走一下流程也是有必要的,萬一向運營商投訴就解決問題了呢?
然而事情往往不會這麼美好,運營商的回答通常很敷衍,對技術不熟悉的客服人員甚至不明白網頁劫持是什麼意思。無效後,就可以向工信部投訴業者了!如無意外,投訴後問題就會得以解決。
但即使如此,如果有人在DNS要求的UDP連線過程中做手腳,那還是防不勝防。有些公司就會利用這個原理,控制不讓員工隨便上網。如果要規避這個過程,思路就是避免DNS用UDP這樣不可靠的連結來查詢。你可以利用一些手段,設定DNS為TCP連線查詢,也可以透過加密讓其他伺服器中轉DNS請求。
IPV6強制部署IPSec,這也可以讓DNS更安全
當然,這些方法實作起來都需要折騰,並不符合一般使用者使用。或許在待到將來IPV6全面鋪開時,DNS的安全性才會有進一步提升。
整體而言,現在DNS的機制顯然在設計之初沒有充分考慮到安全性,導致別有用心者頻頻利用這一環節影響用戶的正常網路存取。 DNS頻頻被劫持、投毒的現狀如何才能改變?從技術上來說很難,希望以後能夠有更完善的監管手段,讓用戶有更好的上網體驗吧。
以上是上網強跳廣告/頁面劫持:其實是DNS被「污染」!的詳細內容。更多資訊請關注PHP中文網其他相關文章!