標籤:網域 舉例 osi 訪問者 沒有 iam 訪問 mail 需要
註:本文為個人學習轉載,原文地址:http://www.williamlong.info/archives/2058.html
最近,Google針對Gmail被攻擊事件,全面預設啟用了始終以https訪問Gmail的方式了。但是,對於可以動用整個國家力量的駭客來說,從網路通訊資料中(在此不討論對使用者電腦種木馬破解https的情況,只討論在網路通訊資料中破解https的方法)破解https除了暴力破解(暴力破解https即使按照現在的叢集計算能力仍舊需要幾百至幾萬年不等)之外真的別無他法了嗎?事實並非如此。
我們知道,https的安全性主要是由SSL認證中的公開金鑰和私密金鑰來保證的。瀏覽器與伺服器經過https建立通訊的時候(不考慮SSL代理方式需要使用者提交認證的情況,因為我們現在討論的是瀏覽器訪問網站,和SSL代理無關)會按照以下步驟保證通訊的安全性:
1、瀏覽器串連伺服器,伺服器把SSL認證的公開金鑰發送給瀏覽器
2、瀏覽器驗證此認證中的域是否和訪問的域一致(比如使用者訪問https://mail.google.com/時,瀏覽器驗證伺服器發送過來的SSL認證的公開金鑰中的域是否為mail.google.com或*.google.com)並沒有到期
3、如果瀏覽器驗證失敗,瀏覽器通知使用者認證有問題,讓使用者選擇是否繼續
4、如果瀏覽器驗證成功,那麼瀏覽器隨機產生一個對稱金鑰並使用接收到的SSL認證的公開金鑰進行加密並發送給伺服器
5、伺服器通過SSL認證的私密金鑰對收到的資訊進行解密並得到瀏覽器隨機產生的對稱金鑰
6、最後伺服器和瀏覽器都通過這個對稱金鑰進行通訊了(為什麼不直接使用公開金鑰和私密金鑰進行通訊?因為非對稱式加密比對稱式加密效率低)
這個方案看似完美,卻無法抵禦中間人攻擊,攻擊者可以按以下步驟實施攻擊截取https通訊中的所有資料:
1、攻擊者偽造一個Gmail的SSL認證,使其中的域為mail.google.com或*.google.com,並設定合適的認證到期時間
2、攻擊者等待訪問者的瀏覽器訪問Gmail時,通過DNS劫持或IP偽造(對於有路由器控制許可權的駭客來說簡直輕而易舉)的方法使其訪問到攻擊者的伺服器上
3、攻擊者把偽造的SSL認證公開金鑰發送給瀏覽器
4、瀏覽器驗證SSL認證的域和到期時間都沒錯,認為訪問到的就是Gmail本身,從而把對稱金鑰發送給駭客伺服器
5、駭客伺服器把偽造的Gmail網頁通過收到的對稱金鑰密碼編譯後發送給瀏覽器
6、訪問者通過瀏覽器輸入Gmail帳戶,發送給駭客伺服器,駭客伺服器通過收到的對稱金鑰解密後成功獲得訪問者的Gmail密碼
為了抵禦這種中間人攻擊,SSL認證需要由可信的SSL憑證授權單位頒發,形成一個憑證鏈結(比如Gmail的憑證鏈結為:最底層為網域mail.google.com,上一層為Thawte SGC CA憑證授權單位,最頂層為很有名的VeriSign憑證授權單位)。那麼,瀏覽器除了需要驗證域和有效期間外,還要檢查憑證鏈結中的上級認證公開金鑰是否有效,上級的上級認證公開金鑰是否有效,直至根憑證公開金鑰為止。這樣就可以有效避免中間人攻擊了,因為根憑證公開金鑰都是預裝在作業系統中的,駭客如果不是暴力破解,無法得到根憑證的私密金鑰,如果駭客自己產生一個私密金鑰,瀏覽器驗證根憑證公開金鑰的時候發現無法通過作業系統中預裝的公開金鑰加密資料後使用這個私密金鑰進行解密,從而判定這個公開金鑰是無效的。這個方案也是現在https通訊通常的方案。
那麼,這個現在所有的瀏覽器正在使用的https通訊方案就無懈可擊了嗎?答案仍是否定的。我們可以看到,在後一個方案中,https的安全性需要在憑證授權單位公信力的強有力保障前提下才能發揮作用。如果憑證授權單位在沒有驗證駭客為mail.google.com的持遊者的情況下,給駭客頒發了網域為mail.google.com的認證,那麼駭客的中間人攻擊又可以順利實施:
1、攻擊者從一家不驗證mail.google.com持有人的SSL憑證授權單位WoSign那裡得到了網域為mail.google.com的認證,此認證的憑證鏈結為:最底層為網域mail.google.com,上一層憑證授權單位為WoSign,頂層憑證授權單位為VeriSign
2/3、第二、第三個步驟同上一個方案的中間人攻擊的第二、第三個步驟
4、瀏覽器驗證SSL認證的域和到期時間都沒錯,繼續驗證憑證鏈結:
4.1、最底層的網域mail.google.com認證公開金鑰不在作業系統中,無法驗證其訪問到的就是Gmail本身,繼續驗證上一層憑證授權單位
4.2、上一層憑證授權單位WoSign的公開金鑰也不在作業系統中,仍舊無法驗證其有效性,繼續驗證上一層憑證授權單位
4.3、瀏覽器看到頂層憑證授權單位VeriSign的公開金鑰在作業系統中,認為憑證鏈結有效,從而把對稱金鑰發送給駭客伺服器
5/6、第五、第六個步驟同上一個方案的中間人攻擊的第五、第六個步驟。駭客成功獲得訪問者的Gmail密碼
然而,不驗證網域名稱持有人就頒發認證的情況在國外幾乎不會發生,但是在國內就不一定了。針對破解目標,國內憑證授權單位WoSign(在此只是舉例國內比較有名的憑證授權單位WoSign,並不代表WoSign今後一定會這麼做)很有可能為了上級要求頒發了認證給非網域名稱持有人的駭客,從而使得破解目標的Gmail密碼被駭客截取。
破解Google Gmail的https新思路