隨筆 - 251  文章 - 504  trackbacks - 0
          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!

          留言簿(14)

          隨筆分類

          收藏夾

          My Favorite Web Sites

          名Bloger

          非著名Bloger

          搜索

          •  

          積分與排名

          • 積分 - 204351
          • 排名 - 283

          最新評論

          QQ網站登錄處沒有使用https進行加密,而是采用了RSA非對稱加密來保護傳輸過程中的密碼以及敏感信息的安全性。 QQ是在javascript中實現整個過程的。這個想法非常新穎,但是也是存在嚴重缺陷的。如果被黑客利用,則可能被捕獲明文密碼。
          分析報告如下:

          Author: axis
          Date: 2007-11-23
          Team: http://www.ph4nt0m.org  (http://pstgroup.blogspot.com)
          Corp: Alibaba B2B Corp / Infomation Security

          這個想法非常新穎,詳細可以參考云舒寫過的 《RSA非對稱加密的一些非常規應用》,地址為http://www.icylife.net/yunshu/show.php?id=471

          這個原理簡單描述為下:
          1. 在server端生成一對RSA密鑰,包括public key 和 private key
          2. public key傳輸給客戶端瀏覽器, 客戶端瀏覽器用public key加密敏感數據,比如密碼;加密后的密文傳回給server,然后server用 private key解密。
          3. 注意private key只保存在server端,而public key則分發給所有人。 由于 private key只有server知道,所以密文即使被截獲了,也無法解開。

          這個解決方案其實還是非常好的,至少他防住了大部分的攻擊,但是為什么說它是無法替代https,是有缺陷的呢?

          因為這個方案無法防止中間人攻擊 (man-in-the-middle)。

          攻擊過程如下:
          1. 攻擊者通過MIM(比如arp欺騙等)劫持server與客戶端瀏覽器之間的http包
          2. 攻擊者生成一對偽造的RSA密鑰: fake public key/fake private key
          3. 攻擊者將js文件中的public key替換為fake public key,并傳輸給客戶端瀏覽器
          4. 客戶端瀏覽器用 fake public key加密敏感數據,比如密碼,并將加密后的數據傳輸給攻擊者
          5. 攻擊者用fake private key解密,獲得明文密碼等
          6. 攻擊者用server的public key加密明文數據,并傳送給server

          整個過程中不會出現任何提示,而用戶的明文數據則被竊取了!

          而luoluo則提出來一個更邪惡的想法(順便在這里祝luoluo今天生日快樂!),他提出可以直接將加密的介質修改。

          比如,如果是用js在做加密,則修改js,如果是用flash或java applert做加密,則替換flash或applet,直接去掉這種加密機制,捕獲明文密碼。

          那么為什么說https是不可替代的呢? 因為當實施中間人攻擊的時候,瀏覽器會提示證書已改變(具體參考云舒的關于https安全性的文章),這種機制是內建在瀏覽器里的,攻擊者無力改變它。所以這種報警是非常有意義的。

          而如果像QQ一樣使用js進行RSA加密傳輸,實施中間人攻擊的時候,是不會有任何提示的,一切都會在用戶不知情的情況下發生。

          這種情況和以前windows的RDP中間人攻擊情況一樣: 當使用3389端口的rdp協議登錄時候,證書改變的時候沒有任何提示。

          而相對設計比較安全的ssh協議,ssl協議等,則都會針對證書改變做出提示,防止中間人攻擊。

          所 以,QQ的這個方案只能保護傳輸過程中一般的sniffer攻擊,但是考慮到當今網絡環境下,大部分的sniffer都是基于arp欺騙的,所以這種保護 機制其實是非常脆弱的。它只能對抗目前已知的arp sniffer軟件,而對專門開發的替換關鍵字的軟件,則無法有效防御。一旦這種專門針對QQ網站登錄的sniffer軟件被開發出來并且提供下載,災難 就不遠了。

          不過這個方案還是有積極意義的,除去不能抵抗中間人攻擊的缺陷外,其他方面都比較完美,特別是成本低廉。如果與https結合使用來防止中間人攻擊的話,整個方案就更完美了。

          之前曾與朋友戲言QQ是否會因為我這一篇文章而多花費幾百萬的經費去購買https證書和https硬件加速服務器,現在讓我們拭目以待,看看QQ是否是真正的用戶至上。
          posted on 2007-11-25 01:18 matthew 閱讀(313) 評論(0)  編輯  收藏 所屬分類: 網站應用
          主站蜘蛛池模板: 游戏| 望奎县| 错那县| 河北省| 德安县| 大丰市| 沙坪坝区| 武宁县| 永济市| 金川县| 庄河市| 宜宾县| 新乡市| 湄潭县| 自贡市| 鹤庆县| 巧家县| 日喀则市| 平乡县| 抚宁县| 台中市| 白河县| 武山县| 泸溪县| 林甸县| 榆林市| 淮滨县| 浑源县| 申扎县| 平武县| 客服| 鹤壁市| 苗栗市| 呼伦贝尔市| 广汉市| 康马县| 迁安市| 武安市| 杨浦区| 潜山县| 惠来县|