根證書

<image>

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

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

## 鑰匙典禮

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

## 根憑證計劃

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

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

## 自行安裝根證書

<image>

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

### 警告

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

### 截取通訊

<image>

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

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

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

### 防禦方法

要避免中間人攻擊置換假冒的電子證書，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，遭谷歌拒絕承認其憑證。

沃通被揭發在短短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簽發的證書。

### 哈薩克斯坦政府根證書

2015年至2020年間，哈薩克斯坦政府通過頒發並勸誘使用者安裝其頒發的網路根證書，試圖實現對HTTPS流量的監控，但遭到軟體廠商的抵制而未能成功。

### 歐盟根證書

2023年，歐盟計劃制定法規eIDAS 2.0，其中第45條規定禁止瀏覽器未經成員國批准下對某些政府指定的CA根證書進行現代安全檢查，意味著政府可以通過這些CA實現對HTTPS流量的監控，電子前線基金會、一些相關行業廠商（瀏覽器開發商，CDN服務商）和安全專家等對此表示擔憂或要求歐盟對此釋義。