iT邦幫忙

0

關於PKI中Root憑證是誰要放進信任區的問題

請各位大大幫小弟釋疑,請問誰是正確的呢,亦或是都有錯誤,在此先感謝大家了。


從今天凌晨開始,就有一位網友一直在跟我討論使用者的根憑證區域沒有CA的根憑證是誰的錯。
他的論點:OS有義務主動把市面上所有CA放進憑證區
我的論點:OS沒有義務要這樣做,是CA要要求OS做這件事

他的論點基礎是,OS才是有權力控制系統CA庫的,所以理當是OS要處理Root憑證的信任問題,自然有義務要主動將所有CA的Root憑證置入,所以憑證不被信任是OS的錯。

我的論點基礎為,CA必須自行通知OS自己的Root憑證,並且申請及通過審核才能被置入至Root憑證區受到信任,所以憑證不被信任是CA的錯。

當時引起爭議的討論串,第一張圖疑似因為另一位網友刪除回復,所以只剩他一個人,我看到的時候就這樣了,所以針對他所發出的單方回復討論,而後面的黃彥儒是我,我也把回復刪除了,但是他私訊我繼續討論...。
http://ithelp.ithome.com.tw/upload/images/20170903/200883958N8YWoRQrp.jpg
http://ithelp.ithome.com.tw/upload/images/20170903/20088395WBEKlOF7m1.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
bizpro
iT邦大師 1 級 ‧ 2017-09-03 21:11:01
最佳解答

他的論點:OS有義務主動把市面上所有CA放進憑證區
我的論點:OS沒有義務要這樣做,是CA要要求OS做這件事

這兩個論點都有瑕疵, 跟OS無關, 也非誰的"義務":
CA公司向應用程式開發商請求信任其根憑證或中繼憑證, 應用程式商有權利決定是否同意.

應用程式可以是瀏覽器, FTP客戶端, Email客戶端, 當然也包含自己開發的應用程式. 要不要信任是這些應用程式的權利. 以HTTPS協定為例:

伺服器端建立私鑰, 產生公鑰向CA請求憑證及簽署, 瀏覽器必須個別決定是否信任這個CA簽署的憑證和伺器公鑰, 這是基本程序, 不同的瀏覽器有不同的信任政策, 關鍵是為什麼瀏覽器要信任這個CA? 為了簡化流程, 各家瀏覽器"預先信任"了許多CA及其所簽發的憑證, 因此在各瀏覽器有根憑證與中繼憑證管理系統, 這種內建的信任通常經過冗長的申請, 而且會隨著政策改變而更新, 瀏覽器的使用者也可以自己匯入非瀏覽器內建信任的憑證, 使用者也可以自行移除內建的憑證, 我通常都移除一些, 如果瀏覽器遇到不在其憑證管理系統中的憑證, 就會尋求使用者的同意詢問是否信任此憑證, 但為了資安考量, 現代的瀏覽器會對不安全的憑證與公鑰提出質疑以提醒使用者注意.

請注意, 這些憑證只用在HTTPS握手階段, 用來交換對稱金鑰和加密法的, 並非資料傳輸階段.

黃彥儒 iT邦高手 1 級 ‧ 2017-09-03 21:20:01 檢舉

我了解,實際加密的鑰匙是另外產生的,通過迪菲赫爾曼金鑰交換的,憑證僅確保對方真的是你認為的那台伺服器而非中間人。

bizpro iT邦大師 1 級 ‧ 2017-09-03 23:52:36 檢舉

通過迪菲赫爾曼金鑰交換的? DH並非金鑰, 只是一種使用質數和餘數的計算公式, 用來算出交換的金鑰, 大質數更可阻止中間人逆向計算, 達到在不安全的通訊中無所畏懼地交換金鑰的目的.

我回答的真正的重點並非最後那句話. 而是瀏覽器如何處理CA.

黃彥儒 iT邦高手 1 級 ‧ 2017-09-04 00:35:52 檢舉

恩,我知道阿。
我原本想表達的是通過迪菲赫爾曼(進行)金鑰交換的意思....非常感謝您

0
海綿寶寶
iT邦大神 1 級 ‧ 2017-09-03 16:29:09

使用者的根憑證區域沒有CA的根憑證是誰的錯。

我投「使用者」的錯一票

另外
才三個字母
你把PKI寫成PIK
看起來氣勢就弱掉了
http://ithelp.ithome.com.tw/upload/images/20170903/20001787tg1LkJeNOb.png

看更多先前的回應...收起先前的回應...
黃彥儒 iT邦高手 1 級 ‧ 2017-09-03 16:29:59 檢舉

感謝,可以說說為什麼嗎?

黃彥儒 iT邦高手 1 級 ‧ 2017-09-03 16:31:55 檢舉

在這個案例中,COMODO確實是應該要存在於信任區域的,使用者一定是做了什麼導致問題發生,那就我與他的觀點,您的看法是?

黃彥儒 iT邦高手 1 級 ‧ 2017-09-03 16:32:31 檢舉

哈,為什麼我會打錯啊Orz,謝指教

因為就基本定義來看
CA:管理Certificate
OS:管理資訊設備的軟硬體

要不要匯入憑證,是使用者決定的,跟CA/OS都沒有關係

至於現行作業很多「預載」的根憑證
那是OS廠商「好心」「雞婆」的設計
OS廠商替使用者「信任」了那些根憑證
/images/emoticon/emoticon06.gif

如果你仍然不認同我的答案
也沒關係
我再送你一個題目
可以想想看

假設OS裡已經有幾家CA的根憑證
今天新開了一家CA(註)
那麼他的CA會如何安裝到作業系統中?
是你的OS會「自動」去下載安裝根憑證?
還是CA會「要求」天下所有的OS要安裝他的根憑證?
(我的答案是:都不會)

註:這家CA值不值得信任?
如果是Google開的?
如果是我開的阿里不達的CA?
值不值得信任到底由誰決定呢?

黃彥儒 iT邦高手 1 級 ‧ 2017-09-03 17:12:03 檢舉

我的看法是這樣,使用者信任OS會審核該不該信任這家CA;像是StartCom和沃通就不該被信任,但是他們在最開始也是通過了審查被加入信任的。
所以CA要賣所謂的信任之前是要去取得大家的信任的,當然是CA要努力去取得大家的信任囉

0
weiclin
iT邦高手 4 級 ‧ 2017-09-03 19:21:43

首先, 不是只有 OS 能管理 CA 庫, Firefox 就用了自家 NSS 附帶的 CA 列表

再來也不是所有的 OS 都會有預設的 CA 庫: https://unix.stackexchange.com/questions/159977/freebsd-10-root-certificate-store

事實上, 使用者才是有權力決定要信任哪一個根憑證的, OS 與瀏覽器充其量只是弄個預設列表, 把常用可信任的都放進去而已, 只是多數使用者沒那個能力辨別與操作這些東西罷了, 甚至傻傻的讓防毒軟體劫持自己的 https 通訊內容

OS 與 CA 商的關係應該是這樣:

  • OS 有一些技術條款用來審核 CA, 例如 https://technet.microsoft.com/zh-tw/library/cc751157.aspx
  • CA 商若是想要加入預設列表, 可以向 OS 或其它 CA 庫申請, 例如之前政府的憑證有陣子常常死掉, 政府憑證中心其實被罵了一陣子而且也做了處理, 參見 Q17

所以回到你的問題, 若一定要選一個的話, 好像大家普遍是怪罪 CA 商而不會怪 OS, 但如果換個情況, 若 Windows 與 MAC 都能正常瀏覽, 只有 Linux 說憑證有問題, 大概又會有人開始說 Linux 怎麼怎麼爛了

我的結論: 知道是誰錯了又如何呢?

黃彥儒 iT邦高手 1 級 ‧ 2017-09-03 21:21:24 檢舉

無論如何,全盤相信所有CA絕對是錯的;我是如此認為的

我要發表回答

立即登入回答