1. 物联网安全概述:安全威胁、CIA 三要素与协议挑战

各位好,我是老周。在物联网这行摸爬滚打十几年,今天咱们聊聊安全这个话题。说实话,我刚入行那会儿,大家更关心的是“能不能连上”、“数据能不能传回来”,安全?那是锦上添花的事。直到我亲眼见过一个智能水表项目被篡改数据,导致整片小区水费结算出问题……嗯,从那以后,我再也不敢把安全当“附加题”了。

这一章,咱们先把地基打牢。搞懂物联网安全到底在防什么,MQTT 和 LoRaWAN 这两个协议各自的安全软肋在哪。你想想看,如果连敌人是谁、战场在哪都不清楚,后面的防御工事怎么建?

1.1 物联网安全威胁:谁在盯着你的设备?

物联网的威胁面,比传统 IT 要宽得多。传统 IT 你防住服务器和网络就行,物联网呢?传感器、网关、云平台、移动 App,每个环节都可能被撕开口子。

我个人习惯把威胁分成三类,这样好记:

  • 物理攻击:设备被人直接上手。比如拆开外壳读 Flash、用 JTAG 调试接口注入恶意固件。我在一个工业项目里遇到过,有人把现场温湿度传感器的固件给换了,上报的数据全是假的,后台愣是没发现。
  • 网络攻击:这是大头。中间人攻击、重放攻击、拒绝服务攻击。MQTT 的 Broker 如果暴露在公网,分分钟被 DDoS 打瘫。LoRaWAN 的无线链路,理论上也能被干扰或嗅探。
  • 应用攻击:云平台接口没鉴权、App 本地存储明文密钥、固件升级包没签名。这些漏洞往往是最容易被忽略的,但后果也最严重。
⚠️ 注意: 很多团队只盯着网络层加密,却忘了设备本身可能被物理破解。我曾经见过一个项目,AES 密钥硬编码在代码里,攻击者用逻辑分析仪在 SPI 总线上直接抓到了明文密钥。加密做得再好,密钥裸奔也是白搭。

1.2 安全三要素(CIA):衡量安全的三个标尺

搞安全的都知道 CIA 三要素。说白了,就是三个问题:

  • 机密性(Confidentiality):数据只有授权的人能看。比如传感器采集的温度数据,不能被中间人偷听。
  • 完整性(Integrity):数据在传输和存储过程中没被篡改。比如你收到的控制指令“打开阀门”,不能被人改成“关闭阀门”。
  • 可用性(Availability):系统该工作的时候能正常工作。比如 DDoS 攻击打瘫了 MQTT Broker,导致所有设备离线,这就是可用性被破坏了。

你可能会问:“这三个目标,哪个最重要?” 我的答案是:看场景。智能门锁,可用性排第一,打不开门比泄露密码更致命。医疗数据,机密性排第一,病人隐私泄露是大事。工业控制,完整性排第一,指令被篡改可能引发安全事故。

💡 核心观点: 安全不是非黑即白的选择题,而是根据业务场景做的权衡。MQTT 和 LoRaWAN 的安全设计,本质上就是在 CIA 三个维度上做取舍。

1.3 MQTT 的安全挑战:轻量背后的代价

MQTT 设计之初就追求轻量、低带宽、低功耗。但轻量往往意味着安全功能的“瘦身”。我这些年接触的 MQTT 项目,安全翻车最多的就这几个点:

安全挑战 具体表现 我见过的坑
认证薄弱 很多项目只用用户名+密码,甚至硬编码在设备里 有个客户直接把密码写在固件里,反编译就能看到
传输未加密 默认走 TCP 明文,不启用 TLS 我在咖啡厅用 Wireshark 抓过某智能灯的数据包,控制指令一览无余
授权粗放 所有设备共用同一个 Topic 权限,没有细粒度控制 一个传感器能订阅所有设备的 Topic,数据泄露风险极大
设备身份 缺乏可靠的设备身份标识,容易被仿冒 攻击者伪造了一个设备 ID 接入 Broker,开始下发恶意指令

为什么会这样?因为 MQTT 协议本身只定义了报文格式,安全机制全靠上层实现。很多团队图省事,直接裸奔上 TLS,甚至 TLS 都不开。你想想看,一个智能门锁的控制指令在公网上明文传输,这跟把钥匙挂在门外有什么区别?

1.4 LoRaWAN 的安全挑战:无线链路的天然短板

LoRaWAN 走的是无线射频,而且是 Sub-GHz 频段。无线通信有个天然短板:信号在空中,谁都能收。虽然 LoRa 的扩频技术让普通设备很难解调,但专业设备配合软件无线电(SDR),照样能抓包。

LoRaWAN 协议本身内置了安全机制,比如 AES-128 加密、网络会话密钥和应用会话密钥分离。但实际部署中,问题也不少:

  • 密钥管理混乱:每个设备的 AppKey 和 NwkKey 怎么安全地烧录进去?很多小厂直接在产线上用串口明文下发,或者所有设备用同一个密钥。
  • 重放攻击风险:虽然 LoRaWAN 有帧计数器防重放,但如果设备重启后计数器重置,或者计数器溢出,攻击者就能重放旧数据包。
  • 固件更新困难:LoRa 带宽极低(几百 bps 到几十 kbps),OTA 固件更新几乎不可能。很多设备出厂后固件就再也没升级过,漏洞一直留在那。
  • 网关信任问题:LoRaWAN 网关是透明转发,它能看到加密后的数据包,但无法验证数据包是否来自合法设备。如果网关被攻破,整个网络的数据流都会被控制。
🔧 实战建议: 我个人习惯在 LoRaWAN 设备出厂前,用硬件安全模块(HSM)或者安全芯片来存储密钥。别把密钥放在通用 MCU 的 Flash 里,那跟写在纸上没区别。另外,帧计数器一定要用非易失性存储,防止重启归零。

1.5 知识体系总览:一张图看懂本章

下面这张图,把咱们这章的核心逻辑串起来了。从威胁到目标,再到两个协议的具体挑战,你一看就明白。

物联网安全知识体系(第1章) 物理攻击 网络攻击 应用攻击 机密性 (C) 完整性 (I) 可用性 (A) MQTT 安全挑战 认证薄弱 · 传输未加密 授权粗放 · 设备身份缺失 LoRaWAN 安全挑战 密钥管理混乱 · 重放攻击 固件更新难 · 网关信任问题 核心思路:威胁 → 目标 → 协议挑战 后续章节将逐一拆解 MQTT 在 LoRaWAN 中的安全方案

1.6 小结:安全不是功能,是习惯

这一章咱们把物联网安全的“家底”翻了一遍。威胁来自四面八方,CIA 三要素是衡量安全的标尺,MQTT 和 LoRaWAN 各有各的短板。你可能会觉得问题太多,无从下手。别急,后面每一章我都会带着你,从认证、加密、授权、密钥管理这些具体环节,一步步把安全防线建起来。

记住一句话:安全不是加一个功能就完事了,它应该贯穿整个产品生命周期——从设计、开发、测试到运维。我见过太多项目,上线前才想起来补安全,结果补丁打得千疮百孔。咱们这门课,就是要让你从一开始就把安全考虑进去。