什么是 CT ?
在原始的 KPI/CA 体系中,并没有 CT 这样一个角色的存在。而引入这样一个角色,是为了解决 CA 体系 在结构上的弊端。
这篇博文讲述了 CT 的基本体系结构,而后简要介绍 CSS 2019
的论文 Certificate Transparency in the Wild: Exploring the Reliability of Monitors
。
现有 CA 体系的弊端
当前的 CA 体系,提供了一个用于确认公钥与实体对应关系的手段,是现代非对称密码学的基石之一。 但是这个体系的核心信任模型就是要相信“可信第三份”,也就是 CA 。换句话说,整个 TLS 体系要求整个互联网信任几百个 CA 实体可靠诚实的工作,这个条件看起来似乎是有一点好笑的。
当发生了一些安全事件,暴露出 CA 往往不能改按照我们预想的情况可靠的工作的时候,这个问题就变得非常明显了。但是 CA 机制是非常封闭的,原始 PKI/CA 体系不能提供任何对于 CA 的审计手段。唯一的监督措施就是这样一条基本原理 ———— 当 CA 犯错的时候,由根 CA 撤销其证书。这个惩罚其实是非常弱的,而且有一种事后诸葛的感觉。
如果一个 CA 由于主观或者客观的因素,签发了一张非法证书。那么攻击者可以使用这样的一张证书来假冒受害网站,或者发起中间人攻击,从而破坏了 TLS 体系身份认证的安全性。
所以 CT (Certificate Transparency) 的机制就是用于给 CA 体系补充这个审计的过程。
CT 体系的工作原理
CT 体系的工作原理是:当 CA 需要颁发一个证书的时候,需要将证书发送给 CT;由CT签名后,生成一个 SCT (签名证书时间戳);CA 得到 SCT 后将证书颁发。与此同时,CT 将证书信息记录在一个公开日志 log 上,以备用户和使用者查询。
但是 CT 的作为仅此而已,只能用于记录证书的颁发过程,并没有能够提供主动发现威胁的手段。因此需要一个审计者 auditor 的角色。
支持 CT 模式的客户端请求证书的时候,要求证书附着上 SCT 消息,并可能向 auditor 发起验证 SCT 的有效性。由 auditor 来检查 SCT 的真伪,并告知客户端。以此来保证这个证书被如实的记录在 log 日志上。
通过这种方式,CT提供了一种查询手段,使得网站所有者、用户以及第三方审计者可以审计某一个域名的所有证书。这样就可以避免某个 CA 误签发导致的安全事件。除了用户之外,也有一些第三方 monitor ,通过监视多个 log ,收集和整合数据。以此来减少用户的工作量(不再需要向所有 log 查询)
CT 体系的问题所在
在国科大和清华 Bingyu Li 等人的文章 Certificate Transparency in the Wild: Exploring the Reliability of Monitors
中之处目前 CT 仍然暴露非常严重的问题:
-
对于普通用户和网站所有者来说,监视所有的 CT log 是不显示的。由于日志产生速度过快,其存储和带宽已经超过了普通用户的承受能力,因此只能借助第三方 monitor 来提供安全审计的服务。
-
文章通过对 top 1000 以及 top 1M 网站的 log 的收集整理并和第三方 monitor 的结果做对比,发现目前第三方 monitor 的查询不能够保证所有结果都能够被收集到位。第三方 monitor 不能保证所有签发的证书都被搜出出来,这就导致了安全隐患。
-
文章给出了第三方 monitor 无法收集全部证书的原因的推测,并给出了建议。
其实从原理可以知道,能够收集到全部颁布的证书,并加以分析,是 CT 体系提供安全保障的核心所在。如果不能保障这一点,则整个 CT 体系都只能说降低的攻击风险,但无法从根源上解决问题。
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/lab/what-is-a-ct/。
如有其它需要,请邮件联系!版权所有,违者必究!