问题描述
在过去的几个月里,我正在写我的博士论文,其中涉及以几种方式破坏 LoRaWAN(我正在研究网络安全)并且我离我的目标只有 1 毫米,但我很愚蠢地陷入困境事物。我正在使用安装有 microchip RN2483A Lora 芯片的 Libellium 板,我正在玩弄它。我已经设法向真正的网关/网络服务器发送任意的预制加入请求,现在我终于嗅到了我周围的下行链路数据包(我花了两天时间弄清楚下行链路消息是使用反极化完成的,因为它,我快疯了)。我需要的下一步是使用我的板重新创建一个下行数据包,特别是一个加入-接受数据包。
在电路板上使用我的自定义代码,我能够发送自定义加入请求并嗅探相关的加入接受,但是当我使用相同的传输参数发送数据包时,我的电路板似乎忽略了它。可能是什么?
加入请求(我发的)参数:频率868.1,无线电功率15,扩频因子12,编码率4/5,带宽125Khz,crc模式ON
加入接受接收配置(工作):相同但使用频率869,525和反向极化
所以我假设我只需要使用我用来从真实网关接收真实数据包的相同配置发送假加入接受数据包,但它没有用。我错过了什么?
注意我可以访问真实的并且已经接受的加入接受,并且我可以重置我的电路板,所以我确定这不是电路板的完整性或内存问题
编辑:我发现我的电路板无法使用反向极性发送帧,所以这是现在的问题,我正在寻找具有这些功能的其他电路板,所以我会尽快更新答案获取新设备
解决方法
您不能使用之前捕获的加入接受消息作为对新加入请求的响应。它不会被终端设备接受。每个加入请求都包含一个不同的 devnonce,它使每个加入请求(和加入接受)都是独一无二的。 破坏 LoRaWAN 安全性的唯一方法是从 LoRaWAN 终端设备中读取 AppKey。如果您知道 AppKey 并且可以捕获加入请求,则可以创建有效的加入接受。如果您无法从设备读取 AppKey(因为它没有存储在其闪存中,而是存储在安全元件中),您将无法创建有效的加入接受。