如何防御 SSL-Exhaustion 攻击?

信息安全 tls 攻击预防 拒绝服务
2021-08-23 10:31:13

SSL-Exhaustion 攻击的问题多年来众所周知,但直到 THC 最近发布了他们的漏洞利用工具之前,没有人真正关心过。THC 在其发布中谈到了计数器测量:

不存在真正的解决方案。以下步骤可以缓解(但不能解决)问题:

1.禁用SSL重新协商

2.投资SSL加速器

可以通过修改 THC-SSL-DOS 来规避这些对策中的任何一个。一个更好的解决方案是可取的。应该有人解决这个问题。

想法 1 根本行不通,因为问题的核心不是基于 SSL 重新协商。我不确定想法 2,SSL 加速器。您需要多少个 SSL 加速专用系统来防止大型 SSL 耗尽攻击?这对普通的 SSL 服务器有意义吗?

所以我在这里要问的是,在核心问题的解决方案可用之前,我们能做些什么来防止此类攻击?我们如何保护依赖加密的服务器?

2个回答

“SSL 耗尽”是一种更普通的攻击,称为“不玩好”。从广义上讲,它是这样的:服务器提供网络服务,在服务器上,该服务不是免费的:当客户端到来时,服务器必须投入一些宝贵的 CPU 周期来响应该客户端。然后,“攻击者”就是模仿许多有需要的客户,使服务器负担过重的人。在 SSL 的情况下,由于涉及到密码学,因此投资是巨大的;但是,当服务器的工作量是简单地建立 TCP 连接所需的少量 CPU 和 RAM 时,这个概念也适用(这称为SYN flood,但从高层次的角度来看,这是同一件事)。

一种可能的对策(在 SSL 的情况下不可能,但它可以作为协议修改的一部分添加)是要求客户端提供“工作证明”。在 SSL 中,很容易模仿客户端连接的初始步骤,而无需执行任何硬加密工作(只需发送随机垃圾而不是预期的 RSA 加密的预主密钥或客户端 Diffie-Hellman 公钥):这是应该改变的。维基百科页面上有一些关于该主题的指针。

对于当前指定和部署的 SSL,您别无选择,只能:

  • 尝试尽早识别攻击者,例如来自同一 IP 的过多重复连接请求(这意味着您阻止了不是DDoS的DoS - 简单来说,攻击者将需要雇佣下属/僵尸);
  • 选择对服务器来说“便宜”的密码套件(不要使用过大的密钥!1536 位就足够了)(尝试 RSA 而不是 DHE_RSA);
  • 通过在其中加入更多的力量来对抗攻击者,例如硬件加速器或更多的 PC(PC 可能更便宜,但使用更多的托管空间,并且负载平衡需要一些额外的系统管理)。

我认为您错过了重点,THC 的工具不是关于利用系统的。它更多地是关于测试您自己的系统以确保您的安全。如果您担心,您应该做的第一件事是针对您自己的系统运行 THC-SSL-DOS,看看您攻击的可持续性SSL 没有损坏,它仍然是我们拥有的最好的东西。

减轻这种攻击的方法是使用轻量级密码套件正如您指出的那样,思科建议使用 SSL 硬件加速器($$$)并禁用 ssl 的“安全重新协商”。