中間人攻擊

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

中間人攻擊(MITMA,man in the middle attack)

目錄

什麼是中間人攻擊

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

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

中間人攻擊的方式

  信息篡改

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

  信息竊取

  當A、B通信時,C不主動去為其“轉發”,只是把他們的傳輸的數據備份,以獲取用戶網路的活動,包括賬戶、密碼等敏感信息,這是被動攻擊也是非常難被髮現的。

  實施中間人攻擊時,攻擊者常考慮的方式是ARP欺騙或DNS欺騙等,將會話雙方的通訊流暗中改變,而這種改變對於會話雙方來說是完全透明的。以常見的DNS欺騙為例,目標將其DNS請求發送到攻擊者這裡,然後攻擊者偽造DNS響應,將正確的IP地址替換為其他IP,之後你就登陸了這個攻擊者指定的IP,而攻擊者早就在這個IP中安排好了一個偽造的網站如某銀行網站,從而騙取用戶輸入他們想得到的信息,如銀行賬號及密碼等,這可以看作一種網路釣魚攻擊的一種方式。對於個人用戶來說,要防範DNS劫持應該註意不點擊不明的連接、不去來歷不明的網站、不要在小網站進行網上交易,最重要的一點是記清你想去網站的功能變數名稱,當然,你還可以把你常去的一些涉及到機密信息提交的網站的IP地址記下來,需要時直接輸入IP地址登錄。

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

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

  公鑰基礎建設

  在PKI方案中,主要防禦中間人攻擊的方案就是PKI的相互認證的機制。使用這樣的機制並由應用程式驗證用戶,用戶設備驗證應用程式。但在某些流氓應用的情況下,這不是很有用,所以需要註意對流氓軟體應與正規軟體進行區分。

  更強壯的相互認證 ,例如:

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

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

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

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

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

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

  查看密鑰交換協議以瞭解不同類別的使用不同密鑰形式或密碼以抵禦中間人攻擊的協議。

中間人攻擊的示例

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

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

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

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

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

  2、C將這條截獲的消息轉送給B;此時B並無法分辨這條消息是否從真的A那裡發來的:

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

  3. B回應A的消息,並附上了他的公鑰:

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

  4、C用自己的密鑰替換了消息中B的密鑰,並將消息轉發給A,聲稱這是B的公鑰:

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

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

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

  6、然而,由於這個消息實際上是用C的密鑰加密的,所以C可以解密它,閱讀它,併在願意的時候修改它。他使用B的密鑰重新加密,並將重新加密後的消息轉發給B:

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

  7、B認為,這條消息是經由安全的傳輸通道從A那裡傳來的。

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

中間人攻擊的取證

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

  遠程伺服器的IP地址

  DNS功能變數名稱解析伺服器

  X.509證書伺服器

  證書是自簽名證書嗎?

  證書是由信任的頒發機構頒發的嗎?

  證書是否已被吊銷?

  證書最近被更改過嗎?

  在互聯網上的其他的客戶端是否也得到了相同的證書?

相關條目

本條目對我有幫助0
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

Tracy,Mis铭,苏青荇.

評論(共0條)

提示:評論內容為網友針對條目"中間人攻擊"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

MBA智库
打开APP

以上内容根据网友推荐自动排序生成