2010年2月22日

CNNIC 根憑證事件:你該怎麼做?

This is the Chinese translation of article on my blog.

最近 CNNIC 根憑證事件鬧的很大,Mozilla 的 Bugzilla 也出現了 bug 476766 希望 Mozilla 能把憑證拿掉。我個人其實是贊成 bug 裡面反方的意見的:「innocent until proven guilty」,也就是無罪推定 —— 如果沒有人找到具體證據說 CNNIC 和背後的中國政府濫用這個憑證做攻擊的話,照現在各大瀏覽器供應商的政策,沒有理由不接受該憑證的。用白話文說,除非你看到下面的東西,否則到 bug 的討論串去再吵也沒有意義

示意圖:CNNIC Root 根憑證驗證了假冒 Google Analytics 的假網站的身分

但如果你真的看到的話,請立刻按「更多資訊」把憑證存下來。只要這種東西被發現,CNNIC 和它的憑證一定完蛋;這會變成年度網路第一大醜聞,中國政府也會一起信譽掃地。

在這之前你能做什麼

如果您還是對瀏覽器廠商的安全政策不放心的話,您可以停用自己電腦裡的根憑證。Mozilla 的安全政策我認為是 OK 的,但是它沒有讓使用者方便自由選擇是否信任憑證的好工具:那個該死的「憑證管理員」實在是太難用了。所以,我寫了一個擴充套件,幫忙完成「停用 CNNIC 根憑證」這件事:CA Untrustworthy。不過要記得這樣做會進不去那些身分由 CNNIC 驗證的真網站就是了。

如果沒這麼神經質的話,一位附加元件作者 Rex 寫了另一個工具「Cert Alert」,在發現網站身分是經由 CNNIC 確認時做提醒。看到提醒的時候,您可以用自己的常識判斷這個驗證到底有沒有問題 —— 說不定會發現像上面那張圖的那種假憑證。

撰文:timdream。此言論僅代表個人立場,不代表台灣 Mozilla 社群或是 Mozilla Links。

7 則留言:

  1. 因为cnnic做过很多无耻的事,比較geek向的大陸網友都不信任cnnic,讓它來幫瀏覽器把關還得了.無論有沒有證據,我都不會信任cnnic

    回覆刪除
  2. "innocent until proven guilty"並不適用於這種情況。「掌控憑證」是一種特權,不是基本人權。申請加入警察會被要求沒有前科記錄,怎麼可以讓有前科記錄的人帶槍進銀行呢?

    回覆刪除
  3. 無罪推定在電腦保安用了三十幾年,而我們還有入侵和蠕蟲,我想你應該知道到底無罪推定在電腦保安有沒有用的 :')

    回覆刪除
  4. 第二位匿名,

    雖然我也不信任 CNNIC (所以我也把該裝的都裝了),不過你的論點好像怪怪的。「無罪推定在電腦保安上使用」這句話的意思是?

    又,就算你說「無罪推定在法律上使用了 n 百年,我們還有犯罪」,也不影響無罪推定的原則。

    回覆刪除
  5. 我記得憑證是「你對發行這個憑證的機構有信心,認為他們不會發憑證給假冒的網站,所以你也信任使用這個憑證的網站是真正的網站」。這應該是信任問題而不是審判罪狀,信不信任和有沒有罪應該不相衝突才是(雖然我沒有任何前科,我想柏強兄應該還是不會信任我來保管你的土地權狀吧XD)。對於不信任cnnic的朋友,該做的是理性的說服moz,因為moz只是對於信任的態度和我等不同而已,並沒有什麼錯誤(除非能提出實際的數字證明他們的決定與大多數fx使用者相左)。
    另外,如果cnnic是對自已發出憑證的網站進行仿冒,應該是沒辦法從瀏覽器上發現的,對嗎@@?

    回覆刪除
  6. 洛米:

    你對憑證的認知正確,且讓我描述:

    1. Mozilla 跟大部分需要用到憑證的軟體都沒有能力判別憑證單位是否值得信任,他們的作法是「如果已經信任的 A 單位信任 B,則認為 B 可信任。」

    2. 判別某「準 CA」是否值得信任,自有組織負責。以本例而言,信任 CNNIC 的是 Webtrust.org

    3. 由於 Mozilla 信任 Webtrust.org,故 CNNIC 提出申請時也連帶視為信任,而將根憑證放入 Firefox (自此都是信任問題)

    4. 要求移除 CNNIC 等於是要求 Mozilla 打破這份(對 Webtrust 及 CNNIC 的)信任,所以在那之前 Mozilla 的態度是除非有證據證明 CNNIC (或甚至是 Webtrust)不可信、否則不理。(這邊就是無罪推定原則了:過去已信任者,需有證據證明其不可信,否則一律視為可信。)

    =====

    第二個問題應該是沒辦法發現沒錯,除非你

    1. 直接移除 CNNIC 的根憑證,把所有 CNNIC 認證的網站一律預設視為不可信。

    或者

    2. 安裝 Rex 的套件,每次網站的發證者為 CNNIC 時都跳出來提醒你注意一下,然後你再自己判斷。

    ~Bob

    回覆刪除
  7. 柏強兄這樣講很好懂,謝謝:)

    回覆刪除