跳转到: 导航, 搜索

OSSN/OSSN-0045


易受攻击的客户端允许 TLS 协议降级 (FREAK)

总结

一些客户端库,包括未打补丁的 OpenSSL 版本,包含一个漏洞,该漏洞可能允许中间人 (MITM) 强制 TLS 版本降级。 尽管此漏洞存在于客户端,但一种名为 FREAK 的攻击在 TLS 服务器提供弱密码套件时是可利用的。 此安全说明提供了缓解服务器端 FREAK 攻击的指导,以便即使对于未打补丁的客户端,TLS 也提供合理的安全性。

受影响的服务 / 软件

任何使用 TLS 的服务。 根据后端 TLS 库,这可能包括 OpenStack 云的许多组件

  • OpenStack 服务
  • OpenStack 客户端
  • Web 服务器 (Apache, Nginx 等)
  • SSL/TLS 终止器 (Stud, Pound 等)
  • 代理服务 (HAProxy 等)
  • 其他服务 (eventlet, syslog, ldap, smtp 等)

讨论

TLS 连接是通过称为 TLS 握手的过程建立的。 在此过程中,客户端首先发送一条消息到服务器,称为“HELLO”,其中客户端列出了它支持的所有 TLS 加密密码套件。 在下一步中,服务器使用它自己的“HELLO”数据包进行响应,服务器选择客户端提供的密码套件之一。 之后,客户端和服务器继续安全地交换一个密钥,该密钥成为主密钥。

FREAK 攻击利用客户端逻辑中的一个缺陷,即易受攻击的客户端实际上没有检查服务器选择的密码套件是否是它们最初提供的密码套件之一。 这使得网络上的攻击者(位于客户端和服务器之间)可以更改客户端的 HELLO 数据包,删除所有选项,只留下被称为“出口级密码套件”的非常弱的密码套件。 如果服务器支持这些弱密码套件,它将(遗憾地)选择它,因为它看起来这是客户端支持的唯一选项,并将其发送回服务器 HELLO 消息。

出口级密码套件是过去美国政府禁止出口比非对称密码 512 位和对称密码 40 位更强的加密密码套件的遗留产物。 今天,这些密码套件使用商品硬件或云资源可以轻松快速地破解。

建议的操作

由于这是一个客户端逻辑中的漏洞,最佳选择是确保所有客户端更新到受影响库的最新版本。 有关升级 OpenSSL 的更多详细信息,请参阅下面“进一步讨论”部分中的 OpenSSL 建议链接。 由于假设所有客户端都已更新是不切实际的,因此我们还应在 TLS 服务器端进行缓解。

为了缓解服务器端的 FREAK 攻击,我们需要删除对任何弱密码套件的支持。 这是为了防止 MITM 强制协商弱密码套件。 特别是,我们需要删除对任何出口级密码套件的支持,这些密码套件尤其薄弱。

第一步是确定您的 TLS 服务器当前支持哪些版本。 有两种有用的解决方案:Qualys SSL Labs 的 SSL Server Test 可用于扫描任何可通过 Web 访问的端点,而 SSLScan 是一个命令行工具,它尝试使用所有可能的密码套件连接到服务器的 TLS 连接。 请参阅下面的“工具”部分,了解两个链接。

配置 TLS 部署中支持的密码套件的具体步骤取决于软件和配置,超出了本说明的范围。 一些好的起点在下面“配置 TLS 选项的资源”部分提供。

联系方式 / 参考文献