防止“padding oracle”如果数据是流式传输或对于 HMAC 来说太大,会发生攻击吗?
我知道针对 padding oracle 攻击的最佳解决方案是将 HMAC 包装并附加到完整的加密消息中。但还有什么其他解决方案呢?如果我的数据太大而需要流式传输怎么办?我可以在最后检查 HMAC,但我无法承担两次加载整个文件并首先检查 HMAC,然后将其流式传输并解密给用户的费用?
有不同的方法吗?
如果我使用 AES_CBC(zlib(data)),攻击者是否也可以进行填充预言机攻击?如果压缩后的数据最终出现乱码,zlib 会报错。攻击者是否也可以利用 zlib 的错误来获取一点信息?
I know that the best solution against the padding oracle attack is to wrap and append a HMAC to the complete encrypted message. But what other solutions are there? What if my data is so large that I need to stream it? I can check the HMAC at the very end, but I cannot afford loading the whole file twice and check the HMAC first and then stream and decrypt it to the user?
Are there different ways?
Can an attacker also do padding oracle attacks if I use AES_CBC(zlib(data))? zlib will emit errors if the compressed data is garbled eventually. Can an attacker use that error of zlib to get one bit of information, too?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
针对 padding oracle 攻击的建议修复方法是 Encrypt-Then-MAC。这意味着您可以将密文分解为大小合适的块(例如 4096 字节)和 MAC。
The suggested fix for the padding oracle attacks is to Encrypt-Then-MAC. This means that you can break the ciphertext up into conveniently-sized blocks (say, 4096 bytes) and MAC each individually.