第二章 文獻探討
2.1 ARP通訊協定簡介
在現有的網際網路(Internet)上,我們在傳送資料時是以 TCP/IP[18]為最主要的通訊 協定,而其中以 IP(Internet Protocol)通訊協定[14]做為資料傳送目的地位址依據。然而,
IP 位址僅能作用於網路層(Network Layer)的傳輸協定,當我們在區域網路中使用乙太網 路(Ethernet)做為資料鏈結層(Data-Link Layer)的傳輸協定時,便無法直接使用 IP 位址做 為資料傳輸目的地的位址。這是由於,在目前通用的乙太網路架構中,主機與主機間的 乙太封包傳遞,是以一組 48 個位元所組成的媒體存取控制位址(MAC Address, Media Access Control Address)來決定封包該送到哪個介面,而非使用 IP 位址。因此,當傳送 主機以 IP 位址為目的地之資料封包在乙太網路架構下的區域網路中傳輸時,會將該資 料封包之表頭(Header)再包覆上一層乙太網路的訊框(Frame),該訊框內包含有 MAC 位 址資訊。如此該封包便可在乙太網路架構下的區域網路中傳輸。然而傳送主機在一開始 將要傳送第一個資料封包至目的地主機時,僅知目的地 IP 位址,而不知道該 IP 位址所 對應之 MAC 位址。因此,當第一次傳送資料封包前,需要透過 ARP 通訊協定詢問目 的地 IP 位址其所對應之 MAC 位址。當傳送主機得到目的地 MAC 位址後,其以 IP 為
5
目的地位址之資料封包即可在以太架構下之區域網路中,藉由包覆乙太網路的訊框傳輸 至正確的目的地。
在乙太網路的架構下,區域網路內的每部主機皆會建立一個 ARP Table 的快取 (Cache),用來記錄在最近的時間內區域網路中其他主機的 IP 位址所對應之 MAC 位址 資訊,以省去每次傳遞訊息前都必須使用 ARP 通訊協定[13]轉換 IP 位址與 MAC 位址 的程序,僅需在 ARP Table 中沒有該組 IP 位址與 MAC 位址對應時,才發出 ARP-Request 之詢問封包,藉以提高網路傳輸效能。
當區域網路中的傳送主機(以下稱為 A 主機)要將資料封包送至目的主機(以下稱為 B 主機)時,會先將 B 主機的 IP 位址與自己的子網路遮罩(Subnet Mask)做運算,判斷 B 主機是否與 A 主機處於相同的區域網路內,如果處於相同區域網路內,則 A 主機會先 檢查自身擁有的 ARP Table,若能找到 B 主機的 IP 位址所對應的 MAC 位址,則將資料 封包直接送至該 MAC 位址;如果在 A 主機的 ARP Table 中無法找到 B 主機的 IP 位址與 MAC 位址之對應資訊,則 A 主機對其所處之區域網路內發出一 ARP-Request 之廣播封 包,詢問區域網路內哪個 MAC 位址擁有B主機之 IP 位址。當區域網路內的所有主機 都收到該 ARP-Request 封包後,會判斷該封包所詢問之 IP 位址是否為自己所擁有,如 果該主機擁有 ARP-Request 封包所詢問之 IP 位址,則回應一 ARP-Reply 封包給 A 主機,
告知 A 主機其 MAC 位址並更新自身的 ARP Table 將 A 主機的 MAC 位址與 IP 位址對 應資訊加入 ARP Table 中;若該 IP 位址非自己所擁有,則不對該封包做任何回應但亦將 A 主機的 MAC 位址與 IP 位址資訊之對應資訊加入 ARP Table 中。其運作流程如下圖 2-1 所示:
6
圖 2-1.ARP 封包運作流程
當 A 主機(10.0.0.2)送出一封包至 B 主機(10.0.0.3)時,其步驟流程如下:
1. A 主機檢查自己的 ARP Table 中是否有 B 主機的 IP 位址與 MAC 位址對應資訊,若 有擇直接傳送封包至該 MAC 位址,沒有則執行步驟 2。
2. A 主機對區域網路中的所有主機發送一 ARP-Request 廣播封包,詢問哪個 MAC 位 址所對應之 IP 位址為 10.0.0.3。
3. 在區域網路中的所有主機皆收到 A 主機的 ARP-Request 封包後,將 A 主機的 IP 位 址與 MAC 位址對應資訊加入自身的 ARP Table 中。
4. 區域網路內所的有主機中,B 主機判斷該 ARP-Request 封包所詢問之位址為自己所 擁有,所以回應一 ARP-Reply 封包給 A 主機告知 B 主機的 IP 位址與 MAC 位址對 應資訊,而其餘之主機則不作任何回應。
5. A 主機收到該 ARP-Reply 封包後 ,將 B 主機的 IP 位址與 MAC 位址對應資訊加入自 己的 ARP Table 中。
7
另外,若 A 主機試圖傳送一資料封包至其他網路中之主機時(如 IP 位址:192.168.0.50) 時,會先將該 IP 位址與自己的子網路遮罩作運算,若發現目的地主機(192.168.0.50)與 自己處於不同的區域網路時,則 A 主機會將其資料封包送往區域網路中的通訊閘道 (Gateway),通訊閘道收到此資料封包後會依照 IP 的通訊協定,檢查正確的路由資訊,
判斷該主機所處之區域網路位於哪個路由器的轄下,將該封包送至通往該路由器的正確 網路介面。
在區域網路中,通訊閘道就像一道檢查關卡一般,當處於區域網路內的主機發現其 試圖發送之封包的目的地不在同一個區域網路時,會先將資料封包送至通訊閘道,再由 通訊閘道將該封包轉送至正確的網路介面。而通訊閘道在乙太網路的架構中,其傳遞封 包時的行為如同其他區域網路中的主機一般,在傳輸資料前也必需利用 ARP 通訊協定 完成 IP 位址與 MAC 位址的轉換。
由於 ARP 通訊協定的設計,產生了一些安全上的漏洞。而使用乙太網路的區域網 路中的主機以及通訊閘道皆必須使用 ARP 通訊協定做為其 IP 與 MAC 位址轉換的協 定,因此在區域網路中造成了遭受利用 ARP 漏洞達成竊聽的安全顧慮。在接下來的章 節中,我們將針對現有常見之 ARP 欺騙攻擊手法做一簡介。