中間人攻擊(man-in-the-middle attack):你和網際網路中間的第三人

pythontab發表於2013-02-04

最近看到國外有一篇有趣的文章,是關於“中間人攻擊(man-in-the-middle attack)”的,本想原文翻譯,但裡面有大量的政治敏感度內容,不宜在本網站公佈,這裡僅摘譯出技術相關的部分內容,供大家探討。

大概是1月26號早上8點左右,在新浪微博和Twitter上相繼有中國使用者報告說在訪問GitHub.com網站時出現無效SSL證照警告提示。後續不斷的證據顯示,這是由於受到“中間人攻擊(man-in-the-middle attack)”造成的。

中間人攻擊(man-in-the-middle attack)指的是什麼?

先看看來自維基百科的定義:

在密碼學和電腦保安領域中,中間人攻擊 ( Man-in-the-middle attack,通常縮寫為MITM )是指攻擊者與通訊的兩端分別建立獨立的聯絡,並交換其所收到的資料,使通訊的兩端認為他們正在通過一個私密的連線與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。

這是比較理論的解釋,下面是一個比較通俗的演繹:

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

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

愛麗絲 “嗨,鮑勃,我是愛麗絲。給我你的公鑰“ --> 馬洛裡           鮑勃

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

愛麗絲          馬洛裡 “嗨,鮑勃,我是愛麗絲。給我你的公鑰“ --> 鮑伯

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

愛麗絲          馬洛裡 <-- [鮑伯的公鑰]-- 鮑伯

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

愛麗絲 <-- [馬洛裡的公鑰]-- 馬洛裡          鮑勃

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

愛麗絲 “我們在公共汽車站見面!”--[使用馬洛裡的公鑰加密] --> 馬洛裡          鮑勃

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

愛麗絲          馬洛裡 “在家等我!”--[使用鮑伯的公鑰加密] --> 鮑伯

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

可以看出,當受到中間人攻擊時,你傳送到任何資訊都會被中間人截獲——即使傳輸協議是加密的。比如說你在一個網咖或咖啡館使用裡面的無線網路上網,如果這個網路被動過手腳,有中間人劫持了網路,你的登入郵箱/微博的密碼,網上支付的密碼,你傳送到電子郵件的內容,你的QQ聊天記錄……都有可能被中間人截獲。上面提到的那篇文章裡稱這次針對github.com的中間人攻擊大概持續了1個小時,在這一個小時裡從國內登入github.com的人的密碼都有可能被人記錄。

中間人攻擊是可以探測到的

SSL安全證照不受信任

大部分的瀏覽器都能發現用https協議訪問網際網路時的SSL證照出現的異常情況,它們會提醒你該網站的安全證照不受信任,如上圖,十分的醒目。如果你是使用火狐、谷歌、Safari等現代瀏覽器時,每次有證照異常情況發生,它們都會出現這個警告介面,但如果你使用的是IE瀏覽器,它只會在第一次提醒你。

360安全瀏覽器的綠色認證標誌

這篇文章裡特別提到了中國國內市場佔有率排名第一、達到27%的“360安全瀏覽器(360 Safe Browser)”,使用它訪問具有偽造的SSL證照的網站時,第一次訪問也會出現警告資訊,但第二次訪問時竟然彈出來綠色醒目的“通過綠色網站認證”標誌![汗]

在這篇外文面前,我這個本來毫不相干的中國人都覺得臉紅。取什麼名字不好,偏偏叫什麼“安全”瀏覽器,自己打自己嘴巴。幸好我從來不使用那些360、搜狗、百度等等的“國產”瀏覽器。

相關文章