今天,有很多中國網民反饋,從中國的IP訪問Github Pages會加載一個無效的證書,使用國外的IP訪問則加載正常的證書,疑似該域名遭到了中間人攻擊。
中間人攻擊(英語:Man-in-the-middle attack,縮寫:MITM)在密碼學和計算機安全領域中是指攻擊者與通訊的兩端分別創建獨立的聯繫,並交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。在許多情況下這是很簡單的(例如,在一個未加密的Wi-Fi 無線接入點的接受範圍內的中間人攻擊者,可以將自己作為一箇中間人插入這個網絡)。
一箇中間人攻擊能成功的前提條件是攻擊者能將自己偽裝成每一個參與會話的終端,並且不被其他終端識破。中間人攻擊是一個(缺乏)相互認證的攻擊。大多數的加密協議都專門加入了一些特殊的認證方法以阻止中間人攻擊。例如,SSL協議可以驗證參與通訊的一方或雙方使用的證書是否是由權威的受信任的數字證書認證機構頒發,並且能執行雙向身份認證。
簡而言之,所謂的中間人攻擊就是通過攔截正常的網絡通信數據,並進行數據篡改和嗅探,而通信的雙方卻毫不知情。
pages.github.com的IP地址解析並未出現問題,從中國地區解析的IP為185.199.111.153,是屬於Github的IP地址。
打開這個不受信任的證書,顯示該證書的頒佈者是[email protected]。
建立安全的HTTPS通訊,可防止中間人攻擊,這需要以下步驟:
1、服務端配置正確了對應的安全證書
2、客戶端發送請求到服務端
3、服務端返回公鑰和證書到客戶端
4、客戶端接收後會驗證證書的安全性,如果通過則會隨機生成一個隨機數,用公鑰對其加密,發送到服務端
5、服務端接受到這個加密後的隨機數後會用私鑰對其解密得到真正的隨機數,隨後用這個隨機數當做私鑰對需要發送的數據進行對稱加密
6、客戶端在接收到加密後的數據使用私鑰(即生成的隨機值)對數據進行解密並且解析數據呈現結果給客戶
7、SSL加密建立
閱讀更多 月光博客 的文章