這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助
面試官:“HTTPS的加密程序你知道么?”
我:“那肯定知道啊,”
面試官:“那你知道什么情況下 HTTPS 不安全么”
我:“這....”
越面覺得自己越菜,繼續努力學習!!!
什麼是中間人攻擊?
中間人攻擊(MITM)在密碼學和計算機安全領域中是指攻擊者與通訊的兩端分別創建獨立的聯系,并交換其所收到的資料,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制[1],在中間人攻擊中,攻擊者可以攔截通訊雙方的通話并插入新的內容,在許多情況下這是很簡單的(例如,在一個未加密的Wi-Fi 無線接入點的接受范圍內的中間人攻擊者,可以將自己作為一個中間人插入這個網路),
一個中間人攻擊能成功的前提條件是攻擊者能將自己偽裝成每一個參與會話的終端,并且不被其他終端識破,中間人攻擊是一個(缺乏)相互認證的攻擊,大多數的加密協議都專門加入了一些特殊的認證方法以阻止中間人攻擊,例如,SSL協議可以驗證參與通訊的一方或雙方使用的證書是否是由權威的受信任的數字證書認證機構頒發,并且能執行雙向身份認證,
以上定義來自維基百科,我們來舉一個通俗的例子來理解中間人攻擊:

- A發送給B一條訊息,卻被C截獲:
A: “嗨,B,我是A,給我你的公鑰”
- C將這條截獲的訊息轉送給B;此時B并無法分辨這條訊息是否從真的A那里發來的:
C: “嗨,B,我是A,給我你的公鑰”
- B回應A的訊息,并附上了他的公鑰:
B -> B 的公鑰 -> C
- C用自己的密鑰替換了訊息中B的密鑰,并將訊息轉發給A,聲稱這是B的公鑰:
C -> C 的公鑰 -> A
- A 用它以為是 B的公鑰,加密了以為只有 B 能看到的訊息
A -> xxx -> C
- C 用 B 的密鑰進行修改
C -> zzz -> B
這就是整個中間人攻擊的流程,
中間人攻擊怎么作用到 HTTPS 中?
首先讓我來回顧一下 HTTPS 的整個流程:
回顧 HTTPS 程序

這是 HTTPS 原本的流程,但是當我們有了 中間人服務器之后,整個流程就變成了下面這個樣子,
這個流程建議動手畫個圖,便于理解
- 客戶端向服務器發送 HTTPS 建立連接請求,被中間人服務器截獲,
- 中間人服務器向服務器發送 HTTPS 建立連接請求
- 服務器向客戶端發送公鑰證書,被中間人服務器截獲
- 中間人服務器驗證證書的合法性,從證書拿到公鑰
- 中間人服務器向客戶端發送自己的公鑰證書
注意!在這個時候 HTTPS 就可能出現問題了,客戶端會詢問你:“此網站的證書存在問題,你確定要信任這個證書么,”所以從這個角度來說,其實 HTTPS 的整個流程還是沒有什么問題,主要問題還是客戶端不夠安全,
- 客戶端驗證證書的合法性,從證書拿到公鑰
- 客戶端生成一個亂數,用公鑰加密,發送給服務器,中間人服務器截獲
- 中間人服務器用私鑰加密后,得到亂數,然后用亂數根據演算法,生成堆成加密密鑰,客戶端和中間人服務器根據對稱加密密鑰進行加密,
- 中間人服務器用服務端給的證書公鑰加密,在發送給服務器時
- 服務器得到資訊,進行解密,然后用亂數根據演算法,生成對稱加密演算法
如何預防?
剛才我們說到這里的問題主要在于客戶端選擇信任了,所以主要是使用者要放亮眼睛,保持警惕
本文轉載于:
https://juejin.cn/post/7238619890993643575
如果對您有所幫助,歡迎您點個關注,我會定時更新技術檔案,大家一起討論學習,一起進步,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/554097.html
標籤:Html/Css
下一篇:返回列表

