根证书

在密码学和计算机安全领域，**根证书**（**root certificate**）是屬於根证书颁发机构（CA）的公钥证书，是在公開金鑰基礎建設中，信任鏈的。证书颁发机构的角色有如现实世界中的公證行，保證網路世界中電子證書持有人的身份。具體作法是透過中介證書，利用數位簽章為多個客戶签发多个不同的終端實體证书，形成一个以其根证书為顶层的樹狀結構，在此传递关系中所有下層證書都会因為根证书可被信赖而继承信任基礎。

根證書沒有上層機構再為其本身作數位簽章，所以都是自簽證書。许多应用软件（例如操作系统、网页浏览器）会預先安裝可被信任的根证书，這代表用戶授權了應用軟件代為審核哪些根憑證機構屬於可靠，例如是公認可靠的政府機關（如香港郵政）、專職機構（如Google、Let's Encrypt、CAcert.org、Comodo、DigiCert、GlobalSign）等。應用軟件在建立安全連接時，例如使用网页浏览器造訪一個網站，会執行，使用該主機提供的電子證書，驗證是否能夠對應到預先安裝的根證書，從而验证從根證書到終端節點的路徑是否為一條有效的信任鏈，確保TLS安全连接中的身份。但是，这意味着用户信任浏览器的发布商、它所預先安裝的证书颁发机构，以及这些证书颁发机构可能颁发的所有中间证书颁发机构，相信他们忠诚地确保各证书持有人的身份和意图。

## 鑰匙典禮

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

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

在不少较为发达的国家和地区，都已立法承認數位簽章擁有等同親筆簽名的法律效力，並列出在法律上可被信任的根憑證（如欧洲联盟、香港、台灣）。

## 自行安裝根證書

雖然應用軟件會根據審核標準預載一系列可靠的根證書，但用戶仍然可以透過介面自行增刪其電腦上所安裝並信任的根證書清單。有時候，用戶連接某些網站時，會得到來自應用軟件（瀏覽器）的安全警告，但基於實際情況，仍然可能選擇信任網站，跳過警告以繼續；典型的例子是一般家用路由器，這些家用路由器的設定介面一般是以網頁形式在瀏覽器上執行，如果設定成為「以HTTPS連接」，則其原廠設定所使用的電子證書一般為自簽證書，即未經憑證機構數位簽章擔保，但用戶仍然可能選擇跳過警告，甚至在瀏覽器的信任根證書清單增加路由器的自簽證書，以便日後再設定時不必再收到瀏覽器的安全警告。另外一種情況，就是企業內部网的企业级软件，企業的資訊工程部門可能在員工的電腦上安裝了企業自行管理的根證書，使企業軟件不必倚賴外間第三者的憑證機構，而是可以自行擔當企業內部的憑證機構；但是這些根憑證可能未被廣泛認可，只在企業內部適用。
### 警告
自行安裝根證書，或跳過應用軟件的安全警告，都可能會使用戶面對資訊安全風險，可能使應用軟件的保固條款失效，甚至使用戶的法律權益受損。尤其是在知名網站、銀行及政府機關等都不應有這種需要。使用者需自行了解所要安裝的根證書的加密技術、所屬網站的真實身份及用戶的法律權責。

### 截取通訊

無論是出於企業為了保障網路安全、或為了監控員工、或间谍软件和特洛伊木马為了竊取用戶資訊，只要有人得到用戶電腦的控制權，可以任意安裝根憑證，並且可以進行域名服务器缓存污染或控制網路路由，就可以進行中间人攻击以解密用戶與遠端伺服器之間的安全連線，以下用愛麗絲與鮑伯作範例：
# 假設愛麗絲的電腦已在較早前被馬洛里安裝了特定的根憑證，馬洛里擁有對應的私鑰
# 當愛麗絲嘗試與鮑伯建立安全連線時，馬洛里以代理服务器的身份先行收到連線請求
# 馬洛里暫時擱下愛麗絲的請求，轉而建立另一條連線向鮑伯請求他的電子證書
# 鮑伯的電子證書已得到一個受廣泛認可的認證機構數位簽章，如果馬洛里如實轉交給愛麗斯，一切都不會有問題
# 但馬洛里使用自己的私鑰簽發一個電子證書，證書上主體名稱聲稱是屬於鮑伯，並交給愛麗斯，而鮑伯不曾知道
# 愛麗斯驗證收到的電子證書，根據其信任鏈，她找到簽發的根證書
# 她發現自己的電腦中已安裝並信任這樣一個根證書，便信以為真，開始使用證書上的公鑰與鮑伯的秘密通訊
# 其實該根證書就是馬洛里早前安裝上去用以欺騙愛麗斯，這時馬洛里能夠利用自己的私鑰解密愛麗斯傳出的密文，並即時再用先前收到、鮑伯真正的電子證書上的公鑰再加密，並傳給鮑伯
# 鮑伯收到密文時不虞有詐，他能夠用自己的私鑰解密馬洛里傳送過來的密文
由此可見，愛麗斯與鮑伯都以為他們可以安全通訊，但卻不知道馬洛里可以在中間竊聽，甚至篡改通訊內容。

### 防禦方法
要避免中間人攻擊置換假冒的電子證書，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服务商）和安全专家等对此表示担忧或要求欧盟对此释义。

## 参考资料