|
||||
本文我們將探討SSL欺騙和SSL連接理論及其安全性問題。
導言
SSL和HTTPS
在本文中,我們將重點探討通過HTTP(即HTTPS)對SSL的攻擊,因為這是SSL最常用的形式。可能你還沒有意識到,你每天都在使用HTTPS。大多數主流電子郵件服務和網上銀行程序都是依靠HTTPS來確保用戶瀏覽器和服務器之間的安全通信。如果沒有HTTPS技術,任何人使用數據包嗅探器都能竊取用戶網絡中的用戶名、密碼和其他隱藏信息。
使用HTTPS技術是為了確保服務器、客戶和可信任第三方之間數據通信的安全。例如,假設一個用戶試圖連接到Gmail電子郵箱賬戶,這就涉及到幾個不同的步驟,如圖1所示。
圖1: HTTPS通信過程
圖1顯示的過程並不是特別詳細,只是描述了下列幾個基本過程:
1. 客戶端瀏覽器使用HTTP連接到端口80的http://mail.google.com
2. 服務器試用HTTP代碼302重定向客戶端HTTPS版本的這個網站
3. 客戶端連接到端口443的網站https://mail.google.com
4. 服務器向客戶端提供包含其電子簽名的證書,該證書用於驗證網址
5. 客戶端獲取該證書,並根據信任證書頒發機構列表來驗證該證書
6. 加密通信建立
如果證書驗證過程失敗的話,則意味著無法驗證網址的真實度。這樣的話,用戶將會看到頁面顯示證書驗證錯誤,或者他們也可以選擇冒著危險繼續訪問網站,因為他們訪問的網站可能是欺詐網站。
HTTPS被攻破
這個過程一直被認為是非常安全的,直到幾年前,某攻擊者成功對這種通信過程進行劫持,這個過程並不涉及攻擊SSL本身,而是對非加密通信和加密通信間的『網橋』的攻擊。
知名安全研究人員Moxie Marlinspike推測,在大多數情況下,SSL從未直接遭遇威脅問題。SSL連接通常是通過HTTPS發起的,因為用戶通過HTTP302響應代碼被定位到HTTPS或者他們點擊連接將其定位到一個HTTPS站點,例如登錄按鈕。這就是說,如果攻擊者攻擊從非安全連接到安全連接的通信,即從HTTP到HTTPS,則實際上攻擊的是這個『網橋』,SSL連接還未發生時的中間人攻擊。為了有效說明這個概念,Moxie開發了SSLstrip工具,也就是我們下面將要使用的工具。
這個過程非常簡單,與我們前面文章所提到的攻擊有所類似,如圖2所示。
圖2:劫持HTTPS通信
圖2中描述的過程如下:
1. 客戶端與web服務器間的流量被攔截
2. 當遇到HTTPS URS時,sslstrip使用HTTP鏈接替換它,並保存了這種變化的映射
3. 攻擊機模擬客戶端向服務器提供證書
4. 從安全網站收到流量提供給客戶端
這個過程進展很順利,服務器認為其仍然在接收SSL流量,服務器無法辨別任何改變。用戶可以感覺到唯一不同的是,瀏覽器中不會標記HTTPS,所以某些用戶還是能夠看出不對勁。
使用SSLStrip
實現這個過程是使用SSLstrip工具,大家可以點擊此處下載並測試。這個工具只能在Linux運行,大家也可以下載運行Backtrack 4。
安裝好SSLstrip後,有幾個必須做的事情。首先,你使用的Linux系統必須被配置為IP轉發,實現這個配置,需要輸入命令echo "1" > /proc/sys/net/ipv4/ip_forward,如下圖所示。
圖3:啟用IP轉發
完成上述操作後,我們必須強制將所有被攔截的HTTP流量路由到SSLstrip將會監聽的端口,這通過修改iptables防火牆配置來實現,使用命令iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 如下圖所示。
圖4:配置IPTables來正確路由HTTP流量
當然,你需要使用你選擇的隨機端口來替換,當完成這些配置後,我們就可以運行sslstrip,並將其配置為監聽由命令sslstrip -l 指定的端口了。
圖5:使用sslstrip
這個過程的最後步驟就是配置ARP欺騙來攔截目標主機的流量,在前面的文章中我們使用的是windows中的Cain和Abel來實現,但是在這篇文章中,我們將使用arpspoof工具,該工具是內置在Backtrack 4,使用命令arpspoof -i -t 。
圖6:配置ARP欺騙
使用這個命令會將為目標客戶端的IP地址執行這些行動的網絡接口替換為,而將目標使用的網關路由器的IP地址替換為
完成上述操作後,你就可以主動劫持任何建立的SSL連接。你可以使用數據包器從流量來收集密碼、個人身份信息、信用卡號碼等。
如何抵御SSL劫持攻擊
如上所述,這種方式的SSL劫持根本無法從服務器端檢測出來,因為在服務器開來,這只是與客戶端的正常通信,它無法辨識是從代理來與客戶端通信。不過我們還是可以從客戶端的角度來檢測和抵御這種類型的攻擊。
使用HTTPS確保安全連接- 當你執行上訴描述的攻擊時,攻擊破壞了連接的安全性,這種安全性在瀏覽器中有所反映。這意味著如果你登錄網上銀行時,發現只是標准的HTTP連接,那麼很有可能正受到攻擊。不管你使用何種瀏覽器,你都要確保你知道如何識別安全連接與不安全連接。
將網上銀行保存為主頁-攻擊者攔截家庭網絡比攔截工作網絡的可能性更低,這並不是因為家庭電腦更加安全(實際上,家庭電腦更加不安全),而是因為家庭網絡中往往只有一兩臺電腦,除非家庭成員發動內部攻擊。在公司網絡中,你無法知曉網絡情況或者分公司網絡情況,所以潛在攻擊源更多。會話劫持最大的目標之一就是網上銀行,但是其他任何個人信息都有可能被劫持。
確保內部機器的安全 - 這種類型的攻擊大多數都是從網絡內部發動攻擊的,如果你的網絡設備很安全,那麼那些被感染主機被利用發動會話劫持攻擊的可能性就很小。
總結