目录
ABP 含义
ABP(Activation By Personalization)将终端直接绑定到特定网络,从而绕过JoinReq-JoinAccept
ABP 需要的参数
工作模式:选择class A, class B, class C
DevEUI: 设备唯一标识符, 64 位
DevAddr:设备短地址
AppSkey:(Application Session Key)是应用会话密钥,用于加密解密应用层数据(设备和AS之间的数据)
NwkSkey:(Network Session Key)是网络会话密钥,用于加解密网络层数据(设备和NS之间的数据)
ABP详细介绍
1)ABP意味着DevAddr和NwkSKey、AppSKey直接存储在终端中,终端一启动就拥有与特定LoRaWAN网络通信需要的信息。
2)每个终端有一组唯一的NwkSKey和AppSKey。
3)泄露一个终端的密钥不会导致其他终端的会话秘钥泄漏。构建这些密钥时应该避免轻易被推导导出(如从DevAddr或DevEUI中导出)。
4)在首次启动或重置后,终端应根据地区参数启用所有可用通道,并使用该区域的所有数据速率。
5)NS通过下行命令(RXParamsSetupReq、DlChannelReq、RXTimemingSetupReq和TXParamSetupReq)下发的的终端配置,即使在终端重置之后,也应该保留。
这样做的目的是确保终端设备在重置后能够继续使用之前的配置进行通信,而无需重新从NS获取配置信息。这样可以提高设备的稳定性和可靠性,并减少与服务器的通信负载。
需要注意,如果NS希望更新终端的配置信息,比如更改通道计划或数据速率限制等,它可以通过下行命令再次下发新的配置信息。终端设备在接收到新的配置信息后更新自己的配置。
6)在CCM*模式下,每个帧计数值只能在一次加密操作中使用。
因此,禁止ABP设备帧计数器重新初始化。ABP终端应持久存储帧计数器(例如,存在非易失性存储器中)。
CCM*模式是一种加密模式,用于在无线通信中保护数据的机密性和完整性。它使用一个计数器(帧计数值)以及CBC-MAC(Cipher Block Chaining-Message Authentication Code)进行加密和验证。
为了确保安全性,每当需要加密新的数据时,必须使用新的、先前未使用过的帧计数值。这是因为帧计数值在CCM*模式下起到了重放攻击防护的作用。如果同一个帧计数值被多次使用,攻击者可能会利用这种重放攻击来篡改或破坏通信数据。
ABP和OTAA的安全性
1)ABP设备在它们的整个生命周期里都使用相同的AppSkey,NwkSkey会话秘钥,有密钥泄漏和重放攻击的风险。
由于ABP设备预置了密钥,因此密钥管理机制较为简单。如果这些密钥在设备生命周期中被泄露或遭受攻击,攻击者可以使用这些密钥来解密和篡改设备通信数据。此外,由于密钥不会更改,攻击者还有可能进行重放攻击,即通过重复发送已经捕获到的通信数据来误导系统。
2)在对安全性要求更高的应用里,建议使用OTAA
由于OTAA在每次连接时都会与网络服务器进行动态握手和密钥协商,因此具有更高的安全性。它提供了更好的设备身份验证和密钥管理机制,减小了密钥泄漏和重放攻击的风险。
因此,在对通信安全性要求较高的应用场景中,例如物联网系统、金融领域或其他敏感数据传输,建议选择使用OTAA终端设备。这样可以增强应用的安全性,并提供更可靠的通信保护机制。