DNS (上)

何為網域名稱系統(DNS)?

有使用過網際網路的使用者,應該對網址(URL)不陌生,例如前往Google,使用者可於搜尋列中輸入「https://www.google.com」,前往Google頁面。但對電腦本身而言,機器所認識的並非一般使用者所見之「https://www.google.com」這個字串,而是IP 172.217.27.132。因此,為了讓電腦知道該網址所對應之IP,網域名稱系統(Domain Name System, DNS)為此而生。

👉HINT:DNS就像是人和電腦之間的翻譯機,因為人很難記憶IP,電腦不認識網址,所以需要經過翻譯機的努力,才能順利連上該網站。

DNS運作

DNS本身可以看作一種樹狀目錄之型態,一串較長之網址,可經過層層之DNS主機搜尋特定部分,以減少每台DNS主機所需記憶之資訊。舉例而言,若一使用者欲透過瀏覽器進入TWCERT/CC之網站,因此鍵入「www.twcert.org.tw」。此時,電腦會向設定之DNS伺服器詢問,而該DNS伺服器,會去詢問權威主機中最上層之root DNS伺服器,而root DNS伺服器會回應「www.twcert.org.tw」中最後「tw」部分負責之tw伺服器;接著,會再行詢問tw伺服器,而tw伺服器會回應「www.twcert.org.tw」中「org.tw」部分負責之org.tw伺服器是哪台主機;並接著詢問org.tw伺服器過後,會取得「twcert.org.tw」負責之主機位址;最終,詢問twcert.org.tw伺服器過後,即可取得「www.twcert.org.tw」之對應IP。並回應給使用者主機,供使用者主機連線至www.twcert.org.tw網站。

👉HINT:DNS可以想像是政府和地方政府,一名外國人要找到台北市中正區羅斯福路二段9號4樓之2,必須先找到台灣政府,待台灣政府引導至台北市政府後,再透過台北市政府引導至中正區……如此一來方可找到最終目的。

DNS資安問題一:DNS劫持

經過上述解釋後,想必大家有種感受:網路運作幾乎都仰賴DNS伺服器之運作而進行。在網路整體運作中,DNS確實佔了舉足輕重之角色,因此,若DNS產生任何問題,將會影響使用者進行大部分之網路動作。

此處即舉出一DNS資安問題—DNS劫持。

簡單而言,DNS劫持即為有心人士將DNS伺服器中之紀錄進行修改,將使用者所連線之目的地網站改為對有心人士有力之地址。

首先,駭客會駭入DNS伺服器中,竄改DNS伺服器的資訊。並且當使用者連線至該DNS伺服器以詢問某網站IP時,DNS伺服器會回報一個錯誤之地址,令使用者無法連線至該網頁,甚至連限制釣魚網站。如此一來,駭客便可得到所有使用者欲和真正網站溝通之訊息,例如對話、個資、訂單資訊,甚至是帳號密碼或信用卡資訊。

👉HINT:DNS劫持可以想像如一觀光客要去購買土產,因此去詢問活動中心之服務處人員。然而,該人員已被惡劣店家置換,因此將觀光客引導至該惡劣店家。而該店家與真正的優良店家外表幾乎相同,客人難以辨別。因此,受害之觀光客在其中被迫購買既昂貴又品質差之物品外,又被盜刷信用卡、錢包手機也同時被竊盜。此手法一般人難以防範和發覺,是種相當可怕之手法。

DNS資安問題二:DNS感染

另一種DNS之資安問題,稱作「DNS感染」。

在此種手法中,駭客並非駭入DNS伺服器中進行修改,而是會透過監聽使用者和DNS伺服器之對談,將DNS伺服器回覆之封包擷取並偽造一個錯誤之DNS回應訊息給使用者,導致使用者主機認定此封包為DNS伺服器所發送,因此連線至錯誤之IP地址,導致使用者網站無法響應或是連線至錯誤之網站。

此時,使用者前往之錯誤網站,多半為釣魚網站,若使用者於該網站進行帳號密碼之輸入,或是其他購物等行為,將會將所有使用者之個人資訊全數洩漏給有心人士知道。

👉HINT:DNS感染可以想像如當兩人聊天時,有心人士在旁偷聽,並且向兩邊傳達有心人士所捏造的不實訊息,導致聊天的兩人對對方的誤解。甚至刪除聊天二人手中對方的聯繫方式,使得兩人無法聯繫。

DNS資安防護

自以上二篇資安問題之敘述,可歸納DNS本身所需之防護重點:

  1. 須保持資料之完整性:確認DNS伺服器所傳輸之訊息,沒有被他人劫持或被竄改。
  2. 需驗證來源正確性:需確認收到的封包確實為DNS伺服器所傳,而非有心人士所傳遞之假訊息。
  3. 確定網站顯示不存在是真的:須確保當網站顯示不存在時,是真正不存在,而非有心人士竄改路徑導致主機連線至錯誤之不存在位址,而非原本欲前往之網站。

為了因應以上DNS之問題,因此出現了網域名稱系統安全擴充(DNSSEC)之協定,詳細內容將於下月進行說明。

Scroll to Top