知识卡片
数字证书用CA公证打破公钥可信分发的鸡生蛋问题
内容
签名机制本身有一个漏洞:公钥虽然可以公开,但”公开”在网络世界具体是怎样 一种操作?如果获取公钥这个请求本身在传输中被劫持篡改,攻击者返回自己的 公钥冒充真实服务方,之后就能用自己的私钥签名、让对方无条件信任——而且 这个验证过程不能再依赖加密来解决,否则又陷入[[对称加密与非对称加密的 密钥分发悖论及混合加密解法]]同样的循环。真实世界里,人与人之间除了靠 “共同私密信息”建立信任外,还有一条路:靠”权威公证人”背书(比如陌生人 自称警察,你可以去公安局核实)。数字证书体系照搬了这个思路:公开密钥 基础设施(PKI)里的证书认证中心(CA)扮演公证人角色,用自己的私钥对 “某个公钥确实属于某个身份”这件事做签名背书,生成的证书(X.509格式, 包含颁发者、有效期、主体信息、公钥信息、CA签名等字段)就是这份公证的 载体。这套体系能自洽的关键是:CA数量是可数的、值得信赖的CA证书(根 证书)在浏览器和操作系统出厂时就已经预置好,因此验证证书时不需要再 通过网络去获取CA的公钥——终于打破了”验证公钥需要先有一个可信公钥”的 循环依赖,给整套数字签名体系找到了一个不依赖网络的信任起点。
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第5章"架构安全性"
5.5.2节"数字证书"(源文件:_epub-src对应OEBPS/Text/chapter72.xhtml)
- 结论依据:原文说明公钥公开分发本身面临被篡改冒认的风险,进而类比
"权威公证人"信任模式引出CA和PKI体系,并指出根证书在设备出厂时已预置、
无须依赖网络即可验证,打破了鸡生蛋循环,直接支撑本卡片结论。
- 原始内容:由于客户的机器上已经预置了这些权威CA中心本身的证书(称为
CA证书或者根证书),所以我们能够在不依靠网络的前提下,使用根证书里面
的公钥信息对其所签发的证书中的签名进行确认。到此,终于打破了鸡生蛋、
蛋生鸡的循环。