登錄

中間人攻擊

百科 > 互聯(lián)網(wǎng) > 中間人攻擊

1.什么是中間人攻擊

  中間人攻擊是指一個攻擊者使用公鑰交換來攔截消息并轉(zhuǎn)發(fā)它們,然后取代他自己的公鑰發(fā)送給被請求的一方,原始雙方表面上看來仍相互通信,攻擊者從球類游戲中得到它的名字,即兩個人試圖相互直接仍一個球給對方,然而在這兩個人中間有一個人試圖去抓住這個球。在這個MITMA中入侵者使用一個表面上看起來是從服務(wù)器到客戶端但看起來又像是從客戶端到服務(wù)器端的應(yīng)用程序。這種攻擊可能被使用在簡單的獲得訪問消息的權(quán)利,或者能使得攻擊者在轉(zhuǎn)發(fā)消息之前先修改消息。

  MITMA有的時候也叫做消防隊攻擊(FBA,fire brigade attack),這個術(shù)語起源于這種救災(zāi)時排成長龍以傳水救火的隊列方法,即在水源和火災(zāi)之間的一個人到另一個人之間使用手工傳遞一桶一桶的水地方法來撲滅火災(zāi)的方法。

2.中間人攻擊的方式

  信息篡改

  當(dāng)主機A、和主機B通信時,都由主機C來為其“轉(zhuǎn)發(fā)”,如圖一,而A、B之間并沒有真正意思上的直接通信,他們之間的信息傳遞同C作為中介來完成,但是A、B卻不會意識到,而以為它們之間是在直接通信。這樣攻擊主機在中間成為了一個轉(zhuǎn)發(fā)器,C可以不僅竊聽A、B的通信還可以對信息進行篡改再傳給對方,C便可以將惡意信息傳遞給A、B以達到自己的目的。

  信息竊取

  當(dāng)A、B通信時,C不主動去為其“轉(zhuǎn)發(fā)”,只是把他們的傳輸?shù)?a href="/wiki/%E6%95%B0%E6%8D%AE%E5%A4%87%E4%BB%BD" title="數(shù)據(jù)備份">數(shù)據(jù)備份,以獲取用戶網(wǎng)絡(luò)的活動,包括賬戶、密碼等敏感信息,這是被動攻擊也是非常難被發(fā)現(xiàn)的。

  實施中間人攻擊時,攻擊者??紤]的方式是ARP欺騙或DNS欺騙等,將會話雙方的通訊流暗中改變,而這種改變對于會話雙方來說是完全透明的。以常見的DNS欺騙為例,目標(biāo)將其DNS請求發(fā)送到攻擊者這里,然后攻擊者偽造DNS響應(yīng),將正確的IP地址替換為其他IP,之后你就登陸了這個攻擊者指定的IP,而攻擊者早就在這個IP中安排好了一個偽造的網(wǎng)站如某銀行網(wǎng)站,從而騙取用戶輸入他們想得到的信息,如銀行賬號及密碼等,這可以看作一種網(wǎng)絡(luò)釣魚攻擊的一種方式。對于個人用戶來說,要防范DNS劫持應(yīng)該注意不點擊不明的連接、不去來歷不明的網(wǎng)站、不要在小網(wǎng)站進行網(wǎng)上交易,最重要的一點是記清你想去網(wǎng)站的域名,當(dāng)然,你還可以把你常去的一些涉及到機密信息提交的網(wǎng)站的IP地址記下來,需要時直接輸入IP地址登錄。

  要防范MITM攻擊,可以將一些機密信息進行加密后再傳輸,這樣即使被“中間人”截取也難以破解,另外,有一些認(rèn)證方式可以檢測到MITM攻擊。比如設(shè)備或IP異常檢測:如果用戶以前從未使用某個設(shè)備或IP訪問系統(tǒng),則系統(tǒng)會采取措施。還有設(shè)備或IP頻率檢測:如果單一的設(shè)備或IP同時訪問大量的用戶帳號,系統(tǒng)也會采取措施。更有效防范MITM攻擊的方法是進行帶外認(rèn)證,具體過程是:系統(tǒng)進行實時的自動電話回叫,將二次PIN碼發(fā)送至SMS(短信網(wǎng)關(guān)),短信網(wǎng)關(guān)再轉(zhuǎn)發(fā)給用戶,用戶收到后,再將二次PIN碼發(fā)送到短信網(wǎng)關(guān),以確認(rèn)是否是真的用戶。帶外認(rèn)證提供了多種不同的認(rèn)證方式及認(rèn)證渠道,它的好處是:所有的認(rèn)證過程都不會被MITM攻擊者接觸到。例如MITM是通過中間的假網(wǎng)站來截獲敏感信息的,相關(guān)的“帶外認(rèn)證”就是指通過電話認(rèn)證或短信認(rèn)證等方式確認(rèn)用戶的真實性,而MITM攻擊者卻不能得到任何信息。當(dāng)然,這種方式麻煩些。

  許多抵御中間人攻擊的技術(shù)基于以下認(rèn)證技術(shù):

  公鑰基礎(chǔ)建設(shè)

  在PKI方案中,主要防御中間人攻擊的方案就是PKI的相互認(rèn)證的機制。使用這樣的機制并由應(yīng)用程序驗證用戶,用戶設(shè)備驗證應(yīng)用程序。但在某些流氓應(yīng)用的情況下,這不是很有用,所以需要注意對流氓軟件應(yīng)與正規(guī)軟件進行區(qū)分。

  更強壯的相互認(rèn)證 ,例如:

  密鑰(通常是高信息熵的密鑰,從而更安全),或

  密碼(通常是低的信息熵的密鑰,從而降低安全性)

  延遲測試,例如使用復(fù)雜加密哈希函數(shù)進行計算以造成數(shù)十秒的延遲;如果雙方通常情況下都要花費20秒來計算,并且整個通訊花費了60秒計算才到達對方,這就能表明存在第三方中間人。

  第二(安全的)通道的校驗

  一次性密碼本可以對中間人攻擊免疫,這是在對一次密碼本的安全性和信任上建立的。

  公鑰體系的完整性通常必須以某種方式得到保障,但不需要進行保密。密碼和共享密鑰有額外的保密需求。 公鑰可以由證書頒發(fā)機構(gòu)驗證,這些公鑰通過安全的渠道(例如,隨Web瀏覽器或操作系統(tǒng)安裝)分發(fā)。 公共密鑰也可以經(jīng)由Web在線信任進行在線驗證 ,可以通過安全的途徑分發(fā)公鑰(例如,通過面對面的途徑分發(fā)公鑰)。

  查看密鑰交換協(xié)議以了解不同類別的使用不同密鑰形式或密碼以抵御中間人攻擊的協(xié)議。

3.中間人攻擊的示例

  假設(shè)A希望與B通信。同時, C希望攔截竊會話以進行竊聽并可能在某些時候傳送給B一個虛假的消息

  首先,A會向B索取他的公鑰。如果將他的公鑰發(fā)送給A,并且此時C能夠攔截到這個公鑰,就可以實施中間人攻擊。C發(fā)送給A一個偽造的消息,聲稱自己是B,并且附上了C自己的公鑰(而不是B的)。

  A收到公鑰后相信這個公鑰是B的,于是A將她的消息用C的公鑰(A以為是B的)加密,并將加密后的消息回給B。C再次截獲A回給B的消息,并使用C自己的私鑰對消息進行解密,如果C愿意,她也可以對消息進行修改,然后C使用B原先發(fā)給A的公鑰對消息再次加密。當(dāng)B收到新加密后的消息時,他會相信這是從A那里發(fā)來的消息。

  1、A發(fā)送給B一條消息,卻被C截獲:

  A “嗨,B,我是A。給我你的公鑰” --> C B

  2、C將這條截獲的消息轉(zhuǎn)送給B;此時B並無法分辨這條消息是否從真的A那里發(fā)來的:

  A C “嗨,B,我是A。給我你的公鑰” --> B

  3. B回應(yīng)A的消息,并附上了他的公鑰:

  A C <-- [B的公鑰]-- B

  4、C用自己的密鑰替換了消息中B的密鑰,并將消息轉(zhuǎn)發(fā)給A,聲稱這是B的公鑰:

  A <-- [C的公鑰]-- C B

  5、A用她以為是B的公鑰加密了她的消息,以為只有B才能讀到它:

  A “我們在公共汽車站見面!”--[使用C的公鑰加密] --> C B

  6、然而,由于這個消息實際上是用C的密鑰加密的,所以C可以解密它,閱讀它,并在愿意的時候修改它。他使用B的密鑰重新加密,并將重新加密后的消息轉(zhuǎn)發(fā)給B:

  A C “在家等我!”--[使用B的公鑰加密] --> B

  7、B認(rèn)為,這條消息是經(jīng)由安全的傳輸通道從A那里傳來的。

  這個例子顯示了A和B需要某種方法來確定他們是真正拿到了屬于對方的公鑰,而不是拿到來自攻擊者的公鑰。否則,這類攻擊一般都是可行的,在原理上,可以針對任何使用公鑰——密鑰技術(shù)的通訊消息發(fā)起攻擊。

4.中間人攻擊的取證

  從被懷疑是中間人攻擊的鏈接中捕捉網(wǎng)絡(luò)數(shù)據(jù)包并進行分析可以確定是否存在中間人攻擊。 在進行網(wǎng)絡(luò)分析并對可疑的SSL中間人攻擊進行取證時,重要的分析證據(jù)包括:

  遠(yuǎn)程服務(wù)器的IP地址

  DNS域名解析服務(wù)器

  X.509證書服務(wù)器

  證書是自簽名證書嗎?

  證書是由信任的頒發(fā)機構(gòu)頒發(fā)的嗎?

  證書是否已被吊銷?

  證書最近被更改過嗎?

  在互聯(lián)網(wǎng)上的其他的客戶端是否也得到了相同的證書?

評論  |   0條評論