數位憑證:你能相信誰?

數位憑證是公開金鑰基礎設施(PKI)的骨幹,也是建立網路信任的基礎。數位憑證通常會跟簽名相比;我們能夠信任一份文件是因為它有簽名,或是擁有我們所信任人士的保證。簡單地說,數位憑證是現實世界模型的重現。

牽涉到數位憑證的事件最近一直出現在新聞上。對一般使用者來說,並不會很清楚或注意環繞在數位憑證或憑證管理機構(certificate authority -CA)的問題。然而,IT經理、軟體開發人員及安全專家需要了解這些問題,才能適當地管理風險。

那麼,我們在網路上可以信任誰或什麼?

每台連到網路的電腦都包含可信任的根CA列表。這些根CA簽發的憑證可以用來為其他CA或伺服器簽章憑證。任何憑證都需有一個「信任鏈」,讓系統看到它所信任的任何一個根憑證。

安全 通用

「可信任」是什麼意思?

如果一個安全連線或簽章過的檔案是「可信任」的,這通常代表沒有出現警告訊息。數位憑證被用在使用SSL/TLS的安全網站,用程式碼簽章識別和驗證可執行檔以及透過安全/多用途網際網路郵件擴展(S/MIME)的安全電子郵件。如果瀏覽器存取的HTTPS伺服器具備不被信任的伺服器憑證就會出現警告訊息。如果一個未簽章或未受信任的執行檔被執行,也可能會產生警告訊息。使用者可能會看到這些警告訊息並避免有危險的行為。

HTTPS被廣泛的利用來確保使用者所連到的是正確的網站。很多使用者會檢視瀏覽器用來標示HTTPS地址的綠色符號作為連線安全的記號。

這樣的信任來自於兩點:

  1. CA不會簽發憑證給不適當的使用者。
  2. 使用者(如電腦、瀏覽器或行動設備)不會將任何不當CA加入受信任的CA列表。

不幸的是,這樣的信任基礎正受到考驗。這些機構可能並不像一般認為的那樣值得信賴。

底下有幾個例子突顯出今日基於信任的CA系統的問題。

 

失去信任感:CA簽發憑證給不適當的使用者

CA在保護自己的系統以確保不會發出不適當憑證方面必須記錄良好。不過,已經出現了針對它們安全性和流程的事件。

在2011年,自稱ComodoHacker的攻擊者侵入一家荷蘭CA – Diginotar的系統。這名攻擊者發出多個假憑證。對Diginotar的安全性失去信心的結果讓主要作業系統將它們從可信任CA列表中除名。這最終導致了Diginotar業務的停擺。

雖然Diginotar在CA市場上只是個小角色,這攻擊者還聲稱自己入侵了Comodo的網路,這是一個大得多的CA。

更近的另一案例也同樣令人擔憂。在2015年3月,Comodo簽發live.fi網域憑證給一個未授權的團體。這個網域是live.com網路服務的芬蘭網域,屬於微軟的一部份。這是怎麼一回事?

Comodo發出所謂的網域驗證憑證給微軟。這類型的CA會要求網站所有者確認自己確實控制想要CA簽發的網域。最常見的方法是從該網域發送一封電子郵件,用下列幾種可能的電子郵件地址:

 

  • admin@
  • administrator@
  • postmaster@
  • hostmaster@
  • webmaster@

 

這個live.fi網域被微軟用來提供免費信箱…而一個聰明的芬蘭人發現hostmaster@live.fi可以被申請。他取得了這個郵件地址,並用它來取得給live.fi的憑證,這憑證可以被任何瀏覽器所信賴,但卻不在微軟的控制下。在採訪時,這名芬蘭男子表示他已經在2015年一月回報此問題給微軟和芬蘭當局。

該憑證可以被用來進行中間人攻擊(MITM),因為這個憑證可以通過任何瀏覽器的驗證。這可以騙到大多數的使用者。Comodo取消了憑證,微軟也另外發布一個更新給Windows。

不幸中的大幸是,只有一個詐欺性憑證被建立,並且它不能被用在其它用途。這是因為允許用途會定義在憑證中(擴展金鑰用法)。給SSL伺服器的憑證只能被用在伺服器驗證上﹔程式碼簽章憑證也一樣被限制在特定目的上。

在本月晚些時候,Google也提出了關於憑證的問題出現。他們發現一個埃及ISP(MCS Holdings)擁有一個數位憑證可以經過代理伺服器用來進行中間人攻擊。通常,這些代理伺服器需要安裝憑證在設備上以達到通透的效果。然而,在此案例中,MCS Holdings的憑證是由中國網際網路資訊中心(CNNIC)所簽章,它被包含在根儲存區。這代表任何用MCS Holdings憑證簽發的憑證都會被系統視為有效,即便它們沒有「權力」簽發憑證(該網域並非他們所有)。

就跟Diginotar的情況一樣,這個事件導致涉及CA的嚴重後果。MCS Holdings所簽發的憑證已經被Google、微軟Mozilla列入黑名單。此外,CNNIC本身也被採取了行動。

Google和Mozilla都表示以後由CNNIC所簽發的憑證不再被信任。這代表雖然目前依靠CNNIC所衍生證書的機構仍然可以使用它們,一旦這些憑證過期,就需要重新取得新憑證(來自另一個CA)。

這些案例凸顯出以CA為基礎模式的風險:可能會發生針對CA的攻擊,如果這些憑證落入有著特殊意圖的攻擊者手上用來攔截通訊,使用者資訊就會陷入危險之中。而對CA本身來說,簽發憑證過程的任何失誤都會導致自己被迅速地列入黑名單,瞬間毀了CA原本可以賺錢的生意。

錯誤的信任感:受信任的CA列表包含不適當的CA

最近一個將CA加入使用者系統的例子是Superfish,能夠監控HTTPS流量的廣告軟體被預裝在聯想電腦上。由於它所實作的(差勁)方式,簡單地說,任何人都可以發出任何憑證。

這意味任何裝有Superfish的個人電腦都可能會對HTTPS有錯誤的信任感:被看似安全的惡意網站進行網路釣魚,被中間人攻擊攔截通訊,使用者執行簽章過的惡意軟體,使用者認為簽章過的郵件是來自合法來源。

如果產生了潛在的不信任感,會讓使用網際網路變得相當困難,即便不是不可能。如果我們不能分辨所連上的Gmail、Facebook、Twitter或網路銀行網站是否安全,我們甚至不能瀏覽網站。如果我們不能分辨所執行的程式是真是假,甚至連打開我們自己認為的筆記本程式都有風險。

使用者和 CA該怎麼做?

CA要確保自己的系統是安全的,以最小化簽發欺詐性憑證的可能。它們在簽發憑證給具備廣泛認可及普及度的網域時也要小心,特別當這樣錯誤簽發的憑證出去後所造成的影響將會非常巨大。一個基於可信任機構(如CA)的系統只有當機構真正可被信任才能夠運作良好。

CA應該要考慮透過其他通訊方式(如電話)來驗證網域憑證的簽發請求,因為這對網路犯罪分子來說可能有困難做到。擁有特別權限的憑證取得者(如發給MCS的憑證)應​​該要受到更加嚴格的管控,以防止可能的惡意濫用。

想確保欺詐性憑證不會用自己名字簽發的網站所有者應該要考慮預先註冊經常被用做網站驗證的電子郵件地址,以確保它們都在網站管理員的控制下。又或者,這些地址都應該被特別保留而不可被註冊。

目前以CA為信任基礎的系統尚不完美,依賴於憑證管理機構和使用者都具備良好的判斷力和謹慎的態度。它離完美還很遠,卻是我們現在所有的。額外的保障措施可以提高SSL憑證的安全性。隨著越來越多網站變成只使用HTTPS,這個問題將會在未來幾年變得更加突顯。

 

@原文出處:Digital Certificates: Who Can You Trust? 作者:Hitomi Kimura(趨勢科技資安專家)


《提醒》在粉絲頁橫幅,讚的右邊三角形選擇接收通知新增到興趣主題清單,重要通知與好康不漏接