Poodle漏洞的简单解释?

时间:2014-10-15 18:13:19

标签: security ssl

由于我的工作,我在几分钟内就知道了POODLE漏洞。我们当然禁用所有相关的SSL 3.0。但是,我仍然不太了解漏洞是如何工作的。

我在这里阅读了谷歌研究人员发表的文章:https://www.openssl.org/~bodo/ssl-poodle.pdf,但并不真正理解所说的“填充”。我相信会有其他人有类似的问题。有人可以提供清楚简单的解释,说明攻击者如何利用POODLE漏洞,以及如何破解加密?

1 个答案:

答案 0 :(得分:0)

请原谅我的英语。 根据我的理解如下:

在降级的旧版加密中填充Oracle

含义 - 计算加密请求的HttpRequestHeaders。最感兴趣的是秘密cookie或基本认证。

必要 - 中间人攻击(为客户端伪装成服务器的机会,以及服务器的客户端)。

易受攻击 - 超级机密网站试图通过使用https隐藏真实性和用户首选项来处理mitm攻击,但允许在CBC模式下使用SSLv3.0。

机制 -

1)攻击者注入通常的页面Javascript,向服务器发送秘密请求(通过攻击者)并通过响应获取命令。

2)在第一次请求时,攻击者会等到浏览器在CBC模式下降级到SSLv3.0。

3)延长路径和正文请求,攻击者试图获取头部字节进行攻击是最后一个加密块,并且没有填充的请求长度除以加密块的长度(L )均匀。 (在这种情况下,要加密的最后一个文本块将包含碎片和此集合长度的最后一个字节,即L-1)

4)将加密内容的最后一个块替换为加密请求块,该块具有要攻击的字节,并向服务器发送请求。

5)如果对服务器的请求被接受,攻击者可以计算被攻击字节的值,否则他必须再次尝试,从客户端请求开始(获取临时加密密钥并重新加密)进行。)

数学 -

P和C - plain和cipher文本分别作为块的数组,每个都是一个字节数组,Dk - 解密函数。 i - 包含受攻击字节的块的编号,n - 最后一个块的编号。

P [i] [L-1] === Dk(C [i])[L-1] ^ C [i-1] [L-1]

L-1 === P [n] [L-1] === Dk(C [n] === C [i])[L-1] ^ C [n-1] [L- 1]

结合,我们获得

P [i] [L-1] = C [i-1] [L-1] ^ C [n-1] [L-1] ^ L-1