TLS 攻击:BEAST、POODLE 与降级攻击
学习历史上的 TLS 攻击,以及 TLS 1.3 中的缓解措施
TLS 攻击:BEAST、POODLE 与降级攻击 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
攻击分类
TLS 攻击可分为三类:协议层攻击(BEAST、POODLE、DROWN)、密码学攻击(RC4 偏差、Lucky13)和实现层攻击(Heartbleed、BERserk)。TLS 1.3 通过移除易受攻击的算法,消除了协议层攻击。
BEAST(2011)
针对 SSL/TLS 的浏览器漏洞利用:攻击 TLS 1.0 中的 CBC 模式。在该模式下,每条记录的 IV 都是上一条记录的最后一个密文块,因此 IV 是可预测的。攻击者注入选定的明文块,通过选择边界攻击恢复会话 cookie。
BEAST 缓解措施
修复方法:使用 TLS 1.1 及更高版本(每条记录使用随机 IV),或者使用 RC4 替代 CBC(但这是糟糕的权衡)。现代修复方法是使用只支持 AEAD 的 TLS 1.3,不再使用 CBC。在 TLS 1.1 尚未广泛部署之前,浏览器通过 1/n-1 记录拆分来缓解 BEAST。
POODLE(2014)
降级旧式加密中的填充预言机攻击:攻击 SSL 3.0 的 CBC 模式。SSL 3.0 的填充不受完整性保护,因此可以构造填充预言机。攻击者通过连接失败迫使连接降级到 SSL 3.0,然后每约 256 次请求解密 1 个字节。
POODLE 缓解措施
完全禁用 SSL 3.0(TLS_FALLBACK_SCSV 扩展会标记有意进行的降级,从而防止恶意降级)。对于错误忽略 CBC 填充结构的 TLS 实现,POODLE 同样适用。
DROWN(2016)
使用过时且弱化的 eNcryption 解密 RSA:如果服务器与任何接受 SSLv2 的服务器共用 RSA 密钥,就可以针对 SSLv2 发起 Bleichenbacher 风格的填充预言机攻击,从而解密 TLS 1.2 会话。受影响的 HTTPS 服务器占 33%。
降级攻击
主动攻击者可以丢弃或破坏数据包,迫使两个端点协商使用更弱的协议或加密算法。TLS_FALLBACK_SCSV(RFC 7507)会标示客户端支持的最高协议版本,从而防止恶意降级。
Lucky13(2013)
CBC 模式 TLS 中的计时侧信道:MAC 验证时间会随填充长度变化。攻击者测量响应时间,以区分有效填充和无效填充,从而在网络上构造填充预言机。每个字节需要约 2^23 次预言机查询。
RC4 偏差
RC4 生成的字节存在偏差,其中第 2 个字节偏向 0。对于标头在固定偏移处重复出现的 TLS 会话(例如 cookie),使用约 2^24 个样本就可能通过统计方法恢复明文。根据 RFC 7465(2015),TLS 已禁止使用 RC4。
Heartbleed(CVE-2014-0160)
这不是 TLS 协议缺陷,而是 OpenSSL 的实现漏洞:Heartbeat 扩展会从目标缓冲区之后读取最多 64 KB 的数据,导致服务器内存中的私钥、会话令牌和密码泄露。当时 17% 的安全 Web 服务器存在此漏洞。
TLS 1.3 的防护
TLS 1.3 移除了 CBC 加密算法、RC4、SSL 2.0/3.0、静态 RSA 密钥交换和压缩。强制使用 ECDHE 可确保前向保密性。缩减后的加密套件列表消除了所有已知协议层攻击的攻击面。
快速检查
哪种攻击利用了 TLS 1.0 CBC 模式中可预测的 IV?
回顾
您已经学习了 BEAST、POODLE、DROWN、Lucky13 和 RC4 偏差攻击。TLS 1.3 消除了导致这些攻击成为可能的条件。下一步:了解 JWT 的结构、签名和漏洞。
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「TLS 攻击:BEAST、POODLE 与降级攻击」课时是免费的吗?
是的 — 「TLS 攻击:BEAST、POODLE 与降级攻击」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「TLS 攻击:BEAST、POODLE 与降级攻击」这节课中我会学到什么?
学习历史上的 TLS 攻击,以及 TLS 1.3 中的缓解措施 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「TLS 攻击:BEAST、POODLE 与降级攻击」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- TLS 1.3 握手详解
- TLS 记录层与密码套件
- TLS 中的证书验证
- TLS 攻击:BEAST、POODLE 与降级攻击