臭名昭著的中國互聯網絡信息中心偷偷獲得了CA 權限

臭名昭著的中國互聯網絡信息中心偷偷地獲得了CA 權限
CNNIC CA──安全警告! 

網文 由WCM 於星期一, 2010-02-01 發表

各位,雖然此事與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,導致了我們也被迫信任CNNIC SSL。不妨告訴Entrust 此事很嚴重,因為它錯誤地信任了CNNIC,大量用戶不得不刪除它的CA。如果能找到使用Entrust 證書的網站更好。給這些網站寫信,因為此次事件我們不得不刪除了Entrust 的CA,請求他們另選別家認證。如果反響強烈,勢必給Entrust 造成很大壓力。
除此之外,來投個票吧(結果統計)!

最後,強烈建議大家,發現證書警告的時候最好直接關掉,不要輕易添加例外。證書的信任體係是一級依賴一級的,一不小心你可能就會連帶信任一個不想信任的CA。上面用於驗證的兩個網站,不妨定期(每週/每月)測一測,如果哪天你發現其中的任何一個網站沒有證書警告,就要注意了!
各位:DNS 劫持已然成為常態,不要讓SSL 劫持再次普及!