局域網(wǎng)ARP協(xié)議與欺騙技術(shù)及其對策
發(fā)表時間:2023-07-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]ARP協(xié)議的概念和工作原理對學習網(wǎng)絡安全知識的初學者來說是首先遇到的幾個重要的知識點之一, 其中ARP欺騙技術(shù)和及其對策更是學習網(wǎng)絡安全中的重點與難點, 往往難以一下子掌握這些抽象復雜的機理。 因...
ARP協(xié)議的概念和工作原理對學習網(wǎng)絡安全知識的初學者來說是首先遇到的幾個重要的知識點之一, 其中ARP欺騙技術(shù)和及其對策更是學習網(wǎng)絡安全中的重點與難點, 往往難以一下子掌握這些抽象復雜的機理。 因此很有必要用詳細介始一下網(wǎng)絡安全中的ARP協(xié)議和欺騙技術(shù)相應的對策。
一, TCP/IP協(xié)議之ARP協(xié)議的定義
ARP協(xié)議即地址解析協(xié)議Address Resolution Protocol, ARP協(xié)議是將IP地址與網(wǎng)絡物理地址一一對應的協(xié)議。 負責IP地址和網(wǎng)卡實體地址(MAC)之間的轉(zhuǎn)換。 也就是將網(wǎng)絡層(IP層, 也就是相當于ISO OSI 的第三層)地址解析為數(shù)據(jù)連接層(MAC層, 也就是相當于ISO OSI的第二層)的MAC地址。 如果您對網(wǎng)路七層協(xié)定有比較清晰的理解的話應該知道各個層級之間都使用其各自的協(xié)定。 一張ARP的表, 用來支持在MAC地址和IP地址之間的一一對應關系。 它提供兩者的相互轉(zhuǎn)換。
二, ARP協(xié)議的工作原理
在以太網(wǎng)(Ethernet)中, 一個網(wǎng)絡設備要和另一個網(wǎng)絡設備進行直接通信, 除了知道目標設備的網(wǎng)絡層邏輯地址(如IP地址)外, 還要知道目標設備的第二層物理地址(MAC地址)。 ARP協(xié)議的基本功能就是通過目標設備的IP地址, 查詢目標設備的MAC地址, 以保證通信的順利進行。
當一個網(wǎng)絡設備需要和另一個網(wǎng)絡設備通信時, 它首先把目標設備的IP地址與自己的子網(wǎng)掩碼進行"與"操作, 以判斷目標設備與自己是否位于同一網(wǎng)段內(nèi)。 如果目標設備在同一網(wǎng)段內(nèi), 并且源設備沒有獲得與目標IP地址相對應的MAC地址信息, 則源設備以第二層廣播的形式(目標MAC地址為全1)發(fā)送ARP請求報文, 在ARP請求報文中包含了源設備與目標設備的IP地址。 同一網(wǎng)段中的所有其他設備都可以收到并分析這個ARP請求報文, 如果某設備發(fā)現(xiàn)報文中的目標IP地址與自己的IP地址相同, 則它向源設備發(fā)回ARP響應報文, 通過該報文使源設備獲得目標設備的MAC地址信息。
如果目標設備與源設備不在同一網(wǎng)段, 則源設備首先把IP分組發(fā)向自己的缺省網(wǎng)關(Default Gateway), 由缺省網(wǎng)關對該分組進行轉(zhuǎn)發(fā)。 如果源設備沒有關于缺省網(wǎng)關的MAC信息, 則它同樣通過ARP協(xié)議獲取缺省網(wǎng)關的MAC地址信息。 為了減少廣播量, 網(wǎng)絡設備通過ARP表在緩存中保存IP與MAC地址的映射信息。 在一次ARP的請求與響應過程中, 通信雙方都把對方的MAC地址與IP地址的對應關系保存在各自的ARP表中, 以在后續(xù)的通信中使用。 ARP表使用老化機制, 刪除在一段時間內(nèi)沒有使用過的IP與MAC地址的映射關系。
還有當傳送過來的包要傳向一個LAN的主機時, 當它到達網(wǎng)關時, 網(wǎng)關要求ARP程序找到物理主機或與IP地址相對應的MAC地址。 ARP程序在緩存中尋找, 如果找到地址, 就提供此地址, 以便讓此包轉(zhuǎn)換成相應的長度和格式, 以傳送到此主機。 如果未找到, ARP程序就在網(wǎng)上廣播一個特殊格式的消息, 看哪個機器知道與這個IP地址相關的MAC地址。 如果一臺機器發(fā)現(xiàn)那是自己的IP地址, 它就發(fā)送回應, 這樣就指出了相應的地址。 ARP程序就更新自己的緩存然后發(fā)送此包到回應的MAC地址。 因為不同協(xié)議的相應處理方法不同, 所以有不同網(wǎng)絡的地址解析請求。 也有反向地址解析協(xié)議(RARP)供不知道IP地址的主機從ARP緩存中獲得IP地址。
我們還是來通過實驗更加深入直觀地了解ARP協(xié)議的工作原理吧。 我們假設有兩臺主機:A機的IP地址是192.168.0.1, MAC地址是52-54-ab-27-82-83 。
B機的IP地址是192.168.0.2, MAC地址是52-54-ab-27-82-84 。
當主機A想與主機B進行通訊時, A機只知道B機的IP地址是192.168.0.2,當數(shù)據(jù)包封裝到MAC層時他如何知道B
的MAC地址呢, 一般的OS中是這樣做的, 在OS的內(nèi)核中保存一分MAC地址表, 就是我們一中介始到的。 用arp -a就可以看見這個表的內(nèi)容了, 例如:
C:/>arp -a
Interface: 192.168.0.X on Interface 0x1000002
Internet Address Physical Address Type
192.168.0.1 52-54-ab-27-82-83 dynamic
其中表內(nèi)有IP和MAC地址的對應關系, 當要過進行通訊時, 系統(tǒng)先查看這個表中是否有相關的表項, 如果有就直接使用, 如果沒有系統(tǒng)就會發(fā)出一個ARP請求包,這個包的目的地址為ffffffffffff的廣播地址, 他的作用就是詢問局域網(wǎng)內(nèi)IP地址為192.168.0.2的主機的MAC地址, 就像是A在局域網(wǎng)中發(fā)信息找一個IP地址為192.168
.0.2的主機MAC地址, 同樣A機把自已的MAC地址告訴出去是52-54-ab-27-82-83 , 隨后所有主機都會接收到這個包, 但只有IP為192.168.0.2的B才會響應一個ARP應答包給主機A,B機會回信息給A機說他的MAC地址是52-54-ab-27-82-84
,好這下主機A就知道B的MAC地址了, 于時他就可以封包發(fā)送了, 同時主機A將B的MAC地址放入ARP緩沖中, 隔一定時間就將其刪除, 確保不斷更新。
注意, 在這個過程中, 如果主機A在發(fā)送ARP請求時, 假如該局域網(wǎng)內(nèi)有一臺主機C的IP和A相同, C就會得知有一臺主機的IP地址同自已的IP地址相同, 于時就蹦出一個IP沖突的對話筐。 與ARP相對應的還有一個協(xié)議RARP:Reverse
Address Resolution Protocol,
反向地址解析協(xié)議, 該協(xié)議主要用于工作站模型動態(tài)獲取IP的過程中, 作用是由MAC地址向服務器取回IP地址。
三, 如何實現(xiàn)ARP協(xié)議的欺騙技術(shù)和相應的對策
1, ARP協(xié)議欺騙技術(shù)
當我們設定一個目標進行ARP欺騙時, 也就是把MAC地址通過一主機A發(fā)送到主機B上的數(shù)據(jù)包都變成發(fā)送給主機C的了, 如果C能夠接收到A發(fā)送的數(shù)據(jù)包后, 第一步屬于嗅探成功了, 而對于主機A來目前是不可能意識到這一點, 主機C接收到主機A發(fā)送給主機B的數(shù)據(jù)包可沒有轉(zhuǎn)交給B。 當進行ARP重定向。 打開主機C的IP轉(zhuǎn)發(fā)功能, A發(fā)送過來的數(shù)據(jù)包, 轉(zhuǎn)發(fā)給C, 好比一個路由器一樣。 但是這就是ARP協(xié)議欺騙真正的一步, 假如主機C進行發(fā)送ICMP重定向的話就麻煩了, 因為他可以直接進行整個包的修改轉(zhuǎn)發(fā), 捕獲到主機A發(fā)送給的數(shù)據(jù)包, 全部進行修改后再轉(zhuǎn)發(fā)給主機B, 而主機B接收到的數(shù)據(jù)包完全認為是從主機A發(fā)送來的。 這樣就是主機C進行ARP協(xié)議欺騙技術(shù), 對于網(wǎng)絡安全來是很重要的。 當然還可以通過MAC地址進行欺騙的。
2, ARP協(xié)議欺騙技術(shù)相應對策
各種網(wǎng)絡安全的對策都是相對的, 主要要看網(wǎng)管平時對網(wǎng)絡安全的重視性了。 下面介始一些相應的對策:
1) 在系統(tǒng)中建立靜態(tài)ARP表 ,建立后對本身自已系統(tǒng)影響不大的, 對網(wǎng)絡影響較大, 破壞了動態(tài)ARP解析過程。 靜態(tài)ARP協(xié)議表不會過期的, 我們用“arp -d”命令清除ARP表, 即手動刪除。 但是有的系統(tǒng)的靜態(tài)ARP表項可以被動態(tài)刷新, 如Solaris系統(tǒng),那樣的話依靠靜態(tài)ARP表項并不能對抗ARP欺騙攻擊, 相反縱容了ARP欺騙攻擊, 因為虛假的靜態(tài)ARP表項不會自動超時消失。 當然, 可以考慮利用cron機制補救之。 (增加一個crontab) 為了對抗ARP欺騙攻擊, 對于Solaris系統(tǒng)來說, 應該結(jié)合"禁止相應網(wǎng)絡接口做ARP解 析"和"使用靜態(tài)ARP表"的設置
2)在相對系統(tǒng)中禁止某個網(wǎng)絡接口做ARP解析(對抗ARP欺騙攻擊), 可以做靜態(tài)ARP協(xié)議設置(因為對方不會響應ARP請求報文) 如:arp -s XXX.XXX.XX.X 08-00-20-a8-2e-ac
在絕大多數(shù)操作系統(tǒng)如:Unix, BSD, NT等, 都可以結(jié)合"禁止相應網(wǎng)絡 接口做ARP解析"和"使用靜態(tài)ARP表"的設置來對抗ARP欺騙攻擊。 而Linux系統(tǒng), 其靜態(tài)ARP表項不會被動態(tài)刷新, 所以不需要"禁止相應網(wǎng)絡接口做ARP解析"即可對抗ARP欺騙攻擊。
結(jié)尾:本文還較深入和直觀地介紹了ARP協(xié)議的基本原理與基本工作過程及ARP欺騙技術(shù)。 以及其對策, 如果你有什么更好的ARP欺騙技術(shù)的對策, 歡迎交流。 謝謝。
上面是電腦上網(wǎng)安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。