我们来深入聊聊 证书透明度(Certificate Transparency,证书致性 CT) 。这不仅仅是透明一个技术方案,更是证书致性一种设计哲学
,教我们如何在充满猜忌的透明开放网络环境中,用分布式的证书致性思路构建信任。 在 1995 年之前,互联网上的证书致性中间人攻击(Man-in-the-Middle, MITM)是个大问题。当你访问银行网站时
,透明很可能会被一个伪装的证书致性假服务器骗走密码,源码库因为你无法确定你正在对话的透明到底是谁
。 为了解决这个问题,证书致性我们引入了 证书颁发机构(Certificate Authority,透明 CA) 和 SSL/TLS 证书体系
。这个体系的证书致性核心思想很简单 : 这个模型在大多数时候都运行良好
,但它有一个致命的弱点
: 我们无条件地信任了 CA 。全球有上百个 CA,只要其中任何一个被黑客攻破,或者内部出现恶意行为,它就可以为任何域名签发“合法”的证书 。 想象一下 ,一个不知名的 CA 被黑了,攻击者用它签发了一张 your-bank.com 的证书。然后通过 DNS 欺骗等手段,把你引向一个假冒的香港云服务器银行网站
。你的浏览器会看到一张“有效”的证书
,于是放心地建立了连接,你的密码就这样被盗了。你和银行本身可能都对此毫不知情
。 这就是 CT 要解决的核心问题:CA 签发证书的过程是一个黑盒子
,出了问题我们很难发现。CT 的高防服务器目标就是把这个黑盒子砸开
,让一切都公开、透明。 证书透明度(Certificate Transparency, CT)的本质,是构建一个公开的
、只能追加 、不可篡改的 日志系统(Log) 信任的透明危机:为什么需要证书透明度 ?
CT 的三大核心组件与工作流程