1. 课程导论与硬件安全概述

各位同学好,我是你们这门课的老周。在嵌入式安全领域摸爬滚打了十几年,踩过的坑比吃过的盐还多。今天咱们开始第一讲,聊聊IoT安全的现状、硬件攻击面,以及我们这门课到底要干什么。

说实话,现在做IoT开发的人不少,但真正重视安全的没几个。我见过太多产品,功能做得花里胡哨,结果一个简单的UART接口就能把整个系统攻破。嗯,这其实挺可怕的。

IoT安全现状:为什么我们不得不重视?

先看一组数据。根据2023年的统计,全球IoT设备数量已经超过150亿台。但其中超过60%的设备存在中高危漏洞。为什么会这样?说白了,三个原因:

  • 成本优先:厂商为了压低BOM成本,砍掉安全芯片、去掉加密协处理器
  • 更新困难:很多设备部署后就没法OTA升级,漏洞永远修不了
  • 攻击面广:从物理接口到无线协议,到处都是突破口

我在一个智能门锁项目里遇到过一件事。客户要求成本控制在50块以内,结果用的MCU连安全启动都不支持。最后怎么着?被人用电压毛刺攻击直接绕过了密码校验。所以啊,安全不是锦上添花,是底线。

核心观点:IoT安全不是选择题,而是必答题。等到设备被攻破再补救,成本至少是前期投入的10倍。

硬件攻击面分析:攻击者到底在打什么主意?

很多人觉得硬件攻击离自己很远。其实不然。你想想看,一个攻击者拿到你的设备后,他能干什么?

我习惯把硬件攻击面分成四个层次:

攻击层次 典型手段 攻击目标
物理层 探针、开盖、激光 提取固件、读取Flash
接口层 UART、JTAG、SPI嗅探 获取调试权限、窃取密钥
侧信道层 功耗分析、电磁辐射 破解加密算法、恢复密钥
故障注入层 电压毛刺、时钟毛刺 绕过安全校验、提权

这里我要特别提一下接口层攻击。我曾经帮一个客户做安全审计,发现他们的产品在量产时忘了禁用JTAG。结果呢?攻击者用一根杜邦线加一个J-Link,5分钟就把整个固件dump出来了。你说这安全从何谈起?

避坑指南:量产前一定要检查所有调试接口是否已物理熔断或锁定。我曾经见过一个团队,因为赶工期忘了做这一步,结果产品上市后被破解,直接损失了上百万。

开发板选型:为什么选STM32L4系列?

好了,理论说完了,咱们聊聊实际的东西。这门课需要一块开发板,我选的是STM32L4系列。为什么选它?

三个理由:

  1. 安全特性完整:内置硬件加密引擎、安全启动、TrustZone(部分型号)
  2. 功耗低:适合模拟真实IoT场景
  3. 生态成熟:资料多、工具链完善,遇到问题好解决

我个人习惯用NUCLEO-L476RG这块板子。价格不贵,淘宝上100多块就能买到。而且它把SWD接口、UART都引出来了,方便我们做安全实验。

小提示:如果你手头有其他STM32L4系列的板子,比如STM32L4 Discovery Kit,也完全可以用。核心的Cortex-M4内核和硬件安全模块是一样的。

课程目标:30章后你能得到什么?

这门课不是讲理论,是实打实的动手课。30章下来,你会掌握:

  • 如何搭建安全的硬件开发环境
  • 如何实现安全启动和固件加密
  • 如何防御侧信道攻击和故障注入
  • 如何设计安全的通信协议
  • 如何做安全审计和渗透测试

说白了,就是让你从一个只会写代码的嵌入式工程师,变成一个懂安全、能防攻击的硬件安全专家。

知识体系总览

下面这张图,是我梳理的这门课的知识体系。你可以把它当成一张地图,后面每走一步,都知道自己在哪。

IoT硬件安全开发板课程知识体系 课程目标:从零搭建安全开发板 硬件基础与攻击面 安全启动与固件保护 通信安全与加密 渗透测试与防御 • 硬件攻击面分析 • 开发板选型与搭建 • 调试接口安全 • 安全启动流程 • 固件加密与签名 • OTA安全更新 • 硬件加密引擎 • 安全通信协议 • 密钥管理 • 侧信道攻击与防御 • 故障注入技术 • 安全审计方法 实践项目:搭建完整的安全IoT设备 每章都包含动手实验,最终完成一个具备完整安全防护的IoT开发板

这张图把30章的内容分成了四个模块。每个模块之间是有依赖关系的。比如你不先搞懂硬件攻击面,后面做防御就会没方向。所以我的建议是,按顺序来,别跳着看。