--- name: re-hw-chip type: atomic description: > 物理层硬件逆向:去封装、裸片分析、探针与 FIB、PCB 电路分析、硬件木马检测。 触发词:芯片逆向、去封装、decapping、PCB、硬件木马、电路分析、裸片、FIB、侧信道、SPA、DPA、故障注入、时钟毛刺、电压毛刺。 capabilities: [chip-analysis] --- # 芯片/PCB 硬件逆向 ## 何时使用 / 何时不用 - 用:物理芯片/板级分析(固件提取失败后的物理层)、芯片解密、硬件木马检测 - 不用:固件级分析(转 [[re-fw-extract]]);接口提取(转 [[re-hardware-io]]);无线信号(转 [[re-sdr]]) ## 工具准备 ### 显微镜/探针台(观察与接触) - 选购指引:体视显微镜(初检)→ 金相显微镜(裸片);探针台按预算分级 - 验证: 无软件验证——以成像清晰度验收 ### decapping 设备与耗材(去封装) - 化学 decap:发烟硝酸/硫酸 + 加热台(防护:通风橱/护目镜);激光 decap:专用激光器(高成本,外包可选) - 验证: 无软件验证——以裸露程度验收 ### 逻辑分析仪(信号提取) - 多平台: Saleae 类(配套软件各平台可用)或开源方案(sigrok/PulseView:`apt install sigrok-cli pulseview` / `brew install sigrok-cli pulseview`(sigrok 无 PyPI 包)) - 验证: `pulseview --version` ### 热成像(功耗/时序异常,可选) - 选购指引:按分辨率与测温范围选型;验证: 成像验收 ## 操作步骤 按顺序执行;全程注意防护与破坏性风险(步骤 1 不可逆)。 1. **去封装(decapping)**: - 化学法:加热台预加热 → 滴加发烟硝酸溶解环氧 → 清洗(丙酮)→ 显微镜检查 - 激光法:激光逐层烧蚀(精度高,成本高) - 风险控制:通风橱、防酸手套/护目镜、废弃液处理;先练习废片 - 验收:金属层可见、无过度腐蚀(伤及晶圆) 2. **裸片分析**: - 显微成像(金相显微镜/电子显微镜)→ 金属层走线观察 - ROM/熔丝提取:成像 → 位图还原(金属层/多晶硅层图案 → 二进制) - 产出:ROM 位图 → 数据(与 [[re-fw-extract]] 固件对照) 3. **探针与信号提取**: - 探针台接触测试点(总线/时钟/数据线) - FIB(聚焦离子束):修改互连/暴露内部节点(高成本,外包) - 信号嗅探:逻辑分析仪挂总线(时序对照数据手册) - 注意:探针负载可能改变信号(见坑 2) 4. **PCB 电路分析**: - 走线还原(万用表导通/成像 → 网络表) - IC 标识识别(丝印 → 型号 → 数据手册 → 引脚功能) - JTAG/SWD 引脚定位(测试点/走线特征 → 调试接口枚举) 5. **硬件木马检测**: - 冗余逻辑特征(无功能路径的触发器/计数器) - 功耗/时序异常(热成像 + 电流曲线对照基线) - 触发条件分析(特定输入组合/温度/时间条件) ## 侧信道与故障注入 ### 功耗侧信道(SPA/DPA) - SPA(简单功耗分析):单条或少数功耗曲线直接观察密钥相关操作(乘方运算位数、条件分支的电流差异),适合算法结构已知的场景 - DPA(差分功耗分析): - 采集原理:同一密钥下多次加解密,逐条记录功耗曲线 - 差分思路:按猜测密钥位分组(如按某轮 S-box 输出某一位为 0/1 分组),组内平均后相减;某猜测下出现显著尖峰,说明该中间值与功耗存在相关性 - 相关分析:对中间值比特与曲线逐点做相关性计算(CPA 思路),尖峰位置对应操作发生时刻,可反向验证猜测 - 采集设备(chipwhisperer 类)选购要点: - 采样率:不低于目标时钟的数倍(超出奈奎斯特需求),高速时钟下需 GHz 级采样 - 触发同步:支持外部触发信号(以加解密开始时刻对齐),曲线逐条对齐是差分分析的前提 - 信噪比:高阻差分探头、短地线、屏蔽可降低噪声;噪声大时靠增加采集条数平均补偿 - 验证: 无软件验证——以已知密钥采集曲线,确认差分尖峰出现 ### 故障注入(时钟毛刺/电压毛刺) - 原理:时钟毛刺在目标指令执行时刻插入过窄的时钟周期,使取指/译码/执行失败,产生跳过分支、破坏中间值等效果;电压毛刺以瞬时欠压实现类似效果 - 参数扫描流程: 1. 粗扫:宽度与相位(注入时刻)按大步长铺开,记录有反应的参数点 2. 细分:对命中区域缩小步长,定位稳定窗口 3. 复测:同一参数多次注入,确认效果可重放 - 结果判定:跳过分支(授权校验直接通过)、改返回值(校验函数返回被破坏)、无效果或崩溃(参数越界,回退重扫) - 与去封装衔接:裸片探针可接触时钟/总线节点,毛刺注入点与功耗观测点重合,侧信道曲线可与探针波形互证;去封装后注入点选择更多(见上文步骤 1/3) ### 安全边界 - 与技能库整体边界一致:仅限授权范围内的自有设备/实验室样品,不涉及具体攻击目标 - 本节为方法学描述,不提供针对特定对象的操作指引 ### 常见坑与陷阱 - **波形不同步导致 DPA 无相关性**:现象——差分曲线无尖峰、相关值接近零;原因——各条曲线起点未对齐(触发没对准,软件触发延迟抖动);对策——改用硬件触发信号,或事后按固定特征点重对齐 - **毛刺参数扫不到窗口**:现象——全参数范围扫描无任何效果;原因——宽度/相位扫描步长大于命中窗口;对策——先粗扫定位区间再细分步长,必要时增大重复次数 - **故障注入后设备锁死**:现象——注入后设备无响应或进入异常状态;原因——毛刺破坏运行状态或误写存储;对策——实验前备份固件并准备重刷恢复流程,批量注入时按批重启 - **采集设备带宽不足**:现象——高速时钟下曲线失真(边沿变缓、高频细节丢失);原因——采集带宽低于信号频谱需求;对策——按目标时钟选择带宽足够的设备,或降低时钟运行 ## 跨域联合 - [[re-hardware-io]]:接口提取衔接(JTAG/UART 是软件侧入口) - [[re-fw-extract]]:固件侧对照(ROM 提取物与固件 dump 比对) - [[re-sdr]]:无线侧(RF 接口) - [[re-triage]]:提取物初勘 ## 常见坑与陷阱 - **decap 不可逆**:现象——封装破坏后无法恢复;原因——物理破坏;对策——先存档固件([[re-fw-extract]])再做物理操作 - **探针负载改变信号**:现象——挂探针后时序异常;原因——容性负载;对策——高阻探针、记录挂载前后基线 - **FIB 高成本易毁**:现象——FIB 修改失败晶圆报废;原因——离子束损伤;对策——先成像规划、外包给专业服务 - **木马误报**:现象——正常冗余逻辑被当木马;原因——厂商设计含测试/修复逻辑;对策——对照数据手册与已知电路模式,低置信度不发布 - **安全防护缺失**:现象——化学 decap 事故;原因——未用通风橱/防护;对策——步骤 1 风险控制强制前置