中間人攻擊

信息干擾

中間人攻擊(英語:Man-in-the-middle attack,縮寫:MITM)在密碼學電腦安全領域中是指攻擊者與通訊的兩端分別建立獨立的聯絡,並交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個對談都被攻擊者完全控制[1]。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。在許多情況下這是很簡單的(例如,在一個未加密的Wi-Fi 無線存取點的接受範圍內的中間人攻擊者,可以將自己作為一個中間人插入這個網絡)。

一個中間人攻擊能成功的前提條件是攻擊者能將自己偽裝成每一個參與對談的終端,並且不被其他終端識破。中間人攻擊是一個(缺乏)相互認證的攻擊。大多數的加密協定都專門加入了一些特殊的認證方法以阻止中間人攻擊。例如,SSL協定可以驗證參與通訊的一方或雙方使用的證書是否是由權威的受信任的數碼證書認證機構頒發,並且能執行雙向身份認證。

特性

中間人攻擊需要通過一個安全的通道做額外的傳輸。與連鎖協定不同,所有能抵禦中間人攻擊的加密系統都需要通過一個安全通道英語secure channel來傳輸或交換一些額外的資訊。為了滿足不同安全通道的不同安全需求,許多金鑰交換協定英語key-agreement protocol已經被研究了出來。

攻擊範例

 
中間人攻擊示意圖

假設愛麗絲(Alice)希望與鮑伯(Bob)通訊。同時,馬洛里(Mallory)希望攔截竊對談以進行竊聽並可能在某些時候傳送給鮑伯一個虛假的訊息。

首先,愛麗絲會向鮑伯索取他的公鑰。如果Bob將他的公鑰傳送給Alice,並且此時馬洛里能夠攔截到這個公鑰,就可以實施中間人攻擊。馬洛里傳送給愛麗絲一個偽造的訊息,聲稱自己是鮑伯,並且附上了馬洛里自己的公鑰(而不是鮑伯的)。

愛麗絲收到公鑰後相信這個公鑰是鮑伯的,於是愛麗絲將她的訊息用馬洛里的公鑰(愛麗絲以為是鮑伯的)加密,並將加密後的訊息回給鮑伯。馬洛里再次截獲愛麗絲回給鮑伯的訊息,並使用馬洛里自己的私鑰對訊息進行解密,如果馬洛里願意,她也可以對訊息進行修改,然後馬洛里使用鮑伯原先發給愛麗絲的公鑰對訊息再次加密。當鮑伯收到新加密後的訊息時,他會相信這是從愛麗絲那裏發來的訊息。

1.愛麗絲發送給鮑伯一條訊息,卻被馬洛里截獲:

愛麗絲「嗨,鮑伯,我是愛麗絲。給我你的公鑰」馬洛里 鮑伯

2.馬洛里將這條截獲的訊息轉送給鮑伯;此時鮑伯並無法分辨這條訊息是否從真的愛麗絲那裏發來的:

愛麗絲 馬洛里「嗨,鮑伯,我是愛麗絲。給我你的公鑰」鮑伯

3.鮑伯回應愛麗絲的訊息,並附上了他的公鑰:

愛麗絲 馬洛里[鮑伯的公鑰]鮑伯

4.馬洛里用自己的金鑰替換了訊息中鮑伯的金鑰,並將訊息轉發給愛麗絲,聲稱這是鮑伯的公鑰:

愛麗絲[馬洛里的公鑰]馬洛里 鮑伯

5.愛麗絲用她以為是鮑伯的公鑰加密了她的訊息,以為只有鮑伯才能讀到它:

愛麗絲「我們在公共汽車站見面!」—[使用馬洛里的公鑰加密]馬洛里 鮑伯

6.然而,由於這個訊息實際上是用馬洛里的金鑰加密的,所以馬洛里可以解密它,閱讀它,並在願意的時候修改它。他使用鮑伯的金鑰重新加密,並將重新加密後的訊息轉發給鮑伯:

愛麗絲 馬洛里「在家等我!」—[使用鮑伯的公鑰加密]鮑伯

7.鮑伯認為,這條訊息是經由安全的傳輸通道從愛麗絲那裏傳來的。

這個例子顯示了愛麗絲和鮑伯需要某種方法來確定他們是真正拿到了屬於對方的公鑰,而不是拿到來自攻擊者的公鑰。否則,這類攻擊一般都是可行的,在原理上,可以針對任何使用公鑰——金鑰技術的通訊訊息發起攻擊。幸運的是,有各種不同的技術可以幫助抵禦MITM攻擊。

防禦攻擊

許多抵禦中間人攻擊的技術基於以下認證技術:

  • 公鑰基礎建設
    • PKI方案中,主要防禦中間人攻擊的方案就是PKI的相互認證的機制。這樣的機制由應用程式驗證用戶,由用戶裝置驗證應用程式。但在使用某些不安全的應用的情況下,這不是很有用。因此,需要注意選擇正版軟件。
  • 更強力的相互認證,例如:
    • 金鑰(通常是高資訊熵的金鑰,從而更安全),或
    • 密碼(通常是低的資訊熵的金鑰,從而降低安全性)
  • 延遲測試,例如使用複雜加密雜湊函數進行計算以造成數十秒的延遲;如果雙方通常情況下都要花費20秒來計算,並且整個通訊花費了60秒計算才到達對方,這就能表明存在第三方中間人。
  • 第二(安全的)通道的校驗
  • 一次性密碼本可以對中間人攻擊免疫,這是在對一次密碼本的安全性和信任上建立的。公鑰體系的完整性通常必須以某種方式得到保障,但不需要進行保密。密碼和共用金鑰有額外的保密需求。公鑰可以由證書頒發機構驗證,這些公鑰通過安全的渠道(例如,隨Web瀏覽器作業系統安裝)分發。公共金鑰也可以經由Web線上信任進行線上驗證,可以通過安全的途徑分發公鑰(例如,通過面對面的途徑分發公鑰)。

檢視金鑰交換協定以了解不同類別的使用不同金鑰形式或密碼以抵禦中間人攻擊的協定。

中間人攻擊的取證分析

從被懷疑是中間人攻擊的連結中捕捉網絡封包並進行分析可以確定是否存在中間人攻擊。在進行網絡分析並對可疑的SSL中間人攻擊進行取證時,重要的分析證據包括:

  • 遠端伺服器的IP位址
  • DNS域名解析伺服器
  • X.509證書伺服器
    • 證書是自簽章證書嗎?
    • 證書是由信任的頒發機構頒發的嗎?
    • 證書是否已被吊銷?
    • 證書最近被更改過嗎?
    • 在互聯網上的其他的客戶端是否也得到了相同的證書?

其他的非加密的中間人攻擊

一個著名的非加密中間人攻擊的例子是貝爾金無線路由器2003年的某一個版本所造成的。它會周期性地接管通過它的HTTP連接,阻止封包到達目的地。並將它自己對請求的回應作為應答返回。而它傳送的回應,則是在用戶原本應該顯示網頁的地方,顯示一個關於其他貝爾金產品的廣告。在遭到了解技術詳情的用戶的強烈抗議後,這個功能被貝爾金從路由器後續版本的韌體中刪除。[2]

另一個典型的非加密中間人攻擊的例子是「圖靈色情農場」。布賴恩·華納說,這是垃圾郵件傳送者用來繞過驗證碼的「可以想像的攻擊」。垃圾郵件傳送者設置了一個色情網站,而訪問這個色情網站需要用戶解決一些驗證問題。這些驗證問題實際上是其他網站的驗證問題。這樣就可以達到繞開網站驗證傳送垃圾郵件的目的。[3]然而,Jeff Atwood指出,這次襲擊僅僅是理論上的——沒有任何證據指出垃圾郵件傳送者曾經在2006年建立了圖靈色情農場。[4]然而,2007年10月有新聞報道稱,垃圾郵件傳送者確實建立了一個Windows遊戲,當用戶鍵入從雅虎收到的註冊郵箱驗證碼後,程式將獎勵用戶色情圖片。[5]這將允許垃圾郵件傳送者建立臨時的免費電子郵件帳戶以傳送垃圾郵件

實現

  • dsniff - 一個實現SSHSSL中間人攻擊的工具
  • Cain and Abel - Windows圖形介面的工具,它可以執行中間人攻擊,嗅探和ARP投毒
  • Ettercap - 一個基於區域網絡的中間人攻擊工具
  • Karma - 一個使用802.11 Evil Twin以執行MITM攻擊的工具
  • AirJack -一個演示802.11 MITM攻擊的工具
  • SSLStrip一個基於SSL的MITM攻擊的工具。
  • SSLSniff一個基於SSL的MITM攻擊的工具。原本是利用一個在Internet Explorer上缺陷實現的。
  • csploit -一個在android系統上實現的MITM攻擊工具包。
  • Mallory - 一個透明的TCP和UDP MiTMing代理。擴充到MITM SSL,SSH和許多其他協定。
  • wsniff - 一個802.11HTTP / HTTPS的基於MITM攻擊的工具
  • 安裝在自動取款機銀行卡插槽上的附加讀卡器和安裝在鍵盤上的附加密碼記錄器。
  • zanti-一款在android系統上的多功能網絡滲透包。

參見

  • 瀏覽器中間人攻擊 -一種網頁瀏覽器中間人攻擊
  • Boy-in-the-browser - 一個簡單的Web瀏覽器中間人攻擊
  • Aspidistra transmitter -英國二戰「入侵」行動中使用的無線電發射器,早期的中間人攻擊。
  • 電腦安全 - 安全的電腦系統的設計。
  • 安全性分析 - 在不完全知道加密方法的情況下破解加密後的資訊。
  • 數碼簽章 -一個加密文字的真實性擔保,通常是一個只有筆者預計將能夠執行計算的結果。
  • 聯鎖協定 -一個特定的協定,在金鑰可能已經失密的情況下,規避可能發生的中間人攻擊。
  • 金鑰管理 - 如何管理金鑰,包括生成,交換和儲存金鑰。
  • 金鑰協商協定 - 又稱金鑰交換協定,一個協商如何建立適合雙方通訊的金鑰的協定。
  • 相互認證 -如何溝通各方的信心建立在彼此的身份。
  • 密碼認證金鑰協定 -建立使用密碼鑰匙的協定。
  • 量子密碼 - 量子力學的使用提供安全加密(老方法,而依靠單向函數)。
  • 安全通道 - 一種在通訊中防截獲和防篡改的方式。
  • 欺騙攻擊
  • HTTP嚴格傳輸安全
  • HTTP公鑰固定
  • 哈薩克斯坦政府實行的中間人攻擊

參考資料

  1. ^ Elakrat, Mohamed Abdallah; Jung, Jae Cheon. Development of field programmable gate array–based encryption module to mitigate man-in-the-middle attack for nuclear power plant data communication network. Nuclear Engineering and Technology. 2018-06-01, 50 (5) [2022-10-02]. ISSN 1738-5733. doi:10.1016/j.net.2018.01.018. (原始內容存檔於2022-10-07) (英語). 
  2. ^ Leyden, John. Help! my Belkin router is spamming me. The Register. 2003-11-07. (原始內容存檔於2005-07-28). 
  3. ^ Petmail Documentation: Steal People's Time To Solve CAPTCHA Challenges. [2008-05-19]. (原始內容存檔於2020-09-18). 
  4. ^ CAPTCHA Effectiveness. 2006-10-25 [2012-07-15]. (原始內容存檔於2010-01-24). 
  5. ^ PC stripper helps spam to spread. BBC News. 2007-10-30. (原始內容存檔於2021-01-26).