1. 程式人生 > >破解Google Gmail的https新思路

破解Google Gmail的https新思路

證書頒發機構 服務 div 沒有 ca證書 awt 安全 就是 ssl證書

原文鏈接: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密碼被黑客截取。

  那麽,國內的破解目標是不是使用https的Gmail也無法保證安全了呢?歡迎與我進行探討。

  來源:讀者lehui99投稿,投稿人Email為:[email protected],Google Wave為:[email protected]

破解Google Gmail的https新思路