哈希和 MAC 是否容易受到位翻转攻击?
Are hashes and MACs vulnerable to bit-flipping attacks?
假设 A 和 B 之间通过 不安全 介质进行加密通信,这样 A 和 B 就可以通过 DH 协议共享一个密钥。
如果A向B发送一条加密消息和消息的hash/MAC/HMAC,窃听者是否很容易截获hash/MAC/HMAC,更改其中的一些位,并且发给B?
B 无法检查 A 发送的所有消息的完整性,因此每次他从 A 收到消息时都会销毁它们,对吗?
B 将变为不可用 ???
谢谢
您描述的过程只是破坏数据的一种非常具体的形式。如果攻击者可以破坏数据,那么攻击者当然可以阻止 A 与 B 通话。攻击者可以将数据包丢在地上。这也会阻止 A 与 B 通话。
任何数据损坏,不仅仅是修改 HMAC,都会导致同样的情况。如果我修改经过身份验证的流,那么(未修改的)HMAC 将不匹配,它将被丢弃。
HMAC 的重点是确保完整性。它与可用性无关。只要连接通过它们,任何 Man-in-the-Middle 总是可以轻而易举地破坏任何系统的可用性。 (如果他们不能,他们就不是 MitM。)
假设 A 和 B 之间通过 不安全 介质进行加密通信,这样 A 和 B 就可以通过 DH 协议共享一个密钥。
如果A向B发送一条加密消息和消息的hash/MAC/HMAC,窃听者是否很容易截获hash/MAC/HMAC,更改其中的一些位,并且发给B?
B 无法检查 A 发送的所有消息的完整性,因此每次他从 A 收到消息时都会销毁它们,对吗?
B 将变为不可用 ???
谢谢
您描述的过程只是破坏数据的一种非常具体的形式。如果攻击者可以破坏数据,那么攻击者当然可以阻止 A 与 B 通话。攻击者可以将数据包丢在地上。这也会阻止 A 与 B 通话。
任何数据损坏,不仅仅是修改 HMAC,都会导致同样的情况。如果我修改经过身份验证的流,那么(未修改的)HMAC 将不匹配,它将被丢弃。
HMAC 的重点是确保完整性。它与可用性无关。只要连接通过它们,任何 Man-in-the-Middle 总是可以轻而易举地破坏任何系统的可用性。 (如果他们不能,他们就不是 MitM。)