BEAST 攻击
BEAST 攻击 是什么?
BEAST 攻击Rizzo 与 Duong 于 2011 年披露的针对 SSL 3.0 与 TLS 1.0 CBC 密码的选择明文攻击(CVE-2011-3389),利用可预测的 IV 恢复 HTTPS Cookie。
BEAST(Browser Exploit Against SSL/TLS)由 Juliano Rizzo 与 Thai Duong 于 Ekoparty 2011 大会上披露,对应 CVE-2011-3389。SSL 3.0 与 TLS 1.0 在各记录之间链接 CBC 初始化向量:记录 N 的 IV 就是记录 N−1 的最后一个密文块,因此在下一条记录发送之前,网络攻击者就已知晓该 IV。这使加密变成了一种 IV 可预测的 CBC 方案,容易遭受按块自适应的选择明文攻击。
实际利用将中间人攻击与运行在受害者浏览器中、由攻击者控制的 JavaScript(最初是利用同源弱点的 Java applet)结合起来。攻击者将一个未知的秘密字节——比如会话 Cookie 中的某一字节——对齐到 CBC 块的末尾,然后猜测该字节:当产生的密文块与先前观察到的某个密文块匹配时,该猜测即被确认。通过每次将边界移动一个字节,整个 Cookie 可以以每字节约 256 次猜测的代价恢复,而非 256^n 次。
缓解措施:TLS 1.1+ 使用显式的、每条记录随机的 IV,因而免疫;浏览器引入了 1/n−1 记录分割(将一个字节单独放入一条记录中,以随机化下一个 IV);RC4 曾是权宜之计,直到其自身的偏差使其变得不安全。持久的修复方案是采用 AEAD 密码(AES-GCM、ChaCha20-Poly1305)的 TLS 1.2/1.3,它们在记录加密中放弃了 CBC。
flowchart TD
M[MITM observes TLS 1.0 CBC records] --> J[Attacker JS injects chosen plaintext]
J --> A[Align secret cookie byte at block boundary]
A --> G[Guess byte using prior ciphertext block as known IV]
G --> C{Ciphertext block matches?}
C -->|Yes| R[Byte recovered, shift boundary]
C -->|No| G
R --> D{Cookie complete?}
D -->|No| A
D -->|Yes| S[Session cookie stolen]● 示例
- 01
通过恶意 Java applet 从 TLS 1.0 银行站点窃取认证 Cookie。
- 02
在 CBC 模式 HTTPS 会话中按字节解密 HTTP 请求头。
● 常见问题
BEAST 攻击 是什么?
Rizzo 与 Duong 于 2011 年披露的针对 SSL 3.0 与 TLS 1.0 CBC 密码的选择明文攻击(CVE-2011-3389),利用可预测的 IV 恢复 HTTPS Cookie。 它属于网络安全的 攻击与威胁 分类。
BEAST 攻击 是什么意思?
Rizzo 与 Duong 于 2011 年披露的针对 SSL 3.0 与 TLS 1.0 CBC 密码的选择明文攻击(CVE-2011-3389),利用可预测的 IV 恢复 HTTPS Cookie。
如何防御 BEAST 攻击?
针对 BEAST 攻击 的防御通常结合技术控制与运营实践,详见上方完整定义。
BEAST 攻击 还有哪些其他名称?
常见的别称包括: BEAST。