使用哈希函数检查数据完整性以防止MITM攻击



我最近发现了一种方法,可以使用SHA-256这样的哈希函数来确保消息不会被中间的人篡改。对于我的知识,发送者发送原始消息时使用哈希函数对原始消息进行汇总,这确保了中间的人无法更改数据,因为哈希不匹配。我不明白的一点是,如果中间有一个人在篡改消息,为什么他不能更改哈希以匹配更改后的消息?。

中间的人可以修改请求的主体,然后根据新的钢化数据计算哈希。但只有当攻击者知道使用了什么类型的哈希函数和使用了什么salt时,这才有可能。因此,为了避免这种情况,总是使用公钥加密来共享salt,因为在这种情况下,salt被认为是一个密钥,如果你在客户端和服务器端对密钥进行硬编码,那么在服务器端我们可以认为它是安全的,但攻击者可以获取硬编码的密钥并将其用于恶意目的。

因此,在对希望完整性保持不变的数据应用哈希函数之前,请确保使用Defie-Herman密钥交换机制进行密钥共享。

希望这能回答你的问题。

最新更新