對(duì)局域網(wǎng)中的arp中間人攻擊進(jìn)行防范的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供了一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法和系統(tǒng)。該方法主要包括:局域網(wǎng)內(nèi)的第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的用第二節(jié)點(diǎn)的私鑰簽名后的ARP數(shù)據(jù)包,當(dāng)?shù)谝还?jié)點(diǎn)在本地沒(méi)有查詢到第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),向所述局域網(wǎng)中的可信任節(jié)點(diǎn)發(fā)送攜帶第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求。可信任節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送第二節(jié)點(diǎn)的公鑰,第一節(jié)點(diǎn)用第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。本發(fā)明實(shí)施例可以有效地防止局域網(wǎng)中的ARP中間人攻擊,保證局域網(wǎng)中的各個(gè)節(jié)點(diǎn)之間的通信安全。
【專利說(shuō)明】對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及局域網(wǎng)安全領(lǐng)域,具體是涉及到一種對(duì)局域網(wǎng)中的ARP (AddressResolut1n Protocol,地址解析協(xié)議)中間人攻擊進(jìn)行防范的方法和系統(tǒng)。
【背景技術(shù)】
[0002]電信級(jí)IP技術(shù)的發(fā)展成熟使得話音、數(shù)據(jù)、視頻和移動(dòng)等應(yīng)用的融合成為必然,統(tǒng)一通訊已成為發(fā)展的趨勢(shì)。以IP技術(shù)為核心進(jìn)行網(wǎng)絡(luò)改造并承載多種新型業(yè)務(wù)以提升競(jìng)爭(zhēng)力,是固網(wǎng)運(yùn)營(yíng)商的發(fā)展方向。而以太網(wǎng)技術(shù)由于標(biāo)準(zhǔn)化程度高、應(yīng)用廣泛、帶寬提供能力強(qiáng)、擴(kuò)展性良好、技術(shù)成熟,設(shè)備性價(jià)比高,對(duì)IP的良好支持,成為城域網(wǎng)和接入網(wǎng)的發(fā)展趨勢(shì)。但是,由于以太網(wǎng)技術(shù)的開放性和其應(yīng)用廣泛,也帶來(lái)了一些安全上的問(wèn)題。特別是當(dāng)網(wǎng)絡(luò)由原有的單業(yè)務(wù)承載轉(zhuǎn)為多業(yè)務(wù)承載時(shí),安全問(wèn)題帶來(lái)的影響愈發(fā)明顯,已經(jīng)逐步影響到業(yè)務(wù)的開展和部署。
[0003]ARP (Address Resolut1n Protocol,地址解析協(xié)議)是獲取物理地址的一個(gè)TCP(Transmiss1n Control Protocol,傳輸控制協(xié)議)/IP協(xié)議。按照ARP協(xié)議的設(shè)計(jì),一個(gè)節(jié)點(diǎn)即使收到的ARP數(shù)據(jù)包并非自身請(qǐng)求得到的,也會(huì)將上述ARP數(shù)據(jù)包中攜帶的IP地址和MAC (Medium/MediaAccess Control,介質(zhì)訪問(wèn)控制)地址的對(duì)應(yīng)關(guān)系添加到自身的ARP映射表中。這樣可以減少網(wǎng)絡(luò)上過(guò)多的ARP數(shù)據(jù)通信,但也為“ARP中間人”創(chuàng)造了條件。
[0004]網(wǎng)絡(luò)節(jié)點(diǎn)A和網(wǎng)絡(luò)節(jié)點(diǎn)C進(jìn)行通信。此時(shí),如果有黑客(節(jié)點(diǎn)B)想探聽節(jié)點(diǎn)A和節(jié)點(diǎn)C之間的通信,節(jié)點(diǎn)B可以分別給節(jié)點(diǎn)A和節(jié)點(diǎn)C發(fā)送偽造的ARP數(shù)據(jù)包,使節(jié)點(diǎn)A和節(jié)點(diǎn)C用B的MAC地址更新自身ARP映射表中與對(duì)方IP地址相應(yīng)的表項(xiàng)。之后,節(jié)點(diǎn)A和節(jié)點(diǎn)C之間的通信,卻都是通過(guò)黑客所在的節(jié)點(diǎn)B間接進(jìn)行的,即節(jié)點(diǎn)B擔(dān)當(dāng)了“中間人”的角色,可以對(duì)信息進(jìn)行了竊取和篡改。這種攻擊方式就稱作“ARP中間人(Man-1n-The-Middle)攻擊”。顯而易見(jiàn),該種攻擊對(duì)于網(wǎng)絡(luò)具有極大的危害性。
[0005]目前,現(xiàn)有技術(shù)中還沒(méi)有一種有效地解決上述ARP中間人攻擊的方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實(shí)施例提供了一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法和系統(tǒng),以有效地解決上述局域網(wǎng)中的ARP中間人攻擊。
[0007]一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法,包括:
[0008]局域網(wǎng)內(nèi)的第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的地址解析協(xié)議ARP數(shù)據(jù)包,所述ARP數(shù)據(jù)包用所述第二節(jié)點(diǎn)的私鑰進(jìn)行簽名,所述第一節(jié)點(diǎn)獲取所述ARP數(shù)據(jù)包中攜帶的所述第二節(jié)點(diǎn)的IP地址;
[0009]當(dāng)所述第一節(jié)點(diǎn)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),所述第一節(jié)點(diǎn)向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求;
[0010]所述可信任節(jié)點(diǎn)向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰,所述第一節(jié)點(diǎn)用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。
[0011]所述的局域網(wǎng)內(nèi)第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的ARP數(shù)據(jù)包之前還包括:
[0012]在所述局域網(wǎng)中設(shè)置可信任節(jié)點(diǎn),所述可信任節(jié)點(diǎn)向所述局域網(wǎng)內(nèi)的所有節(jié)點(diǎn)發(fā)送該可信任節(jié)點(diǎn)的公鑰和介質(zhì)訪問(wèn)控制MAC地址;
[0013]所述各個(gè)節(jié)點(diǎn)接收到所述可信任節(jié)點(diǎn)的公鑰和MAC地址后,將所述可信任節(jié)點(diǎn)的公鑰進(jìn)行存儲(chǔ),利用可信任節(jié)點(diǎn)的公鑰生成各個(gè)節(jié)點(diǎn)自身的公鑰和私鑰,再將其IP地址和公鑰用可信任節(jié)點(diǎn)的公鑰簽名之后發(fā)送到所述可信任節(jié)點(diǎn);
[0014]所述可信任節(jié)點(diǎn)接收到所述各個(gè)節(jié)點(diǎn)發(fā)送的IP地址和公鑰信息后,將各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息在節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中進(jìn)行關(guān)聯(lián)存儲(chǔ)。
[0015]所述的當(dāng)所述第一節(jié)點(diǎn)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),所述第一節(jié)點(diǎn)向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求,包括:
[0016]所述第一節(jié)點(diǎn)根據(jù)所述第二節(jié)點(diǎn)的IP地址查詢本地ARP緩存表,當(dāng)所述第一節(jié)點(diǎn)從所述本地ARP緩存表中沒(méi)有查詢到所述第二節(jié)點(diǎn)的公鑰時(shí);或者,查詢到的所述第二節(jié)點(diǎn)的公鑰過(guò)期或者錯(cuò)誤,而不能驗(yàn)簽所述ARP數(shù)據(jù)包時(shí),所述第一節(jié)點(diǎn)向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求。
[0017]所述的可信任節(jié)點(diǎn)向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰,包括:
[0018]所述可信任節(jié)點(diǎn)接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,根據(jù)所述查詢請(qǐng)求中攜帶的所述第二節(jié)點(diǎn)的IP地址查詢所述節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中關(guān)聯(lián)存儲(chǔ)的各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息,獲取所述第二節(jié)點(diǎn)的公鑰,將所述第二節(jié)點(diǎn)的公鑰用自身的私鑰加密后發(fā)送給所述第一節(jié)點(diǎn)。
[0019]所述的第一節(jié)點(diǎn)用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,包括:
[0020]所述第一節(jié)點(diǎn)接收到所述可信任節(jié)點(diǎn)發(fā)送的加密后的所述第二節(jié)點(diǎn)的公鑰后,使用所述可信任節(jié)點(diǎn)的公鑰進(jìn)行解密處理,得到所述第二節(jié)點(diǎn)的公鑰;
[0021]所述第一節(jié)點(diǎn)用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,若驗(yàn)簽成功,則將所述第二節(jié)點(diǎn)的公鑰和IP地址之間的對(duì)應(yīng)關(guān)系存儲(chǔ)在本地ARP緩存表中,若驗(yàn)簽不成功,則將所述ARP數(shù)據(jù)包和所述第二節(jié)點(diǎn)的公鑰拋棄。
[0022]一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),包括:設(shè)置在局域網(wǎng)中的第一節(jié)點(diǎn)、第二節(jié)點(diǎn)和可信任節(jié)點(diǎn),
[0023]所述的第二節(jié)點(diǎn),用于向所述第一節(jié)點(diǎn)發(fā)送地址解析協(xié)議ARP數(shù)據(jù)包,所述ARP數(shù)據(jù)包用所述第二節(jié)點(diǎn)的私鑰進(jìn)行簽名
[0024]所述的第一節(jié)點(diǎn),用于接收到所述第二節(jié)點(diǎn)發(fā)送的所述ARP數(shù)據(jù)包后,獲取所述ARP數(shù)據(jù)包中攜帶的所述第二節(jié)點(diǎn)的IP地址;當(dāng)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),向所述可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求;
[0025]所述的可信任節(jié)點(diǎn),用于接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰,
[0026]所述的第一節(jié)點(diǎn),還用于用所述可信任主機(jī)發(fā)送過(guò)來(lái)的第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。
[0027]所述的可信任節(jié)點(diǎn),具體用于向所述局域網(wǎng)內(nèi)的各個(gè)節(jié)點(diǎn)發(fā)送該可信任節(jié)點(diǎn)的公鑰和介質(zhì)訪問(wèn)控制MAC地址,以使得所述各個(gè)節(jié)點(diǎn)將所述可信任節(jié)點(diǎn)的公鑰進(jìn)行存儲(chǔ),利用可信任節(jié)點(diǎn)的公鑰生成各個(gè)節(jié)點(diǎn)自身的公鑰和私鑰,接收到所述各個(gè)節(jié)點(diǎn)發(fā)送的IP地址和公鑰信息后,將各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息在節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中進(jìn)行關(guān)聯(lián)存儲(chǔ)。
[0028]所述的第一節(jié)點(diǎn),具體用于根據(jù)所述第二節(jié)點(diǎn)的IP地址查詢本地ARP緩存表,當(dāng)從所述本地ARP緩存表中沒(méi)有查詢到所述第二節(jié)點(diǎn)的公鑰時(shí);或者,查詢到的所述第二節(jié)點(diǎn)的公鑰過(guò)期或者錯(cuò)誤,而不能驗(yàn)簽所述ARP數(shù)據(jù)包時(shí),向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求。
[0029]所述的可信任節(jié)點(diǎn),具體用于接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,根據(jù)所述查詢請(qǐng)求中攜帶的所述第二節(jié)點(diǎn)的IP地址查詢所述節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中關(guān)聯(lián)存儲(chǔ)的各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息,獲取所述第二節(jié)點(diǎn)的公鑰,將所述第二節(jié)點(diǎn)的公鑰用自身的私鑰加密后發(fā)送給所述第一節(jié)點(diǎn)。
[0030]所述的第一節(jié)點(diǎn),具體用于接收到所述可信任節(jié)點(diǎn)發(fā)送的加密后的所述第二節(jié)點(diǎn)的公鑰后,使用所述可信任節(jié)點(diǎn)的公鑰進(jìn)行解密處理,得到所述第二節(jié)點(diǎn)的公鑰;
[0031]用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,若驗(yàn)簽成功,則將所述第二節(jié)點(diǎn)的公鑰和IP地址之間的對(duì)應(yīng)關(guān)系存儲(chǔ)在本地ARP緩存表中,若驗(yàn)簽不成功,則將所述ARP數(shù)據(jù)包和所述第二節(jié)點(diǎn)的公鑰拋棄。
[0032]由上述本發(fā)明的實(shí)施例提供的技術(shù)方案可以看出,本發(fā)明實(shí)施例通過(guò)在局域網(wǎng)中設(shè)置可信任主機(jī),該可信任節(jié)點(diǎn)中存儲(chǔ)各個(gè)節(jié)點(diǎn)的公鑰和IP地址,節(jié)點(diǎn)發(fā)送的ARP數(shù)據(jù)包用節(jié)點(diǎn)的私鑰進(jìn)行簽名,可以有效地防止局域網(wǎng)中的ARP中間人攻擊,保證局域網(wǎng)中的各個(gè)節(jié)點(diǎn)之間的通信安全。
【專利附圖】
【附圖說(shuō)明】
[0033]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0034]圖1為本發(fā)明實(shí)施例一提供的一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法的實(shí)現(xiàn)原理不意圖;
[0035]圖2為本發(fā)明實(shí)施例一提供的一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法的處理流程圖;
[0036]圖3為本發(fā)明實(shí)施例二提供的一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng)的具體實(shí)現(xiàn)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0037]為便于對(duì)本發(fā)明實(shí)施例的理解,下面將結(jié)合附圖以幾個(gè)具體實(shí)施例為例做進(jìn)一步的解釋說(shuō)明,且各個(gè)實(shí)施例并不構(gòu)成對(duì)本發(fā)明實(shí)施例的限定。
[0038]實(shí)施例一
[0039]局域網(wǎng)中的ARP中間人攻擊在局域網(wǎng)中是一種不僅具有非常大的威脅而且是極其難于發(fā)覺(jué)的威脅,是局域網(wǎng)中的重大危害。在本發(fā)明實(shí)施例中,局域網(wǎng)內(nèi)的第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的用第二節(jié)點(diǎn)的私鑰進(jìn)行簽名后的ARP數(shù)據(jù)包后,在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),從局域網(wǎng)中可信任節(jié)點(diǎn)獲取第二節(jié)點(diǎn)的公鑰,用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。
[0040]該實(shí)施例提供了一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法的實(shí)現(xiàn)原理示意圖如圖1所示,具體處理流程如圖2所示,包括如下的處理步驟:
[0041]步驟21、在局域網(wǎng)中設(shè)置一臺(tái)可信任節(jié)點(diǎn),該可信任節(jié)點(diǎn)中存儲(chǔ)各個(gè)節(jié)點(diǎn)的公鑰和IP地址。
[0042]首先,系統(tǒng)管理員和部署人員在局域網(wǎng)中設(shè)置一臺(tái)可信任節(jié)點(diǎn),用于存儲(chǔ)各個(gè)節(jié)點(diǎn)的公鑰和IP地址。該可信任節(jié)點(diǎn)在網(wǎng)絡(luò)內(nèi)處于絕對(duì)重要的地位,該可信任節(jié)點(diǎn)向局域網(wǎng)內(nèi)的所有節(jié)點(diǎn)(包括新加入的節(jié)點(diǎn))發(fā)送該可信任節(jié)點(diǎn)的公鑰和MAC地址,該發(fā)送方式必須保證絕對(duì)安全,可以由網(wǎng)絡(luò)管理員通過(guò)專用網(wǎng)絡(luò)來(lái)傳送。上述局域網(wǎng)中的節(jié)點(diǎn)可以為主機(jī)。
[0043]局域網(wǎng)內(nèi)的各個(gè)節(jié)點(diǎn)接收到上述可信任節(jié)點(diǎn)的公鑰和MAC地址后,將上述可信任節(jié)點(diǎn)的公鑰進(jìn)行存儲(chǔ)。利用可信任節(jié)點(diǎn)的公鑰采用非對(duì)稱加密算法SM2生成各個(gè)節(jié)點(diǎn)自身的公鑰和私鑰,再將其IP地址和公鑰用可信任節(jié)點(diǎn)的公鑰簽名之后通過(guò)專用網(wǎng)絡(luò)傳送到可信任節(jié)點(diǎn)??尚湃喂?jié)點(diǎn)接收到各個(gè)節(jié)點(diǎn)發(fā)送的IP地址和公鑰信息后,將各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息在節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中進(jìn)行關(guān)聯(lián)存儲(chǔ)。
[0044]步驟22、節(jié)點(diǎn)A接收到節(jié)點(diǎn)B發(fā)送的ARP數(shù)據(jù)包,節(jié)點(diǎn)A在本地沒(méi)有查詢到節(jié)點(diǎn)B的IP地址對(duì)應(yīng)的公鑰時(shí),向可信任節(jié)點(diǎn)發(fā)送攜帶節(jié)點(diǎn)B的IP地址的查詢請(qǐng)求。
[0045]上述局域網(wǎng)中的各個(gè)節(jié)點(diǎn)包括新加入的合法節(jié)點(diǎn)A(即第一節(jié)點(diǎn))和合法節(jié)點(diǎn)B(即第二節(jié)點(diǎn)),當(dāng)?shù)谝还?jié)點(diǎn)和第二節(jié)點(diǎn)需要進(jìn)行通信時(shí),第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間互相交互自己的IP地址。
[0046]節(jié)點(diǎn)B構(gòu)造ARP數(shù)據(jù)包,將該ARP數(shù)據(jù)包中的除了源IP地址(節(jié)點(diǎn)B的IP地址)、MAC地址、目的IP地址(節(jié)點(diǎn)A的IP地址)之外的其它部分用哈希提取摘要,再用節(jié)點(diǎn)B的私鑰進(jìn)行簽名,然后,節(jié)點(diǎn)B將簽名后的上述ARP數(shù)據(jù)包發(fā)送給節(jié)點(diǎn)A。節(jié)點(diǎn)A接收到節(jié)點(diǎn)B發(fā)送的上述ARP數(shù)據(jù)包后,獲取所述ARP數(shù)據(jù)包中攜帶的所述節(jié)點(diǎn)B的IP地址(源IP地址)。
[0047]上述節(jié)點(diǎn)A在本地查詢所述節(jié)點(diǎn)B的IP地址對(duì)應(yīng)的公鑰,比如,所述節(jié)點(diǎn)A根據(jù)所述節(jié)點(diǎn)B的IP地址查詢本地ARP緩存表,當(dāng)所述節(jié)點(diǎn)A從所述本地ARP緩存表中沒(méi)有查詢到所述節(jié)點(diǎn)B的公鑰時(shí);或者,查詢到的所述節(jié)點(diǎn)B的公鑰過(guò)期或者錯(cuò)誤,而不能驗(yàn)簽上述ARP數(shù)據(jù)包時(shí),所述節(jié)點(diǎn)A向所述局域網(wǎng)中上述可信任節(jié)點(diǎn)發(fā)送攜帶所述節(jié)點(diǎn)B的IP地址的查詢請(qǐng)求。
[0048]步驟23??尚湃喂?jié)點(diǎn)將所述節(jié)點(diǎn)B的公鑰用自身的私鑰加密后發(fā)送給節(jié)點(diǎn)A。
[0049]上述可信任節(jié)點(diǎn)接收到上述節(jié)點(diǎn)A發(fā)送的所述節(jié)點(diǎn)B的IP地址的查詢請(qǐng)求后,根據(jù)所述查詢請(qǐng)求中攜帶的所述節(jié)點(diǎn)B的IP地址查詢所述節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中關(guān)聯(lián)存儲(chǔ)的各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息,獲取所述節(jié)點(diǎn)B的公鑰。
[0050]上述可信任節(jié)點(diǎn)將所述節(jié)點(diǎn)B的公鑰和對(duì)應(yīng)的時(shí)間戳用自身的私鑰加密后發(fā)送給所述節(jié)點(diǎn)A。
[0051]步驟24、節(jié)點(diǎn)A用節(jié)點(diǎn)B的公鑰驗(yàn)簽上述ARP數(shù)據(jù)包,在驗(yàn)簽成功后將節(jié)點(diǎn)B的公鑰和IP地址之間的對(duì)應(yīng)關(guān)系存儲(chǔ)在本地ARP緩存表中。
[0052]節(jié)點(diǎn)A接收到所述可信任節(jié)點(diǎn)發(fā)送過(guò)來(lái)的加密后的所述節(jié)點(diǎn)B的公鑰后,用預(yù)先存儲(chǔ)的所述可信任節(jié)點(diǎn)的公鑰進(jìn)行解密處理,得到所述節(jié)點(diǎn)B的公鑰。
[0053]上述節(jié)點(diǎn)A用所述節(jié)點(diǎn)B的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,若驗(yàn)簽成功,則將所述節(jié)點(diǎn)B的公鑰存儲(chǔ)在本地ARP緩存表中,若驗(yàn)簽不成功,則將所述ARP數(shù)據(jù)包和所述節(jié)點(diǎn)B的公鑰拋棄。同時(shí)節(jié)點(diǎn)A會(huì)將這一情況報(bào)告給可信任節(jié)點(diǎn)和網(wǎng)絡(luò)管理員,網(wǎng)絡(luò)管理員會(huì)根據(jù)情況進(jìn)行相應(yīng)的排查動(dòng)作。
[0054]在本發(fā)明實(shí)施例中,即使中間人節(jié)點(diǎn)B想截獲或者篡改節(jié)點(diǎn)A和C之間的ARP數(shù)據(jù)包也是無(wú)法做到的。因?yàn)榧词构粽連知道了 A和C的MAC地址,因?yàn)樗恢狝和C的私鑰,所以無(wú)法對(duì)發(fā)送給A和C的ARP數(shù)據(jù)包進(jìn)行簽名,從而無(wú)法對(duì)原信息進(jìn)行惡意篡改,也即無(wú)法進(jìn)行ARP欺騙。所以當(dāng)節(jié)點(diǎn)A和C對(duì)于偽造的ARP應(yīng)答包進(jìn)行驗(yàn)簽的時(shí)候,破綻立顯,不會(huì)按照黑客節(jié)點(diǎn)B的意思來(lái)更新ARP緩存表。同時(shí)收到偽造ARP數(shù)據(jù)包的節(jié)點(diǎn)會(huì)將這一情況報(bào)告可信任主機(jī)和管理員,從而打掉和排查掉黑客中間人網(wǎng)絡(luò)節(jié)點(diǎn)。這樣就達(dá)到了在局域網(wǎng)中比較好的防范ARP中間人攻擊的目的了。
[0055]實(shí)施例二
[0056]該實(shí)施例提供了一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),其具體實(shí)現(xiàn)結(jié)構(gòu)如圖3所示,具體包括設(shè)置在局域網(wǎng)中的第一節(jié)點(diǎn)31、第二節(jié)點(diǎn)32和可信任節(jié)點(diǎn)33。
[0057]所述的第二節(jié)點(diǎn)32,用于向所述第一節(jié)點(diǎn)發(fā)送地址解析協(xié)議ARP數(shù)據(jù)包,所述ARP數(shù)據(jù)包用所述第二節(jié)點(diǎn)的私鑰進(jìn)行簽名
[0058]所述的第一節(jié)點(diǎn)31,用于接收到所述第二節(jié)點(diǎn)發(fā)送的所述ARP數(shù)據(jù)包后,獲取所述ARP數(shù)據(jù)包中攜帶的所述第二節(jié)點(diǎn)的IP地址;當(dāng)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),向所述可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求;
[0059]所述的可信任節(jié)點(diǎn)33,用于接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰,
[0060]所述的第一節(jié)點(diǎn)31,還用于用所述可信任主機(jī)發(fā)送過(guò)來(lái)的第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。
[0061]具體的,所述的可信任節(jié)點(diǎn)33,具體用于向所述局域網(wǎng)內(nèi)的各個(gè)節(jié)點(diǎn)發(fā)送該可信任節(jié)點(diǎn)的公鑰和介質(zhì)訪問(wèn)控制MAC地址,以使得所述各個(gè)節(jié)點(diǎn)將所述可信任節(jié)點(diǎn)的公鑰進(jìn)行存儲(chǔ),利用可信任節(jié)點(diǎn)的公鑰生成各個(gè)節(jié)點(diǎn)自身的公鑰和私鑰,接收到所述各個(gè)節(jié)點(diǎn)發(fā)送的IP地址和公鑰信息后,將各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息在節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中進(jìn)行關(guān)聯(lián)存儲(chǔ)。
[0062]具體的,所述的第一節(jié)點(diǎn)31,具體用于根據(jù)所述第二節(jié)點(diǎn)的IP地址查詢本地ARP緩存表,當(dāng)從所述本地ARP緩存表中沒(méi)有查詢到所述第二節(jié)點(diǎn)的公鑰時(shí);或者,查詢到的所述第二節(jié)點(diǎn)的公鑰過(guò)期或者錯(cuò)誤,而不能驗(yàn)簽所述ARP數(shù)據(jù)包時(shí),向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求。
[0063]具體的,所述的可信任節(jié)點(diǎn)33,具體用于接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,根據(jù)所述查詢請(qǐng)求中攜帶的所述第二節(jié)點(diǎn)的IP地址查詢所述節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中關(guān)聯(lián)存儲(chǔ)的各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息,獲取所述第二節(jié)點(diǎn)的公鑰,將所述第二節(jié)點(diǎn)的公鑰用自身的私鑰加密后發(fā)送給所述第一節(jié)點(diǎn)。
[0064]具體的,所述的第一節(jié)點(diǎn)31,具體用于接收到所述可信任節(jié)點(diǎn)發(fā)送的加密后的所述第二節(jié)點(diǎn)的公鑰后,使用所述可信任節(jié)點(diǎn)的公鑰進(jìn)行解密處理,得到所述第二節(jié)點(diǎn)的公鑰;
[0065]用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,若驗(yàn)簽成功,則將所述第二節(jié)點(diǎn)的公鑰和IP地址之間的對(duì)應(yīng)關(guān)系存儲(chǔ)在本地ARP緩存表中,若驗(yàn)簽不成功,則將所述ARP數(shù)據(jù)包和所述第二節(jié)點(diǎn)的公鑰拋棄。
[0066]用本發(fā)明實(shí)施例的系統(tǒng)進(jìn)行對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的具體過(guò)程與前述方法實(shí)施例類似,此處不再贅述。
[0067]本領(lǐng)域普通技術(shù)人員可以理解:附圖只是一個(gè)實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
[0068]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)施例中的設(shè)備中的模塊可以按照實(shí)施例描述分布于實(shí)施例的設(shè)備中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)設(shè)備中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
[0069]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
[0070]綜上所述,本發(fā)明實(shí)施例通過(guò)在局域網(wǎng)中設(shè)置可信任主機(jī),該可信任節(jié)點(diǎn)中存儲(chǔ)各個(gè)節(jié)點(diǎn)的公鑰和IP地址,節(jié)點(diǎn)發(fā)送的ARP數(shù)據(jù)包用節(jié)點(diǎn)的私鑰進(jìn)行簽名,可以有效地防止局域網(wǎng)中的ARP中間人攻擊,保證局域網(wǎng)中的各個(gè)節(jié)點(diǎn)之間的通信安全。
[0071 ] 本發(fā)明實(shí)施例的方法的實(shí)際部署比較容易和易于擴(kuò)充,對(duì)于大的企業(yè)級(jí)的網(wǎng)絡(luò)環(huán)境還是比較小級(jí)別的網(wǎng)絡(luò),都可以使用。另外本發(fā)明實(shí)施例的方法采用了國(guó)密SM2算法,SM2是由國(guó)家密碼管理局編制的一種基于ECC (Elliptic Curves Cryptography,橢圓曲線密碼編碼學(xué))算法的非對(duì)稱算法,SM2算法規(guī)定了簽名、驗(yàn)證、密鑰交換等具體細(xì)節(jié),效率比之前的算法更高,破解難度更大、更安全。
[0072]本發(fā)明實(shí)施例在ARP協(xié)議使用的過(guò)程中,增加了國(guó)產(chǎn)SM2算法的加驗(yàn)簽和簽名保護(hù)之后,可以比較好的防范ARP中間人攻擊。
[0073]以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法,其特征在于,包括: 局域網(wǎng)內(nèi)的第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的地址解析協(xié)議ARP數(shù)據(jù)包,所述ARP數(shù)據(jù)包用所述第二節(jié)點(diǎn)的私鑰進(jìn)行簽名,所述第一節(jié)點(diǎn)獲取所述ARP數(shù)據(jù)包中攜帶的所述第二節(jié)點(diǎn)的IP地址; 當(dāng)所述第一節(jié)點(diǎn)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),所述第一節(jié)點(diǎn)向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求; 所述可信任節(jié)點(diǎn)向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰,所述第一節(jié)點(diǎn)用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法,其特征在于,所述的局域網(wǎng)內(nèi)第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的ARP數(shù)據(jù)包之前還包括: 在所述局域網(wǎng)中設(shè)置可信任節(jié)點(diǎn),所述可信任節(jié)點(diǎn)向所述局域網(wǎng)內(nèi)的所有節(jié)點(diǎn)發(fā)送該可信任節(jié)點(diǎn)的公鑰和介質(zhì)訪問(wèn)控制MAC地址; 所述各個(gè)節(jié)點(diǎn)接收到所述可信任節(jié)點(diǎn)的公鑰和MAC地址后,將所述可信任節(jié)點(diǎn)的公鑰進(jìn)行存儲(chǔ),利用可信任節(jié)點(diǎn)的公鑰生成各個(gè)節(jié)點(diǎn)自身的公鑰和私鑰,再將其IP地址和公鑰用可信任節(jié)點(diǎn)的公鑰簽名之后發(fā)送到所述可信任節(jié)點(diǎn); 所述可信任節(jié)點(diǎn)接收到所述各個(gè)節(jié)點(diǎn)發(fā)送的IP地址和公鑰信息后,將各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息在節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中進(jìn)行關(guān)聯(lián)存儲(chǔ)。
3.根據(jù)權(quán)利要求2所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法,其特征在于,所述的當(dāng)所述第一節(jié)點(diǎn)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),所述第一節(jié)點(diǎn)向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求,包括: 所述第一節(jié)點(diǎn)根據(jù)所述第二節(jié)點(diǎn)的IP地址查詢本地ARP緩存表,當(dāng)所述第一節(jié)點(diǎn)從所述本地ARP緩存表中沒(méi)有查詢到所述第二節(jié)點(diǎn)的公鑰時(shí);或者,查詢到的所述第二節(jié)點(diǎn)的公鑰過(guò)期或者錯(cuò)誤,而不能驗(yàn)簽所述ARP數(shù)據(jù)包時(shí),所述第一節(jié)點(diǎn)向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求。
4.根據(jù)權(quán)利要求2所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法,其特征在于,所述的可信任節(jié)點(diǎn)向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰,包括: 所述可信任節(jié)點(diǎn)接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,根據(jù)所述查詢請(qǐng)求中攜帶的所述第二節(jié)點(diǎn)的IP地址查詢所述節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中關(guān)聯(lián)存儲(chǔ)的各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息,獲取所述第二節(jié)點(diǎn)的公鑰,將所述第二節(jié)點(diǎn)的公鑰用自身的私鑰加密后發(fā)送給所述第一節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的方法,其特征在于,所述的第一節(jié)點(diǎn)用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,包括: 所述第一節(jié)點(diǎn)接收到所述可信任節(jié)點(diǎn)發(fā)送的加密后的所述第二節(jié)點(diǎn)的公鑰后,使用所述可信任節(jié)點(diǎn)的公鑰進(jìn)行解密處理,得到所述第二節(jié)點(diǎn)的公鑰; 所述第一節(jié)點(diǎn)用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,若驗(yàn)簽成功,則將所述第二節(jié)點(diǎn)的公鑰和IP地址之間的對(duì)應(yīng)關(guān)系存儲(chǔ)在本地ARP緩存表中,若驗(yàn)簽不成功,則將所述ARP數(shù)據(jù)包和所述第二節(jié)點(diǎn)的公鑰拋棄。
6.一種對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),其特征在于,包括:設(shè)置在局域網(wǎng)中的第一節(jié)點(diǎn)、第二節(jié)點(diǎn)和可信任節(jié)點(diǎn), 所述的第二節(jié)點(diǎn),用于向所述第一節(jié)點(diǎn)發(fā)送地址解析協(xié)議ARP數(shù)據(jù)包,所述ARP數(shù)據(jù)包用所述第二節(jié)點(diǎn)的私鑰進(jìn)行簽名 所述的第一節(jié)點(diǎn),用于接收到所述第二節(jié)點(diǎn)發(fā)送的所述ARP數(shù)據(jù)包后,獲取所述ARP數(shù)據(jù)包中攜帶的所述第二節(jié)點(diǎn)的IP地址;當(dāng)在本地沒(méi)有查詢到所述第二節(jié)點(diǎn)的IP地址對(duì)應(yīng)的公鑰時(shí),向所述可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求; 所述的可信任節(jié)點(diǎn),用于接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,向所述第一節(jié)點(diǎn)發(fā)送所述第二節(jié)點(diǎn)的公鑰, 所述的第一節(jié)點(diǎn),還用于用所述可信任主機(jī)發(fā)送過(guò)來(lái)的第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包。
7.根據(jù)權(quán)利要求6所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),其特征在于: 所述的可信任節(jié)點(diǎn),具體用于向所述局域網(wǎng)內(nèi)的各個(gè)節(jié)點(diǎn)發(fā)送該可信任節(jié)點(diǎn)的公鑰和介質(zhì)訪問(wèn)控制MAC地址,以使得所述各個(gè)節(jié)點(diǎn)將所述可信任節(jié)點(diǎn)的公鑰進(jìn)行存儲(chǔ),利用可信任節(jié)點(diǎn)的公鑰生成各個(gè)節(jié)點(diǎn)自身的公鑰和私鑰,接收到所述各個(gè)節(jié)點(diǎn)發(fā)送的IP地址和公鑰信息后,將各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息在節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中進(jìn)行關(guān)聯(lián)存儲(chǔ)。
8.根據(jù)權(quán)利要求7所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),其特征在于: 所述的第一節(jié)點(diǎn),具體用于根據(jù)所述第二節(jié)點(diǎn)的IP地址查詢本地ARP緩存表,當(dāng)從所述本地ARP緩存表中沒(méi)有查詢到所述第二節(jié)點(diǎn)的公鑰時(shí);或者,查詢到的所述第二節(jié)點(diǎn)的公鑰過(guò)期或者錯(cuò)誤,而不能驗(yàn)簽所述ARP數(shù)據(jù)包時(shí),向所述局域網(wǎng)中預(yù)先設(shè)置的可信任節(jié)點(diǎn)發(fā)送攜帶所述第二節(jié)點(diǎn)的IP地址的查詢請(qǐng)求。
9.根據(jù)權(quán)利要求7所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),其特征在于: 所述的可信任節(jié)點(diǎn),具體用于接收到所述第一節(jié)點(diǎn)發(fā)送的所述查詢請(qǐng)求后,根據(jù)所述查詢請(qǐng)求中攜帶的所述第二節(jié)點(diǎn)的IP地址查詢所述節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)中關(guān)聯(lián)存儲(chǔ)的各個(gè)節(jié)點(diǎn)的IP地址和公鑰信息,獲取所述第二節(jié)點(diǎn)的公鑰,將所述第二節(jié)點(diǎn)的公鑰用自身的私鑰加密后發(fā)送給所述第一節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的對(duì)局域網(wǎng)中的ARP中間人攻擊進(jìn)行防范的系統(tǒng),其特征在于: 所述的第一節(jié)點(diǎn),具體用于接收到所述可信任節(jié)點(diǎn)發(fā)送的加密后的所述第二節(jié)點(diǎn)的公鑰后,使用所述可信任節(jié)點(diǎn)的公鑰進(jìn)行解密處理,得到所述第二節(jié)點(diǎn)的公鑰; 用所述第二節(jié)點(diǎn)的公鑰驗(yàn)簽所述ARP數(shù)據(jù)包,若驗(yàn)簽成功,則將所述第二節(jié)點(diǎn)的公鑰和IP地址之間的對(duì)應(yīng)關(guān)系存儲(chǔ)在本地ARP緩存表中,若驗(yàn)簽不成功,則將所述ARP數(shù)據(jù)包和所述第二節(jié)點(diǎn)的公鑰拋棄。
【文檔編號(hào)】H04L12/28GK104243413SQ201310237069
【公開日】2014年12月24日 申請(qǐng)日期:2013年6月14日 優(yōu)先權(quán)日:2013年6月14日
【發(fā)明者】梁劍, 羅世新, 何麗, 尹剛 申請(qǐng)人:航天信息股份有限公司