本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體涉及一種ARP報文的處理方法及裝置。
背景技術(shù):
ARP(英文:Address Resolution Protocol;中文:地址解析協(xié)議)是以太網(wǎng)等數(shù)據(jù)鏈路層的基礎(chǔ)協(xié)議,用于完成IP地址到MAC地址的映射。實際應(yīng)用過程中,當(dāng)任一網(wǎng)絡(luò)設(shè)備(如主機或網(wǎng)關(guān))需要解析某個IP地址對應(yīng)的MAC地址時,會發(fā)送廣播ARP請求報文。一旦接收到返回的ARP應(yīng)答報文,則該網(wǎng)絡(luò)設(shè)備會將發(fā)送該ARP應(yīng)答報文的源IP地址和源MAC地址的映射關(guān)系記錄下來,生成ARP表項。
由上述ARP表項的生成機制可以看出,ARP協(xié)議是建立在網(wǎng)絡(luò)中各個網(wǎng)絡(luò)設(shè)備之間互相信任的基礎(chǔ)上的,沒有任何安全機制。網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備可以自主發(fā)送ARP報文,其他網(wǎng)絡(luò)設(shè)備收到ARP報文后不會檢測該ARP報文的真實性,而是直接將其記錄下來,存入本機ARP緩存中。如果網(wǎng)絡(luò)中存在惡意攻擊者,則攻擊者可以發(fā)送偽造ARP報文對網(wǎng)絡(luò)進(jìn)行攻擊。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種ARP報文的處理方法及裝置,能夠有效避免網(wǎng)絡(luò)中偽造ARP報文的惡意攻擊。
基于以上目的,本發(fā)明提供了一種ARP報文的處理方法,所述方法包括:
接收任一ARP報文后,對所述ARP報文進(jìn)行真實性驗證;
當(dāng)所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建或更新。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證,包括:
當(dāng)本地不存在包括所述ARP報文攜帶的源IP地址的ARP表項時,發(fā)送廣播ARP請求報文,所述ARP請求報文用于請求與所述源IP地址對應(yīng)的MAC地址;
在預(yù)設(shè)時間內(nèi),接收到針對所述廣播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果相同,則確定所述ARP報文通過所述真實性驗證。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證之前,還包括:
當(dāng)本地存儲有包括所述ARP報文攜帶的源IP地址的ARP表項時,比較所述ARP表項中的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
如果不相同,則執(zhí)行所述對所述ARP報文進(jìn)行真實性驗證的步驟。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證之前,還包括:
如果所述ARP表項中的MAC地址與所述ARP報文中攜帶的MAC地址不相同,則判斷所述ARP表項的刷新時間是否超過預(yù)設(shè)時間;
如果所述ARP表項的刷新時間超過所述預(yù)設(shè)時間,則執(zhí)行所述對所述ARP報文進(jìn)行真實性驗證的步驟。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證,包括:
以所述ARP表項中的MAC地址和IP地址為目的地址,發(fā)送單播ARP請求報文;
在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址是否相同;如果相同,則確定所述ARP報文未通過所述真實性驗證,丟棄所述ARP報文。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證,還包括:
如果所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址不相同,則以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文;
在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果相同,則確定所述ARP報文通過所述真實性驗證。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證,包括:
以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文;
在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果相同,則確定所述ARP報文通過所述真實性驗證。
優(yōu)選地,所述對所述ARP報文進(jìn)行真實性驗證之前,還包括:
解析所述ARP報文,得到所述ARP報文中攜帶的源MAC地址;
比較所述ARP報文中攜帶的源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部的報文中攜帶的源MAC地址是否相同;如果相同,則執(zhí)行所述對所述ARP報文進(jìn)行真實性驗證的步驟,如果不同,則丟棄所述ARP報文。
本發(fā)明還提供了一種ARP報文的處理裝置,所述裝置包括:
驗證模塊,用于接收任一ARP報文后,對所述ARP報文進(jìn)行真實性驗證;
處理模塊,用于當(dāng)所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建或更新。
優(yōu)選地,所述驗證模塊,包括:
第一發(fā)送子模塊,用于當(dāng)本地不存在包括所述ARP報文攜帶的源IP地址的ARP表項時,發(fā)送廣播ARP請求報文,所述ARP請求報文用于請求與所述源IP地址對應(yīng)的MAC地址;
第一解析子模塊,用于在預(yù)設(shè)時間內(nèi),接收到針對所述廣播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第一比較子模塊,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第一確定子模塊,用于在所述第一比較子模塊的結(jié)果為是時,確定所述ARP報文通過所述真實性驗證。
優(yōu)選地,所述裝置還包括:
第一比較模塊,用于當(dāng)本地存儲有包括所述ARP報文攜帶的源IP地址的ARP表項時,比較所述ARP表項中的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第一觸發(fā)模塊,用于在所述第一比較模塊的結(jié)果為否時,觸發(fā)所述驗證模塊。
優(yōu)選地,所述裝置,還包括:
判斷模塊,用于在所述第一比較模塊的結(jié)果為否時,判斷所述ARP表項的刷新時間是否超過預(yù)設(shè)時間;
所述第一觸發(fā)模塊,具體用于在判斷模塊的結(jié)果為是時,觸發(fā)所述驗證模塊。
優(yōu)選地,所述驗證模塊,包括:
第二發(fā)送子模塊,用于以所述ARP表項中的MAC地址和IP地址為目的地址,發(fā)送單播ARP請求報文;
第二解析子模塊,用于在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第二比較子模塊,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址是否相同;
第二確定子模塊,用于在所述第二比較子模塊的結(jié)果為是時,則確定所述ARP報文未通過所述真實性驗證,丟棄所述ARP報文。
優(yōu)選地,所述驗證模塊,還包括:
第三發(fā)送子模塊,用于在所述第二比較子模塊的結(jié)果為否時,以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文;
第三解析子模塊,用于在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第三比較子模塊,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第三確定子模塊,用于在所述第三比較子模塊的結(jié)果為是時,確定所述ARP報文通過所述真實性驗證。
優(yōu)選地,所述驗證模塊,包括:
第四發(fā)送子模塊,用于以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文;
第四解析子模塊,用于在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第四比較子模塊,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第四確定子模塊,用于在所述第四比較子模塊的結(jié)果為是時,確定所述ARP報文通過所述真實性驗證。
優(yōu)選地,所述裝置,還包括:
解析模塊,用于解析所述ARP報文,得到所述ARP報文中攜帶的源MAC地址;
第二比較模塊,用于比較所述ARP報文中攜帶的源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部的報文中攜帶的源MAC地址是否相同;
第二觸發(fā)模塊,用于在所述第二比較模塊的結(jié)果為是時,觸發(fā)所述驗證模塊;
丟棄模塊,用于在所述第二比較模塊的結(jié)果為否時,丟棄所述ARP報文。
本發(fā)明提供了一種ARP報文的處理方法,網(wǎng)絡(luò)設(shè)備在接收任一ARP報文后,首先對所述ARP報文進(jìn)行真實性驗證。當(dāng)所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建或更新。利用本發(fā)明提供的ARP報文處理方法能夠有效避免網(wǎng)絡(luò)中偽造ARP報文的惡意攻擊。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種ARP報文的處理方法流程圖;
圖2為本發(fā)明實施例提供的另一種ARP報文的處理方法流程圖;
圖3為本發(fā)明實施例提供的一種利用ARP報文新建ARP表項的方法流程圖;
圖4為本發(fā)明實施例提供的一種利用ARP報文更新ARP表項的方法流程圖;
圖5為本發(fā)明實施例提供的另一種利用ARP報文更新ARP表項的方法流程圖;
圖6為本發(fā)明實施例提供的另一種利用ARP報文更新ARP表項的方法流程圖;
圖7為本發(fā)明實施例提供的一種ARP報文的處理裝置結(jié)構(gòu)示意圖;
圖8為本發(fā)明實施例提供的一種利用ARP報文新建ARP表項的驗證模塊的結(jié)構(gòu)示意圖;
圖9為本發(fā)明實施例提供的一種利用ARP報文更新ARP表項的驗證模塊的結(jié)構(gòu)示意圖;
圖10為本發(fā)明實施例提供的另一種利用ARP報文更新ARP表項的驗證模塊的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
以下進(jìn)行實施例具體內(nèi)容的介紹。
本發(fā)明實施例提供了一種ARP報文的處理方法,參考圖1,為本發(fā)明實施例提供的一種ARP報文的處理方法流程圖,所述方法具體包括:
S101:接收任一ARP報文后,對所述ARP報文進(jìn)行真實性驗證。
S102:當(dāng)所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建或更新。
本發(fā)明實施例中,網(wǎng)絡(luò)中的各個網(wǎng)絡(luò)設(shè)備(如主機或網(wǎng)關(guān))均可以作為ARP報文的接收方。當(dāng)任一網(wǎng)絡(luò)設(shè)備接收到任一ARP報文后,為了避免該ARP報文是偽造ARP報文而造成的安全威脅,首先對該ARP報文進(jìn)行真實性驗證,以便驗證該ARP報文是否為偽造ARP報文。如果該ARP報文通過了真實性驗證,則該網(wǎng)絡(luò)設(shè)備可以直接利用該ARP報文進(jìn)行ARP表項的新建或更新。如果該ARP報文未通過真實性驗證,則說明該ARP報文為偽造ARP報文,所述網(wǎng)絡(luò)設(shè)備可以直接丟棄該ARP報文。
本發(fā)明實施例提供的ARP報文的處理方法,通過對接收到的ARP報文進(jìn)行真實性,并在該ARP報文通過所述真實性驗證后,才利用ARP報文進(jìn)行ARP表項的新建或更新,能夠準(zhǔn)確識別出偽造ARP報文,很大程度上避免攻擊者發(fā)起的網(wǎng)絡(luò)攻擊。
本發(fā)明還提供了一種ARP報文的處理方法,參考圖2,圖2為本發(fā)明實施例提供的另一種ARP報文的處理方法流程圖。所述方法包括:
S201:網(wǎng)絡(luò)設(shè)備接收任一ARP報文后,解析所述ARP報文,得到所述ARP報文攜帶的源IP地址和MAC地址;
S202:所述網(wǎng)絡(luò)設(shè)備判斷本地是否存儲有包括所述源IP地址的ARP表項;如果不存在,則執(zhí)行S203,否則,執(zhí)行S204。
S203:對所述ARP報文進(jìn)行真實性驗證,并在所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建。
S204:比較所述ARP表項中的MAC地址與所述ARP報文中攜帶的MAC地址是否相同;如果不相同,則執(zhí)行S205。
S205:對所述ARP報文進(jìn)行真實性驗證,并在所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的更新。
本發(fā)明實施例中,網(wǎng)絡(luò)設(shè)備在接收到ARP報文后,首先判斷本地是否存儲有包括該ARP報文攜帶的源IP地址的ARP表項,如果本地存在,則說明可能是利用該ARP報文進(jìn)行ARP表項的更新,如果本地不存在,則說明可能是利用該ARP報文進(jìn)行ARP表項的新建。值得注意的是,無論是ARP表項的新建,還是ARP表項的更新,所述網(wǎng)絡(luò)設(shè)備都需要首先對該ARP報文進(jìn)行真實性的驗證,只有驗證通過,才能利用該ARP報文進(jìn)行ARP表項的新建或更新。
本發(fā)明實施例還提供了一種ARP報文的處理方法,參考圖3,為本發(fā)明實施例提供的一種利用ARP報文新建ARP表項的方法流程圖。具體的,所述方法包括:
S301:網(wǎng)絡(luò)設(shè)備確定本地不存在包括ARP報文攜帶的源IP地址的ARP表項時,發(fā)送廣播ARP請求報文,所述ARP請求報文用于請求與所述源IP地址對應(yīng)的MAC地址。
S302:所述網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間內(nèi),接收到針對所述廣播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址。
如果發(fā)送廣播ARP請求報文到接收ARP應(yīng)答報文的時間超過預(yù)設(shè)時間,則對接收到的ARP應(yīng)答報文進(jìn)行丟棄。
S303:比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果相同,則執(zhí)行S304。
S304:確定所述ARP報文通過所述真實性驗證,并根據(jù)所述ARP報文攜帶的源IP地址和源MAC地址的對應(yīng)關(guān)系,新建ARP表項。
本發(fā)明實施例中,網(wǎng)絡(luò)設(shè)備發(fā)送廣播ARP請求報文的目的是獲取與所述ARP報文攜帶的源IP地址具有對應(yīng)關(guān)系的MAC地址,則針對該廣播的ARP應(yīng)答報文中攜帶的MAC地址即為真正的與該源IP地址具有對應(yīng)關(guān)系的MAC地址。如果該MAC地址與所述ARP報文中攜帶的源MAC地址相同,則說明所述ARP報文并不是偽造ARP報文,確定所述ARP報文通過所述真實性驗證。
本發(fā)明實施例還提供了一種ARP報文的處理方法,參考圖3,為本發(fā)明實施例提供的一種利用ARP報文更新ARP表項的方法流程圖。具體的,所述方法包括:
S401:網(wǎng)絡(luò)設(shè)備確定本地存儲有包括所述ARP報文攜帶的源IP地址的ARP表項時,比較所述ARP表項中的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果不同,則執(zhí)行S402,否則不需要更新ARP表項。
S402:所述網(wǎng)絡(luò)設(shè)備判斷所述ARP表項的刷新時間是否超過預(yù)設(shè)時間;如果是,則執(zhí)行S403,否則不需要更新ARP表項。
S403:所述網(wǎng)絡(luò)設(shè)備以所述ARP表項中的MAC地址和IP地址為目的地址,發(fā)送單播ARP請求報文;
S404:在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
S405:比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址是否相同;如果相同,則執(zhí)行S406。
S406:確定所述ARP報文未通過所述真實性驗證,丟棄所述ARP報文。
本發(fā)明實施例中,由于更新ARP表項的前提是ARP表項中的MAC地址與所述ARP報文中攜帶的源MAC地址不相同,所以,如果ARP應(yīng)答報文中攜帶的MAC地址與ARP表項中的MAC地址相同,則從另一個角度說明ARP應(yīng)答報文中攜帶的MAC地址與ARP報文中攜帶的源MAC地址不相同。理論上,ARP應(yīng)答報文中攜帶的MAC地址是最新的,所以,所述網(wǎng)絡(luò)設(shè)備可以確定ARP報文是偽造ARP報文,確定所述ARP報文未通過所述真實性驗證,直接丟棄所述ARP報文即可。一種優(yōu)選的更新ARP表項的方式中,由于ARP應(yīng)答報文中攜帶的MAC地址是最新的,所以可以直接利用ARP應(yīng)答報文中攜帶的MAC地址更新ARP表項。
如果所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址不相同,不能說明所述ARP報文是否為偽造ARP報文,需要進(jìn)一步對其進(jìn)行真實性驗證。
針對這種情況,本發(fā)明實施例還提供了一種ARP報文的處理方法,參考圖5,為本發(fā)明實施例提供的另一種利用ARP報文更新ARP表項的方法流程圖。具體的,所述方法包括:
S501:如果針對以ARP表項中的MAC地址和IP地址為目的地址發(fā)送的單播ARP請求報文而返回的ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址不相同,則網(wǎng)絡(luò)設(shè)備以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文。
S502:在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址。
S503:比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果相同,則執(zhí)行S504。
S504:確定所述ARP報文通過所述真實性驗證。
本發(fā)明實施例中,當(dāng)所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址不相同時,不能確定所述ARP報文是否為偽造ARP報文,則進(jìn)一步對所述ARP報文進(jìn)行真實性驗證。具體的,以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文,預(yù)設(shè)時間內(nèi)接收到的ARP應(yīng)答報文攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址相同,則可以說明所述ARP報文不是偽造ARP報文,確定其通過真實性驗證,后續(xù)能夠利用該ARP報文攜帶的源IP地址和源MAC地址的對應(yīng)關(guān)系更新ARP表項。
如果所述ARP應(yīng)答報文攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址不相同,則說明所述ARP報文是偽造ARP報文,直接丟棄即可。
另外,本發(fā)明實施例還提供了一種ARP報文的處理方法,參考圖6,為本發(fā)明實施例提供的另一種利用ARP報文更新ARP表項的方法流程圖。具體的,所述方法包括:
S601:當(dāng)網(wǎng)絡(luò)設(shè)備確定所述ARP表項中的MAC地址與所述ARP報文中攜帶的源MAC地址不相同時,以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文。
S602:在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
S603:比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;如果相同,則執(zhí)行S604。
S604:確定所述ARP報文通過所述真實性驗證。
上述實施方式中,一旦網(wǎng)絡(luò)設(shè)備確定本地ARP表項需要更新,則直接驗證所述ARP報文是否為偽造報文,也就是說,如果所述ARP報文通過真實性驗證,則可以直接利用所述ARP報文攜帶的源IP地址和源MAC地址的對應(yīng)關(guān)系更新ARP表項。
具體的,這種實施方式中驗證所述ARP報文的真實性的方法為:以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文,在預(yù)設(shè)時間內(nèi)接收到的ARP應(yīng)答報文攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址相同,則說明該ARP報文不是偽造ARP報文,可以直接利用該ARP報文更新ARP表項。
由于局域網(wǎng)內(nèi)有些偽造ARP報文中攜帶的源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部的報文中攜帶的源MAC地址是不一致的,所以本發(fā)明實施例可以在接收到任一ARP報文之后,首先比較所述ARP報文中攜帶的源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部的報文中攜帶的源MAC地址是否相同。如果相同,則繼續(xù)執(zhí)行所述對所述ARP報文進(jìn)行真實性驗證的步驟,如果不同,則直接丟棄所述ARP報文。通過上述處理,本發(fā)明實施例能夠在對ARP報文進(jìn)行真實性驗證之前,直接篩除一部分偽造ARP報文,一定程度上節(jié)約了系統(tǒng)處理資源。
本發(fā)明實施例提供了一種ARP報文的處理裝置,參考圖7,為本發(fā)明實施例提供的一種ARP報文的處理裝置結(jié)構(gòu)示意圖,所述裝置包括:
驗證模塊710,用于接收任一ARP報文后,對所述ARP報文進(jìn)行真實性驗證;
處理模塊720,用于當(dāng)所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建或更新。
參考圖8,為本發(fā)明實施例提供的一種利用ARP報文新建ARP表項的驗證模塊的結(jié)構(gòu)示意圖,所述驗證模塊710,包括:
第一發(fā)送子模塊801,用于當(dāng)本地不存在包括所述ARP報文攜帶的源IP地址的ARP表項時,發(fā)送廣播ARP請求報文,所述ARP請求報文用于請求與所述源IP地址對應(yīng)的MAC地址;
第一解析子模塊802,用于在預(yù)設(shè)時間內(nèi),接收到針對所述廣播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第一比較子模塊803,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第一確定子模塊804,用于在所述第一比較子模塊的結(jié)果為是時,確定所述ARP報文通過所述真實性驗證。
另外,一種優(yōu)選實施方式中,所述ARP報文的處理裝置還可以包括:
第一比較模塊,用于當(dāng)本地存儲有包括所述ARP報文攜帶的源IP地址的ARP表項時,比較所述ARP表項中的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第一觸發(fā)模塊,用于在所述第一比較模塊的結(jié)果為否時,觸發(fā)所述驗證模塊。
另一種優(yōu)選實施方式中,所述ARP報文的處理裝置還可以包括:
判斷模塊,用于在所述第一比較模塊的結(jié)果為否時,判斷所述ARP表項的刷新時間是否超過預(yù)設(shè)時間;
所述第一觸發(fā)模塊,具體用于在判斷模塊的結(jié)果為是時,觸發(fā)所述驗證模塊。
參考圖9,為本發(fā)明實施例提供的一種利用ARP報文更新ARP表項的驗證模塊的結(jié)構(gòu)示意圖,所述驗證模塊710,包括:
第二發(fā)送子模塊901,用于以所述ARP表項中的MAC地址和IP地址為目的地址,發(fā)送單播ARP請求報文;
第二解析子模塊902,用于在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第二比較子模塊903,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP表項中的MAC地址是否相同;
第二確定子模塊904,用于在所述第二比較子模塊的結(jié)果為是時,則確定所述ARP報文未通過所述真實性驗證,丟棄所述ARP報文。
第三發(fā)送子模塊905,用于在所述第二比較子模塊的結(jié)果為否時,以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文;
第三解析子模塊906,用于在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第三比較子模塊907,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第三確定子模塊908,用于在所述第三比較子模塊的結(jié)果為是時,確定所述ARP報文通過所述真實性驗證。
參考圖10,為本發(fā)明實施例提供的另一種利用ARP報文更新ARP表項的驗證模塊的結(jié)構(gòu)示意圖,所述驗證模塊710,包括:
第四發(fā)送子模塊1001,用于以所述ARP報文攜帶的源IP地址和源MAC地址為目的地址,發(fā)送單播ARP請求報文;
第四解析子模塊1002,用于在預(yù)設(shè)時間內(nèi),接收到針對所述單播ARP請求報文返回的ARP應(yīng)答報文后,解析所述ARP應(yīng)答報文,得到所述ARP應(yīng)答報文中攜帶的MAC地址;
第四比較子模塊1003,用于比較所述ARP應(yīng)答報文中攜帶的MAC地址與所述ARP報文中攜帶的源MAC地址是否相同;
第四確定子模塊1004,用于在所述第四比較子模塊的結(jié)果為是時,確定所述ARP報文通過所述真實性驗證。
由于局域網(wǎng)內(nèi)有些偽造ARP報文中攜帶的源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部的報文中攜帶的源MAC地址是不一致的,所以本發(fā)明實施例提供的ARP報文的處理裝置,還可以包括:
解析模塊,用于解析所述ARP報文,得到所述ARP報文中攜帶的源MAC地址;
第二比較模塊,用于比較所述ARP報文中攜帶的源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部的報文中攜帶的源MAC地址是否相同;
第二觸發(fā)模塊,用于在所述第二比較模塊的結(jié)果為是時,觸發(fā)所述驗證模塊;
丟棄模塊,用于在所述第二比較模塊的結(jié)果為否時,丟棄所述ARP報文。
本發(fā)明實施例提供的ARP報文的處理裝置能夠?qū)崿F(xiàn)以下功能:在接收任一ARP報文后,首先對所述ARP報文進(jìn)行真實性驗證。當(dāng)所述ARP報文通過所述真實性驗證后,利用所述ARP報文進(jìn)行ARP表項的新建或更新。利用本發(fā)明實施例提供的ARP報文處理裝置能夠有效避免網(wǎng)絡(luò)中偽造ARP報文的惡意攻擊。
對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本發(fā)明實施例所提供的一種ARP報文的處理方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。