• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    因特網(wǎng)協(xié)議中地址解析的欺騙問題研究

    2010-03-20 17:18:05李成友韓昧華
    關(guān)鍵詞:鏈路層表項(xiàng)通告

    李成友 韓昧華

    聊城大學(xué)網(wǎng)絡(luò)信息中心 山東 252059

    0 引言

    近幾年來,無論是網(wǎng)絡(luò)運(yùn)營商,還是各高校校園網(wǎng)、各單位的局域網(wǎng)等等,都經(jīng)受了ARP欺騙的攻擊。這種攻擊帶有很大的普遍性,對(duì)用戶和網(wǎng)管人員影響都非常大。其實(shí),這類攻擊大多是來自于蠕蟲病毒,發(fā)起者電腦通常是在不知情的情況下感染了這類病毒,并在不知情的情況下對(duì)同一VLAN內(nèi)的電腦發(fā)起了攻擊。根據(jù)欺騙的對(duì)象可以將 ARP欺騙分為兩種類型:欺騙網(wǎng)關(guān)型和欺騙主機(jī)型。其中,欺騙網(wǎng)關(guān)型是指攻擊發(fā)生時(shí)網(wǎng)關(guān)內(nèi)存中維護(hù)的IP-MAC對(duì)照表被污染,網(wǎng)關(guān)找不到真實(shí)的主機(jī),致使主機(jī)收不到網(wǎng)關(guān)的回應(yīng)包,從而造成上網(wǎng)不正常;而欺騙主機(jī)型是指攻擊發(fā)生時(shí)主機(jī)緩存中維護(hù)的ARP表被污染,網(wǎng)關(guān)的真實(shí)MAC地址被篡改,致使主機(jī)找不到真實(shí)的網(wǎng)關(guān),同樣造成上網(wǎng)不正常。

    1 ARP協(xié)議的工作原理

    (1)每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)(ARP Cache)中建立一個(gè) ARP列表,以存儲(chǔ)IP地址和MAC地址(即鏈路層地址)的映射關(guān)系。

    (2)當(dāng)源主機(jī)需要將一個(gè)數(shù)據(jù)包發(fā)送到目的主機(jī)時(shí),會(huì)首先檢查自己 ARP列表中是否存在該 IP地址對(duì)應(yīng)的MAC地址,如果有,就直接將數(shù)據(jù)包發(fā)送到這個(gè)MAC地址;如果沒有,就向本地網(wǎng)段發(fā)起一個(gè)ARP請(qǐng)求的廣播包,查詢此目的主機(jī)對(duì)應(yīng)的MAC地址。此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的IP地址、MAC地址、以及目的主機(jī)的IP地址。

    (3)網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)ARP請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經(jīng)存在該IP的信息,則將其覆蓋,然后給源主機(jī)發(fā)送一個(gè) ARP響應(yīng)數(shù)據(jù)包,告訴對(duì)方自己是它需要查找的MAC地址。

    (4)源主機(jī)收到這個(gè)ARP響應(yīng)數(shù)據(jù)包后,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開始數(shù)據(jù)的傳輸。如果源主機(jī)一直沒有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗。

    2 ARP協(xié)議的漏洞分析

    漏洞一:在工作原理第3條中,當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)接收到目的IP地址與自己的IP地址相同的ARP請(qǐng)求報(bào)文時(shí),會(huì)先將源設(shè)備的IP地址和MAC地址添加到自己的ARP緩存表中,若ARP表中已經(jīng)存在該IP的信息,則將其無條件的覆蓋,然后再給源設(shè)備發(fā)送一個(gè)ARP響應(yīng)報(bào)文。在這個(gè)過程中,沒有任何機(jī)制來驗(yàn)證ARP請(qǐng)求報(bào)文中源設(shè)備的IP地址和MAC地址的真實(shí)性。從而給欺騙者留下了漏洞,使得他們可以偽造ARP請(qǐng)求報(bào)文,既可以欺騙主機(jī),也可以欺騙網(wǎng)關(guān)。當(dāng)前有些ARP欺騙病毒正是利用了這個(gè)漏洞,成批地偽造ARP請(qǐng)求報(bào)文。

    漏洞二:ARP協(xié)議并沒有規(guī)定必須在接收到ARP請(qǐng)求報(bào)文后,才能發(fā)送ARP響應(yīng)報(bào)文,這就為別有用心者創(chuàng)造了機(jī)會(huì):他們可以人為地制造ARP響應(yīng)報(bào)文,在報(bào)文中指定源IP、源MAC、目的IP、目的MAC,通過制造的響應(yīng)包去修改其它網(wǎng)絡(luò)設(shè)備上的動(dòng)態(tài)ARP緩存。當(dāng)前的一部分ARP攻擊就是利用了這個(gè)缺陷,偽造大量的ARP響應(yīng)報(bào)文,去修改其它網(wǎng)絡(luò)設(shè)備的APR緩存表,造成同一廣播域中的大量網(wǎng)絡(luò)設(shè)備維護(hù)的ARP緩存表錯(cuò)誤,不能正常上網(wǎng)。

    從上面的分析可以看出,造成欺騙的根本原因在于ARP協(xié)議本身存在致命的漏洞,而地址解析的過程又是基于鏈路層的廣播機(jī)制,所以要想從根本上杜絕ARP欺騙的發(fā)生是不可能的。通過采取積極的防范措施,可以在很大程度上降低ARP欺騙對(duì)網(wǎng)絡(luò)造成的嚴(yán)重影響,但這畢竟增加了許多管理的代價(jià),同時(shí)也存在網(wǎng)絡(luò)質(zhì)量的降低。在基于Ipv6的下一代互聯(lián)網(wǎng)中,關(guān)于地址解析是如何設(shè)計(jì)的?能否從根本上杜絕類似問題的出現(xiàn)呢?

    3 Ipv6中的地址解析

    在IPv6中,沒有專門的地址解析協(xié)議,而是利用ICMPv6中的鄰居發(fā)現(xiàn)協(xié)議(Neighbor Discovery Protocol,NDP)來完成的。NDP是Ipv6中的一個(gè)基礎(chǔ)協(xié)議,它實(shí)現(xiàn)了Ipv4中的地址解析、重定向和路由器發(fā)現(xiàn)等所有功能。對(duì)于IPv4,我們無法檢測鄰居的可達(dá)性,而鄰居發(fā)現(xiàn)協(xié)議則定義了一種鄰居是否可達(dá)的檢測機(jī)制,同時(shí),還可進(jìn)行重復(fù)IP地址檢測。

    3.1 五種類型的ICMPv6報(bào)文

    鄰居發(fā)現(xiàn)協(xié)議采用5種類型的ICMPv6報(bào)文來實(shí)現(xiàn)各種功能,分別是:

    (1)路由器請(qǐng)求RS(Router Solicitation):當(dāng)接口工作時(shí),主機(jī)發(fā)送路由器請(qǐng)求消息,要求路由器立即產(chǎn)生路由器通告消息,而不必等待下一個(gè)預(yù)定時(shí)間。

    (2)路由器通告RA(Router Advertisement):路由器周期性地通告它的存在以及配置的鏈路和網(wǎng)絡(luò)參數(shù),或者對(duì)路由器請(qǐng)求消息作出響應(yīng)。路由器通告消息包含在連接(on-link)確定、地址配置的前綴和跳數(shù)限制值等。

    (3)鄰居請(qǐng)求NS(Neighbor Solicitation):節(jié)點(diǎn)發(fā)送鄰居請(qǐng)求消息來請(qǐng)求鄰居的鏈路層地址,或驗(yàn)證它先前所獲得并保存在緩存中的鄰居鏈路層地址的可達(dá)性,或者驗(yàn)證它自己的地址在本地鏈路上是否是惟一的。

    (4)鄰居通告NA(Neighbor Advertisement):鄰居請(qǐng)求消息的響應(yīng)。節(jié)點(diǎn)也可以發(fā)送非請(qǐng)求鄰居通告來指示鏈路層地址的變化。

    (5)重定向(Redirect):路由器通過重定向消息通知主機(jī)。對(duì)于特定的目的地址,如果不是最佳的路由,則通知主機(jī)到達(dá)目的地的最佳下一跳。

    其中鄰居請(qǐng)求和鄰居通告報(bào)文共同完成地址解析功能。對(duì)于每一個(gè)IPv6主機(jī),它為每一個(gè)網(wǎng)絡(luò)接口都要維護(hù)下列緩存表:鄰居緩存表、目的地緩存表、前綴緩存表和默認(rèn)路由器緩存表。

    3.2 鄰居可達(dá)性狀態(tài)

    在鄰居緩存表項(xiàng)中,鄰居可達(dá)性狀態(tài)是最關(guān)鍵的信息,規(guī)定了5種狀態(tài):

    (1)不完整(INCOMPLETE):正在進(jìn)行地址解析,鄰居的鏈路層地址還沒確定。

    (2)可達(dá)(REACHABLE):鄰居在最近處于可達(dá)狀態(tài)(在小于10s以前)。

    (3)失效(STALE):在數(shù)據(jù)流發(fā)送給該鄰居以前鄰居是不可達(dá)的,并無法驗(yàn)證其可達(dá)性。

    (4)延遲(DELAY):鄰居不再是可達(dá)的,同時(shí)數(shù)據(jù)流在最近已經(jīng)發(fā)送給鄰居,但不立即對(duì)該鄰居進(jìn)行探測,而在一個(gè)短時(shí)延后發(fā)送探測信息,這樣就可以為上層協(xié)議提供可達(dá)性確認(rèn)。

    (5)探測(PROBE):鄰居不再是可達(dá)的,同時(shí)發(fā)送單播鄰居請(qǐng)求探測以驗(yàn)證可達(dá)性。

    3.3 地址解析過程

    當(dāng)一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)要給它的鄰居發(fā)送數(shù)據(jù),但不知道它的鏈路層地址,這時(shí)它就要啟動(dòng)一個(gè)地址解析過程。為了更好地理解地址解析過程,您可以參考RFC4861的4.3和4.4,搞清楚鄰居請(qǐng)求報(bào)文和通告報(bào)文的格式。

    (1)鄰居請(qǐng)求報(bào)文的發(fā)送

    對(duì)于支持多播的接口,它需要首先創(chuàng)建一個(gè)鄰居緩存表項(xiàng),且設(shè)置狀態(tài)為不完整(INCOMPLETE),然后發(fā)送一個(gè)目標(biāo)指向這個(gè)鄰居的 NS。這個(gè)報(bào)文發(fā)給目標(biāo)地址的請(qǐng)求節(jié)點(diǎn)多播地址,且報(bào)文要包括發(fā)送者的鏈路層地址作為源鏈路層地址選項(xiàng)。

    (2)鄰居請(qǐng)求報(bào)文的接收

    當(dāng)一個(gè)NS被接收到,首先要經(jīng)過有效性(valid)檢查:IP hop limit 閾值為255、ICMP校驗(yàn)和有效、ICMP code值為0、target address 不是一個(gè)多播地址、若IP Source address是一個(gè)未指定地址,那么IP destination address就一定是請(qǐng)求節(jié)點(diǎn)多播地址且NS沒有包括源鏈路層地址選項(xiàng)。若有一項(xiàng)檢查通不過,這個(gè)NS就會(huì)被靜靜的丟掉。

    當(dāng)上述有效性檢查都通過了,就要進(jìn)行第2步操作,根據(jù)IP source address是否為未指定地址而采取不同的處理動(dòng)作:若不是未指定地址,且NS包括源鏈路層地址選項(xiàng),那么接收者就應(yīng)該(SHOULD)為這個(gè)源IP地址創(chuàng)建或更新自己的鄰居緩存表項(xiàng),若這個(gè)表項(xiàng)不存在,就應(yīng)該創(chuàng)建一個(gè),且設(shè)置其可達(dá)性狀態(tài)為失效,若這個(gè)表項(xiàng)已經(jīng)存在,且接收的源鏈路層地址不同于緩存表項(xiàng)中鏈路層地址,那么緩存表項(xiàng)中的鏈路層地址就應(yīng)該被新接收的替換,且必須設(shè)置其可達(dá)性狀態(tài)為失效;若是未指定地址,則接收者一定不要?jiǎng)?chuàng)建或更新鄰居緩存表項(xiàng)。

    (3)被請(qǐng)求鄰居通告的發(fā)送

    當(dāng)接收者創(chuàng)建或更新了鄰居緩存表項(xiàng),作為對(duì)NS的回應(yīng)它就要發(fā)送NA。NA中的target address字段值從請(qǐng)求報(bào)文的 target address字段中拷貝得來。若請(qǐng)求報(bào)文中的目的 IP地址是一個(gè)多播地址,那么通告報(bào)文必須包含目標(biāo)鏈路層地址選項(xiàng),且若該節(jié)點(diǎn)是路由器,必須設(shè)置路由器標(biāo)志為1。如果請(qǐng)求報(bào)文的源IP地址是未指定地址,那么節(jié)點(diǎn)必須設(shè)置請(qǐng)求標(biāo)志為 0,且發(fā)送通告報(bào)文給全節(jié)點(diǎn)多播地址;否則,必須設(shè)置請(qǐng)求標(biāo)志為1,且給請(qǐng)求的源發(fā)送單播通告報(bào)文。

    (4)鄰居通告報(bào)文的接收

    當(dāng)一個(gè)NA被接收到,首先要經(jīng)過有效性檢查:IP hop limit 閾值為255、ICMP校驗(yàn)和有效、ICMP code值為0、target address 不是一個(gè)多播地址、若目的IP地址是一個(gè)多播地址那么請(qǐng)求標(biāo)志就應(yīng)該為 0。若有一項(xiàng)檢查通不過,這個(gè)請(qǐng)求報(bào)文就應(yīng)被靜靜的丟掉。

    當(dāng)上述有效性檢查都通過了,這個(gè)報(bào)文就是有效的通告報(bào)文,就可以進(jìn)行下面的操作。節(jié)點(diǎn)開始搜索鄰居緩存表以定位包含有目標(biāo)(target)的表項(xiàng)。如果未找到,那么這個(gè)被收到的NA就應(yīng)該被靜靜的丟棄。若定位到,則會(huì)根據(jù)鄰居緩存表項(xiàng)的可達(dá)性狀態(tài)、鄰居通告消息中的標(biāo)志和準(zhǔn)確的鏈路層地址等三方面的綜合情況來決定采取何種措施。

    若可達(dá)性狀態(tài)為不完整,且NA中不包括目標(biāo)鏈路層地址選項(xiàng),節(jié)點(diǎn)就應(yīng)該將這個(gè)NA靜靜地丟棄;若可達(dá)性狀態(tài)為不完整,且NA中包含了目標(biāo)鏈路層地址選項(xiàng),則節(jié)點(diǎn)就要完成下面步驟:①將目標(biāo)鏈路層地址記錄在鄰居緩存表項(xiàng)中;②若通告中的請(qǐng)求標(biāo)志為1,則設(shè)置可達(dá)性狀態(tài)為可達(dá),否則設(shè)置為失效;③根據(jù)通告中的路由器標(biāo)志設(shè)置緩存中IsRouter標(biāo)志;④節(jié)點(diǎn)開始發(fā)送數(shù)據(jù)包。

    4 Ipv6中的鄰居發(fā)現(xiàn)協(xié)議對(duì)ARP協(xié)議的改進(jìn)

    通過追蹤?quán)従影l(fā)現(xiàn)協(xié)議的RFC和IPv6尋址體系結(jié)構(gòu)的RFC,仔細(xì)研究最新的標(biāo)準(zhǔn)草案RFC4861得知,鄰居發(fā)現(xiàn)協(xié)議在許多方面對(duì)ARP協(xié)議都有改進(jìn),這里只對(duì)與地址解析相關(guān)的方面作理論探討:

    (1)在IPv4中,實(shí)現(xiàn)從網(wǎng)絡(luò)層到鏈路層地址的解析是靠鏈路層的廣播機(jī)制,這在節(jié)點(diǎn)數(shù)目很大的網(wǎng)絡(luò)中,會(huì)占用大量的帶寬,有時(shí)還會(huì)引起“廣播風(fēng)暴”;而在Ipv6中,這一過程是基于網(wǎng)絡(luò)層的多播機(jī)制實(shí)現(xiàn)的,這樣就使得在地址解析的過程中,受到地址解析所發(fā)送包的影響的節(jié)點(diǎn)數(shù)大大減少,而且非IPv6節(jié)點(diǎn)不會(huì)受到影響。

    (2)路由器通告包含有鏈路層地址,這樣為了解析路由器的鏈路層地址就不再需要額外的報(bào)文交換。

    (3)重定向包含有新的下一跳的鏈路層地址,那么當(dāng)主機(jī)收到重定向報(bào)文時(shí),單獨(dú)的地址解析過程就不再需要了。

    (4)鄰居發(fā)現(xiàn)協(xié)議使用鄰居不可達(dá)檢測機(jī)制來檢查半連接(half-link)失敗情況,從而避免給雙向連接缺失的鄰居進(jìn)一步發(fā)送流量。而ARP協(xié)議不提供這種檢測。

    (5)通過設(shè)置跳數(shù)限制(hop limit)為255,鄰居發(fā)現(xiàn)協(xié)議對(duì)于偶然或有意地發(fā)送ND報(bào)文的非連接發(fā)送者具有了免疫力;在IPv4中,非連接發(fā)送者既可以發(fā)送icmp redirect消息,亦可以發(fā)送路由器通告消息。

    (6)IPv4的ARP運(yùn)行在數(shù)據(jù)鏈路層,這樣不同的網(wǎng)絡(luò)介質(zhì)就需要不同的ARP協(xié)議,例如Ethernet ARP與FDDI ARP就不完全相同;而鄰居發(fā)現(xiàn)協(xié)議運(yùn)行在網(wǎng)絡(luò)層,與介質(zhì)無關(guān),任何網(wǎng)絡(luò)媒介都可以使用相同的鄰居發(fā)現(xiàn)協(xié)議,同時(shí)使得采用更加適合的通用的網(wǎng)絡(luò)層認(rèn)證和安全機(jī)制成為可能。

    (7)當(dāng)一個(gè)有效的(valid)鄰居通告消息被收到,鄰居緩存表就會(huì)被搜索以定位包含有目標(biāo)(target)的表項(xiàng)。如果未找到,那么這個(gè)被收到的鄰居通告消息就應(yīng)該被靜靜的丟棄。若定位到,則會(huì)根據(jù)鄰居緩存表項(xiàng)的可達(dá)性狀態(tài)、鄰居通告消息中的標(biāo)志和準(zhǔn)確的鏈路層地址等三方面的綜合情況來決定采取何種措施。這一點(diǎn)可以保證未經(jīng)請(qǐng)求的鄰居通告消息不能輕易的修改鄰居緩存表。而IPv4中的ARP就做不到,它會(huì)無條件地增加一條。

    (8)當(dāng)一個(gè)節(jié)點(diǎn)的鏈路層地址發(fā)生了改變,它希望盡快地通知它的鄰居,這時(shí)它就會(huì)發(fā)送一條無請(qǐng)求鄰居通告消息(Unsolicited Neighbor Advertisements)。RFC4861規(guī)定最多只能發(fā)送3條,并且要求間隔時(shí)間不得小于RetransTimer。這樣就使得偽造的鄰居通告消息不能大批量的頻繁的發(fā)送,從而減輕了這類欺騙給網(wǎng)絡(luò)造成的影響。

    5 鄰居發(fā)現(xiàn)協(xié)議存在的安全問題和解決辦法

    鄰居發(fā)現(xiàn)協(xié)議中的地址解析和IPv4中的ARP相比,它提供了許多改進(jìn),并且是非常明顯的改進(jìn)。但是鄰居發(fā)現(xiàn)協(xié)議作為協(xié)議自身,它仍然無法完全避免地址解析的欺騙現(xiàn)象,欺騙者仍然可以偽造合法且有效的鄰居請(qǐng)求或鄰居通告消息,別有用心者仍然可以篡改真實(shí)的鄰居請(qǐng)求和鄰居通告報(bào)文,原因是協(xié)議本身無法驗(yàn)證IP地址和MAC地址的真實(shí)性,也無法確認(rèn)發(fā)送者的真實(shí)身份。

    但是,正像在前面討論的那樣,鄰居發(fā)現(xiàn)協(xié)議在地址解析方面確確實(shí)實(shí)做了不少改進(jìn),使得欺騙消息不太容易修改鄰居緩存表,并且欺騙造成的影響程度也不像IPv4中的ARP欺騙那么嚴(yán)重。并且非常值得稱道的是它為我們提供了進(jìn)一步采取安全措施的平臺(tái),也就是鄰居發(fā)現(xiàn)協(xié)議運(yùn)行在 IPv6之上,屬于網(wǎng)絡(luò)層協(xié)議,所以它的安全性可以由IPv6的安全機(jī)制來保證。而IPv6協(xié)議缺省情況下要求采用安全性相當(dāng)高的IPSec協(xié)議來保證它的安全。IETF提出了增強(qiáng)NDP安全機(jī)制的算法 SEND(Secure Neighbor Discovery),并引入CGA(Cryptographically Generated Address)和公鑰密碼以保證NDP的安全。當(dāng)前有一些學(xué)者在此基礎(chǔ)上,又提出了改進(jìn)的安全算法,比如LL-HBA,以解決計(jì)算開銷過大的問題。所以下一代的互聯(lián)網(wǎng)中,地址解析中的欺騙問題是有望徹底解決的。

    [1] RFC4861 Neighbor Discovery for IP version 6(IPv6). September 2007.T.Narten AND E.Nordmark AND W.Simpson AND H.Soliman.

    [2] 楊志剛,張長河,祝岳飛.Ipv6鄰居發(fā)現(xiàn)協(xié)議安全機(jī)制研究[J].計(jì)算機(jī)應(yīng)用.2006.

    猜你喜歡
    鏈路層表項(xiàng)通告
    網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
    一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
    基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
    國家藥監(jiān)局關(guān)于7批次藥品不符合規(guī)定的通告
    基于ARMA模型預(yù)測的交換機(jī)流表更新算法
    SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
    關(guān)于實(shí)行參考文獻(xiàn)新規(guī)范的通告
    關(guān)于實(shí)行參考文獻(xiàn)新規(guī)范的通告
    數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
    IEEE 1394事務(wù)層接口的設(shè)計(jì)與實(shí)現(xiàn)
    扶余县| 临潭县| 连平县| 香格里拉县| 广灵县| 禹城市| 肇源县| 邹城市| 五大连池市| 溧水县| 玉龙| 婺源县| 中超| 淮阳县| 镇安县| 台山市| 大安市| 涞源县| 开鲁县| 会东县| 开原市| 张掖市| 棋牌| 罗源县| 砚山县| 邢台市| 赣州市| 合肥市| 邵东县| 平阳县| 山阳县| 澄城县| 洪湖市| 称多县| 庆元县| 辽中县| 天津市| 玉龙| 塔城市| 湘潭县| 内黄县|