fieldtester.io

入网与安全

OTAA 和 ABP、设备的密钥,以及为什么网关无法读取您的数据。

OTAA 和 ABP

OTAA(空中激活):设备通过入网请求(join request)加入网络。它需要三个值:

  • DevEUI: 设备在全球唯一的编号(16 个十六进制字符),
  • JoinEUI(以前称为 AppEUI):标识入网服务器,
  • AppKey: 密钥(32 个十六进制字符)。

每次入网时,都会由这些值派生出新的会话密钥。OTAA 是推荐的方式。

ABP(个性化激活):会话密钥和设备地址是固定的。设备从不执行入网。这种方式更简单,但安全性较低,而且帧计数器不同步时容易出错。

加密

设备网关网络服务器应用服务器应用fieldtester.io有效载荷用 AppSKey 端到端加密用网络密钥签名,由网络检查只能看到加密的字节有效载荷在这里解密
有效载荷从设备到应用服务器始终保持加密。网关和网络服务器只能看到加密后的字节。

LoRaWAN 在两个层面上使用 AES-128:

  • NwkSKey(LoRaWAN 1.1 中有多个网络密钥):防止消息被篡改;网络用它来检查消息是否真实。
  • AppSKey: 对有效载荷进行端到端加密。网关和网络运营方只能看到加密后的字节;只有应用服务器才能将其解密。

帧计数器

每条消息都带有一个递增的计数器(FCnt)。网络会丢弃计数器值已经出现过的消息。这样可以防止有人重放旧的数据包。

如果 ABP 设备重启后从 0 重新开始计数,网络会丢弃它的消息。使用 OTAA 时,每次入网后计数器都会重新开始,这在 OTAA 下是正确的。