我们来深入聊聊 证书透明度(Certificate Transparency,证书致性 CT) 。这不仅仅是透明一个技术方案,更是证书致性一种设计哲学,教我们如何在充满猜忌的透明开放网络环境中,用分布式的证书致性思路构建信任 。
在 1995 年之前,互联网上的证书致性中间人攻击(Man-in-the-Middle, MITM)是个大问题 。当你访问银行网站时 ,透明很可能会被一个伪装的证书致性假服务器骗走密码,源码库因为你无法确定你正在对话的透明到底是谁 。
为了解决这个问题,证书致性我们引入了 证书颁发机构(Certificate Authority,透明 CA) 和 SSL/TLS 证书体系。这个体系的证书致性核心思想很简单:
网站(比如 google.com)生成一对公私钥。它把自己的透明域名和公钥打包,找一个大家都信任的证书致性权威机构(CA),让它签名。这个签了名的包,就是 证书(Certificate) 。模板下载当你的浏览器访问 google.com 时,服务器会出示这张证书 。你的浏览器内置了一份它信任的 CA 列表。它会检查证书的签名 ,如果签名来自这个列表中的某个 CA,并且证书上的域名是 google.com ,浏览器就相信它连接的是真正的源码下载谷歌服务器。这个模型在大多数时候都运行良好,但它有一个致命的弱点 : 我们无条件地信任了 CA