我们可以用 CT 摆脱 CA 吗?

信息安全 tls 公钥基础设施 证书颁发机构
2021-08-29 08:58:35

似乎对 CA 不好这一事实达成了共识,因为我们不能真正信任它们。

聪明人试图寻找替代方案,比如融合和观点,但他们不知何故未能流行起来。

现在我们有了证书透明度,但 CA 仍然存在。我们能摆脱它们吗?

例如,浏览器开始只检查证书是否记录在 CT 日志中,并停止检查它是否由受信任的 CA 签名。域所有者可以使用 ACME 之类的协议来记录自签名证书,并且浏览器可以将其视为受信任的。

这能行吗?

CT 日志是否足以用于 Internet 的 TLS PKI 基础设施并建立信任?

2个回答

根据评论进行编辑:

听起来您要问的问题是:

我不喜欢 CA 的“一篮子鸡蛋”的性质,那么我们是否可以设计一个新的 TLS 系统,其中每个证书都需要由多个 CA 签名?我们可以使用CT吗?

是的,您可以设计这样一个系统,以便多个 CA 必须一起工作来颁发假证书,这提高了标准。它不会改变需要 CA 并需要信任它们的基本性质,但至少您不必单独信任它们。

当前的 TLS 实现无法做到这一点,因为 X.509 证书对象只有一个 CA 签名字段。当前的 CT 实施也不是为此而设计的,因为 CT 日志旨在监控 CA 以确保他们正确地完成工作,而不是让自己成为 CA。

所以是的,有可能使用这样的系统获得类似 Let's Encrypt 的功能,但与当前技术不兼容。CA 并不理想,但(至少目前)世界似乎对将它们置于大量公众审查之下并在谷歌或 Mozilla 发现它们做不该做的事情时将它们从浏览器中撤出感到很高兴。

然而,关于 TLS 证书,我认为有一些棘手的问题很难处理:

撤销

PKI 的核心功能之一是能够联系颁发您的证书的 CA 并要求他们撤销您的证书。这可能是因为您存在安全漏洞(黑客攻击)并且您的私钥可能已被盗。这可能是因为您正在停用服务器并且不再需要证书。不管是什么原因,您希望下次浏览器尝试验证您的证书时,CA 会返回“NO!Cert Revoked!”。

CT 日志目前不跟踪这一点(这是 CA / OCSP 响应者的工作)。如果您使用多 CA 模型,那么我想在任何一个 CA 上撤销它都可以(但是我们又回到了单点故障模型,其中一个流氓管理员可能导致 DOS)所以这需要非常小心想法。

OV / EV 证书

根据您的问题,我认为您只有域验证 (DV) 证书的经验,这些是 Let's Encrypt 提供的可以通过自动化验证所有权的证书。还有另外两个类别 - 组织验证和扩展验证,CA 的人员在向他们颁发证书之前会进行广泛的记录检查、电话和可能的面对面会议,因为在这些级别中,不仅仅是正在验证的网站,但拥有它的整个公司。在那里你会看到一个嵌入了公司名称的绿色条:

bankofamerica.com 的 EV 证书

OV / EV 证书很昂贵(每年几百到几千美元),但我向你保证,许多公司购买它们是因为有额外的保证。这在任何非 CA PKI 模型中都很难实现。


以前的答案

似乎对 CA 不好这一事实达成了共识,因为我们不能真正信任它们。

很好,但你有其他选择吗?只有CT?那么是什么阻止我 CT 记录自签名证书google.com并能够 MitM Google 呢?

从您的评论中:

我们可以保证只有域所有者才能写入 CT 日志

...所以我需要提交我拥有该域的证明,并且CT日志服务器需要在将其添加到CT日志之前验证此证明?但是,如果 CT 日志管理员不值得信任并滑入实际上没有通过验证的人怎么办?您刚刚又发明了 CA,但现在 CA 和观察 CA 以保持诚实的人(CT 日志)是同一个人。

无论是否值得信赖,CA 都是 PKI 系统的必要组成部分。

CT 绝不会真正取代 CA 的原始功能;它只是使其可追溯和公开。

CA 还具有分配和委派 ACME 或 CT(直接)未涵盖的信任的功能。

CA 的主要问题是成本高(或成本太高),并且过去有些人没有按预期/要求完成工作——即验证、授权和验证认证请求,并向域以外的人颁发证书拥有者。CT 通过至少拥有谁创建了什么证书的可追溯来源来部分解决这个问题,并且连同他们的私人日志,我们可以检索谁做了所述请求。

您提出的解决方案并没有消除当前存在的风险(因此也不是更好),即有人冒充域所有者并为不受其控制的域请求证书。

CA 委托信任任务(如信任网络)的所有当前替代品都受到引导效应(又名鸡或蛋效应)的限制,因为您需要更大的一组已经受信任的站点/用户使用它。

为了将控制权返回给域控制器并为他们提供说明哪些证书有效的工具,我们有 DANE 倡议。然而,这高度依赖于 DNSSEC,而且这也不足以使 DANE 成为可行的替代品。

因此,目前我们没有其他方式来委派信任,只能使用 CA 为我们所有人完成这项工作,直到其他技术足够成熟并使用到足以最终取代 CA。