根憑證

在密碼學和電腦安全領域，**根憑證**（**root certificate**）是屬於根憑證頒發機構（CA）的公鑰憑證，是在公開金鑰基礎建設中，信任鏈的起點。憑證頒發機構的角色有如現實世界中的公證行，保證網路世界中電子憑證持有人的身分。具體作法是透過中介憑證，利用數位簽章為多個客戶簽發多個不同的終端實體憑證，形成一個以其根憑證為頂層的樹狀結構，在此傳遞關係中所有下層憑證都會因為根憑證可被信賴而繼承信任基礎。

根憑證沒有上層機構再為其本身作數位簽章，所以都是自簽憑證。許多應用軟體（例如作業系統、網頁瀏覽器）會預先安裝可被信任的根憑證，這代表使用者授權了應用軟體代為審核哪些根憑證機構屬於可靠，例如是公認可靠的政府機關（如香港郵政）、專職機構（如 Google、Let's Encrypt、CAcert.org、Comodo、DigiCert、GlobalSign）等。應用軟體在建立安全連接時，例如使用網頁瀏覽器造訪一個網站，會執行認證路徑驗證演算法，使用該主機提供的電子憑證，驗證是否能夠對應到預先安裝的根憑證，從而驗證從根憑證到終端節點的路徑是否為一條有效的信任鏈，確保 TLS 安全連接中的身分。但是，這意味著使用者信任瀏覽器的發布商、它所預先安裝的憑證頒發機構，以及這些憑證頒發機構可能頒發的所有中間憑證頒發機構，相信他們忠誠地確保各憑證持有人的身分和意圖。

## 鑰匙典禮

憑證機構自簽一張新的根憑證時，需要產生一對公開金鑰及私有密鑰，這個過程在公證人、律師及錄影系統監察下經過一系列嚴謹的程序，在高度防護的設施內進行。

## 根憑證計劃

由於根憑證在公開金鑰基礎建設擔任重要角色，負責任的憑證機構會公佈憑證作業準則以供公眾查閱，並負上法律責任。根憑證一般會預先在不同的軟體廣泛部署，所以各大軟體商（如 Mozilla、微軟、蘋果公司、甲骨文公司 Java、Adobe Systems）也發佈自己的審核標準，列明嚴謹的核認程序，例如行政人員的授權及機構法人身分的核認，才會部署於軟體產品，發放給大眾使用者安裝。而由於部署程序複雜費時，憑證機構發出的根憑證有效期可能長達十年以上。

在不少較為發達的國家和地區，都已立法承認數位簽章擁有等同親筆簽名的法律效力，並列出在法律上可被信任的根憑證（如歐洲聯盟、香港、台灣）。

## 自行安裝根憑證

雖然應用軟體會根據審核標準預載一系列可靠的根憑證，但使用者仍然可以透過介面自行增刪其電腦上所安裝並信任的根憑證清單。有時候，使用者連接某些網站時，會得到來自應用軟體（瀏覽器）的安全警告，但基於實際情況，仍然可能選擇信任網站，跳過警告以繼續；典型的例子是一般家用路由器，這些家用路由器的設定介面一般是以網頁形式在瀏覽器上執行，如果設定成為「以 HTTPS 連接」，則其原廠設定所使用的電子憑證一般為自簽憑證，即未經憑證機構數位簽章擔保，但使用者仍然可能選擇跳過警告，甚至在瀏覽器的信任根憑證清單增加路由器的自簽憑證，以便日後再設定時不必再收到瀏覽器的安全警告。另外一種情況，就是企業內部網的企業級軟體，企業的資訊工程部門可能在員工的電腦上安裝了企業自行管理的根憑證，使企業軟體不必倚賴外間第三者的憑證機構，而是可以自行擔當企業內部的憑證機構；但是這些根憑證可能未被廣泛認可，只在企業內部適用。

### 警告

自行安裝根憑證，或跳過應用軟體的安全警告，都可能會使使用者面對資訊安全風險，可能使應用軟體的保固條款失效，甚至使使用者的法律權益受損。尤其是在知名網站、銀行及政府機關等都不應有這種需要。使用者需自行了解所要安裝的根憑證的加密技術、所屬網站的真實身分及使用者的法律權責。

### 截取通訊

無論是出於企業為了保障網路安全、或為了監控員工、或間諜軟體和特洛伊木馬為了竊取使用者資訊，只要有人得到使用者電腦的控制權，可以任意安裝根憑證，並且可以進行域名伺服器快取污染或控制網路路由，就可以進行中間人攻擊以解密使用者與遠端伺服器之間的安全連線，以下用愛麗絲與鮑伯作範例：

1. 假設愛麗絲的電腦已在較早前被馬洛里安裝了特定的根憑證，馬洛里擁有對應的私鑰
2. 當愛麗絲嘗試與鮑伯建立安全連線時，馬洛里以代理伺服器的身分先行收到連線請求
3. 馬洛里暫時擱下愛麗絲的請求，轉而建立另一條連線向鮑伯請求他的電子憑證
4. 鮑伯的電子憑證已得到一個受廣泛認可的認證機構數位簽章，如果馬洛里如實轉交給愛麗斯，一切都不會有問題
5. 但馬洛里使用自己的私鑰簽發一個電子憑證，憑證上主體名稱聲稱是屬於鮑伯，並交給愛麗斯，而鮑伯不曾知道
6. 愛麗斯驗證收到的電子憑證，根據其信任鏈，她找到簽發的根憑證
7. 她發現自己的電腦中已安裝並信任這樣一個根憑證，便信以為真，開始使用憑證上的公鑰與鮑伯的秘密通訊
8. 其實該根憑證就是馬洛里早前安裝上去用以欺騙愛麗斯，這時馬洛里能夠利用自己的私鑰解密愛麗斯傳出的密文，並即時再用先前收到、鮑伯真正的電子憑證上的公鑰再加密，並傳給鮑伯
9. 鮑伯收到密文時不虞有詐，他能夠用自己的私鑰解密馬洛里傳送過來的密文

由此可見，愛麗斯與鮑伯都以為他們可以安全通訊，但卻不知道馬洛里可以在中間竊聽，甚至篡改通訊內容。

### 防禦方法

要避免中間人攻擊置換假冒的電子憑證，HTTPS 網站可以使用 HPKP 指明其固定的公鑰，讓中間人的欺詐憑證無法使用。另外，憑證機構可以透過憑證透明度公佈簽發的電子憑證，讓大眾檢查手上收到的電子憑證是否可能未被正式授權（中間人攻擊不會「公佈」他偽冒了別人簽發了欺詐憑證），網站管理員也可以定期檢查是否有不明機構發出了未被授權的憑證。而 OCSP 和 OCSP 裝訂也在發展中，讓使用者軟體可以透過第三方檢查憑證是否有効。

## 保護根憑證

由於根憑證在信任鏈中的重要角色，一旦憑證機構的私鑰外洩，將可能導致整個信任鏈被摧毀，影響廣及眾多客戶，所以認證機構會使用各種方法保護根憑證，例如硬體安全模組。有些儲存私鑰的電腦甚至平時不會連線，只在固定的排程下，經過一系列嚴謹的行政程式重重把關，才會取出私鑰為客戶簽章憑證。在信任鏈設計中，絕大部份的根憑證都不會直接為客戶簽章，而是先簽章一個（或多個）中繼憑證，再由中繼憑證為客戶簽章，這可以加強控管能力及控制一旦簽章私鑰被洩時的損失。

## 根憑證可信任程度爭議

### 中國互聯網絡信息中心發行假憑證事件

2009 年，中國互聯網絡信息中心（CNNIC）的一名員工向 Mozilla 申請要求將 CNNIC 加入 Mozilla 的 根憑證列表，並且得到了批准。後來微軟也把
CNNIC 加到了 Windows 的根憑證列表裏。

2015 年，因 CNNIC 發行的一個中階 CA 被發現發行了 Google 域名的假憑證，許多使用者選擇不信任 CNNIC 頒發的數位憑證。並引起對 CNNIC 濫用憑證頒發權力的擔憂。

2015 年 4 月 2 日，Google 宣布不再承認 CNNIC 所頒發的電子憑證。4 月 4 日，繼 Google 之後，Mozilla 也宣布不再承認 CNNIC 所頒發的電子憑證。2016 年 8 月，CNNIC 官方網站已放棄自行發行的根憑證，改用由 DigiCert 頒發的憑證。

### 沃通及 StartCom 遭封殺事件

2016 年，擁有奇虎 360 背景的中國最大 CA 憑證簽發機構沃通（WoSign）及其以色列子公司 StartCom，遭 Google 拒絕承認其憑證。

沃通被揭發在短短 5 日內發行了幾百個相同序列號的証書，以及對憑證日期上造假，甚至簽發了一張假的 Github 憑證。

微軟也曾在 2017 年表示會將相關憑證下架，但在 2021 年 2 月仍有使用者表示沃通和 StartCom 的憑證在 Windows 10 仍然生效，只能手動移除憑證。

### 中國鐵路客戶服務中心網站自簽根憑證

中國鐵路客戶服務中心（簡稱：12306 網站）初期啟用 https 存取時，使用的是由憑證機構的名稱為「Sinorail Certification Authority」（SRCA）頒發的憑證，而該根憑證並沒有記錄在任何公開的根憑證記錄中，所以會被瀏覽器出於安全性而阻止存取，12306 網站也在網站上要求使用者手工添加該根憑證，由於憑證缺少憑證吊銷列表等問題，同樣地也引發對該根憑證對使用者隱私安全的隱憂，或者和 CNNIC 根憑證一樣抱以不信任處理。使用者在支付票款時所使用的站點（即 pay.12306.cn）是使用由 Verisign 簽發的有效憑證。在 2017 年 12 月 12 日開始，主站點陸續開始更換為由 DigiCert 簽發的憑證，直至現在，全站已更換為 DigiCert 簽發的憑證。

## 參考資料