Heroku dynos 是不是容易受到 BEAST 的攻击? (TLS 1.0 CBC 漏洞利用)

Posted

技术标签:

【中文标题】Heroku dynos 是不是容易受到 BEAST 的攻击? (TLS 1.0 CBC 漏洞利用)【英文标题】:Are Heroku dynos vulnerable to BEAST? (TLS 1.0 CBC exploit)Heroku dynos 是否容易受到 BEAST 的攻击? (TLS 1.0 CBC 漏洞利用) 【发布时间】:2011-10-14 02:33:24 【问题描述】:

正在阅读 an article in The Register about BEAST,这使我看到了关于 SslStream, BEAST and TLS 1.1 的 SO 帖子

似乎缓解漏洞的最佳方法是首选a non-CBC cipher suite such as rc4-sha。

Heroku 目前是否更喜欢 CBC 密码连接?如果是,这是否意味着客户 dynos 目前容易受到 BEAST 的攻击?

我找到了OSWAP guide to Testing for SSL-TLS 并做了一些本地测试。

我还找到了Qualys SSL Labs test results for Heroku

Cipher Suites (SSLv3+ suites in server-preferred order, then SSLv2 suites where used)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)   DH 1024 bits (p: 128, g: 1, Ys: 128)  256
TLS_RSA_WITH_AES_256_CBC_SHA (0x35) 256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33)   DH 1024 bits (p: 128, g: 1, Ys: 128)  128
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) 128
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (0x16)    168
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa) 168
TLS_RSA_WITH_RC4_128_SHA (0x5)  128
TLS_RSA_WITH_RC4_128_MD5 (0x4)  128

由于服务器优先顺序将TLS_RSA_WITH_RC4_* 置于列表底部,我的结论是 Heroku 目前易受 BEAST 攻击。

很想听听在这方面有更多经验的人的意见。

BEAST 攻击易受攻击的不安全 (more info)

【问题讨论】:

【参考方案1】:

防御 BEAST 所展示的攻击的最佳方法是采用(在客户端和服务器中)TLS 1.1。在我看来,在它缺席的情况下,下一个最好的事情是 TLS_RSA_WITH_RC4_128_SHA,即使它被认为比 AES“更不安全”。 Wikipedia 对已知的 RC4 攻击有不错的报道。其中大部分是输出的偏差。为了让您了解攻击的严重性,请参阅***页面中的以下引文:

最好的这种攻击要归功于Itsik Mantin和Adi Shamir,他们展示了 密码的第二个输出字节偏向零 概率 1/128(而不是 1/256)。

还有:

COSIC 的 Souradyuti Paul 和 Bart Preneel 表明,第一个和 RC4 的第二个字节也有偏差。所需数量 检测这种偏差的样本是 2^25 字节。

RC4 中的以下偏差用于攻击 WEP:

..所有可能的 RC4 密钥,前几个字节的统计信息 的输出密钥流是非常非随机的,泄露有关信息 钥匙。如果将长期密钥和随机数简单地连接到 生成 RC4 密钥,这个长期密钥可以通过 分析大量使用此密钥加密的消息。

但是,SSL/TLS 不使用具有随机数的长期密钥,而是通过散列(使用 MD5 或 SHA1,正如您在 Qualys SSL 实验室测试中看到的那样)为每个连接建立一个新的 RC4 密钥(并在一段时间后刷新密钥)。

您可以在此sci.crypt discussion 中阅读更多关于此问题的意见(如果您忽略喷子)。

【讨论】:

很棒的反应!谢谢@michael-foukarakis

以上是关于Heroku dynos 是不是容易受到 BEAST 的攻击? (TLS 1.0 CBC 漏洞利用)的主要内容,如果未能解决你的问题,请参考以下文章

Heroku dyno 如何在被子下睡觉和醒来?

为啥我的 heroku 工人 dyno 不工作?

每月一天限制Heroku dyno

Heroku中的进程类型和Dynos有啥区别

将 Django 应用程序推送到 Heroku 后,Dynos 字段为空白

1 Heroku dyno 上有多少个 Rails 应用程序?