1、硬件加密概述:为什么需要硬件加密?
大家好,我是你们的芯片安全课讲师。今天咱们聊聊硬件加密这个老本行。
先问个问题:你手机里的指纹数据、银行卡的密钥,存在哪里?
很多人觉得「软件加密就够了」。嗯,我以前也这么想。直到有一次,我在一个IoT项目里,看到软件加密的密钥被攻击者从内存里直接dump出来……那感觉,就像你家门锁好好的,结果贼把整面墙拆了。
说白了,软件加密和硬件加密,根本不是一个量级的对手。
为什么需要硬件加密?
我总结了几条硬道理:
- 物理隔离:密钥存在专用硬件里,CPU拿不到。攻击者想读?得先过我这关。
- 抗侧信道攻击:软件加密跑起来,功耗、电磁辐射都是线索。硬件可以加扰,让这些信号变成噪声。
- 性能优势:专用硬件做AES,比CPU软跑快几十倍。我在一个视频编解码芯片里,用硬件加密引擎,延迟从毫秒级降到了微秒级。
- 防篡改:硬件有主动屏蔽层,你拿探针戳一下,密钥自动销毁。软件可没这功能。
核心观点:硬件加密不是「更好」,而是「必须」。尤其在金融、汽车、国防领域,软件加密根本过不了安全认证。
硬件加密 vs 软件加密
咱们直接上对比表,一目了然:
| 对比维度 | 硬件加密 | 软件加密 |
|---|---|---|
| 密钥存储 | 专用安全存储区(如eFuse、OTP) | 内存、文件系统 |
| 抗物理攻击 | 强(主动屏蔽、自毁) | 弱(可被探针读取) |
| 侧信道防护 | 内置硬件加扰 | 需额外软件实现 |
| 性能 | 高(专用电路) | 低(CPU占用) |
| 灵活性 | 低(固化算法) | 高(可更新) |
| 成本 | 高(芯片面积) | 低(纯软件) |
| 安全认证 | 易通过(如CC EAL5+) | 难通过 |
你可能会问:「那是不是所有场景都用硬件加密?」
当然不是。我个人的习惯是:
- 对成本极度敏感、攻击风险低的消费类产品,软件加密凑合用。
- 涉及金融、身份认证、车规级,必须上硬件。
- 混合方案也不错:软件做密钥协商,硬件做加解密运算。
常见的硬件安全威胁模型
做硬件安全,你得先知道敌人长什么样。我按攻击方式分了几类:
1. 物理攻击
- 探针攻击:用微探针直接读总线信号。我以前见过一个攻击者,在芯片封装上钻了个孔,探针直接搭在密钥总线上……
- 故障注入:用激光、电磁脉冲干扰芯片运行,让安全逻辑出错。比如跳过密码验证。
- 侧信道攻击:分析功耗、电磁辐射、时间差。我记得有个经典案例,用简单功耗分析(SPA)就能区分AES的轮运算。
2. 逻辑攻击
- JTAG/SWD调试接口攻击:调试口没锁,直接读内存。我建议所有量产芯片必须熔断调试接口。
- Boot ROM攻击:利用启动代码漏洞,加载恶意固件。
- 内存泄露:DMA、缓存未清零,残留数据被读取。
3. 供应链攻击
- 硬件木马:在制造阶段植入恶意电路。这玩意儿很难检测,需要侧信道指纹比对。
- 克隆攻击:复制芯片ID或密钥。所以现在都用物理不可克隆函数(PUF)。
避坑指南:我曾经在一个项目里,只做了软件层面的安全防护,结果送检时被攻击者用激光故障注入,5分钟就绕过了密码验证。从那以后,我设计任何安全芯片,第一件事就是画威胁模型图,把每个攻击路径标出来。
小结
硬件加密不是银弹,但它是安全的基础。你想想看,如果连密钥都存不住,加密算法再强有什么用?
下一章,咱们会深入讲硬件加密的核心——真随机数发生器(TRNG)和物理不可克隆函数(PUF)。这两个东西,是硬件安全的「根」。到时候我会分享一些流片踩过的坑,保证让你少走弯路。
今天就到这儿。有问题随时在群里聊,我看到就回。