4、密钥存储安全:加密狗内部存储结构、密钥分区与访问控制、防物理攻击技术

加密狗这东西,说白了就是个黑盒子。但黑盒子里面到底怎么藏密钥,才是真功夫。我见过不少产品,加密狗买回来直接用,结果被破解得干干净净。问题出在哪?就是内部存储结构太简单,攻击者拿探针一戳就全暴露了。

今天咱们就聊聊,加密狗内部到底该怎么设计,才能让密钥真正安全。

4.1 内部存储结构:别把鸡蛋放一个篮子里

加密狗的存储空间其实不大,通常就几十KB到几百KB。但麻雀虽小五脏俱全,内部结构必须精心设计。

我个人习惯把存储区分为三块:

  • 系统区:存放固件、启动代码、芯片ID。这部分出厂就锁死,用户改不了。
  • 密钥区:存放核心密钥、证书、私钥。这是重点保护对象。
  • 用户区:存放应用数据、日志、临时变量。这部分可以读写,但权限受控。

你想想看,如果这三块混在一起,攻击者读用户区的时候,顺手就把密钥区也读走了。所以物理隔离是第一道防线。

关键点:密钥区和用户区必须物理分离,不能共用同一块Flash页。我在项目中遇到过一款加密狗,就是因为密钥和用户数据存在同一页,结果被侧信道攻击一锅端了。

4.2 密钥分区与访问控制:谁可以碰密钥?

密钥分好了区,接下来就是谁有权限访问。这里有个原则:最小权限原则

我一般把访问权限分成三级:

权限等级 可访问区域 典型操作
Level 0(管理员) 全部区域 烧录密钥、更新固件、重置加密狗
Level 1(应用) 用户区 + 部分密钥区 调用加密算法、读取公钥、写入日志
Level 2(普通) 仅用户区 读取应用数据、执行普通指令

注意,Level 0 权限通常只在烧录阶段使用。烧录完成后,管理员权限就应该被永久关闭。我曾经见过一个产品,烧录完忘了关管理员权限,结果攻击者通过USB接口直接提权,把密钥全读走了。嗯,这坑我踩过。

我的建议:烧录完成后,立即熔断管理员权限的保险丝。硬件上做死,软件上改不回来。这叫「一次性编程」,也叫OTP。

4.3 防物理攻击技术:别让探针碰到密钥

物理攻击是加密狗最怕的。攻击者拿探针直接戳芯片表面,或者用显微镜看走线,就能把密钥读出来。怎么防?

4.3.1 防探针攻击

探针攻击的原理很简单:找到芯片上的数据总线,用微探针接触信号线,直接监听数据。说白了就是物理层面的「窃听」。

我常用的防护手段:

  • 顶层金属网格:在芯片最上层铺一层细密的金属网格,一旦被探针戳断,芯片自动擦除密钥。
  • 总线加密:内部数据传输用硬件加密,就算探针读到信号,也是乱码。
  • 主动屏蔽层:芯片表面覆盖一层有源屏蔽,检测到异常电容变化就触发自毁。

注意:防探针不是万能的。我记得有一次,攻击者用聚焦离子束(FIB)绕过屏蔽层,直接修改了芯片内部逻辑。所以硬件防护必须和软件防护配合使用。

4.3.2 防侧信道攻击

侧信道攻击更隐蔽。攻击者不直接碰芯片,而是通过测量功耗、电磁辐射、运算时间等「旁路信息」来推断密钥。

举个例子:加密算法在执行时,不同的密钥位会导致不同的功耗波形。攻击者采集几千次波形,用统计学方法就能还原出密钥。

怎么防?我总结了几条经验:

  • 恒定时间执行:让每次加密运算的时间都一样,不管密钥是什么。攻击者没法从时间上推断。
  • 功耗平衡:在硬件层面加入伪随机噪声,让功耗波形看起来像白噪声。
  • 密钥随机化:每次使用密钥前,先做一次随机掩码运算。就算攻击者拿到功耗波形,也对应不上真实密钥。

避坑指南:我曾经做过一款加密狗,软件上做了恒定时间处理,但硬件上忘了关调试接口。结果攻击者通过JTAG接口直接读取了密钥寄存器。嗯,从那以后我每次设计都会检查:所有调试接口在量产前必须物理熔断。

4.4 自毁机制:最后的防线

如果所有防护都失效了,怎么办?自毁机制就是最后一道防线。

我常用的自毁触发条件:

  • 电压异常检测:检测到电源电压超出正常范围,立即擦除密钥区。
  • 温度异常检测:检测到芯片温度急剧升高(比如被热风枪吹),触发自毁。
  • 探针检测:屏蔽层被破坏,自动擦除。
  • 多次认证失败:连续输错密码超过阈值,擦除密钥。

但自毁机制也有坑。我记得有个项目,自毁触发后擦除速度太慢,攻击者用液氮冷却芯片,在擦除完成前读走了密钥。所以自毁必须做到:触发即擦除,毫秒级完成

小技巧:密钥存储用SRAM而不是Flash。SRAM掉电就丢数据,攻击者想读也读不到。配合电池供电,一旦检测到攻击,直接切断电池,密钥瞬间消失。

4.5 总结一下

密钥存储安全,说白了就是三件事:

  1. 分区隔离:密钥区和用户区物理分开,权限分级管理。
  2. 物理防护:防探针、防侧信道、防调试接口。
  3. 自毁机制:触发条件要灵敏,擦除速度要快。

你想想看,攻击者要破解一个加密狗,需要同时绕过这三层防护。难度有多大?嗯,至少比直接破解软件算法难十倍。这也是为什么加密狗至今仍是嵌入式安全的主流方案。

下一章咱们聊聊密钥的生命周期管理,从生成到销毁,每一步都不能马虎。