根证书是互联网安全的支柱之一。它们是通过 SSL/TLS 证书、提供数字签名等等。但它们究竟是如何工作的,为什么它们如此重要?本文将解释您需要了解的有关根证书的所有信息。
什么是根证书?
根证书是由 SSL.com 等证书颁发机构 (CA) 颁发并进行数字签名的特殊数字证书。它代表证书层次结构中的最高信任级别。根证书有时被称为信任锚,因为它们是颁发证书的最终验证来源。
当 CA 向网站等实体颁发证书时,必须通过追溯到受信任的根证书来验证证书。根证书包含验证该信任链所需的公钥。根证书通常是自签名的,这意味着它们的签名是使用证书自己的私钥生成的。
所有主流网络浏览器和操作系统都预装了一组来自主要证书颁发机构的受信任根证书。这允许它们自动验证 SSL/TLS 用于保护和识别网络服务器的证书,之后浏览器会显示该证书是可信的,网络服务器是安全的。同样,Adobe 维护着一个受信任的根信任库,用于数字签名,而 Microsoft 维护着一个受信任的根信任库,用于代码签名。
信任等级
根 CA 位于认证层次结构的顶部,该层次结构向下级联为中间证书和最终实体证书:
- 根证书(例如 SSL.com 的自签名根)代表最终信任。
- 中级证书——由根 CA 签名。
- 终端实体证书——颁发给用户和服务器,由中间人签名
通过分工,中级 CA(也称为“颁发 CA”)可以每天颁发证书,而无需访问受到高度保护的根密钥。根密钥可以离线保存,并且仅偶尔用于生成中级 CA 和其他特殊证书,例如时间戳或 CRL。
当中间机构颁发数字证书时,证书中包含颁发 CA 签名和链接回根证书的证书链。此证书链用于验证最终证书。
根证书的重要性和功能
根证书有几个关键功能:
- 信任锚 – 它们是建立信任链的信任锚。所有由 PKI 可以通过追溯到根来进行验证。
- 安全 Web 浏览 – 启用安全 HTTPS 连接。浏览器通过将网站证书链接到受信任的根来验证网站证书。
- 验证软件 – 用于验证数字签名的软件,如操作系统更新、应用程序、实用程序等。根据根检查签名。
- 加密通信 – 通过启用与根签名配对的加密来实现安全的电子邮件和数据传输。
- 如果没有根证书,就没有中心化机制来建立证书和公钥的信任。它们为公钥加密提供了权威的信任来源。
主要根证书颁发机构
大约有 60 个机构运营公共信任根证书计划。SSL.com 就是一个典型例子,它充当根 CA。在向需要 SSL 证书的域所有者颁发中级 CA 证书之前,我们会使用广泛的验证程序。我们的根密钥受到安全设施中的硬件和软件的保护。
微软、苹果、Mozilla 和 Oracle 等主要组织决定在其软件中默认信任哪些根 CA。同样,Adobe 拥有一个根信任库,这些根信任库用于颁发文档签名证书,这些证书的签名被 Adobe 读者视为有效。除了浏览器软件之外,微软还维护一个根信任库,这些根信任库的代码签名证书是可信的。像 SSL.com 这样的 CA 必须满足严格的要求才能成为嵌入在根存储中的公共信任证书颁发机构。通过充当根 CA,我们可以颁发受信任的证书,而无需依赖外部根颁发机构。我们的根证书是我们层次结构的信任锚。
浏览器和根证书
Web 浏览器预装了信任库,其中包含来自主要 CA 的 100 多个受信任的根证书。这允许它们验证 SSL/TLS 无缝用于 HTTPS 网站的证书。
当您访问使用 SSL 保护的网站时/TLS,浏览器将:
- 接收网站的证书和中间证书链。
- 将信任链验证回内置的受信任根证书。
- 检查域名是否与网站证书相符。
- 显示安全锁图标并允许加密连接。
如果浏览器遇到无效的证书、不受信任的根或域名不匹配,它会向用户发出警告。
浏览器还具有证书管理工具,可用于查看根 CA 并做出信任决定。Chrome、Firefox、Edge 和 Safari 允许用户查看、导出或禁用根证书。
安装和管理根证书
虽然操作系统和浏览器都预装了根证书,但在某些情况下你可能需要安装额外的根证书:
- 信任贵公司的私人 PKI 证书链
- 如果使用新的或不熟悉的证书颁发机构
- 解决“不受信任的证书”错误时
根证书可以全局安装在操作系统级别,也可以本地安装在浏览器或应用程序级别。在 Windows 上,证书管理器处理受信任的根证书。在 Mac 上,根证书位于 Keychain Access 中。在 Linux 上,根证书位于 /etc/ssl 下。SSL.com 在我们的网站上提供根证书和中间证书供下载。
安装新根时,验证其有效性和来源是否可靠非常重要。安装后,无效或受损的根可能会被取消信任或删除。但是,撤销对主要公共根的信任可能会导致大范围的应用程序崩溃。
根证书的到期和续订
根证书的有效期长达 20 年或更长。但出于安全原因,它们最终还是会过期。随着根证书即将过期,CA 必须推出新根证书,并让用户和软件过渡到信任新密钥。
过期、陈旧或不受信任的根证书将产生以下影响:
- 浏览器中的无效证书警告
- 证书链断裂导致连接错误
- 软件无法验证签名检查
管理根过期的最佳实践包括:
- 在较长的时间段内更新重叠的根密钥
- 使用平行根和重叠有效期
- 在客户端软件更新中分发新根
- 过渡完成后撤销/删除旧根
适当的根证书生命周期管理对于避免可信通信和软件验证中断至关重要。
保护根证书密钥
由于根证书在建立信任方面发挥着重要作用,因此必须对与根证书相关的私钥进行高度保护。行业标准建议:
- 将密钥离线保存在硬件安全模块 (HSM) 等安全存储中
- 维护精密的物理和软件安全
- 仅在必要时访问,使用多方控制
- 仅在安全加密模块内管理密钥
- 不再需要私钥时彻底删除
遵循严格的密钥仪式程序和根 CA 的职责分离可保护 PKI 信任锚免受妥协。