压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

Android HTTPS中間人劫持漏洞淺析

Android HTTPS中間人劫持漏洞描述

在密碼學和計算機安全領域中,中間人攻擊 ( Man-in-the-middle attack,通常縮寫為MITM )是指攻擊者與通訊的兩端分別創建獨立的聯系,并交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話并插入新的內容。

Android HTTPS中間人攻擊漏洞源于:

1. 沒有對SSL證書進行校驗;

2. 沒有對域名進行校驗;

3. 證書頒發機構(Certification Authority)被攻擊導致私鑰泄露等。攻擊者可通過中間人攻擊,盜取賬戶密碼明文、聊天內容、通訊地址、電話號碼以及信用卡支付信息等敏感信息,甚至通過中間人劫持將原有信息替換成惡意鏈接或惡意代碼程序,以達到遠程控制、惡意扣費等攻擊意圖。

在各大漏洞平臺上,有大量存在HTTPS證書不校驗漏洞,例如國內絕大部分Android APP存在信任所有證書漏洞、亞馬遜最新官方Android版存在一處信任所有證書漏洞、Yahoo雅虎在國內訪問遭遇SSL中間人攻擊、攜程旅游網最新Android客戶端https未校驗證書導致https通信內容完全被捕獲。

影響范圍

Android系統

漏洞分析

1)中間人攻擊漏洞位置:

X509TrustManager 、HostnameVerifier 、 setHostnameVerifier (X509HostnameVerifier hostnameVerifier)

2) 漏洞觸發前提條件:

自定義的X509TrustManager不校驗證書;

或實現的自定義HostnameVerifier不校驗域名接受任意域名;

或使用setHostnameVerifier (ALLOW_ALL_HOSTNAME_VERIFIER);

3) 漏洞原理:

由于客戶端沒有校驗服務端的證書,因此攻擊者就能與通訊的兩端分別創建獨立的聯系,并交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話并插入新的內容。

4.Android HTTPS中間人攻擊漏洞證明

1) 客戶端不校驗SSL證書(包含簽名CA是否合法、域名是否匹配、是否自簽名證書、證書是否過期)包含以下幾種編碼錯誤情況:

a. 自實現的不校驗證書的X509TrustManager接口的Java代碼片段 (其中的checkServerTrusted()方法實現為空,即不檢查服務器是否可信):

20150327095706103

b. 不檢查站點域名與站點證書的域名是否匹配的Java代碼片段:

20150327095721620

c. 接受任意域名的Java代碼片段:

SSLSocketFactory sf;

……

sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

2)針對某個不校驗SSL證書的客戶端進行中間人攻擊演示如下圖所示,可通過中間人劫持獲取到登錄用戶名和密碼(該密碼參數只是對明文密碼進行了一次MD5):

20150327095742980 20150327095755618

修復建議

對SSL證書進行強校驗

出于安全考慮,建議對SSL證書進行強校驗(簽名CA是否合法、證書是否是自簽名、主機域名是否匹配、證書是否過期等),詳細修復方案請參照Google官方關于SSL的安全建議。

文章來源:FreeBuf黑客與極客(FreeBuf.COM)

上一篇:剖析Smack技術遠控木馬

下一篇:谷歌正為Gmail開發PGP端到端加密技術