HTTPS那些事(三)攻擊執行個體與防禦(轉載)

來源:互聯網
上載者:User

標籤:android   blog   http   io   os   ar   使用   java   sp   

原創地址:http://www.guokr.com/blog/148613/

 

在《HTTPS那些事(二)SSL認證》我描述了使用SSL認證時一些需要注意的安全問題,在這一篇文章裡面我再示範一下針對HTTPS攻擊的一些執行個體,通過這些執行個體能更安全的使用HTTPS。知己知彼百戰不殆。

先說一下我的測試環境,WIFI區域網路,兩台電腦,其中一台是Windows 7用於發起攻擊。另一台測試機用於測試攻擊,配置為Windows XP SP3,IE8,Chrome 17。

在開始之前,再回顧一下SSL認證驗證失敗的三點原因:

  1. SSL認證不是由受信任的CA機構頒發的
  2. 認證到期
  3. 訪問的網站網域名稱與認證綁定的網域名稱不一致
一、SSL劫持攻擊

SSL劫持也就是SSL認證欺騙攻擊,攻擊者為了獲得HTTPS傳輸的明文資料,需要先將自己接入到瀏覽器與目標網站之間(中間人),在傳輸資料的過程中,替換目標網站發給瀏覽器的認證,之後解密傳輸中的資料,簡單的圖示如下:

[瀏覽器] <======> [目標網站] (正常情況)

[瀏覽器] <======> 中間人 <======> [目標網站] (中間人攻擊)

中間人攻擊最好的環境是在區域網路中,區域網路中所有的電腦需要通過一個固定的出口(網關)來接入互連網,因此攻擊者只需要在區域網路中實施一次中間人攻擊就可以順利的截獲所有電腦與網關之間傳輸的資料。

就是在我的測試環境中實施一次中間人攻擊之後進行的SSL認證欺騙工具,可以看到此時被欺騙的機器,瀏覽器已經給出認證錯誤的安全提示:


看到這樣的提示,正常情況應該停止訪問,如果繼續訪問,所有加密傳輸的資料都可以被攻擊者解密。在這裡我選擇繼續訪問來看一下偽造的SSL認證資訊。

這裡可以看到,假認證中“頒發給”,“頒發者”,“有效日期”與真認證一樣(見),攻擊者可以在產生認證的時候給假認證寫入與原始認證一樣的資訊來迷惑使用者,但是迷惑不了認證的驗證機制。對於普通使用者來說,一定要看清瀏覽器的警告資訊,如果有問題,就不要再繼續訪問。

二、SSLStrip攻擊

SSLStrip攻擊也需要將攻擊者設定為中間人,之後將HTTPS訪問替換為HTTP返回給瀏覽器,由於HTTP協議傳輸的資料是未加密的,從而截獲使用者訪問的資料。舉個例子,當我們訪問hotmail.com的時候會重新導向到一個https://login.live.com的一個HTTPS的地址上,SSLStrip會代替使用者與伺服器通訊,並將這個地址改為http://login.live.com(注意這個地址在http後面沒有s)返回給瀏覽器,此時如果使用者繼續登入的話,攻擊者就會截取到使用者的密碼。這種攻擊非常對普通使用者非常具有迷惑性,但是防禦卻非常的簡單:

  1. 對於網站來說,在配置HTTPS服務的時候加上“HTTP Strict Transport Security”配置項;或者是在代碼中將所有HTTP的請求強制轉移到HTTPS上,使用URL REWRITE也可以達到同樣的效果。
  2. 對於關鍵的資訊,例如使用者登入網站的ID和密碼,在發送之前先用JavaScript進行一次加密處理,這種方法不但是對SSLStrip有效,對SSL劫持攻擊也有效,甚至是即便使用HTTP協議來傳輸使用者登入的ID和密碼都是安全的。這個功能果殼網就支援。
  3. 對於使用者來說,在訪問那些支援HTTPS的網站的時候,在瀏覽器的地址欄輸入URL時強制的加上“https://”,大多數使用者平時不注意這點,比如訪問gmail,我們一般就輸入“gmail.com”,如果是輸入“https://gmail.com”就可以避免SSLStrip的攻擊。對於使用指令碼實現地址跳轉也需要注意這個問題,location.href之後的URL,一定要強制加上“https://”。

由於防禦SSLStrip攻擊比較簡單,大多數的網站都已經做好了安全方面的配置,但也有少數的網站仍然沒有重視這個問題。

三、第三類攻擊

所謂第三類攻擊,完全就是軟體廠商在軟體的設計過程中忽略的了安全的問題,比如說前段時間某個手機瀏覽器就幹了這麼一件糗事。實際上這也是一種普遍存在的情況,程式的bug、漏洞,設計缺陷,都會打破一些安全模型。對於這種情況,軟體廠商在軟體設計階段要充分考慮安全的問題,並且及時更新程式中的缺陷與安全性漏洞;作為使用者要及時的更新應用程式或者系統補丁,從而減少安全威脅。

目前最為常見的手段仍然是SSL劫持攻擊,但無論是什麼攻擊手段,基礎的利用都是區域網路的中間人攻擊,這種攻擊手段非常的實用,尤其是在公用網路中。針對SSL的中間人攻擊對普通使用者來說或許還好識別一些,但是我們大多數情況訪問的都是HTTP網站,傳輸的資料都是明文的,在這種情況下中間人攻擊是不容易被發現的。對於普通使用者,可以用以下的辦法來防禦區域網路中間人攻擊:

  1. 公司辦公網路一定要在交換器上進行MAC地址綁定,對於一些規模不大,暫時不考慮加固內網的公司可以採取下面我說的方法。
  2. 臨時接入公用網路的電腦,可以臨時開啟安全軟體內的ARP防火牆。或者是使用VPN。
  3. 對於一些不喜歡安裝安全軟體的使用者,可以使用stunnel配置代理或者是使用SSH轉SOCKS 5代理。但是這需要使用者有獨立的伺服器。
  4. 使用GoAgent代理工具,GoAgent與stunnel類似,都是一種使用ssl tunnel對傳輸進行加密的工具。即便是訪問HTTP網站,GoAgent也可以像stunnel那樣對傳輸進行加密,可以保證瀏覽網頁,訪問WEB郵箱的安全。GoAgent使用的是Google App Engine伺服器,因此訪問國內網站的速度會比較慢,對於這種情況可以使用Sina App Engine,具體配置方法可以在搜尋引擎中用“goagent sae”作為關鍵字進行搜尋。
  5. 在公用網路如果要進行商務辦公,最好是用公司提供的VPN來對傳輸進行加密。

最後再說說手機上網,目前公用WIFI越來越普及,手機上網也越來越方便,因此也需要重視資料轉送過程中的安全問題。雖然GoAgent也有支援Android和iOS的版本,但如果要使用線上支付之類的功能,最好是利用官方出的應用來進行操作。針對手機的安全防護目前還沒有電腦那麼強大,因此在沒有辦法保證傳輸加密資料之前,最好不要用手機來做什麼涉及到隱私或者是商業保密的工作。

HTTPS那些事(三)攻擊執行個體與防禦(轉載)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.