一些系统在解密给定密文时,验证填充是否有效,如果填充无效,则抛出错误。 这种看似无害的行为启用了一种称为padding oracle攻击的攻击。 发现许多知名系统容易受到此攻击,包括Ruby on Rails,ASP.NET和OpenSSL。
在本实验中,在容器中运行的两个Oracle服务器。 每个oracle内部都隐藏着一条秘密消息,它让我们知道知道密文和IV。 而且,对于我们提供的任何密文,它都会告诉我们填充是否有效。我们的工作是使用oracle的响应来找出秘密消息的内容。
先把之前运行的容器关掉,然后拉去本次实验所需环境

可以看到容器在运行了

Task1 熟悉padding
对于分组密码来说,当明文不是分组大小的整数倍时,需要填充,PKCS#5填充标准被大多数分组密码使用。
我们使用echo -n创建一个文件P,其长度为5

(如果不使用-n的话,长度会是6,因为echo会自动加上一个newline character)
然后使用openssl使用128位aes,cbc模式对其进行加密

为了看看在加密期间填充了什么,我们可以将其解密,但是默认的解密操作会自动移除填充内容,所以我们需要加上-nopad

本文探讨了padding oracle攻击的概念,通过实际操作演示如何利用Oracle服务器进行加密信息的破解,涉及PKCS#5填充、CBC模式AES加密,以及如何通过反复试验找出隐藏在加密中的秘密消息。
最低0.47元/天 解锁文章
846

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



