由 WCM 於 星期一, 2010-02-01 20:00 發表
各位,雖然此事與 AutoProxy 無關,但它對所有(也包括 AutoProxy)用戶都是一個非常嚴重的安全威脅。我,WCM,AutoProxy 作者,以個人名譽強烈建議您認真閱讀並採取措施。
背景知識
網上傳輸的任何信息都有可能被惡意截獲。儘管如此,我們仍然在網上保存著很多重要的資料,比如私人郵件、銀行交易。這是因為,有一個叫著 SSL/TLS/HTTPS 的東西在保障我們的信息安全,它將我們和網站服務器的通信加密起來。
如果網站覺得它的用戶資料很敏感,打算使用 SSL/TLS/HTTPS 加密,必須先向有 CA (Certificate Authority) 權限的公司/組織申請一個證書。有 CA 權限的公司/組織都是經過全球審核,值得信賴的。
發生了什麼事
最近,CNNIC--對,就是那個臭名昭著的利用系統漏洞發佈流氓軟件的、就是那個使勁忽悠 CN 域名又突然停止域名解析的 CNNIC (中國互聯網絡信息中心),它--偷偷地獲得了 CA 權限!在所有中文用戶被隱瞞的情況下!
意味著什麼
意味著 CNNIC 可以隨意造一個假的證書給任何網站,替換網站真正的證書,從而盜取我們的任何資料!
這就是傳說中的 SSL MITM 攻擊。以前這個攻擊不重要是因為攻擊的證書是假的,瀏覽器會告訴我們真相;現在,因為 CNNIC 有了 CA 權限,瀏覽器對它的證書完全信任,不會給我們任何警告,即使是造假的證書!
你信任 CNNIC (中國互聯網絡信息中心) 嗎?你相信它有了權限,會安守本分,不會偷偷地幹壞事嗎?
我對此有3個疑問:
1. 某 party 對 GMail 興趣濃厚,GFW 苦練 SSL 內功多年,無大進展。如今有了 CA,若 GFW 令下,CNNIC 敢不從否?
2. CNNIC 當年利用所謂官方頭銜,制流氓軟件禍害網民。如今有了 CA,如何相信它不會故伎重演?
3. 為了得到指定網站的合法證書,其它流氓公司拋出錢權交易,面對誘惑,CNNIC 是否有足夠的職業操守?
影響範圍
基本上所有瀏覽器的所有用戶均受影響!
行動第一步:立即安全防禦
在此只介紹 Firefox 瀏覽器的防禦方法,其它瀏覽器的用戶請自行 Google,原理類似。
* 菜單欄:工具/編輯->首選項->高級->加密->查看證書->證書機構(Authorites)
* 這是一個很長的列表,按照字母順序,你應該能找到一個叫著 “CNNIC ROOT” 的記錄,就是這個東西,告訴 Firefox,我們不信任它!
* 選中 CNNIC ROOT,點擊下面的「編輯」按鈕,彈出一個框,應該有3個選項,把所有選項的勾都去掉!保存。
* 還沒有完,狡兔有三窟。
* 接著往下找,有一個叫著 Entrust.net 的組,這個組裡應該有一個 “CNNIC SSL” (如果沒有,訪問一下 這個網站 就有了)
* 別急著下手,這回情況不一樣,這個證書是 Entrust 簽名的。我們信任 Entrust,Entrust 說它信任 CNNIC,所以我們就被迫信任 CNNIC SSL 了。找到 “Entrust.net Secure Server Certification Authority” 這一條,同上面一樣,把3個選項的勾都去掉,保存(提示:取消了對 Entrust 的信任以後,可能會沒法打開它簽名的某些正常網站。至於哪個網站用了它的簽名,隨便試了一下,沒找到例子)。
* 最後,讓我們驗證一下。重啟 Firefox,打開 這個 和 這個 網站,如果Firefox 對這兩個網站都給出了安全警告,而非正常瀏覽,恭喜,您已經擺脫了 CNNIC CA 的安全威脅!
行動第二步:治標還需治本
幾天前聽到這個消息的時候,我簡單地、輕蔑地將 CNNIC 刪除了事。可是這個週末,我忽然覺得這樣很不好。因為只要它存在,始終會有大部份的用戶受到威脅。和寫 AutoProxy 時同樣的想法:如果大部份人都處於安全威脅當中,一個人苟且偷安又有什麼意義?如果不能將自由與安全的門檻降低一點點,所謂的技術又有什麼好僥倖的?
所以我呼籲大家,貢獻一點時間和知識,團結起來說服各瀏覽器取消 CNNIC 的 CA 權限。這種事不可能有公司來推動,只有我們社區。
首先推薦的是 Firefox,作為一個公益組織 Mozilla 的決策過程更為開放、更願意聽取社區的聲音。Bug 476766 記錄了事件的全過程。Bug 542689 和 Mozilla.dev.security.policy 進行著現在的討論(注意,你可以把自己添加到 Bugzilla 的 CC List 以表達你對此事的關切。但是不要隨便說一些不靠譜的話,免遭討厭。強調政治、GFW 的之類的不管用,必須就事論事。比如它在申請過程中採取欺騙、隱瞞的手段,或者申請成功後的某些行為違反了 Mozilla 的 CA 政策;比如它的屬性和過往行為表明它不會忠於自己的職責,而(幫助)做出 MITM 這種 CA 共憤的事情)。
其次是 Entrust,它說它信任,導致了我們也被迫信任 CNNIC SSL。不妨 告訴 Entrust 此事很嚴重,因為它錯誤地信任了 CNNIC,大量用戶不得不刪除它的 CA。如果能找到使用 Entrust 證書的網站更好。給這些網站寫信,因為此次事件我們不得不刪除了 Entrust 的 CA,請求他們另選別家認證。如果反響強烈,勢必給 Entrust 造成很大壓力。
除此之外,來投個票吧(結果統計)!
最後,強烈建議大家,發現證書警告的時候最好直接關掉,不要輕易添加例外。證書的信任體系是一級依賴一級的,一不小心你可能就會連帶信任一個不想信任的 CA。上面用於驗證的兩個網站,不妨定期(每週/每月)測一測,如果哪天你發現其中的任何一個網站沒有證書警告,就要注意了!
各位:DNS 劫持已然成為常態,不要讓 SSL 劫持再次普及!此事剛剛發佈,尚有評議空間。待時間流逝,你我皆成溫水中之青蛙! (http://www.dajiyuan.com)