3、硬件安全基础:可信根、硬件木马、侧信道攻击、物理不可克隆函数(PUF)、安全启动与信任链
Chiplet 架构将单一 SoC 拆解为多个异构裸片(Die),通过先进封装或中介层互连。这种多源供应链模式引入了前所未有的攻击面:恶意代工厂可能在某个裸片中植入硬件木马,不可信的封装厂可能窃取裸片间通信数据,甚至测试环节也可能泄露敏感信息。要构建 Chiplet 系统的安全防线,必须从硬件安全的基础概念出发,理解可信根(Root of Trust)、硬件木马(Hardware Trojan)、侧信道攻击(Side-Channel Attack)、物理不可克隆函数(PUF)以及安全启动与信任链(Secure Boot & Chain of Trust)这五大核心支柱。本章将逐一剖析其原理、实现方法、检测手段与工程实践,为后续章节中 Chiplet 特有的安全互连与验证打下坚实基础。
3.1 可信根(Root of Trust)
核心原理
可信根是系统安全信任的锚点,它必须是一个物理上不可篡改、逻辑上不可绕过的硬件模块。在 Chiplet 架构中,可信根通常位于一个独立的、由可信代工厂制造的安全裸片中,或者集成在主控裸片的安全岛(Secure Island)内。其核心功能包括:提供唯一的设备身份标识、安全存储密钥(如根密钥、平台密钥)、执行密码学运算(RSA/ECC/AES/HMAC)、以及作为安全启动的起点。可信根的设计必须遵循 最小化原则——代码量越少,攻击面越小,越容易进行形式化验证。
判断方法与实现路径
- 身份根:基于 PUF 或 OTP 熔丝生成不可预测的设备唯一 ID。
- 存储根:将根密钥(Root Key)烧录于可信根内部,私钥永不出安全边界。
- 执行根:可信根内置一个简单的 RISC-V 核心或状态机,仅执行固定安全操作。
- 报告根:通过安全寄存器或消息接口(如 I2C/APB)向外部提供平台配置状态。
案例拆解:Chiplet 中的独立安全裸片
某高性能计算 Chiplet 项目采用 2nm 主计算裸片 + 28nm 安全裸片的异构方案。安全裸片由完全可信的 IDM 工厂制造,内部集成了 PUF、AES-256 引擎、SHA-384 加速器和一组 OTP 存储。主计算裸片通过 Die-to-Die 接口(如 UCIe)向安全裸片发起密钥派生请求。初始阶段,安全裸片利用 PUF 生成根密钥,并将其用于加密 OTP 中的固件镜像。在系统启动时,主裸片通过安全裸片验证固件签名,若验证失败,安全裸片会拉低全局复位信号,阻止系统运行。该设计将安全边界严格限定在安全裸片内,即使主计算裸片被植入木马,也无法窃取根密钥。
常见误区与复盘
复盘:必须将可信根视为独立的安全边界,其制造、封装、测试全流程均需在可信环境中完成,且需通过独立审计。
3.2 物理不可克隆函数(PUF)
核心原理
PUF 利用芯片制造过程中不可避免的工艺偏差(如晶体管阈值电压、金属互连电阻的随机差异)来生成独特的“芯片指纹”。这种指纹具有 唯一性(不同芯片输出不同)、不可克隆性(即使攻击者拥有同一掩膜版也无法复制)和 随机性。在 Chiplet 中,PUF 常用于生成根密钥,替代传统的 OTP 存储,从而避免密钥被物理提取的风险。常见的 PUF 实现包括 SRAM PUF、环形振荡器 PUF(RO PUF)和基于忆阻器的 PUF。
| PUF 类型 | 原理 | 优点 | 缺点 | Chiplet 适用性 |
|---|---|---|---|---|
| SRAM PUF | 上电时 SRAM 单元随机状态 | 标准 CMOS 工艺,无需额外电路 | 受温度电压影响大,需纠错 | 高(可作为安全裸片启动指纹) |
| RO PUF | 环形振荡器频率偏差 | 稳定性较好 | 需要计数器,面积较大 | 中(适合安全裸片) |
| 忆阻器 PUF | 阻变随机存取存储器阻值差异 | 抗攻击性强,密度高 | 工艺不成熟,集成度低 | 低(未来潜力) |
操作流程与判断方法
- 注册阶段:在安全环境下,采集 PUF 原始响应,通过模糊提取器(Fuzzy Extractor)生成稳定的密钥,并将辅助数据(Helper Data)存储在非易失存储器中。
- 重建阶段:系统每次上电时,重新采集 PUF 响应,结合辅助数据通过纠错算法(如 BCH 码)重建出完全一致的密钥。
- 质量评估:计算 PUF 响应的汉明重量(应接近 50%)、唯一性(不同芯片间汉明距离应接近 50%)和稳定性(多次采集的误码率应低于 1e-6)。
案例拆解:PUF 密钥生成与防克隆
某物联网 Chiplet 模组需要为每颗芯片生成唯一的 TLS 客户端证书私钥。设计团队采用 SRAM PUF 作为熵源。在产线上,测试设备通过安全接口触发 PUF 注册流程,采集 8KB 的 SRAM 上电数据,经过纠错编码后生成 256 位 AES 密钥。该密钥用于加密存储在外部 SPI Flash 中的私钥。攻击者即使物理剖开芯片,也无法从 Flash 中提取明文私钥,因为解密密钥仅在芯片上电瞬间存在于 PUF 电路中。实测数据显示,该方案在 -40°C 至 85°C 温度范围内,密钥重建失败率低于 1e-9,满足工业级要求。
常见误区与总结
总结:PUF 是可信根的重要组成部分,但并非万能。它需要配合辅助数据存储、纠错电路和防探测屏蔽层才能构成完整的安全方案。
3.3 硬件木马(Hardware Trojan)
核心原理
硬件木马是恶意植入集成电路中的额外逻辑或电路修改,其目的是在特定条件下泄露信息、破坏功能或拒绝服务。在 Chiplet 多源供应链中,木马可能由不可信的代工厂在光罩阶段植入,也可能由封装厂在 RDL 重布线层中插入恶意连线。木马通常由 触发条件(如特定数据模式、计数器溢出、温度阈值)和 有效载荷(如泄露密钥、短路信号、降频)两部分组成。
检测方法与操作流程
- 逻辑测试:通过 ATPG(自动测试向量生成)工具生成大量随机向量,尝试激活木马。但木马触发条件通常极为罕见,随机测试效率极低。
- 侧信道分析:采集芯片运行时的功耗轨迹或电磁辐射,通过统计对比(如 PCA 主成分分析)发现异常。该方法对面积型木马有效,但对触发型木马效果有限。
- 破坏性反向工程:逐层去除芯片钝化层,用 SEM(扫描电子显微镜)拍摄图像,与 GDSII 版图进行比对。该方法准确但成本极高,仅适用于抽检。
- 形式化验证:在流片前,利用等价性检查工具证明 RTL 代码与门级网表的一致性,防止代工厂在综合后插入额外逻辑。
案例拆解:针对密钥提取的触发型木马
某安全 Chiplet 在第三方封装厂进行集成时,攻击者在 RDL 层中插入了一条极细的连线,将 AES 引擎的轮密钥加法器的输出信号旁路到未使用的测试焊盘上。该木马的触发条件是连续 1000 次特定地址的读写操作。由于该测试焊盘在最终产品中未连接,攻击者需使用聚焦离子束(FIB)设备在焊盘上制作探针点才能窃取信号。检测团队通过以下步骤发现该木马:首先,对封装后的芯片进行全引脚扫描,发现一个未定义功能的物理焊盘;其次,对该焊盘施加电压并监测 AES 引擎功耗,发现异常耦合;最后,通过 X 射线断层扫描确认了 RDL 层的额外走线。此案例表明,Chiplet 的封装环节是硬件木马植入的高危区域,必须引入光学和电学双重检测。
常见误区与复盘
复盘:应建立“设计-制造-封装”全流程的可信供应链审计机制,对每一道工序的产出物进行独立验证,并保留不可篡改的制造记录(如使用区块链存证)。
3.4 侧信道攻击(Side-Channel Attack)
核心原理
侧信道攻击利用密码设备在执行加密运算时泄露的物理信息(功耗、电磁辐射、运算时间、缓存访问模式)来恢复密钥。在 Chiplet 中,由于多个裸片共享电源网络和中介层走线,攻击者可以从更远的物理位置采集信号,且不同裸片间的干扰可能掩盖或放大侧信道泄露。常见的攻击方式包括:简单功耗分析(SPA)、差分功耗分析(DPA)、相关功耗分析(CPA)和电磁辐射分析(EMA)。
防护方法与操作流程
- 掩码(Masking):在算法层面,将密钥与随机数异或后再参与运算,使中间值与密钥无关。需注意一阶掩码可抵御 DPA,但二阶掩码才能抵御高阶攻击。
- 隐藏(Hiding):在电路层面,通过双轨逻辑(如 WDDL)或时钟随机化,使功耗曲线趋于平坦,降低信噪比。
- 去耦与隔离:在 Chiplet 中,为安全裸片设计独立的 LDO 电源域,并在中介层中增加深沟槽隔离,阻断侧信道信号向封装外传播。
- 噪声注入:在安全裸片附近放置一个伪随机数发生器驱动的噪声源,干扰功耗轨迹的采集。
| 攻击类型 | 泄露源 | 攻击难度 | 典型防护 |
|---|---|---|---|
| SPA | 单条功耗轨迹 | 低 | 算法平衡(避免密钥相关分支) |
| DPA/CPA | 多条功耗轨迹统计 | 中 | 掩码、隐藏 |
| EMA | 电磁辐射 | 中高 | 屏蔽层、去耦 |
| 时序攻击 | 运算时间 | 低 | 固定时间执行、常数时间算法 |
案例拆解:针对 Chiplet 中 AES 核的 CPA 攻击
某 Chiplet 产品将 AES-128 加密核集成在第三方代工厂制造的裸片中。安全团队在实验室中对该 Chiplet 进行 CPA 攻击测试。攻击平台使用高精度电流探头(带宽 1GHz)连接 Chiplet 的供电引脚,采集 10,000 条加密功耗轨迹。攻击者选择 AES 第一轮 S-box 输出作为中间值,通过汉明重量模型计算假设功耗,并与实际轨迹进行皮尔逊相关系数分析。在未加防护的版本中,仅需 3,000 条轨迹即可恢复全部 16 字节密钥。随后,团队在安全裸片中引入了随机掩码方案,将密钥与 128 位随机数异或后再参与轮运算。重新测试时,即使采集 100 万条轨迹,相关系数峰值仍低于噪声阈值,攻击失败。该案例证明,掩码方案在 Chiplet 环境中同样有效,但需注意随机数发生器的熵源质量。
常见误区与总结
总结:侧信道防护必须在设计初期就纳入 Chiplet 的物理架构规划中,包括电源域划分、敏感信号布线隔离和封装级屏蔽。
3.5 安全启动与信任链(Secure Boot & Chain of Trust)
核心原理
安全启动是确保系统仅运行经过授权和完整性验证的固件与软件的过程。信任链的起点是可信根中固化的 根公钥(Root Public Key)。启动流程从 Boot ROM 开始,Boot ROM 使用根公钥验证第一级引导加载程序(FSBL)的签名;FSBL 验证下一级固件(如 U-Boot 或 RTOS 内核);以此类推,形成一条逐级验证的信任链。在 Chiplet 中,安全启动需要协调多个裸片的复位时序和固件加载顺序。
操作流程与实现步骤
- 根密钥烧录:在可信制造环境中,将根公钥哈希烧录到安全裸片的 OTP 中,并锁定 OTP 写保护。
- Boot ROM 执行:主裸片复位后,首先执行 Boot ROM 代码,该代码不可修改,仅包含验证逻辑和最小初始化。
- 逐级验证:Boot ROM 从外部 Flash 读取 FSBL 镜像及其签名(RSA-4096 或 ECDSA P-384),使用根公钥验签。验签通过后,将控制权交给 FSBL。
- 并行验证:在 Chiplet 中,安全裸片可同时验证其他裸片的配置固件(如 Die-to-Die 接口的 PHY 配置),确保所有裸片均处于可信状态后才允许数据通信。
- 回滚防护:在镜像头中嵌入版本号,Boot ROM 检查版本号是否低于 OTP 中的最低允许版本,若低于则拒绝启动。
案例拆解:多裸片 Chiplet 的协同安全启动
某 AI 推理 Chiplet 由 1 个控制裸片、4 个计算裸片和 1 个安全裸片组成。启动流程如下:系统上电后,安全裸片首先自检并生成平台信任根。控制裸片的 Boot ROM 通过 UCIe 接口向安全裸片发送启动请求,安全裸片返回一个随机数挑战。控制裸片使用其私钥对挑战签名,安全裸片用控制裸片的公钥验签,确认控制裸片身份合法。随后,控制裸片从 SPI Flash 加载 FSBL,安全裸片并行验证计算裸片的配置固件。所有验证通过后,安全裸片释放全局复位信号,计算裸片开始初始化。整个启动过程耗时约 250ms,其中安全验证占 80ms。该方案有效防止了恶意计算裸片在启动阶段发送伪造数据。
常见误区与复盘
复盘:必须建立密钥管理体系,将根私钥存储在硬件安全模块(HSM)中,并实施严格的密钥使用审计。同时,定期轮换代码签名密钥,并吊销已泄露的旧密钥。