证书透明化是一项旨在提高PKI生态系统安全和问责性的开放式框架。在CT出现之前,CA体系存在一个潜在风险:如果某个CA被黑客攻破或内部人员违规操作,可能会在无人察觉的情况下签发一张恶意证书。这张证书可能被用于中间人攻击,而网站所有者和用户却完全不知情。CT的诞生,就是为了让每一张SSL证书的签发都“暴露在阳光下”。
一、CT的核心目标:监测和审计
CT的核心思想非常简单:强制或鼓励CA将其签发的每一张SSL证书,记录在多个公开的、防篡改的日志服务器上。这样一来:
对网站所有者: 可以监控这些公开日志,确保没有未经自己授权、但代表自己域名的证书被任何CA签发。一旦发现,可立即向CA和浏览器厂商投诉,要求吊销该恶意证书。
对证书颁发机构: 其签发行为受到公开监督,任何不当操作都会被迅速发现,从而促使CA加强内部安全控制。
对公众: 整个证书生态系统变得可审计、更透明,增强了整体信任。
二、CT是如何工作的?
CT系统主要由三个部分组成:
证书日志: 这是核心,是由不同机构运营的公开、只可追加的日志服务。CA在签发证书后,必须将证书提交到一个或多个日志服务器。
可验证的证书时间戳: 日志服务器在收到证书后,会返回一个名为“签名证书时间戳”的收据。这个SCT是证书已被成功录入日志的密码学证明。
监控服务: 网站所有者可以使用各种监控服务,定期检查公开日志,看是否有包含自己域名的新证书被记录。
审计器: 用于验证日志的完整性和一致性,确保日志本身没有被篡改。
三、SCT的传递与浏览器要求
为了证明自己的证书是“透明”的,网站在与浏览器建立TLS连接时,必须向浏览器提供SCT证据。传递方式有三种:通过OCSP装订、通过TLS扩展,或直接嵌入在证书中。
目前,主流浏览器已强制要求对公开信任的SSL证书实施CT政策。如果一张证书没有提供有效的SCT,浏览器可能会拒绝信任它。
总结:
证书透明化就像为整个证书生态系统安装了一个全局的“监控摄像头”。它通过公开记录所有证书的签发行为,极大地增加了签发恶意证书的难度和风险。即使恶意证书被签发,也能被快速发现和吊销。CT并未改变SSL证书的技术原理,但它通过增加一层强大的社会化和公开化的监督机制,显著提升了HTTPS生态系统的整体安全性和可靠性。