在没有 RC4 密码套件的情况下防止 BEAST 攻击

信息安全 加密 tls rc4
2021-08-14 19:06:25

在 Apache SSL 配置中使用以下密码来防止 BEAST 攻击是一种常见的做法:

SSLCipherSuite RC4-SHA:HIGH:!ADH

不幸的是,RC4 被发现存在缺陷,现在建议避免使用它。

来自 Nessus 的报告:

支持 SSL RC4 密码套件

远程主机支持在一个或多个密码套件中使用 RC4。RC4 密码在生成伪随机字节流方面存在缺陷,因此会在流中引入各种各样的小偏差,从而降低其随机性。

如果明文被反复加密(例如HTTP cookie),并且攻击者能够获得许多(即数千万)密文,则攻击者可能能够推导出明文。

解决方案

如果可能,重新配置受影响的应用程序以避免使用 RC4 密码。考虑将 TLS 1.2 与 AES-GCM 套件一起使用,但须受浏览器和 Web 服务器支持。

我尝试在我的 Apache SSL 配置中使用以下密码:

SSLCipherSuite HIGH:!ADH:!MD5

不幸的是,这很容易受到 BEAST 的攻击。如何在不使用 RC4 密码套件的情况下防止这种情况发生?

我们在 CentOS 6.5 上运行并使用以下 SSL 协议:

SSLProtocol -ALL -SSLv3 +TLSv1
1个回答

BEAST 是一种客户端攻击,因此您在服务器端所能做的就是避免让不知情的客户端将自己置于 BEAST 易受攻击的位置。但是,现代客户端(Web 浏览器)无论如何都不容易受到 BEAST 的攻击:

  • 客户使用记录拆分(通常为 1/ n -1)作为对策。
  • BEAST 要求浏览器内的恶意代码(Java 或 Javascript)能够向目标站点发送任意字节值的请求;目前还没有已知的方法来做到这一点(在 BEAST 演示时,作者发现了两个允许这样做的缺陷,但从那时起它们都已修复)。

仍然易受 BEAST 攻击的客户端是几年未更新的客户端,这意味着它已经存在更大的问题。

更通用的解决方案是使用不易受到特定攻击的 TLS 1.1 或 1.2。然而,即使客户端支持此类协议,他们也倾向于沉迷于肆无忌惮的重新连接,这使他们容易受到协议降级攻击。

可以说,对 BEAST 抱怨和磨牙的工具和人自己都迫切需要更新。“BEAST 预防”已经变成了一种有毒的教条,鹦鹉学舌令人作呕,对它的真正含义没有任何体面的理解。