恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
芯片完整性筛查新思路:电源侧信道功耗指纹识别
首页
资讯中心
/
芯片完整性筛查新思路:电源侧信道功耗指纹识别
芯片完整性筛查新思路:电源侧信道功耗指纹识别
发布时间:2026/9/26 6:16:57
芯片完整性验证这件事绝大多数现有方案都有一个共同前提芯片会老老实实回答你。设备上电之后发一句“报告身份”芯片返回一串ID或者去读它的boot flash和出厂哈希比对一下。问题是如果环节里的某个角色连固件、连die都是伪造的那这些协议内的答案凭什么可信我做半导体供应链检测这块做了些年越来越觉得与其在通信总线里反复问“你是谁”不如换一条赛道——在芯片自己都没意识到的物理通道上“偷听”它。电源侧信道就是这条绕开协议、直接感知硅片内部真实状态的带外通道。这篇文章聊的是一个面向大规模半导体供应链完整性筛查的实践方向不依赖芯片任何主动配合在电路板的电源端快速采集功耗特征通过比对功耗指纹来识别伪造、翻新、篡改和木马注入。它适合来做物料到货检验、晶圆批次一致性抽查、硬件木马初筛这类场景也顺便解决了一个让很多质量工程师头疼的问题——在整包整箱的芯片面前加密协议做得再漂亮也没法逐个跑一遍握手。1. 为什么供应链完整性验证要从协议内转向带外物理层1.1 协议内的校验机制天然就不是为“对抗恶意硅片”设计的先看传统手段。最常见的来料检验流程是读芯片的唯一ID核对批次条码或者用SPI/JTAG把固件区读出来跟出厂哈希比对更高阶一点芯片里有安全单元、有根密钥直接做双向认证应答。这些方案的问题不是复杂度不够而是信任起点放错了位置——所有信息都是芯片“自己说的”。举一个非常直观的例子DSP flash完整性校验。不少DSP方案里有一个boot引导区校验的时候去读flash里的magic number比如0xAA55这种经典标识再去核对指令区末尾的ok1flag状态位。听起来很完整但这类软件层的完整性标记只要攻击者掌握了一颗样品能把固件dump下来逆向找到校验跳转和状态标志位花一个晚上的时间就能让改造后的芯片对所有协议内询问给出“完全正常”的回答。SM4-GCM这类算法能保证传输内容在信道上的机密性和完整性但保护不了硅片本身——它不知道那条密文是谁发的更不知道那颗芯片上有没有多出一块不属于原设计的硬件逻辑。这就是协议内认证的根本缺口它假设芯片是可信的然后用芯片自报的信息去验证芯片。而这个假设在最复杂的供应链攻击模型里恰恰是最危险的假设。1.2 “带外”到底带在哪条线路之外带外检测不是另一个协议而是不经过芯片主动通信接口的独立测量通道。芯片不可能靠固件、靠寄存器、靠任何数字逻辑来篡改这条通道的信息因为这条通道本身是物理规律电荷在硅片上移动穿过电源引脚流到地。芯片在跑指令的时候内部管子的翻转是一阵一阵的CPU取指的时候电流猛一下访问外设的时候电流又低一段不同芯片做了相同操作功耗曲线的形态高度一致但如果是伪造die、翻新片、注入了木马逻辑的片子内部晶体管的尺寸、数量、接线方式变了功耗轨迹就必然出现可观测的差异。这个差异不在数字域里所以模拟域的任何代码都无法把它“伪装”成正常值——攻击者改固件能做到的极限只是让芯片在通信接口上闭嘴做不到让硅片的物理特性跟着演一遍戏。这也是我把这个方案定性为“带外电源侧信道检测”的原因原理上它属于经典的侧信道分析部署方式上它是供应链里一道独立的检测工序和芯片返回的任何数据无关。1.3 大规模筛查场景下协议内认证的“时间成本”先败下阵来还有一个非常现实的问题量。你从代理商那边进一万颗料不可能一万颗都花几秒钟走一遍公钥握手光是产线停线等待的时间就够喝一壶。完整的密码学认证一般在抽检或者高风险环节用作为常规全检是不可承受的。电源侧信道采集则天然适合流水线化。一次上电、一段固定的激励序列、几万点波形采样单件耗时可以压缩到几百毫秒量级配合多通道并行夹具一小时过几千片很常见。它的定位不是替代密码学认证而是在协议认证之前加一道物理层物理筛查先用功耗指纹快速把所有“不对”的芯片筛出来少数的可疑件再做加密握手和深度失效分析。这种“物理粗筛协议精验”的组合才是供应链完整性工程里真正可落地的大规模方案。2. 核心原理CMOS功耗泄露与芯片指纹的对应关系2.1 芯片的功耗不是均匀的这正是信息泄露的起点要理解电源侧信道为什么能用先得认清一个事实CMOS芯片消耗的电流不是一个恒定值而是由内部翻转事件的密度决定的。动态功耗的经典公式是P α · C · Vdd² · fα是活动因子也就是单位时钟周期内发生翻转的逻辑门比例C是有效负载电容Vdd是核心电压f是时钟频率。这四个参数里C和f在同类芯片之间几乎一致Vdd由电源电路锁定唯一能体现芯片内部差异的就是α——它直接取决于你喂给芯片的指令序列、内部状态、还有芯片本身的逻辑结构。当芯片执行一条“把寄存器A搬到寄存器B”的指令总线上一根根线翻转瞬时电流会有一个特征性的脉冲当芯片执行空转NOP内部大部分单元不动作电流就塌下去。采集这个随时间变化的电流轨迹相当于在芯片的“肌肉运动”层面做了一个肌电图——它能反映硅片内部到底有哪些肌肉哪些肌肉什么时候发力。伪造芯片最核心的动机就是省钱换更小的工艺节点、删减不必要的功能模块、复用旧die。这些改动在功能上可能完全兼容但逻辑门的数量和排列一定会变α曲线就会变。翻新片则是另一种情况——老化让漏电流增大、管子阈值漂移整体功耗基线会抬高瞬态响应的锐度也会退化。2.2 用一条采样电阻把“电流的一举一动”变成看得见的电压测量功耗侧信道最基本也最稳妥的方式是在供电回路上串联一颗采样电阻。芯片的地电流从电源芯片出来先流过这颗电阻再进芯片的地引脚示波器测电阻两端的压降根据欧姆定律I V/R还原出电流波形。实际参数得算一算。假设被测芯片工作电流的有效值是50mA我们想在不影响芯片供电的前提下测到尽量大的信号采样电阻取1Ω。此时电阻上的压降是50mV相对于1.8V或者3.3V的电源轨来说占比不到3%对芯片正常工作没有实质影响。但有两点不能忽略一是这颗电阻上的压降会被芯片自身的电流波动调制动的不是静态电源电平而是叠加在上面的瞬态变化所以不能用万用表直流档去测需要至少几十MHz带宽的采集设备二是压降信号幅度只有几十mV直接喂给普通数字化仪量化精度会浪费大半中间一般要加一级固定增益的差分放大器把信号抬到满量程附近再用ADC采样。还有一点需要刻意控制激励的一致性。你不能一片芯片跑RTOS、另一片芯片只跑空循环就拿来对比指纹的对比前提是“做同样的事情时谁表现得不一样”。我们一般的做法是在夹具上提前烧录一段定长的自检程序上电稳定后统一复位芯片从固定地址开始执行同样的指令序列示波器在复位信号上触发采集。这样得到的一整段功耗波形才算是同一道考题下各个芯片交出的答卷。2.3 芯片的“指纹”到底包含哪些维度的信息功耗指纹不是单个数值而是一组多维特征的综合体。我按工程上常用的归类方式拆一下时域宏观特征整段采集窗口的平均电流、RMS电流、峰值电流、电流峰谷比。这些主要反映芯片的整体规模、静态漏电水平和基础翻转密度。时域局部特征特定指令阶段比如内存拷贝、DMA搬运、加密运算出现的特征性脉冲宽度、脉冲计数、边沿上升/下降斜率。这部分对逻辑结构差异最敏感。频域特征把功耗波形做FFT观察各频段的能量分布、时钟谐波处的尖峰幅度。伪造设计中时钟网络的布局、驱动强度、片上电容都会导致谐波结构偏移。模板差异特征在同样激励下把多片真品芯片的平均波形作为模板逐点相减计算残差的平方和。如果某片芯片和模板的残差显著超出正常片之间的离散水平直接标可疑。这五个大类叠加起来单个芯片的特征维度通常能到几十到上百维光靠人眼去看波形很难判断所以后面必然要走到统计建模这一步。3. 产线级采集系统低成本多通道带外测量链路怎么搭3.1 通道拓扑Pogo Pin夹具加每通道独立采样电阻一旦决定做全检第一步就是把“实验室里用示波器手工点测”改成“夹具压一下出一个结果”的流水线姿态。我们搭的采集台架是这么做的一层载板做成压接夹具芯片平放在一个托盘凹槽里上方气缸带动一块针板下压每个电源针脚和地针脚都由Pogo Pin弹簧针接触载板上的焊盘。载板从电源轨到每路DUT的VDD之间单独留一颗采样电阻的位置。为什么每通道独立采样电阻而不是所有芯片共用一个电源引脚再统一测因为共用的电源轨会互相串扰A芯片电流突变时会把B芯片的电压抬一下B通道里测到的波形就掺了A的信号后面特征提取时很难清洗。多通道同步采集是另一个关键。我们用的是PXIe机箱加一块12位、100MS/s的数字化仪卡八个通道同时采样。上电时序由机箱里的可编程电源模块统一控制DUT的复位信号引到数字化仪的触发输入保证每片芯片都在同一个执行相位开始采集。3.2 采样设备选型不贪带宽贪的是通道密度和同步性做供应链筛查和做高速信号测试对设备的需求完全是两回事。做信号完整性仿真和抖动分析时你恨不得上50GHz的采样头但功耗侧信道关心的能量主要集中在几十MHz以下过度追求带宽反而会把高频噪声一并采进来降低特征稳定性。我们的选型逻辑是单通道带宽在50到100MHz足够优先保证通道数、采样深度和通道间同步精度。实操对比过三类方案设备类型典型代表优点局限适合场景台式示波器Keysight 4000X / Tek MSO5上手快、自带显示和触发通道少体积大自动化脚本支持弱实验室小批量验证USB示波器PicoScope 5000系便宜、二次开发方便多通道同步精度一般长时间采集稳定性一般样机调试、现场抽检PXIe数字化仪NI PXIe-5105 等通道密度高、同步好、易集成产线流程一次性投入较高、需要开发上位机量产全检、自动化流水线另外运放前端的设计不能省。直接测采样电阻上的电压ADC的动态范围利用率差波形细节会淹没在量化噪声里。我们用的是仪表放大器做差分转单端增益设置在50倍左右带宽限制在10MHz低通把无关的高频毛刺先物理滤一道。这是一套很成熟的链路采样电阻→仪表放大器→低通滤波→ADC。3.3 软件流程把“上电-激励-采集-判定”变成一条命令硬件就位之后软件架构反而决定这套系统能不能长期稳定运转。我建议按以下步骤组织产线程序PLC或上位机控制气缸下压到位信号反馈后读取Pogo Pin接触状态。可编程电源给DUT供电电压逐渐上升到额定值等待电源稳定和芯片内部时钟锁定。上位机通过GPIB/SCPI命令控制数字化仪布防等待触发然后给DUT发送复位释放信号。数字化仪按预设深度连续采集比如100MS/s采样率下采10ms得到1M个点。采集完成后上位机对波形做预处理提取特征向量送入判别模型。结果通过指示灯或者数据库记录输出绿光放行红光报警黄色提示疑似。整个周期的瓶颈通常不在采集本身而在夹具的机械动作和信号稳定等待。我们的实测节奏是单件约1.5秒如果并行八通道一个班次可以扫掉一万多片这个吞吐量应付多数来料检验和出厂抽检已经完全够用。4. 特征提取与识别模型把功耗波形变成可判读的“身份标签”4.1 时域和频域特征的具体落法拿到原始波形之后第一件事是切分成有物理含义的区间。同一个激励序列里不同指令段的功耗形态差异很大把整段波形直接压成一个平均值会把大量指纹信息丢掉。更合理的做法是先对齐用复位上升沿作为时间零点把波形切成“启动段”“数据搬运段”“计算段”“空闲段”每个段分别计算特征。每个区间取哪些特征我们总结了一套比较有效的默认集合特征类型具体特征物理含义对哪些异常敏感时域区间平均电流、电流RMS、峰电流整体翻转强度工艺缩改、逻辑规模变化时域上升沿平均斜率、高电平持续时间翻转速率、驱动能力老化、阈值漂移频域FFT主峰频率和幅值、二次谐波幅值时钟翻转节奏时钟树改动、倍频逻辑增删频域45kHz至1MHz带内能量比高频毛刺占比木马逻辑、异常状态机毛刺统计波形自相关函数峰值旁瓣比信号重复度插入额外流水线、启动延迟频域部分要特别注意别把所有能量都用来做特征。芯片正常工作的时钟谐波虽然幅值大但也是最好伪造的——只要时钟树不变这部分就很稳定。反而是一些带外杂散成分例如木马在某个状态下触发后产生的不规则脉冲会以宽频噪声的形式出现在频谱里这些成分和标准逻辑没有直接关系攻击者没法轻易让它消失。4.2 用PCA降维再用随机森林做分类为什么不直接上深度学习数据准备好之后面临一个选择用传统机器学习还是用深度网络。我从工程稳定性的角度推荐先用PCA加随机森林。原因有三点。第一供应链检测的阳性样本往往很少你手头可能只有几千片真品几十片伪造品这种极度不平衡的数据集上深度模型非常容易过拟合到真品分布里把少量异常样本当成噪声忽略掉。随机森林对不平衡数据更稳健。第二特征维度已经被人为压缩到几十维没有巨大原始波形的存储压力训练和推理都快。第三随机森林可以输出特征重要性排序当某一批芯片被判定异常时你能直接看出是哪个频段能量变了、哪段波形斜率不对——这对后续做失效分析定位问题非常有价值而深度神经网络给不出这种可直接归因的中间量。当然后续如果训练数据足够多也可以考虑用1D-CNN直接吃归一化后的波形片段我们的经验是识别率能再提升一到两个点但解释性差不少。产线环境里解释性意味着工程师知道为什么要信这台机器这比一点准确率更宝贵。4.3 阈值设定宁可误报不要漏报分类模型输出的是一个“与真品模板的距离值”。这个距离值的分布通常是这样的真品自身由于封装、接触、温度微小波动会形成一个中心密集的分布伪造品或者改动芯片则会落在远离中心的位置。阈值就划在这两个分布之间。但阈值定在哪取决于具体业务的容忍度。生产线上最怕的是漏报——一颗带木马的芯片流到最终产品里后果不是返工能解决的。所以我们默认把阈值往严格方向压宁可让1%到2%的真品被标成“疑似”复检也不能让异常样品混过去。复检的成本低只要人工做一次加密握手或者显微镜观察就能排除漏掉的成本则可能是整个批次的召回。这个原则需要让产线和管理层提前达成共识否则上线的第一天就会被“误报太多”的投诉淹没。数据驱动地讲就是要先跑一个中批量试点画清楚距离分布的ROC曲线找到等错误率EER对应的阈值再往EER的那个点退一个安全裕量。5. 规模化落地时躲不开的工程坑接触电阻、温漂与批次基线5.1 接触电阻是“指纹”最大的隐形污染源做实验室测试时示波器探头用夹子夹住芯片引脚和一根粗地线接触基本稳定。但在自动压接夹具里Pogo Pin针尖和芯片引脚之间每次压接的接触电阻都会有细微差异。这个差异杀伤力极大因为它直接叠加在采样电阻上。我们用的采样电阻是1Ω而Pogo Pin的接触电阻可能从0.2Ω波动到0.8Ω意味着同一个芯片压两次采样电阻上的等效串阻变了测出来的电压整体偏移。这种偏移在时域平均电流上特别明显会直接把一片好好的芯片推成“疑似异常”。解决办法有几层。硬件上尽量用开尔文四线接法把采样电阻和接触点分开采样电阻两端单独用两根细线引到放大器这样Pogo Pin的接触电阻不会串进采样回路。软件上再做一次补偿每次压接后先用一个低电流直流源测一下电源轨到地的回路电阻估算当前接触状态下的基准偏差。两相叠加之后接触电阻残余影响可以被压到可接受范围。5.2 温度漂移同一颗芯片早上和下午的功耗指纹不一样CMOS的漏电流对温度极度敏感常温25度到高温50度静态功耗可能翻一倍。如果早上校准的指纹模板到下午车间温度上来三四度就失灵产线就得频繁重训完全没法用。工程上的处理方式不是把实验室温度严格恒温而是允许温度变化、把温度作为特征的一部分或者说修正项来处理。我们在机箱内部固定位置放了温度传感器每次采集时记录当前温度然后对所有时域特征做温度归一化用量产前预实验得到的温度系数把当前温度下的功耗值折算到25℃基准下再送入分类模型。频域能量特征相对受温度影响小一些但也需要监控。另一个更省心的举措是缩短模型校准周期。每个生产批次上线之前用同批次抽出的5到10片真品重新生成一次模板同时记录环境温度。这相当于给每批芯片建一个基准线能同时吸收温度和制程漂移的双重影响。5.3 晶圆批次差异不同批次之间功耗基线会整体偏移这是供应链检测里一个必须接受的事实同一颗芯片不同晶圆lot之间由于掺杂浓度、氧化层厚度、线宽偏置的细微差异功耗水平会有百分之几到百分之十几的整体漂移。如果你拿上一季度的真品模板去测这一季度新到的芯片误报率会高得离谱。应对方案在业界已经有成熟范式叫相对差异打分每一批次的芯片到货后先随机抽20到30片作为本批次的“参考真品”采集它们各自的特征并建立本批模板。然后整批芯片的判定不再看绝对功耗水平而是看每一片芯片距离本批模板的残差是否超出内部离散度的预定倍数。这样即使两个批次功耗基线整体差了一个档次仍然能快速识别出“在本批次里最不像的几片”。这个相对基线策略配合密码学认证抽检最终形成了我们实际部署的判定体系带外功耗指纹负责快速全面初筛带内加密握手负责对初筛异常件和高风险批次做精准复核。6. 哪类攻击者可能绕过、以及我们如何留一手6.1 攻击者知道这套检测之后会往哪个方向努力任何检测手段都会面对对抗问题不是“能不能造假”而是“造假成本是否足够高”。对功耗指纹检测来说攻击者如果想伪造一颗通过筛查的芯片需要让它的功耗轨迹在所有提取特征维度上都和真品模板匹配。这有多难相当于你在不知道模板具体权重的情况下通过调整内部逻辑门尺寸、数量和布线让几十个维度同时落在真品的窄分布范围内。这不是软件补丁能解决的必须在硅片层面做逆向工程级别的调优。攻击者更可能的路径是提高功耗伪装的粗糙程度比如整体拉高频率、加入大电容滤波来抹平瞬态特征。这类小动作会被频域特征和局部时域特征抓住。最危险的对抗场景反而是“完全照搬真品die设计只在某一小处插入木马逻辑”——这种木马的功耗足迹极小可能低于正常离散噪声单次采集确实可能漏掉。应对方法是增加激励模式的多样性同一芯片用四五种不同的输入种子分别采集让木马在至少一种状态下露出马脚。6.2 给检测系统自己的完整性上锁还有一件容易被忽视的事检测设备自己也不能被污染。如果你的采集程序跑在一台被入侵的PC上或者数字化仪的增益被篡改整套系统就会在无声无息中失灵。所以整套检测流程中必须有对检测系统本身的完整性校验——固件版本哈希核对、校准板定期上行验证、判别模型更新记录留痕。这些措施做下来才算一个闭环的供应链完整性工程。另外建议功耗指纹相关的原始波形做本地保留至少保存一批次的全部特征向量和可疑样本的原始波形。这样一旦后续终端产品出现批量故障还能回溯分析是检测时漏了还是后来引入了新的供应链变更。6.3 “带外”不是取代而是给“带内”加一层物理锚点最后想明确一个定位问题。带外电源侧信道检测的最终目的不是让密码学认证下岗而是给密码学认证的数据加一个物理锚点。SM4-GCM那些算法解决的是数据在传输和存储过程中是否被篡改的问题功耗指纹解决的是这颗硅片是不是真品、有没有被动过手脚的问题。两者面向的威胁模型不同组合起来才完整。我在实际部署中还有一个很深的体会当生产线第一次跑起来用功耗指纹把一批混入的翻新片筛出来的时候很多人才真正意识到芯片的“回答”和芯片的“事实”之间原来真的隔着一条带外鸿沟。这套系统的价值不在于颠覆谁而在于给了供应链质量团队一双不依赖芯片自觉的眼睛。后续如果要做扩展可以把单个芯片的指纹扩展到模组级、整机级电源域检测EPR和关机轨迹同样携带大量信息那是另一个值得单独开一篇的项目了。