GoSSIP_SJTU2015/08/19 10:24 0x00 前言 在上一讲中,我们已经介绍了Padding Oracle攻击的背景知识和基本原理。简单来说,攻击就是利用密文解密后填充是否正确这一信息,以此得到明文的部分信息甚至恢复出全部明文。在这一讲里,我们会按照时间序梳理一遍与此攻击相关并影响SSL协议安全性的重要学术文章,简单介绍文章的贡献,给出其影响及对现实应用的指导意义。 0x01 Padding Oracle的学术线 1998年,贝尔实验室研究员瑞士密码学家Daniel Bleichenbacher在顶级密码学会议CRYPTO上发表了一篇名Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS#1的文章,这算是Padding Oracle攻击的开山之作。文章给出了可用于实际攻击那些使用了PKCS#1v1.5填充规范的RSA的协议的一种有效方法,这些协议中就包含了当时已被广泛使用的SSL协议。此外,这篇文章的学术意义还在于,它也第一次表明了考虑加密方案的适应性选择密文攻击安全性是有实际意义的,实际中可以发起选择密文攻击(对于使用1024bit密钥加密的密文,恢复出对应明文需要大约一百万次Oracle查询,作者对此的描述为though not entirely as efficient)。文中给出的解决方案是,不要使用PKCS#1 1.5版本中的填充方案,而是转而使用OAEP。 然而在2001年,James Manger在CRYPTO上发表了文章A Chosen Ciphertext Attack on RSA Optimal Asymmetric Encryption Padding (OAEP) as Standardized in PKCS#1 v2.0,结果就是OAEP这种填充机制也是可以进行Padding Oracle攻击的,并且解密一条1024bit加密的密文,只需要大约1000次Oracle查询。这里需要额外提一句的是,SSL协议并不支持OAEP填充,所以目前TLS1.2中,使用的填充仍旧是v1.5中的方案。 以上都针对RSA的攻击,对应在SSL协议中,握手过程交换预主密钥的消息是攻击的点。而对于对称加密方案,首先提出Padding Oracle攻击的是Serge Vaudenay。在2002年EUROCRYPT上,在瑞士联邦理工大学(Swiss Federal Institute of Technologies,EPFL)领导安全及密码实验室(Security and Cryptography […]