据我所知,LoraWan v1.1 规范使用以下键:
- FNwkSIntKey:为了确保节点发送到服务器的数据的消息完整性。
- SNwkSIntKey:为了保护节点从网络接收的数据的消息完整性。
- NwkSEncKey:为了加密通过网络传输的有效载荷数据。
此外,我还看到在执行连接过程时还支持以下键:
- JSIntKey:在加入过程中用于消息完整性。
- JSEncKey:在加入过程中用于消息加密。
此外,我还使用 IBM 的 lmic 库查看了当前的 abp 激活代码示例。
根据片段,我只看到了一个网络会话密钥和一个应用程序会话密钥:
static const PROGMEM u1_t NWKSKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };
static const u1_t PROGMEM APPSKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };
我想知道为什么他们只有 2 个会话密钥。所以我想问:
- 他们支持 1.0.x 版而不是最新的 1.1 版吗?
- 如果他们支持 1.1 版本,他们是否只使用 2 个键来实现向后兼容性(文档指出FNwkSIntKey、SNwkSIntKey、NwkSEncKey在向后兼容性的情况下应该具有相同的值)?
- 如果是,我将如何使用它来支持 LoraWan 的完整非向后兼容规范 1.1?