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