深入解析ARP欺騙攻擊防護(hù)之ARP
ARP(地址解析協(xié)議)是在僅知道主機(jī)的IP地址時確定其物理地址的一種協(xié)議。因IPv4和以太網(wǎng)的廣泛應(yīng)用,其主要用作將IP地址翻譯為以太網(wǎng)的MAC地址,但其也能在ATM和FDDI IP網(wǎng)絡(luò)中使用。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網(wǎng)絡(luò)層(IP層,也就是相當(dāng)于OSI的第三層)地址解析為數(shù)據(jù)連接層(MAC層,也就是相當(dāng)于OSI的第二層)的MAC地址。
假設(shè):
計(jì)算機(jī)A的IP為192.168.1.1,MAC地址為00-11-22-33-44-01;
計(jì)算機(jī)B的IP為192.168.1.2,MAC地址為00-11-22-33-44-02;
ARP工作原理如下:
在TCP/IP協(xié)議中,A給B發(fā)送IP包,在包頭中需要填寫B(tài)的IP為目標(biāo)地址,但這個IP包在以太網(wǎng)上傳輸?shù)臅r候,還需要進(jìn)行一次以太包的封裝,在這個以太包中,目標(biāo)地址就是B的MAC地址.
計(jì)算機(jī)A是如何得知B的MAC地址的呢?解決問題的關(guān)鍵就在于ARP協(xié)議。
在A不知道B的MAC地址的情況下,A就廣播一個ARP請求包,請求包中填有B的IP(192.168.1.2),以太網(wǎng)中的所有計(jì)算機(jī)都會接收這個請求,而正常的情況下只有B會給出ARP應(yīng)答包,包中就填充上了B的MAC地址,并回復(fù)給A。
A得到ARP應(yīng)答后,將B的MAC地址放入本機(jī)緩存,便于下次使用。
本機(jī)MAC緩存是有生存期的,生存期結(jié)束后,將再次重復(fù)上面的過程。
ARP基本功能
在以太網(wǎng)協(xié)議中規(guī)定,同一局域網(wǎng)中的一臺主機(jī)要和另一臺主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。而在TCP/IP協(xié)議棧中,網(wǎng)絡(luò)層和傳輸層只關(guān)心目標(biāo)主機(jī)的IP地址。這就導(dǎo)致在以太網(wǎng)中使用IP協(xié)議時,數(shù)據(jù)鏈路層的以太網(wǎng)協(xié)議接到上層IP協(xié)議提供的數(shù)據(jù)中,只包含目的主機(jī)的IP地址。于是需要一種方法,根據(jù)目的主機(jī)的IP地址,獲得其MAC地址。這就是ARP協(xié)議要做的事情。所謂地址解析(address resolution)就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過程。
另外,當(dāng)發(fā)送主機(jī)和目的主機(jī)不在同一個局域網(wǎng)中時,即便知道目的主機(jī)的MAC地址,兩者也不能直接通信,必須經(jīng)過路由轉(zhuǎn)發(fā)才可以。所以此時,發(fā)送主機(jī)通過ARP協(xié)議獲得的將不是目的主機(jī)的真實(shí)MAC地址,而是一臺可以通往局域網(wǎng)外的路由器的某個端口的MAC地址。于是此后發(fā)送主機(jī)發(fā)往目的主機(jī)的所有幀,都將發(fā)往該路由器,通過它向外發(fā)送。這種情況稱為ARP代理(ARP Proxy)。
ARP緩存表采用了老化機(jī)制(即設(shè)置了生存時間TTL),在一段時間內(nèi)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
【編輯推薦】