为什么 LoRaWAN 1.1 对 Join-Accept 消息使用 MAC-then-encrypt?

物联网 安全 罗拉万 标准 密码学
2021-06-28 06:40:19

在 LoRaWAN 1.1 中。标准它在第 16 页上说“对于加入-接受帧,MIC 字段与有效负载一起加密,而不是一个单独的字段”。

在其他情况下,消息完整性代码是一个单独的字段,因此如果我理解正确的话,在生成 MIC 之前,消息会被加密。使用 Encrypt-then-MAC 被认为更安全

你知道为什么 MAC-then-encrypt 用于这种消息类型吗?

1个回答

对于所有 LoRaWAN 消息(JoinAccept 除外),MIC 必须可由中间网络组件访问,例如知道 NwkSKey 并且可以验证消息完整性并在失败时丢弃消息的转发网络服务器。

然而,临时网络元素不应该有关于 JoinAccept 消息完整性的信息。这是为了提高安全级别。

如果有人知道 JoinRequest 的 MIC,那么他可以猜测 AppKey/JoinNonce 并以编程方式检查它们是否正确。如果那个人投资了一个大型计算机农场并长期运行该网络,他可能会发现 AppKey 是什么。如果无法访问 MIC,则不可能。

您可能会说,坏人可以对常规上行链路消息执行相同操作。确实如此,但请注意 UL 消息是由会话密钥而不是主密钥签名和加密的。