所以我一直在研究这个长度扩展攻击的概念,在我的研究过程中我注意到的一些事情对我来说并不是很清楚。
1.研究论文正在解释如何将某种类型的数据附加到末尾并制作新的数据。例如
所需的新数据:count=10&lat=37.351&user_id=1&long=-119.827& waffle =eggo& waffle =liege
(注意 2 华夫饼)。我的问题是,如果服务器端的解析器函数可以跟踪重复属性,那么整个长度扩展攻击会是无稽之谈吗?因为服务器会注意到重复的属性。用于检查任何重复项的适当解析器是否是与长度扩展攻击相比的良好解决方案?我知道 HMAC 方法和其他保护措施,但现在在这里专门讨论解析器。
2.Research 说只有易受攻击的数据是 H(key|message)。他们声称 H(message|key) 对攻击者不起作用,因为我们必须附加一个新密钥(我们显然不知道)。我的问题是为什么我们必须附加一个新密钥?我们在攻击 H(key|message) 时不会这样做。为什么我们不能相信我们将通过验证测试(我们将创建正确的哈希)以及如果解析器试图从中提取密钥,它将获取我们发送的块中的唯一密钥并从那里恢复?为什么我们必须发送 2 个密钥?为什么对 H(message|key) 的攻击不起作用?