作者:Conrado Gouvêa

上周,又发布了一次攻击事件,该事件影响了用于互联网安全通信的 SSL/TLS 协议。它被称为 DROWN(“使用过时和弱化的加密解密 RSA”),是涉及 SSL 协议及其在 OpenSSL 库中的实现的一系列错误的结果。它允许破坏客户端和服务器之间的连接的机密性,即使使用协议的现代版本。如果服务器支持 SSLv2 并且存在某些缺陷,则该服务器很容易受到攻击。要了解这种攻击,首先需要了解 SSL 协议的历史。

SSL 的发展历程如下:

  • SSLv2(1995年)
  • SSLv3(1996年)
  • TLSv1.0(1999年)
  • TLSv1.1(2006年)
  • TLSv1.2(2008年)

SSLv2 采用后不久,人们发现它完全不安全。该协议已被大幅修改,SSLv3 已修复其中许多缺陷。目前,没有理由使用 SSLv2。甚至装有 Internet Explorer 6.0 的 Windows XP 也已经能够使用 SSLv3(尽管存在问题,但并不像 SSLv2 那样完全不安全)。

理解 DROWN 所需的另一个要素是针对 RSA 加密版本 PKCS#1 v1.5 的填充预言攻击,该攻击由 Daniel Bleichenbacher 于 1998 年发现。使用 RSA 加密数据时,需要在加密消息之前添加“填充”。这种填充是一系列字节,可以防止一类重要的攻击;如果没有它,RSA 就会变得完全不安全。当解码消息时填充不正确时,实现会返回一些错误代码。填充预言攻击利用了这一事实。

填充预言攻击是致命的,原因如下:如果攻击者操纵加密消息,并且操纵的消息恰好具有正确的填充,则服务器将不会返回错误。这样,攻击者就会发现他所操纵的加密消息对应的消息具有正确的填充。通过使用不同的操作多次重复此操作,攻击者可以发现原始消息。

通过仔细实施(当存在无效填充时返回随机数据而不是报告错误)可以防止这种攻击。此保护已在 OpenSSL(包括 SSLv2)中实现。然而,正如我们将看到的,这还不够。

最后,为了理解 DROWN,必须记住 SSL 在使用 RSA 密钥协议时通常按如下方式操作:

  1. 客户端生成对称密钥;
  2. 客户端使用服务器的RSA公钥(使用PKCS#1 v1.5)加密此密钥并将其发送给服务器;
  3. 服务器解密(验证填充)并获取客户端选择的对称密钥,从而允许使用该密钥进行通信。

因此,多种因素共同导致了此次袭击:

SSLv2 具有可导出的加密套件。此类套房是应美国政府的要求,于 90 世纪 XNUMX 年代增设的。我们在 关于FREAK攻击的帖子.

  • 由于此类导出套件的密钥很小(40 位),因此即使受到 OpenSSL 的保护,攻击者也有可能使用填充 oracle 攻击。为此,它使用导出套件和暴力攻击来发现加密消息的填充是否正确。
  • OpenSSL 导出套件代码中的另一个缺陷使得填充预言机更加有效,从而允许实时进行攻击。
  • 由于 OpenSSL 中存在一个错误,即使禁用 SSLv2 也可以使用 SSLv2 密码套件,从而增加了易受攻击的服务器数量。
  • TLS/SSL 协议的最新版本仍然具有类似于 SSLv2 的结构(使用 RSA 密钥的对称密钥加密,但使用前向保密时除外)。这使得攻击者可以拦截使用 RSA 密钥加密的消息(对称密钥),并通过尝试连接到同一服务器(但使用 SSLv2 和拦截的加密消息)来利用填充 oracle 来破解它。

这样, 是一种跨协议攻击:它通过拦截安全协议中的一段通信,并在不安全的协议中使用该段通信,从而破坏安全协议。在这种情况下, SSLv2.

还需要注意的是,许多服务器对多种服务使用相同的私钥。因此,例如,如果 Web 服务器配置正确并且不允许使用 SSLv2,则在支持 SSLv2 的邮件服务器上使用相同的密钥仍然可以破解。

DROWN 的通用版本允许在 8 小时内断开连接,计算成本为 440 美元。如上所述,特殊版本允许实时攻击。

作为开发人员或负责 SSL/TLS 服务器的人员:

  • 将 OpenSSL 更新至 1.0.1s 或 1.0.2g
  • 禁用 SSLv2(如果可能,也禁用 SSLv3)

作为开发人员或 SSL/TLS 客户端管理员,或者作为最终用户:

  • 没有什么可以做的:攻击只依赖于易受攻击的服务器。

参考文献
https://drownattack.com/

您可能还喜欢:
Windows Server 为后量子时代开放 AD CS
一幅以蓝黑相间科技感为背景的电子横幅,作为关于AD CS和PQC(后量子密码学)文章第三部分的封面。横幅顶部中央醒目地印着“KRYPTUS 构建可信纽带”的标志。画面中央,一幅镶嵌在边框中的图像展示了一块电路板上闪亮的未来感十足的微芯片和蓝色的数据流,旁边还有一个显示时间“00:17:00:00”的数字计时器。右下角的图形元素标明了“第三部分”的字样。

系列:后量子过渡 · 第三部分 · 2026年5月27日 第三部分 阅读更多

路由器漏洞允许访问数据和文件
路由器漏洞允许访问数据和文件

作者:Kryptus 2018 年,Kryptus 开始分析可能存在的不安全因素 阅读更多