iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 4
2
Security

網路安全概述系列 第 4

ARP Spoofing,簡單講述 OSI 模型和網路上資料傳輸的流程

  • 分享至 

  • xImage
  •  

不曉得大家是否有看過這個工具?

Netcutimg.jpg

Netcut,當你隔壁或室友瘋狂載東西,好好勸說又不聽,就只能用這招制裁他。
是不是有好奇過他背後的原理?

換一個場景。

甲和乙是好朋友,甲有什麼事情都會和乙說。今天來了丙,丙和甲說他是乙,結果甲就把所有秘密都跟乙說了。

「挑戰一句話解釋 ARP Spoofing」成功。

OSI 模型

要講解 ARP 協定之前,必須要講解 OSI 模型。簡單來說,OSI 模型將網路體系的架構以抽象化的方式拆分成七層。
每一層都是對上一層提供服務,各層是環環相扣的。
這裡有一張從 Cisco 借來的圖:
osi-550x425.gif

從上到下是這樣的:

  1. 實體層 - 在「實體」的東西上傳輸資料。網路線等等屬於這層。
  2. 資料連結層 - 處理尋址/錯誤偵測或是糾錯。乙太網和 Wifi 屬於這層。這層會把「資料鍊錶尾」「資料鍊錶頭」塞進去封包
  3. 網路層 - 決定資料傳輸路徑,處理「網路」的部分,如 IP 協定。這層將「網路表頭」加進資料包,形成「封包」
  4. 傳輸層 - 提供「傳輸資料」的方式(容器),例如 TCP/UDP。將「傳輸表頭」加進資料,形成「資料包」
  5. 會話層 - 如 PPTP,NetBIOS,RPC。讓兩個實體進行對談,提供會話(Session)管理機制。這層也會處理「連線」的部分
  6. 表現層 - 資料處理(加密/解密、壓縮、編碼、語法轉換), JPEG/GIF/MP3,這層不一定會使用到
  7. 應用層 - 應用層,例如 HTTP/SMTP/NTP,這裡是我們常碰到的地方,應用層和程式對街,提供服務

在 OSI 架構底下,傳輸資料的方式大概是這樣的:

  1. 要傳輸的資料,在第七層先組成最初始的形式
  2. 資料傳到 n-1 層
  3. 在 n-1 層,對資料加入頭和尾,然後傳去 n-2 層
  4. 持續直到遇見最後一層,傳輸到另一個實體上去
  5. 接收方反向進行這些動作,直到第七層

ARP 協定

簡單來說:

  1. OSI 第二層傳輸上都是使用 MAC 位置,MAC 位置長得像:ff:ff:ff:ff:ff:ff
  2. ARP 能夠將 IP 位置轉換成 MAC 位置(或反過來)。
  3. ARP 表有「快取」的機制,故短期內不用再問一次同樣的問題

資料傳輸流程(內網)

正常狀況下,一開始只會知道 IP 位置,而不是對方的 MAC 位置。當一台機器要和另一台機器互相溝通時,一樣從 OSI 第七層到第三層,第三層因為知道 IP 位置了,所以可以寫完。但是第二層時必須寫上 MAC 位置,所以機器會先去查 ARP 表。如果 ARP 表裡面沒有,機器就會向區域網內上所有的電腦發出 ARP 請求,問「有沒有人知道這 IP 的 MAC 號多少」。別台機器收到之後,就會檢查自己的 ARP 表裡面有沒有這個 ip-mac 的對應組合。若有的話,即會將這個結果返回給一開始詢問 ARP 資訊的機器。

資料傳輸流程(外網)

但如果這個 IP 位置是外網的,基本上沒有人知道(故沒人會回應,幫QQ),也不會有人回。但因為 ARP 請求是用廣播的方式發出,所有區網內的裝置都會收到這個請求。路由器發現這個 IP 不屬於內網時,便會發出 ARP 回復,寫上自己的 MAC 位置。
路由器在收到這個包之後,會先解開。但是拆到第三層時,路由器會發現接收方的 IP 不是自己的,所以路由器會知道這個封包要傳去外網。

路由器會先去查一下本地的路由表,查看看從哪條路可以過去目標 IP 的位置。如果查到的話,一樣用 ARP 協定去查出對方的 MAC 地址,然後這樣層層傳過去。

下一篇將會講到正題:ARP Spoofing,又名 ARP 欺騙攻擊。


上一篇
HTTPS/SSL/TLS 概述,整體流程、憑證、數位簽章
下一篇
ARP Spoofing,講解
系列文
網路安全概述31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言