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)。这两个东西,是硬件安全的「根」。到时候我会分享一些流片踩过的坑,保证让你少走弯路。

今天就到这儿。有问题随时在群里聊,我看到就回。