LoRaWAN设备的两种入网方式(ABP和OTAA)

目录

一、OTAA

1、名词解释

2、入网流程

二、ABP

三、两种入网方式的比较


一、OTAA

1、名词解释

(1)AppEUI:64位(8字节)的唯一标识符,用于标识特定的应用程序或组织(如果用的是chirpstack,终端这里可以配一个随机数)。

(2)DevEUI:64位(8字节)的唯一标识符,用于标识单个LoRaWAN设备,每个设备都有一个唯一的DevEUI。

(3)DevNonce:一个随机数,根据LoRa射频模块的RSSI(信号强度)算出。

(4)AppNonce:由服务端提供的随机值,用于计算NwkSKey 和AppSKey。

(5)NetID:网络ID,也用于计算NwkSKey 和AppSKey。

(6)DevAddr:32bit组成,用于标识当前网络中的终端设备,是在入网过程中由网络服务器NS 分配。

(7)AppSKey:应用会话密钥。

(8)NwkSKey:网络会话密钥。

2、入网流程

(1)终端节点发送Join_Request

        Join_Request格式如下:

         MHDR 为帧头,表示数据的类型(入网请求);入网请求会携带AppEUI和DevEUI,服务器会通过该数据决定是否允许设备入网DevNonce 是一个随机值,通过LoRa射频模块的RSSI(信号强度)算出。服务端会将收到的DevNonce进行存储 ,如果同一个AppEUI的DevNonce是重复发送,服务器会丢弃该入网请求。MIC是校验码,是通过AppKey计算得来的。

(2)服务器处理入网请求

        Join_Request发送至NS处,NS会通过MIC检查数据是否合法,如果合法会将请求交给AS处理。AS 根据报文中的AppEUI和DevEUI来判断是否接收入网请求。 

(3)NS下发Join_Accept

        如果服务器接受入网,NS将会下发一个Join_Accept命令帧。Join_Accept格式如下:

         AS验证设备后会生成AppNonce,NS会生成一个网络标识符NetID,还分配一个4字节的DevAddr。

(4)生成密钥AppSKey和NwkSKey

        终端节点收到Join_Accept后,会根据AppKey生成两个密钥:AppSKey和NwkSKey,生成方式如下:

NwkSKey

NwkSKey = aes128_encrypt(AppKey, 0x01 | AppNonce | NetID | DevAddr | DevNonce)

AppSKey

AppSKey = aes128_encrypt(AppKey, 0x02 | AppNonce | NetID | DevAddr | DevNonce)

        入网后,后续的通信都使用生成的AppSKey和NwkSKey进行加密和解密(AS端也会计算出AppSKey和NwkSKey),确保数据的机密性和完整性。

整体数据加解密过程大致如下图所示:

二、ABP

        ABP入网的方式比较简单,不需要像ABP那样动态获取信息。ABP这种方法比较简单粗暴,以chirpstack为例,我们可以直接在服务器上配置DevAddr,NwkSKey,AppSKey,然后在终端节点上直接配置与服务器相同的DevAddr,NwkSKey,AppSKey。因为已经直接进行配置,就不再需要join流程了。在这种情况下,这个设备是可以直接发应用数据的,当ABP终端成功发送了第一条数据之后,我们就认为ABP终端入网成功了。

三、两种入网方式的比较

        两种入网方式各有各的优势与短板,具体怎么选择我们还是要看设备以及环境等因素。

1、ABP

优点

(1)快速入网:ABP不需要执行join过程,可直接开始通信。

(2)无网络覆盖依赖:在网络信号弱或者不稳定的区域,ABP不依赖于设备与网络服务器的交互进行入网,因此在某些恶劣的网络条件下可能更可靠。

缺点

        安全性较低:设备的密钥在开始时就已经预设,若这些信息被泄露,攻击者可以伪装成设备进行攻击。

2、OTAA

优点

        安全性高:因为设备在入网过程中会通过网络服务器生成新的会话密钥(NwkSKey 和 AppSKey),并使用 AppKey 进行加密。这样,密钥在每次入网时都是唯一的。而且密钥动态生成,难以被提前获取或破解。

缺点

        依赖网络覆盖:在网络信号弱或不稳定的区域,OTAA 的入网过程可能会失败,因为设备需要与网络服务器进行交互。如果网络覆盖不好,设备可能无法完成入网过程。

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学代码的小信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值