跳至主要內容

什麼是中間人攻擊(MITM)?從 ARP 毒化到 Rogue Wi-Fi 的原理與防禦

2011 年 8 月,荷蘭憑證簽發機構 DigiNotar 遭到駭客入侵,攻擊者秘密簽發了幾百張偽造的 SSL 憑證,並在伊朗對超過 30 萬名 Google 用戶發動流量攔截,而瀏覽器完全沒有發出任何警告。

隱形的中間監聽者

試想你在咖啡廳點了一杯拿鐵,打開筆電準備登入網路銀行。你的封包離開無障礙的無線網路,穿越路由器,最後抵達銀行的伺服器。但在這個過程中,如果有個人暗中坐在你與路由器之間,默默複製、閱讀甚至修改你傳送的每一個封包,這就是典型的中間人攻擊(Man-in-the-Middle Attack,簡稱 MITM)。

中間人攻擊的核心在於「欺騙與隱蔽」。攻擊者把自己偽裝成你信任的伺服器,同時向伺服器偽裝成你。雙方以為正在直接對話,實際上所有的數據流都必須先經過攻擊者的轉手。

這種攻擊可以在網路架構的不同層級發生。從區域網路底層的硬體位址混淆,到應用層的網址誘騙,攻擊者擁有相當豐富的工具箱。

為了理解攻擊者是如何把手伸進傳輸通道的,我們必須先看看區域網路內部最基礎的通訊漏洞。

攔截流量的三大常見手法

在網際網路設計的早期,許多通訊協定預設網路參與者都是誠實的。這種「信任優先」的架構,成了現代 MITM 攻擊的溫床。

1. ARP 毒化(ARP Poisoning)

在區域網路內,裝置之間溝通靠的是 MAC 位址而非 IP 位址。RFC 826 在 1982 年制定了 ARP(位址解析協定),用來將 IP 位址翻譯成 MAC 位址。然而,ARP 協定完全沒有驗證機制。

攻擊者只要向你的電腦發送偽造的 ARP 回應,宣稱「網關路由器的 IP 對應到我的 MAC 位址」,你的電腦就會毫不懷疑地更新 ARP 快取表。此後,你發往外網的所有封包都會先送給攻擊者。這種手法經常搭配 IP 欺騙 技術來進一步掩蓋身分。

2. 邪惡雙胞胎 Wi-Fi(Rogue Wi-Fi / Evil Twin)

攻擊者在公共場所設定一個 Wi-Fi 熱點,並將名稱(SSID)取為與店家相同的「Free_Coffee_WiFi」。當你的手機自動連上這個訊號較強的假熱點時,攻擊者控制的 DHCP 伺服器 就會為你分配 IP 位址,並將預設網關指派為攻擊者自己的機器。

此時你傳出的所有數據,都順理成章地經過攻擊者的網卡,成為被隨意剖析的明文。

3. DNS 劫持與毒化

當你在瀏覽器輸入網址時,電腦必須查詢 DNS 伺服器以取得目標 IP。如果攻擊者控制了區域網路的 DNS 回應,或是篡改了路由器的 DNS 設定,就能將你引導至長得一模一樣的釣魚網站。

了解這些攔截路徑後,我們可以透過流程圖直觀地看清數據流是如何被扭曲的。

數據攔截流程圖

下面這張流程圖展現了中間人如何插足於使用者與目標伺服器之間:

1 攔截請求

2 轉發請求

3 伺服器回應

4 篡改回應

使用者裝置

攻擊者裝置

目標伺服器

如圖所示,原本點對點的直線通訊,演變成了繞經攻擊者的雙向轉發。攻擊者不僅能看清內容,還能即時修改資料再發給下一方。

那麼,現代網路安全技術是如何粉碎這種無聲監聽的?答案就是 TLS 與加密防線。

HTTPS 與加密如何瓦解 MITM

如果資料以明文(HTTP)傳輸,中間人就能輕鬆閱讀你的密碼與信用卡號。但現代網頁普遍採用 HTTPS(基於 TLS/SSL 的 HTTP),徹底改變了戰局。

HTTPS 引入了兩大核心保護:

  • 端到端加密:使用非對稱密碼學建立金鑰,攻擊者即便攔截到封包,看到的也只是一堆無法解密的亂碼。
  • 身分驗證:數位憑證由受信任的憑證簽發機構(CA)簽署,瀏覽器會驗證伺服器提供的憑證是否合法且匹配域名。

為了防止攻擊者強行將 HTTPS 連線降級為明文 HTTP,網際網路工程任務組(IETF)在 2012 年推出了 HSTS(HTTP 嚴格傳輸安全,RFC 6797)標準。一旦網站啟用了 HSTS,瀏覽器就會強制所有後續連線都必須使用 HTTPS,拒絕任何非加密的 HTTP 嘗試。

然而,攻擊者並未因此放棄,他們開發出了更精密的繞過技巧。

攻擊者繞過加密的現代手段

面對堅固的 TLS 加密,攻擊者轉而尋找實作上的漏洞或是信任鏈的破綻。

SSL 剝離攻擊(SSL Stripping)

資安專家 Moxie Marlinspike 在 2009 年的 Black Hat 大會上提出了 SSLstrip 工具。攻擊者站在中間,與目標網站保持 HTTPS 安全連線,但對使用者端則將所有回應中的 https:// 連結替換成 http://。若使用者沒有手動檢查網址列的鎖頭標誌,就會在不知不覺中繼續使用明文 HTTP 傳輸敏感資料。

強制安裝惡意根憑證

如果攻擊者能取得你裝置的系統權限,或者透過社交工程誘騙你安裝了一張自製的「根憑證(Root Certificate)」,他們就能為任何網站現場簽發偽造的 TLS 憑證。你的瀏覽器因為信任這張根憑證,便不會發出警告。這種手法常被用於企業內部流量審查,但也常被惡意軟體濫用。

既然加密防線可能面臨多維度挑戰,我們在日常生活與網路操作中該如何做好自身防護?

保護個人連線安全的實用建議

防止 MITM 攻擊需要結合良好的網路習慣與適當的安全工具:

  • 警惕瀏覽器警告:若瀏覽器顯示「您的連線不是私密連線」或憑證錯誤,絕不要強行忽略並繼續訪問。
  • 公用 Wi-Fi 使用 VPN:在機場或咖啡廳連線時,開啟 VPN 加密 能夠建立一條加密隧道,讓同一個區域網路內的 ARP 毒化與邪惡熱點無法窺探你的傳輸內容。
  • 啟用安全 DNS 查詢:採用 DNS-over-HTTPS 協定,可以防止區域網路內的攻擊者篡改你的 DNS 查詢結果。
  • 保持系統與軟體更新:及時修補修復作業系統中的網路協定棧漏洞,避免被自動化工具進行底層劫持。

掌握了這些網路層的防禦技巧後,你將能更主動地判斷連線狀態,保障每一封包安全抵達目的地。