由于我的工作,我在宣布POODLE漏洞后的几分钟内就意识到了该漏洞。我们当然在所有相关的地方都禁用了SSL 3.0。但是,我仍然不太了解该漏洞的工作原理。
我在这里阅读了Google研究人员发表的文章:https://www.openssl.org/~bodo/ssl-poodle.pdf,但并不太了解所说的“填充”。我相信会有其他人也有类似的问题。有人可以就攻击者如何利用POODLE漏洞以及如何破坏加密提供清晰,简单的解释吗?
最佳答案
请原谅我的英语。
根据我的理解如下:
在降级的旧版加密上填充Oracle
含义-计算加密请求的HttpRequestHeaders。最有趣的是秘密cookie或基本身份验证。
必要的–中间人攻击(冒充是客户端的服务器,而客户端则是服务器的机会)。
易受攻击的超级机密站点,它们通过使用https隐藏真实性和用户首选项来尝试应对mitm攻击,但允许在CBC模式下使用SSLv3.0。
机制-
1)攻击者注入了通常的页面Javascript,该Javascript向服务器发送秘密请求(通过攻击者),并通过响应获取命令。
2)在第一个请求下,攻击者等待,直到浏览器在CBC模式下降级到SSLv3.0。
3)延长路径和正文请求的长度,攻击者试图获取要攻击的标头字节是要加密的块的最后一个,并且将没有填充的请求的长度平均除以加密块的长度(L)。 (在这种情况下,要加密的最后一块文本将包含碎片和此集合长度的最后一个字节,即L-1)
4)将加密内容的最后一块替换为具有字节要攻击的加密请求块,然后将请求发送到服务器。
5)如果对服务器的请求被接受,则攻击者可以计算被攻击字节的值,否则,他必须从客户端的请求开始再次尝试(更改临时加密密钥并重新加密)。
数学-
P和C-纯文本和密文分别作为块数组,每个块都是字节数组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
关于security - Poodle 漏洞的简单说明?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26389313/