1. 课程导入与安全测试工程定位
IoT无线协议安全测试,不是“拿个抓包工具扫一圈”这么简单。它是一项以无线通信链路为对象、以协议行为与实现缺陷为核心、以可复现证据为交付的系统性工程活动。在智能家居、工业传感、车联网、医疗监护等场景中,设备往往通过BLE、ZigBee、LoRaWAN、Wi-Fi、NB-IoT等无线协议完成配网、控制、上报与固件升级。一旦这些链路被伪造、重放、降级或越权利用,后果可能从隐私泄露延伸到物理世界的不安全动作。因此,本课程的第一件事,是把“安全测试”从零散技巧提升为工程定位:明确测什么、测到什么程度、按什么流程推进、留下什么证据、满足哪些合规约束。
一、测试目标:从“发现漏洞”到“证明风险可复现”
IoT无线协议安全测试的目标可以拆成四个层次。第一层是协议实现正确性验证:设备是否按规范处理配对、密钥协商、帧计数、加密校验等环节。第二层是攻击面识别:广播、扫描、连接、配网、OTA等阶段分别暴露了哪些可交互入口。第三层是缺陷可利用性验证:在授权范围内,用重放、篡改、伪造、降级、拒绝服务等手段验证缺陷是否真实可触发。第四层是风险证据固化:把触发条件、抓包记录、设备状态变化、日志与复现步骤整理成可审计的交付物。
需要特别强调:安全测试的目标不是“把设备打挂”,而是在受控条件下证明风险并给出修复依据。例如,对BLE设备测试“配对降级”时,目标不是让设备无法连接,而是验证当攻击者伪造低安全等级配对请求时,设备是否接受并建立弱密钥链路。若接受,则记录配对方式、密钥长度、连接参数与后续数据可读性;若不接受,则记录拒绝行为与日志,作为通过证据。
二、测试范围:对象、接口与边界
范围界定决定了测试是否可交付。IoT无线协议安全测试的对象通常包括:终端设备(传感器、执行器、网关)、无线协议栈(BLE、ZigBee、LoRaWAN、Wi-Fi等)、配网与绑定流程、OTA升级通道、云端/APP与设备之间的控制链路。接口则包括射频空口、调试串口、JTAG/SWD、USB、网络服务端口以及厂商提供的测试模式。
边界必须写清楚:哪些频段和信道允许发射、最大发射功率、是否允许干扰、是否允许对生产环境发起连接、是否允许读取设备存储。一个常见的工程做法是建立“测试授权矩阵”,把设备、接口、允许动作、禁止动作、时间窗口和责任人逐项列出。没有边界的测试,既可能违法,也可能破坏现场设备。
三、工程化流程:六步闭环
把安全测试做成工程,关键是流程可重复、证据可追溯。建议采用六步闭环:授权与范围界定 → 资产与攻击面建模 → 用例设计与基线采集 → 受控攻击与观测 → 证据固化与复现验证 → 报告与修复闭环。
其中“基线采集”最容易被跳过,却最影响判断。以BLE温湿度传感器为例,正常配网时先记录:广播间隔约100ms、广播信道37/38/39、配对方式为Just Works或Passkey、连接间隔约30ms、ATT MTU约23字节、特征值UUID与读写权限。基线建立后,当攻击者发送伪造的配对请求或重放控制指令时,才能判断“设备行为是否偏离正常”。没有基线,所谓“异常”只是主观感觉。
“受控攻击与观测”要明确观测点:空口抓包(如nRF Sniffer、Ubertooth、Ellisys)、设备串口日志、APP侧提示、云端接口返回、设备物理状态(继电器动作、LED、电机)。例如测试重放攻击时,用抓包工具捕获一条“开锁”指令,在设备未重新配对的情况下原样重放,观察锁是否再次动作。若动作,则记录帧计数器是否递增、是否有时间戳校验、是否绑定会话密钥。若未动作,则记录拒绝原因,作为防护有效证据。
四、合规要求:授权、频段与数据边界
无线安全测试天然涉及无线电发射与数据采集,合规是底线。第一,授权:必须获得设备所有者或项目负责人的书面授权,明确测试对象、时间、地点和允许动作。第二,频段与功率:在多数国家和地区,未经许可不得在受保护频段发射或使用干扰设备;测试应优先使用屏蔽箱、法拉第笼或授权测试场地。第三,数据隐私:抓包中可能包含用户标识、密钥材料、位置信息,需按最小化原则采集、脱敏存储、限期销毁。第四,漏洞披露:发现高危漏洞时,应按约定渠道和时限向厂商披露,不得公开利用细节。
五、交付物:让结果可审计、可复现
交付物不是“一份报告”四个字,而是一组可审计材料。建议至少包含:测试计划与授权矩阵、资产与攻击面清单、测试用例与执行记录、抓包文件与日志、风险等级与影响分析、修复建议与复测结果。每条风险应能回答:在什么条件下触发、影响了哪个对象、证据在哪个文件、如何复现、修复后如何验证。
| 交付物 | 关键字段 | 用途 |
|---|---|---|
| 授权矩阵 | 设备、接口、允许动作、时间窗、责任人 | 界定合法测试边界 |
| 攻击面清单 | 阶段、接口、协议、信任假设 | 指导用例设计 |
| 用例执行记录 | 用例编号、输入、观测点、结果 | 保证可复现 |
| 证据包 | 抓包、日志、截图、哈希 | 支撑风险结论 |
| 风险报告 | 风险描述、等级、影响、修复建议 | 推动修复闭环 |
六、一个最小示例:BLE智能门锁测试定位
假设对象为某BLE智能门锁,授权范围仅限实验室屏蔽箱内,允许使用nRF52840 Dongle抓包与重放,禁止干扰和拆机。基线采集显示:广播名“SmartLock-01”,配对方式为Passkey,连接后需写入6位口令特征值,开锁指令为写特征值0x01。测试用例设计为:用例BL-01,重放已捕获的开锁指令,观察锁体是否动作;用例BL-02,将口令特征值改为错误值,观察是否拒绝;用例BL-03,在未配对状态下尝试直接写入开锁特征值,观察权限校验。
若BL-01中锁体再次动作,且抓包显示帧计数器未变化、无时间戳校验,则可判定存在重放风险,风险等级可定为高,证据为抓包文件与视频。修复建议包括:引入单调递增帧计数器、绑定会话密钥、增加时间窗校验。复测时重复BL-01,若锁体不动作且日志记录“重放拒绝”,则闭环完成。这个示例说明:安全测试工程定位不是抽象概念,而是从授权、基线、用例、观测到证据和复测的完整链条。