根证书

<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服务商）和安全专家等对此表示担忧或要求欧盟对此释义。