一、安全IP概述
各位同学好,我是老李。做了十几年芯片安全,今天咱们聊聊安全IP。说实话,这玩意儿在十年前还是个「锦上添花」的东西,现在呢?没有它,你的SoC可能连门都出不了。
1.1 什么是安全IP
安全IP,说白了就是一颗芯片里负责「看家护院」的硬件模块。它不是某个单一的功能单元,而是一整套安全机制的硬件实现。我个人习惯把安全IP分成三类:
- 密码算法引擎:比如AES、RSA、ECC这些加解密硬件加速器
- 安全存储与隔离:像OTP(一次性可编程存储器)、安全区、TrustZone这类
- 抗攻击防护:专门对付侧信道攻击、故障注入的防护电路
你可能会问:「软件也能做安全啊,为什么非要硬件?」嗯,这个问题我当年也问过我的导师。他给我打了个比方:软件安全就像在沙地上建堡垒,看着挺唬人,但人家从底层一挖就塌。硬件安全呢?是在岩石上凿碉堡。
核心观点:安全IP不是可选项,而是现代SoC的必需品。尤其是在IoT、汽车、金融支付这些领域,没有硬件安全底座,产品根本过不了认证。
1.2 安全IP在SoC中的角色
咱们来看一张图,这是我画的一个典型安全SoC架构:
从这张图你能看到,安全IP不是孤立的。它和主CPU、安全CPU、系统总线紧密配合。我在做第一颗车规级芯片时就吃过亏——安全IP和主CPU之间没有做隔离,结果一个缓冲区溢出就绕过了所有安全机制。后来我们加了一个独立的安全CPU来监控,这才算踏实。
安全IP在SoC里主要干这几件事:
- 信任根建立:芯片上电后第一个执行的代码必须来自安全IP,确保没有被篡改
- 密钥管理:密钥从生成到销毁,全程在硬件内部完成,软件碰不到
- 运行时保护:监控总线事务,阻止非授权访问
- 抗物理攻击:这是咱们这门课的重点,后面会详细讲
1.3 常见安全威胁模型
做安全设计,首先得知道敌人是谁。我见过太多团队,一上来就堆各种安全模块,结果连最基本的威胁都没覆盖。咱们先看三个最常见的攻击方式。
1.3.1 侧信道攻击
侧信道攻击,说白了就是「偷听」。不直接攻击你的算法,而是通过芯片运行时的「副作用」来窃取信息。比如:
- 功耗分析:芯片执行不同指令时,功耗波形不一样。采集足够多的波形,就能反推出密钥
- 电磁辐射:每个晶体管开关都会产生微弱的电磁波,用高灵敏度探头就能捕获
- 时序分析:某些操作的执行时间与数据相关,测量时间就能推断出信息
避坑指南:我曾经帮一个客户做安全评估,他们的AES引擎跑得飞快,但功耗波形上每个轮函数的边界都清清楚楚。攻击者只需要2000条功耗曲线,就能把128位密钥完整还原。后来我们加了掩码和随机延时,波形变成了一团「噪声」,攻击成本直接提升了三个数量级。
1.3.2 故障注入
故障注入更暴力一些。它通过外部手段让芯片「出错」,利用这个错误来绕过安全检查。常见手法:
| 攻击方式 | 原理 | 典型效果 |
|---|---|---|
| 激光注入 | 用激光照射特定晶体管,改变其状态 | 跳过安全启动检查 |
| 电压毛刺 | 在供电线上叠加短时高压/低压脉冲 | 使比较器输出错误结果 |
| 时钟毛刺 | 注入异常时钟脉冲,破坏时序 | 导致状态机跳转到非法状态 |
| 电磁脉冲 | 强电磁场干扰芯片内部电路 | 大面积逻辑错误 |
你想想看,如果攻击者能用激光让安全启动的「验证通过」信号提前一个时钟周期拉高,那你的整个信任链就崩塌了。嗯,这不是科幻片,这是真实存在的攻击。
1.3.3 逆向工程
逆向工程是「拆解」。攻击者把芯片一层层剥开,用显微镜观察,甚至用探针直接测量内部信号。这听起来很费劲,但对于高价值目标(比如金融IC卡、机顶盒),攻击者绝对愿意花这个功夫。
逆向工程的目标通常包括:
- 提取固件和密钥
- 分析硬件状态机的逻辑
- 定位安全漏洞的位置
- 复制或克隆芯片设计
注意:别以为用了先进工艺(比如7nm、5nm)就能防逆向。工艺越先进,只是让逆向的难度和成本变高,但并非不可能。我在2019年见过一个案例,28nm的芯片被完整逆向,连金属层走线都还原出来了。防护措施必须从设计阶段就开始考虑,比如加扰、主动屏蔽、传感器网络等。
1.4 小结
这一章咱们把安全IP的底子打好了。你知道了安全IP是什么、在SoC里扮演什么角色,也了解了三个最要命的威胁模型。说实话,这些内容看起来有点抽象,但后面每一章都会反复用到这些概念。
我个人觉得,做安全设计最重要的不是堆砌防护措施,而是建立「攻击者思维」。你只有知道敌人会怎么打你,才知道该在哪儿修墙、该在哪儿挖壕沟。后面的章节,咱们会一步步把这些防护手段落到实处。
公众号:蓝海资料掘金营,微信deep3321