中間人攻擊(Man-in-the-Middle Attack, MITM)就是通過攔截正常的網絡通信數據,並進行數據篡改和嗅探,而通信的雙方卻毫不知情。
假設愛麗絲(Alice)希望與鮑伯(Bob)通信。同時,馬洛里(Mallory)希望攔截竊會話以進行竊聽並可能在某些時候傳送給鮑伯一個虛假的消息。
首先,愛麗絲會向鮑勃索取他的公鑰。如果Bob將他的公鑰發送給Alice,並且此時馬洛里能夠攔截到這個公鑰,就可以實施中間人攻擊。馬洛里發送給愛麗絲一個偽造的消息,聲稱自己是鮑伯,並且附上了馬洛里自己的公鑰(而不是鮑伯的)。
愛麗絲收到公鑰后相信這個公鑰是鮑伯的,於是愛麗絲將她的消息用馬洛里的公鑰(愛麗絲以為是鮑伯的)加密,並將加密后的消息回給鮑伯。馬洛里再次截獲愛麗絲回給鮑伯的消息,並使用馬洛里自己的私鑰對消息進行解密,如果馬洛里願意,她也可以對消息進行修改,然后馬洛里使用鮑伯原先發給愛麗絲的公鑰對消息再次加密。當鮑伯收到新加密后的消息時,他會相信這是從愛麗絲那里發來的消息。
1.愛麗絲發送給鮑伯一條消息,卻被馬洛里截獲:
愛麗絲“嗨,鮑勃,我是愛麗絲。給我你的公鑰” --> 馬洛里 鮑勃
2.馬洛里將這條截獲的消息轉送給鮑伯;此時鮑伯並無法分辨這條消息是否從真的愛麗絲那里發來的:
愛麗絲 馬洛里“嗨,鮑勃,我是愛麗絲。給我你的公鑰” --> 鮑伯
3.鮑伯回應愛麗絲的消息,並附上了他的公鑰:
愛麗絲 馬洛里<-- [鮑伯的公鑰]-- 鮑伯
4.馬洛里用自己的密鑰替換了消息中鮑伯的密鑰,並將消息轉發給愛麗絲,聲稱這是鮑伯的公鑰:
愛麗絲<-- [馬洛里的公鑰]-- 馬洛里 鮑勃
5.愛麗絲用她以為是鮑伯的公鑰加密了她的消息,以為只有鮑伯才能讀到它:
愛麗絲“我們在公共汽車站見面!”--[使用馬洛里的公鑰加密] --> 馬洛里 鮑勃
6.然而,由於這個消息實際上是用馬洛里的密鑰加密的,所以馬洛里可以解密它,閱讀它,並在願意的時候修改它。他使用鮑伯的密鑰重新加密,並將重新加密后的消息轉發給鮑伯:
愛麗絲 馬洛里“在家等我!”--[使用鮑伯的公鑰加密] --> 鮑伯
7.鮑勃認為,這條消息是經由安全的傳輸通道從愛麗絲那里傳來的。
這個例子顯示了愛麗絲和鮑伯需要某種方法來確定他們是真正拿到了屬於對方的公鑰,而不是拿到來自攻擊者的公鑰。否則,這類攻擊一般都是可行的,在原理上,可以針對任何使用公鑰——密鑰技術的通訊消息發起攻擊。幸運的是,有各種不同的技術可以幫助抵御MITM攻擊。
在密碼學和計算機安全領域中,中間人攻擊 ( Man-in-the-middle attack,通常縮寫為MITM )是指攻擊者與通訊的兩端分別建立獨立的聯系,
並交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,
攻擊者可以攔截通訊雙方的通話並插入新的內容。在許多情況下這是很簡單的(例如,在一個未加密的Wi-Fi 無線接入點的接受范圍內的中間人攻擊者,
可以將自己作為一個中間人插入這個網絡)。 一個中間人攻擊能成功的前提條件是攻擊者能將自己偽裝成每一個參與會話的終端,並且不被其他終端識破。中間人攻擊是一個(缺乏) 相互認證的攻擊。
大多數的加密協議都專門加入了一些特殊的認證方法以阻止中間人攻擊。例如,SSL協議可以驗證參與通訊的一方或雙方使用的證書是否是由權威的受信任的
數字證書認證機構頒發,並且能執行雙向身份認證。
SSL劫持攻擊即SSL證書欺騙攻擊,攻擊者為了獲得HTTPS傳輸的明文數據,需要先將自己接入到客戶端和目標網站之間; 在傳輸過程中偽造服務器的證書,將服務器的公鑰替換成自己的公鑰,這樣,中間人就可以得到明文傳輸帶Key1、Key2 和Pre-Master-Key,從而竊取客戶端和服務端的通信數據; 但是對於客戶端瀏覽器來說,如果中間人偽造了證書,在校驗證書過程中會提示證書錯誤,由用戶選擇繼續操作還是返回, 由於大多數用戶的安全意識不強,會選擇繼續操作,此時,中間人就可以獲取瀏覽器和服務器之間的通信數據
轉自:https://blog.csdn.net/ningxiaowei2013/article/details/53005867
參考: