Convergence(CA 替代)如何防止其公证人也被 MITM'd?

信息安全 密码学 网络 tls 协议
2021-08-21 09:34:50

我一直在研究Convergence及其工作原理,但我无法弄清楚它如何有效对抗目标系统附近发生的 MITM 攻击。我的理解是,Convergence 的工作原理是请求多个公证服务器检查它们是否与您看到来自目标服务器的相同 SSL 证书。但是,攻击者不能以这样一种方式设置攻击,即目标服务器的所有流量都首先通过攻击者的服务器吗?我不知道这有多可行,但它会比从 CA 获得伪造证书更复杂(DigiNotar 开玩笑)吗?

我知道这只会影响尚未在本地缓存目标证书的用户,所以这可能不是一个问题。尽管如此,它似乎并不理想。只是想弄清楚 Convergence 是解决问题的方法还是只是另一种问题。

3个回答

在Perspectives Project中可以找到关于 Convergence 的详细信息,尤其是相应的Usenix 文章

能够向所有公证人“隐藏”服务器的攻击者(即,主要是在服务器的本地网络上工作的攻击者)就是作者所说的L服务器模型。最终,该攻击与使用“网络视角”的默认公证人“有效”。也就是说,公证人会将攻击者的证书视为“服务器的新证书”,这是有效的。然而,一旦攻击者停止主动攻击,旧证书就会再次可见,这会在公证人中引发警告标志:证书更新肯定是有效的,旧证书的重新出现暗示工作中的恶意行为。

然而,没有什么能阻止公证人使用其他验证策略,包括基于 CA 的验证,它有自己的问题,但抵制 MitM。

该系统有两个主要思想:

  • 将验证委托给外部服务器(公证人),使用多个具有共识法定人数的服务器来避免单点信任。这种委托已经存在于 X.509 寓言的上下文中,名称为SCVP(但 Convergence 协议相当简单)。

  • 让公证人利用他们的记忆来提高安全性。普通的 SCVP 服务器会依赖上下文无关的验证(真正的 X.509 方式),可能会有一些短时间缓存,但只是为了节省 CPU 成本,而 Convergence 公证人主要依赖于时间稳定性:他们假设 SSL 服务器对于给定的服务器,证书通常在一年或几年内保持不变;因此他们可以简单地检查 SSL 服务器证书是否仍然与以前相同。X.509 和 SCVP 可以处理服务器每 5 分钟获取一个新证书,这很棒,但在实践中完全没用。

Convergence 推理的一个基石是,如果攻击者能够成功击败公证人执行的检查,那么他也将能够在与传统 CA 对话时冒充服务器,从而也可以击败传统 CA 模型。因此,在安全方面,Convergence 并不比目前的情况更糟。请注意,X.509 可以做得更好;特别是, Convergence 并不真正支持撤销,而 Convergence 并不比传统 CA 差,这主要是因为现有客户往往不会检查撤销。

所以真正的融合并不是要让 SSL 更安全,而是要在不降低整体安全性的情况下杀死现有的 CA。

潜在地,公证人可以运行它希望的任何验证过程,包括正常的 X.509 路径验证(然后避免您建议的那种中间人)。由于可以预期公证员会比客户少得多,而且这些公证员会更加“安全意识”,因此我们可以得出结论,在未来某个时间点, Convergence 将真正提高 Web 安全性。然而,广泛使用 Convergence 的最直接后果将是权力的转变:Game Master 将不再是 Microsoft(决定哪个 CA 进入 Internet Explorer 默认识别的列表),而是运行公证员的人客户端默认使用的最佳网络连接(可能是 Google)。

Convergence 项目基于卡内基梅隆大学的Perspectives 项目。Perspectives Project 对此有更多信息。另见他们的论文

如果攻击者位于目标系统附近,这是可能的,但很难执行。从论文中:

Lserver + k · nm 妥协:这种攻击比之前的 Lclient + k · nm 方案更强,因为对目标服务链接的控制意味着即使是合法的公证人也会观察到攻击者的密钥。因此,即使少于 q 个公证人受到损害,客户也完全依赖时间安全。

其中“时间安全”定义为:

相反,我们使用“时间安全”的概念,这意味着只要客户端的仲裁持续时间阈值大于攻击的实际持续时间,客户端就是安全的

该论文还说:

虽然我们的模型允许任何网络或公证组件受到损害,但我们借鉴亚伯拉罕林肯并假设攻击者“有时可以欺骗所有 [组件],并且一直欺骗某些 [组件],但它不能一直欺骗所有[组件]。” 也就是说,我们假设攻击是:(1)局限于特定的网络范围或(2)持续时间有限,因为更容易检测和补救更大的攻击

因此,如果客户端和公证服务器没有缓存密钥(因为它们也缓存了密钥),这似乎是一个问题。如果攻击者可以一直欺骗所有系统,那将是可能的。但它应该仍然比现在更安全,因为我们有单点故障。

我对此的理解是这样的:

如果攻击者通过他们的服务器转发了您的所有流量,那么是的,他们可以停止到公证人的流量。

他们无法修改客户端和公证人之间的流量,因为客户端已经在本地存储了公证人证书的副本,因此如果来自公证人的响应与客户端存储的证书不匹配,则客户端不应接受响应.

[编辑]

目前有一个 Convergence 公证服务器的分支,它将使用 Google 的帮助(Google 证书查找)来帮助验证证书是否被一致地看到。