MITM攻擊(中間人攻擊)

關(guān)于HTTPS,我經(jīng)常會(huì)提到的就是中間人攻擊,那究竟什么是中間人攻擊呢?中間人攻擊,即所謂的Main-in-the-middle attack(MITM),顧名思義,就是攻擊者插入到原本直接通訊的雙方,讓雙方以為還在直接跟對(duì)方通訊,但實(shí)際上雙方的通訊對(duì)方已變成了中間人,信息已經(jīng)是被中間人獲取或篡改。

中間人攻擊

由前文我們知道,HTTPS在建立了TCP連接之后,會(huì)進(jìn)行SSL握手(SSL Handshake)來(lái)校驗(yàn)證書(shū),協(xié)商加密協(xié)議和對(duì)稱加密的密鑰,之后就會(huì)使用協(xié)商好的密鑰來(lái)進(jìn)行傳輸。所以HTTPS攻擊一般分為SSL連接建立前的攻擊,以及HTTPS傳輸過(guò)程中的攻擊;

常見(jiàn)的HTTPS中間人攻擊,首先需要結(jié)合ARP、DNS欺騙等技術(shù),來(lái)對(duì)會(huì)話進(jìn)行攔截,

1、SSL證書(shū)欺騙攻擊

此類攻擊較為簡(jiǎn)單常見(jiàn)。首先通過(guò)ARP欺騙、DNS劫持甚至網(wǎng)關(guān)劫持等等,將客戶端的訪問(wèn)重定向到攻擊者的機(jī)器,讓客戶端機(jī)器與攻擊者機(jī)器建立HTTPS連接(使用偽造證書(shū)),而攻擊者機(jī)器再跟服務(wù)端連接。這樣用戶在客戶端看到的是相同域名的網(wǎng)站,但瀏覽器會(huì)提示證書(shū)不可信,用戶不點(diǎn)擊繼續(xù)瀏覽就能避免被劫持的。所以這是最簡(jiǎn)單的攻擊方式,也是最容易識(shí)別的攻擊方式。

ssl證書(shū)欺騙

防范措施 :
釣魚(yú)類攻擊,App直接調(diào)用系統(tǒng)API創(chuàng)建的HTTPS連接(NSURLConnection)一般不會(huì)受到影響,只使用默認(rèn)的系統(tǒng)校驗(yàn),只要系統(tǒng)之前沒(méi)有信任相關(guān)的偽造證書(shū),校驗(yàn)就直接失敗,不會(huì)SSL握手成功;但如果是使用WebView瀏覽網(wǎng)頁(yè),需要在UIWebView中加入較強(qiáng)的授權(quán)校驗(yàn),禁止用戶在校驗(yàn)失敗的情況下繼續(xù)訪問(wèn)。

2 SSL剝離攻擊(SSLStrip)

SSL剝離,即將HTTPS連接降級(jí)到HTTP連接。假如客戶端直接訪問(wèn)HTTPS的URL,攻擊者是沒(méi)辦法直接進(jìn)行降級(jí)的,因?yàn)镠TTPS與HTTP雖然都是TCP連接,但HTTPS在傳輸HTTP數(shù)據(jù)之前,需要在進(jìn)行了SSL握手,并協(xié)商傳輸密鑰用來(lái)后續(xù)的加密傳輸;假如客戶端與攻擊者進(jìn)行SSL握手,而攻擊者無(wú)法提供可信任的證書(shū)來(lái)讓客戶端驗(yàn)證通過(guò)進(jìn)行連接,所以客戶端的系統(tǒng)會(huì)判斷為SSL握手失敗,斷開(kāi)連接。

該攻擊方式主要是利用用戶并不會(huì)每次都直接在瀏覽器上輸入https://xxx.xxx.com 來(lái)訪問(wèn)網(wǎng)站,或者有些網(wǎng)站并非全網(wǎng)HTTPS,而是只在需要進(jìn)行敏感數(shù)據(jù)傳輸時(shí)才使用HTTPS的漏洞。中間人攻擊者在劫持了客戶端與服務(wù)端的HTTP會(huì)話后,將HTTP頁(yè)面里面所有的 https:// 超鏈接都換成 http:// ,用戶在點(diǎn)擊相應(yīng)的鏈接時(shí),是使用HTTP協(xié)議來(lái)進(jìn)行訪問(wèn);這樣,就算服務(wù)器對(duì)相應(yīng)的URL只支持HTTPS鏈接,但中間人一樣可以和服務(wù)建立HTTPS連接之后,將數(shù)據(jù)使用HTTP協(xié)議轉(zhuǎn)發(fā)給客戶端,實(shí)現(xiàn)會(huì)話劫持。

這種攻擊手段更讓人難以提防,因?yàn)樗褂肏TTP,不會(huì)讓瀏覽器出現(xiàn)HTTPS證書(shū)不可信的警告,而且用戶很少會(huì)去看瀏覽器上的URL是 https:// 還是 http:// 。特別是App的WebView中,應(yīng)用一般會(huì)把URL隱藏掉,用戶根本無(wú)法直接查看到URL出現(xiàn)異常。

ssl剝離攻擊

防范措施:

該種攻擊方式同樣無(wú)法劫持App內(nèi)的HTTPS連接會(huì)話,因?yàn)锳pp中傳入請(qǐng)求的URL參數(shù)是固定帶有“https://” 的;但在WebView中打開(kāi)網(wǎng)頁(yè)同樣需要注意,在非全網(wǎng)HTTPS的網(wǎng)站,建議對(duì)WebView中打開(kāi)的URL做檢查,檢查應(yīng)該使用 “https://” 的URL是否被篡改為 “http://” ;也建議服務(wù)端在配置HTTPS服務(wù)時(shí),加上“HTTP Strict Transport Security”配置項(xiàng)。

3 針對(duì)SSL算法進(jìn)行攻擊

上述兩種方式,技術(shù)含量較低,而且一般只能影響 WebApp,而很難攻擊到 Native App , 所以高階的 Hacker,會(huì)直接針對(duì)SSL算法相關(guān)漏洞進(jìn)行攻擊,期間會(huì)使用很多的密碼學(xué)相關(guān)手段。由于本人非專業(yè)安全相關(guān)人員,沒(méi)有多少相關(guān)實(shí)踐經(jīng)驗(yàn),所以本節(jié)不會(huì)深入講解相關(guān)的攻擊原理和手段,有興趣的同學(xué)可以查看以下拓展閱讀:

OpenSSL漏洞
常見(jiàn)的HTTPS攻擊方法
防范措施:

這類攻擊手段是利用SSL算法的相關(guān)漏洞,所以最好的防范措施就是對(duì)服務(wù)端 SSL/TLS 的配置進(jìn)行升級(jí):

只支持盡量高版本的TLS(最低TLS1);
禁用一些已爆出安全隱患的加密方法;
使用2048位的數(shù)字證書(shū);

防范措施:
不要隨意連入公共場(chǎng)合內(nèi)的WiFi,或者使用未知代理服務(wù)器
不要安裝不可信或突然出現(xiàn)的描述文件,信任偽造的證書(shū);
App內(nèi)部需對(duì)服務(wù)器證書(shū)進(jìn)行單獨(dú)的對(duì)比校驗(yàn),確認(rèn)證書(shū)不是偽造的;

使用WireShark模擬中間人證書(shū)偽造攻擊http://blog.csdn.net/phunxm/article/details/38590561

**使用Charles模擬中間人證書(shū)偽造攻擊
**http://www.itdecent.cn/p/a81b496348bc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內(nèi)部的一個(gè)子集。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,609評(píng)論 0 20
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文傳播,帶來(lái)了三大風(fēng)險(xiǎn)。 (1)竊聽(tīng)風(fēng)險(xiǎn)...
    XLsn0w閱讀 11,054評(píng)論 2 44
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,688評(píng)論 0 13
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 早上六點(diǎn)半鬧鈴響了一遍,二尕翻過(guò)身用被子捂住頭,嘴里發(fā)出哼哼的聲音,右手在床邊胡亂地摸索著找手機(jī),好不容易止住了鈴...
    揚(yáng)起的風(fēng)閱讀 630評(píng)論 0 1

友情鏈接更多精彩內(nèi)容