1. LoRaWAN安全概述:物联网安全威胁、安全设计目标与体系架构总览
大家好,我是你们的老朋友。今天咱们正式开讲LoRaWAN安全。说实话,我在物联网安全这行摸爬滚打了十几年,见过太多因为忽视安全而翻车的项目。嗯,咱们先从最基础的讲起——你连敌人长什么样都不知道,怎么防守?
1.1 物联网安全威胁:你的设备正在裸奔
先问大家一个问题:你觉得一个温湿度传感器,黑客会感兴趣吗?
我告诉你,会的。我在一个智慧农业项目里就遇到过——有人通过破解传感器节点,伪造了土壤湿度数据,导致灌溉系统误判,差点把整个大棚淹了。你想想看,这损失有多大?
物联网设备面临的威胁,说白了就这几类:
- 窃听攻击:无线信号在空中飘着,谁都能收。不加密的话,你的数据就是公开的。
- 重放攻击:黑客录下你的合法数据包,过一会儿再发一遍。网关以为是新指令,就照做了。
- 篡改攻击:中间人改掉你的数据内容,比如把“温度正常”改成“温度超标”。
- 伪造设备攻击:造一个假节点,假装是合法设备接入网络。
- 拒绝服务攻击:疯狂发垃圾数据,把网关或网络服务器搞瘫痪。
1.2 LoRaWAN安全设计目标:我们要防什么?
LoRaWAN协议在设计之初,就明确了几个核心安全目标。我个人觉得,这几点定得相当务实——没有追求绝对安全,而是做到了“够用且可行”。
| 安全目标 | 说明 | 我的经验 |
|---|---|---|
| 机密性 | 数据在空中传输时,不能被第三方看懂 | 我见过有人直接用明文传GPS坐标,等于告诉别人“我在这儿,快来偷” |
| 完整性 | 数据在传输过程中不能被篡改 | 有一次客户说数据对不上,查了半天,是中间节点改了payload |
| 真实性 | 确保数据确实来自声称的那个设备 | 伪造节点接入网络,是我在测试中最常模拟的攻击方式 |
| 新鲜性 | 防止重放攻击,保证数据是“此刻”的 | 重放攻击其实很好防,但很多人忘了做帧计数器校验 |
你可能会问:为什么没有“可用性”这个目标?嗯,LoRaWAN本身是低功耗设计,节点大部分时间在睡觉。真要搞DDoS攻击,网关才是瓶颈。所以协议把重点放在了前三项上。
1.3 安全体系架构总览:一张图看懂
好了,理论说完了,咱们来看点实在的。LoRaWAN的安全体系,我习惯把它分成两层:网络层安全和应用层安全。说白了,就是“链路归链路,数据归数据”。
下面这张图是我自己画的,你一看就明白:
这张图我建议你保存下来。每次做LoRaWAN安全设计时,拿出来对照一下,思路会清晰很多。
1.4 密钥体系:两把钥匙开两把锁
LoRaWAN最核心的设计,就是把网络层和应用层的密钥分开了。为什么这么做?
我举个例子你就懂了。假设你有一个智能水表,它要上报用水量数据。网络服务器需要知道这个数据包是不是合法的(用NwkSKey校验),但它不需要知道用水量具体是多少。而应用服务器才需要解密看到具体数值(用AppSKey解密)。
这样一来,就算网络服务器被攻破了,黑客也只能看到一堆乱码——因为他没有AppSKey。
- AppSKey:应用会话密钥,用于加密/解密应用数据 payload
- NwkSKey:网络会话密钥,用于计算 MIC(消息完整性校验码)和加密 MAC 命令
- AppKey:根密钥,仅在 OTAA 入网流程中使用,用来派生 AppSKey 和 NwkSKey
1.5 安全机制总览:LoRaWAN 1.0.x vs 1.1.x
LoRaWAN有两个主流版本,安全机制略有不同。我建议新项目直接上1.1.x,因为它在安全上做了不少增强。
| 安全特性 | LoRaWAN 1.0.x | LoRaWAN 1.1.x |
|---|---|---|
| 网络层密钥 | 单个 NwkSKey | 拆分为 FNwkSIntKey、SNwkSIntKey、NwkSEncKey |
| 应用层密钥 | AppSKey | AppSKey(不变) |
| 重放保护 | 帧计数器(FCnt) | 帧计数器 + 时间戳 |
| MIC 计算 | 单一 MIC | 双重 MIC(上行/下行分开) |
| 根密钥派生 | AppKey 直接派生 | AppKey + 随机数派生 |
你看,1.1.x 把原来的一把 NwkSKey 拆成了三把。为什么要这么干?说白了,就是为了防止“一把钥匙开所有门”。上行数据、下行数据、MAC命令,各用各的密钥,就算某个密钥泄露了,影响范围也有限。
1.6 本章小结
好了,咱们把第一章的内容捋一捋:
- 物联网安全威胁真实存在,别以为数据量小就安全
- LoRaWAN 的安全目标很明确:机密性、完整性、真实性、新鲜性
- 安全体系分两层:网络层(NwkSKey)和应用层(AppSKey),各管各的
- 密钥体系是核心,AppKey 是根,派生 AppSKey 和 NwkSKey
- 新项目建议用 LoRaWAN 1.1.x,安全机制更完善
下一章咱们会深入讲密钥的生成和分发过程,包括 OTAA 和 ABP 两种入网方式的安全差异。嗯,到时候我会拿一个真实项目踩过的坑来举例,保证让你印象深刻。
公众号:蓝海资料掘金营,微信 deep3321