硬件安全基础:嵌入式系统架构、MCU与MPU选型、安全协处理器介绍
做IoT安全,第一步得搞清楚你的硬件到底长什么样。很多人一上来就谈加密算法、谈安全协议,结果连MCU和MPU的区别都没弄明白——这就像盖楼不看地基,迟早要出问题。
这一章,我们聊聊嵌入式系统的硬件骨架。我会结合自己踩过的坑,帮你理清架构选型和安全协处理器的门道。
嵌入式系统架构:从裸机到RTOS
嵌入式系统的核心,说白了就是处理器+外设+软件的三角关系。根据应用场景,架构大致分三类:
- 裸机架构(Super Loop):一个死循环轮询所有任务。适合极简场景,比如一个温度传感器每隔1秒上报一次数据。我早期做智能插座就用过,代码简单,但一旦任务多了,响应延迟就不可控。
- 前后台系统:中断处理紧急事件,主循环处理常规任务。比如按键按下触发中断,主循环负责刷新屏幕。这种架构在工业控制里很常见。
- RTOS(实时操作系统):任务按优先级调度,适合多任务、实时性要求高的场景。比如智能门锁,既要处理指纹识别,又要管理蓝牙通信,还得控制电机——没有RTOS,代码会乱成一锅粥。
安全视角下的架构选择
裸机架构虽然简单,但安全隔离能力几乎为零。一旦某个模块被攻破,整个系统就裸奔了。RTOS配合MPU(内存保护单元)可以实现任务级隔离,这是IoT设备的基本安全底线。
我个人习惯,只要项目涉及网络通信或用户数据,至少上RTOS+MPU方案。别省那几块钱的芯片成本,安全漏洞的代价远不止这些。
MCU与MPU选型:别选错,选错就是灾难
很多新手分不清MCU和MPU,觉得都是处理器,随便选一个就行。嗯,这里要注意——选错了,后面整个安全架构都得推倒重来。
| 对比维度 | MCU(微控制器) | MPU(微处理器) |
|---|---|---|
| 典型代表 | STM32、ESP32、NXP LPC | i.MX、AM335x、Raspberry Pi SoC |
| 片上存储 | 内置Flash+SRAM | 需要外接DDR/NAND |
| 运行频率 | 几十MHz~几百MHz | 几百MHz~数GHz |
| 安全特性 | 硬件加密引擎、安全启动(部分型号) | TrustZone、MMU、虚拟化支持 |
| 功耗 | 毫瓦级,可电池供电 | 瓦级,通常需要外部电源 |
| 典型场景 | 传感器节点、智能锁、可穿戴 | 网关、边缘计算、HMI |
选型时,我一般问自己三个问题:
- 需要跑Linux吗? 需要→MPU;不需要→MCU。
- 安全需求有多高? 需要TEE(可信执行环境)→MPU+TrustZone;只需要安全启动和加密→MCU+硬件安全模块。
- 功耗预算多少? 电池供电→MCU;市电供电→MPU。
避坑指南
我曾经在一个智能家居网关项目里,为了省成本选了低端MCU,结果发现它不支持硬件加密引擎。所有AES运算都得靠软件跑,不仅慢,还占用了大量CPU时间,导致网络响应超时。最后不得不换芯片,重新画板子,工期延误了两个月。选型时多花10块钱,后面能省10000块的返工费。
安全协处理器介绍:给MCU配个保镖
MCU本身的安全能力有限。你想想看,攻击者只要拿到物理访问权限,用JTAG/SWD就能把Flash里的固件读出来。这时候,安全协处理器就派上用场了。
安全协处理器,说白了就是一个专门干脏活累活的独立芯片。它负责密钥管理、加密运算、安全存储,主MCU只管业务逻辑。两者通过SPI或I2C通信。
常见的几类安全协处理器:
- TPM(可信平台模块):工业标准,支持RSA、ECC、SHA等算法。适合PC、服务器、高端网关。我见过很多工控设备用Infineon的SLB9670,稳定可靠。
- SE(安全元件):通过CC EAL5+认证的独立芯片,防物理攻击能力极强。常见于支付终端、SIM卡、eSIM。比如NXP的SE050系列,支持ECC-256和AES-128。
- HSM(硬件安全模块):通常是PCIe卡或独立设备,用于云端或服务器端。IoT设备里很少直接集成,但网关级别可能会用到。
- PUF(物理不可克隆函数):利用芯片制造过程中的物理差异生成唯一密钥。不需要存储密钥,攻击者无法复制。比如Microchip的ATECC608B就集成了PUF。
重要提醒
安全协处理器不是万能的。如果主MCU和协处理器之间的通信没有加密,攻击者可以监听SPI总线,直接窃取密钥。我见过一个项目,SE芯片用的是顶级货,但SPI通信是明文——结果被一个逻辑分析仪就搞定了。记住:安全是链条,最弱的一环决定整体强度。
嵌入式安全架构全景图
下面这张图,是我自己总结的嵌入式安全架构分层模型。每次做新项目,我都会拿它来对照,看看哪一层有缺失。
从这张图能看出来,安全不是某一个层的任务。应用层搞了TLS加密,但硬件层没有安全存储,密钥明文放在Flash里——那TLS等于白搭。反过来,硬件层用了顶级SE芯片,但系统层没有安全启动,攻击者直接替换固件——SE再强也没用。
选型实战:一个智能门锁的硬件安全方案
拿我去年做的一个智能门锁项目举例。需求很明确:指纹识别、蓝牙开锁、远程授权、防物理破解。
选型过程:
- 主控:选了NXP的LPC55S69,双核Cortex-M33,带硬件加密引擎和PRINCE(一种轻量级加密引擎)。支持安全启动和TrustZone-M。
- 安全协处理器:加了Microchip的ATECC608B,用于存储指纹模板的加密密钥和蓝牙配对密钥。PUF技术确保即使芯片被拆开,密钥也无法提取。
- 防篡改:在PCB上布了防拆检测线,一旦外壳被打开,立即触发安全擦除。
我的经验
选安全协处理器时,别只看芯片本身的价格。还要算上开发成本、认证成本、供应链风险。ATECC608B虽然芯片只要2块钱,但它的配套库和文档非常完善,开发周期能缩短一半。相比之下,有些冷门芯片便宜1块钱,但文档全是日文,技术支持要等三天——得不偿失。
这个方案最终通过了CC EAL4+认证,量产了10万台,至今没有收到安全漏洞报告。当然,没有绝对的安全,但至少做到了攻击成本远大于收益。
小结
嵌入式硬件安全,核心就三件事:选对架构、选对芯片、配好协处理器。别追求一步到位,也别为了省钱砍掉关键安全特性。记住:安全是设计出来的,不是测试出来的。