登錄

中間人攻擊

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

1.什么是中間人攻擊

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

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

2.中間人攻擊的方式

  信息篡改

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

  信息竊取

  當(dāng)A、B通信時(shí),C不主動(dòng)去為其“轉(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ò)的活動(dòng),包括賬戶、密碼等敏感信息,這是被動(dòng)攻擊也是非常難被發(fā)現(xiàn)的。

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

  要防范MITM攻擊,可以將一些機(jī)密信息進(jìn)行加密后再傳輸,這樣即使被“中間人”截取也難以破解,另外,有一些認(rèn)證方式可以檢測(cè)到MITM攻擊。比如設(shè)備或IP異常檢測(cè):如果用戶以前從未使用某個(gè)設(shè)備或IP訪問系統(tǒng),則系統(tǒng)會(huì)采取措施。還有設(shè)備或IP頻率檢測(cè):如果單一的設(shè)備或IP同時(shí)訪問大量的用戶帳號(hào),系統(tǒng)也會(huì)采取措施。更有效防范MITM攻擊的方法是進(jìn)行帶外認(rèn)證,具體過程是:系統(tǒng)進(jìn)行實(shí)時(shí)的自動(dò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)證過程都不會(huì)被MITM攻擊者接觸到。例如MITM是通過中間的假網(wǎng)站來截獲敏感信息的,相關(guān)的“帶外認(rèn)證”就是指通過電話認(rèn)證或短信認(rèn)證等方式確認(rèn)用戶的真實(shí)性,而MITM攻擊者卻不能得到任何信息。當(dāng)然,這種方式麻煩些。

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

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

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

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

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

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

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

  第二(安全的)通道的校驗(yàn)

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

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

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

3.中間人攻擊的示例

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

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

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

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

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

  2、C將這條截獲的消息轉(zhuǎn)送給B;此時(shí)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的公鑰加密] --> C B

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

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

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

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

4.中間人攻擊的取證

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

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

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

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

  證書是自簽名證書嗎?

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

  證書是否已被吊銷?

  證書最近被更改過嗎?

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

評(píng)論  |   0條評(píng)論