SSL与TLS加密协议的攻击剖析
1. 填充预言机攻击基础
1.1 基本原理
在使用RFC 2040填充方式且服务器返回填充错误消息的情况下,攻击者能够逐块、逐字节地计算密文的明文。攻击者通过尝试不同的填充值来获取服务器的响应,以此推断出明文的字节信息。例如,对于倒数第三个字节,攻击者使用填充值0x03 0x03 0x03,依此类推,直到找到第一个密文块的所有明文字节。若攻击者确定了第一个明文块的所有字节,利用CBC模式的对称性,可将相同的攻击方法应用于其他明文块。以恢复 $m_2$ 为例,攻击者将 $c_1$ 作为初始化向量(IV),$c_2$ 作为密文,然后从最后一个字节开始逐字节确定明文。
1.2 攻击效率
平均而言,解密一个字节仅需向服务器发送128次请求,且密钥长度对该攻击的影响不大。
1.3 流程图
graph TD;
A[攻击者发送不同填充的密文] --> B[服务器处理密文];
B --> C{填充是否正确};
C -- 是 --> D[攻击者获取明文信息];
C -- 否 --> A;
2. TLS中的填充预言机
2.1 完整性保护与填充检查
TLS采用MAC-then-PAD-then-ENCRYPT范式进行完整性保护,这意味着在验证MAC之前必须先检查填充的正确性。因为只有在移除填充后,才能确定MAC在明文中的准确位置。所以,TLS明文的完整性保护本身并不能防止填充预言机攻击,是否暴露
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



