所有认证机构(包括Let’s Encrypt在内)在签发数字证书时,都会借助根证书与中间证书对用户证书进行签名验证。这套流程被称为证书链机制,当申请者提交证书请求后,根证书会先对中间证书进行签署,再由中间证书对最终的用户证书完成签名。
Let’s Encrypt近日发布了两个全新的根证书以及六组中间证书,接下来我们聊聊其中一些值得关注的亮点。
根证书与中间证书究竟有何区别?
图片
无论是Let’s Encrypt还是其他CA机构,在签发证书过程中都依赖于根证书与中间证书共同构建的信任链条。
通过证书链机制,根证书负责为中间证书背书,中间证书则进一步为终端用户证书提供签名支持。
当TLS客户端(例如Chrome浏览器)反向逐级验证证书签名时,最终由谁来确认根证书本身的合法性呢?
这就需要浏览器厂商预先将CA机构的根证书纳入信任存储中。
因此,Let’s Encrypt本次发布两个根证书后的首要步骤,是向Apple、Chrome、Microsoft、Mozilla等平台申请根证书集成。
为何需要更换证书?因为根证书本身具有有效期限制。
例如本次推出的两个根证书有效期均为20年。
那为何要同时推出两个根证书?其实是为了实现冗余备份吗?
新的ISRG根证书YR采用RSA 4096位加密算法,而另一个ISRG根证书YE则使用ECDSA P-384椭圆曲线加密密钥。
理解了吗?为了适应不同场景需求,提升密钥算法强度与密钥长度可以有效增强用户安全性。例如,如果您申请的证书不需要考虑算法兼容性问题,就可以让Let’s Encrypt使用更严格的YE根证书进行签名。
为什么证书体系中需要包含多个中间证书?
理论上单一中间证书最为理想,因为证书体积更小,TLS通信时传输效率更高。
中间证书的引入实际上是为了提升系统灵活性。
例如Let’s Encrypt在起步阶段时,其根证书未能立即被Apple、Chrome、Microsoft、Mozilla等平台收录,因此它将自己的根证书作为中间证书,交由其他知名CA机构的根证书进行交叉签名。
现在明白了吧?
同理,本次两个新根证书在推广初期也会面临时间窗口问题,因此会先使用现有的X1、X2根证书对新根证书YR、YE进行中间签名过渡。
图片
那么为什么要设置六个中间证书呢?
在用户申请证书时,系统会随机选用不同的中间证书进行签名生成。
这样设计的目的是避免中间密钥固定化,从而提升整体安全性。
许多TLS客户端依赖固定的中间证书链进行验证,而非直接使用根证书验证签名,这种行为实际上存在安全风险。
中间密钥轮换机制正是为了解决这一问题!
还有哪些有趣的细节值得探讨?
