当前位置: 首页 > news >正文

硬件安全必修课:扫描攻击与JTAG滥用的原理、威胁与防护方案

1. 项目概述当测试成为后门在芯片设计领域可测试性设计Design-for-Testability, DfT就像给一个复杂的黑盒子装上了一系列的“观察窗”和“控制杆”。它的初衷无比美好在生产线上快速、高效地检测出制造缺陷确保每一颗出厂的芯片都功能完好。扫描链Scan Chain作为DfT的基石通过将芯片内部成千上万的触发器Flip-Flop串联成一个巨大的移位寄存器让测试工程师能够像串糖葫芦一样把测试向量“塞”进去再把内部状态“掏”出来分析。这极大地提升了测试覆盖率和诊断精度。然而安全领域有一条铁律任何为了便利而增加的访问通道都可能被恶意利用。扫描链这道为测试工程师打开的“后门”在攻击者眼中成了一条窃取核心机密的“高速公路”。想象一下你设计了一个坚不可摧的密码算法硬件模块算法本身理论上无懈可击。但攻击者根本不需要去破解复杂的数学难题他们只需要像正常的测试工程师一样通过几个测试引脚Scan-in, Scan-out, Scan-enable就能在密码运算的某个关键时刻将芯片切换到测试模式然后把存储着密钥相关中间状态的寄存器内容一股脑地扫描出来。这种攻击我们称之为扫描攻击。这不仅仅是理论上的威胁。从早期的DES芯片到如今广泛应用的AES、RSA、ECC协处理器都已被证实存在此类漏洞。更令人担忧的是为了应对芯片规模增大带来的测试数据爆炸问题行业普遍采用了测试压缩、响应压缩等高级DfT结构。一度有人认为这些复杂结构本身就能混淆攻击者但后续的研究表明在差分分析等更精巧的攻击手段面前它们提供的防护相当有限。与此同时作为板上调试和测试事实标准的JTAG接口其强大的访问能力也使其成为攻击者注入恶意代码、窃取固件和IP的热门目标。因此对于从事安全芯片、物联网设备、支付终端等产品的硬件工程师和安全架构师而言理解扫描攻击与JTAG滥用的原理并系统性地评估与部署防护措施不再是“锦上添花”而是“生死攸关”的必修课。本文旨在深入剖析这两大硬件安全威胁的内在机理并全面梳理现有的防护方案帮助你在设计之初就在安全与可测试性之间找到最佳平衡点。2. 扫描攻击原理深度解析要防御攻击首先必须像攻击者一样思考。扫描攻击之所以有效核心在于利用了DfT基础设施的根本特性可控性和可观性。攻击者的目标并非直接读取静态存储的密钥这些通常存放在非易失性存储器中而是捕获密码算法运行过程中依赖于密钥和明文/密文的中间状态值。2.1 攻击的基本流程与模型一次典型的扫描攻击其步骤可以精炼为以下几步这与测试流程相似但目的截然不同复位电路使芯片进入一个确定的初始状态。加载选择明文攻击者向密码模块的输入端口或通过其他方式注入一个自己选定的数据Chosen Plaintext。执行部分加密/解密让电路在功能模式Scan-enable0下运行一个或几个时钟周期使密钥与明文进行混合运算产生目标中间值并锁存到扫描链的触发器中。切换模式并扫描输出将Scan-enable信号置为1切换到测试模式。此时内部触发器被连接成移位寄存器。攻击者通过Scan-in引脚送入无关的填充数据或保持为0同时从Scan-out引脚将整个扫描链的内容逐位移出。这其中就包含了上一步计算出的、与密钥相关的中间状态。分析与迭代攻击者分析获取的中间状态数据。由于中间状态是密钥K和明文P的函数Intermediate F(K, P)。攻击者知道明文P和函数F算法是公开的他可以在本地用计算机模拟所有可能的密钥K‘计算对应的中间状态F(K‘, P)并与实际扫描出的值进行比对。如果匹配则该K‘可能是正确密钥。通常一次扫描不足以唯一确定密钥攻击者需要重复步骤2-4更换不同的选择明文收集多组数据逐步缩小密钥空间直至唯一确定密钥。根据攻击者掌握的信息和能力可以将其划分为几个等级业余攻击者仅知道算法和芯片数据手册中的时序图能控制输入和扫描控制信号。专家攻击者能通过差分功耗分析DPA或时序分析等侧信道手段推断出部分设计细节如输入/输出缓冲寄存器等。内部知情者知道扫描链中触发器与电路逻辑单元的对应关系了解DfT结构细节如扫描链数量、顺序、压缩方案。这可能是离职员工或供应链中的恶意环节。装备精良的专家具备物理侵入能力可以开盖、微探针即使扫描链在出厂后已被熔断Anti-fuse他们仍能直接探测内部信号。注意在实际攻击中攻击者面临的首要挑战往往是“定位”。扫描链可能包含数千个触发器而其中只有几十个存储着有价值的中间状态。因此许多攻击的第一步是进行“扫描链测绘”通过输入有特定差异的明文对观察扫描输出差异的位置从而定位出目标寄存器在长链中的具体位置。2.2 针对不同密码算法的攻击变体攻击的具体策略因算法结构而异。对称加密算法以AES为例其多轮迭代的结构使得每一轮后的状态都依赖于全部密钥。因此攻击最有效的目标是第一轮运算后的中间状态。此时密钥与明文的混合程度相对较低分析复杂度较小。例如针对AES的差分扫描攻击会利用S盒的差分特性精心选择明文对使得第一轮输出中特定字节的汉明距离为1从而大幅降低密钥猜测的复杂度。公钥加密算法如RSA模幂运算或ECC点乘运算其运算过程通常是按密钥位进行条件迭代的。例如在平方-乘算法中当前操作是“平方”还是“平方后乘”取决于密钥的当前位是0还是1。攻击者通过扫描获取迭代过程中的中间寄存器值并与本地模拟的两种可能路径密钥位0或1的结果进行比对。通过多次迭代和数据分析可以逐位推断出整个密钥。流密码攻击目标通常是确定线性反馈移位寄存器的结构和初始状态种子。通过在不同时钟周期扫描出LFSR的状态攻击者可以建立方程组从而反推出其反馈多项式最终破解密钥流。2.3 高级DfT结构并非铜墙铁壁为了降低测试时间和数据量现代芯片广泛采用如图所示的先进DfT架构使用模式解压缩器将少量测试输入扩展为多路扫描链的并行数据并使用响应压缩器将多路扫描输出压缩为少量输出。此外还有掩码解码器来过滤未知态。这些结构增加了攻击的难度但并未根除威胁。攻击者面临两个新问题1) 观测到的压缩输出是多个内部触发器状态的混合2) 未知态掩码可能掩盖关键数据。然而研究表明针对压缩的攻击攻击者可以利用压缩器的线性特性如XOR树。即使只能观测到部分内部位的奇偶性Parity结合差分分析仍然可能提取出密钥信息。例如通过选择特定的明文使得目标中间状态位的变化能够以可预测的方式影响压缩后的出位。针对掩码的攻击攻击者可以尝试通过扫描输入间接控制掩码模式或者分析在多种掩码模式下收集的数据来绕过掩码的干扰。旁路模式许多工业级DfT方案如Mentor的EDT会提供一个“旁路模式”在此模式下压缩/解压电路被绕过内部扫描链直接连接到外部引脚。这原本用于提升诊断能力但也为攻击者提供了一个进行“传统”扫描攻击的窗口。因此单纯依赖高级DfT结构作为安全措施是危险的。它们主要优化测试效率而非设计安全。3. JTAG接口的滥用与安全威胁JTAG标准最初是为PCB板级互联测试而制定的如今已成为芯片和系统调试、编程、测试的核心接口。其强大的能力同样带来了严峻的安全挑战。3.1 JTAG的安全漏洞JTAG接口的威胁主要来自两个方面为扫描攻击提供便利通道在复杂的SoC中JTAG提供了标准化、结构化的方式访问内部各个核心的扫描链。攻击者无需破解每个模块的独立测试接口只需通过JTAG的指令集就能精准地对密码模块发起扫描攻击简化了攻击流程。系统级权限滥用这是JTAG更致命的威胁。通过JTAG攻击者可以读取片上存储内容窃取固件、敏感数据、知识产权。修改存储器内容注入恶意代码篡改引导程序实现“越狱”或获取未授权服务。一个著名的案例是早期Xbox 360的破解就是通过JTAG接口刷入修改后的固件实现的。控制CPU执行流单步执行、设置断点动态分析软件行为提取运行时密钥。重配置FPGA对于FPGA其配置比特流通常通过JTAG加载。不安全的JTAG访问可能导致IP被盗或设计被篡改。3.2 攻击场景与影响消费电子智能手机如通过JTAG进行iOS越狱或Android Bootloader解锁、游戏机、机顶盒的付费服务破解。物联网攻击无线传感器节点窃取传感数据或劫持控制权。汽车电子通过车载诊断接口常基于JTAG衍生协议潜在访问ECU带来安全隐患。假设备与克隆恶意厂商可以利用JTAG从正品设备中提取固件烧录到廉价克隆硬件中窃取服务或进行欺诈。JTAG接口的普遍存在性和高权限特性使其成为硬件安全链条上一个必须加固的关键环节。4. 防护措施全景分析与实战选型面对扫描攻击和JTAG滥用研究人员和工业界提出了多层次、多粒度的防护方案。没有一种方案是“银弹”最佳选择取决于具体的安全需求、成本约束和测试要求。4.1 协议级防护安全测试访问控制这类方案的核心思想是对测试访问本身进行身份认证和授权主要针对JTAG等标准测试接口。密码/密钥认证在访问JTAG功能前要求输入一个预共享的密码或密钥。例如在指令寄存器前增加一个锁定机制只有输入正确的密钥序列后才能解锁并执行非公开的调试指令。缺点密钥管理复杂是每片芯片唯一还是通用且存在密钥传输过程中被窃听的风险。挑战-响应认证使用更安全的密码学协议。服务器或测试主机向芯片发送一个随机数挑战芯片利用内部存储的密钥或物理不可克隆函数生成一个响应。只有响应验证通过才开启测试访问。这比静态密码更安全。对称密钥方案基于AES、SHA-256等算法。仍需解决密钥预置和管理问题。公钥方案例如集成ECC模块采用Schnorr协议等。无需在芯片和测试端预共享秘密安全性更高但面积和功耗开销较大。PUF方案利用芯片制造过程中产生的物理差异作为“指纹”来生成响应。无需存储密钥能有效抵抗物理探测但需要额外的纠错和注册流程。指令分级将JTAG指令分为公开指令和私有指令。公开指令如IDCODE读取可自由使用私有指令如访问内存、扫描链则必须通过上述认证后才能启用。实操心得在选择安全JTAG方案时必须评估整个生命周期。例如采用PUF方案需要在生产测试环节进行“注册”将挑战-响应对安全地存储在后台数据库中。这增加了供应链的复杂性。对于成本极其敏感的消费类芯片简单的密码锁定可能是一个折中方案但必须意识到其防君子不防小人的本质。4.2 扫描链内生防护扰乱与限制这类方案在扫描链本身或测试协议上做文章旨在不改变外部接口的情况下增加攻击难度。数据扰乱在非授权模式下对扫描输出进行随机或确定性的扰乱如按未知顺序重排、与伪随机序列异或。授权测试者知道扰乱规则或可以关闭扰乱。问题简单的扰乱如固定位置重排可能被逆向工程而如果扰乱是数据相关的在差分攻击下仍可能泄露信息例如即使顺序打乱汉明距离信息可能被保留。访问限制开环测试修改测试协议使测试响应不在芯片外部进行比较而是在芯片内部与黄金响应进行比较只输出一个“通过/失败”信号。这彻底杜绝了从Scan-out观察数据的可能但牺牲了诊断分辨率且需要片上存储大量黄金响应。动态控制例如设计一个计数器监测功能模式的时钟周期数。如果芯片在功能模式下运行了“太多”周期表明处于正常操作而非测试则自动禁用扫描输出或将其接地。这试图区分正常操作和测试操作。无密钥测试模式芯片上电后默认进入“不安全测试模式”此时加载一个公开的测试密钥进行运算。完成测试后通过特定流程切换到“安全任务模式”加载真实密钥并永久禁用测试接口。这确保了测试时芯片内无真实密钥信息。修改扫描链结构在扫描链中插入额外的逻辑如随机插入的反相器或XOR门使得扫描链的结构对攻击者未知“安全通过隐匿”。警告这类方案已被证明无法抵抗差分扫描攻击因为差分值在通过线性或可逆变换后其信息可能并未被破坏不推荐作为主要防护手段。4.3 物理级防护与检测针对具备微探针能力的顶级攻击者Class 4需要物理层面的防护。熔断在芯片出厂测试完成后使用熔丝或反熔丝物理断开扫描链与外部引脚的连接。这是智能卡等高端安全芯片的常见做法。局限性牺牲了现场调试和升级的能力且顶级攻击者仍可能通过微探针重新连接被断开的内部节点。入侵检测扫描使能树监控将所有扫描触发器的扫描使能信号连接到一个监控电路。在任务模式下任何非法的扫描使能信号激活都会触发警报如复位、擦除密钥。间谍触发器在扫描链中插入一些特殊的“间谍”触发器。在功能模式下它们被强制载入固定值如全0。监控电路持续检查这些触发器的值。任何非法的扫描移位操作都可能改变这些值从而触发入侵响应。4.4 方案选型指南权衡的艺术选择防护措施时需要系统性地回答以下几个问题设计需求 / 约束推荐方案理由与备注安全是首要需求必须采用主动防护方案避免依赖“安全通过隐匿”如修改扫描链或认为高级DfT结构本身足够安全。隐匿性方案已被攻破高级DfT存在旁路模式。无需现场测试无需高诊断率熔断。最彻底、成本较低的方案一劳永逸地关闭物理接口。需要现场测试但诊断分辨率要求不高内建自测试。特别是对于密码模块可研究利用算法自身特性如AES的雪崩效应构造自测试实现安全与测试的融合。BIST完全在芯片内部完成测试无数据泄露。但故障定位能力弱。需要现场测试和高诊断率协议级控制或访问限制/无密钥测试。需要在安全性和测试便利性间平衡。安全JTAG方案功能最全面但面积开销大。访问限制方案如内部比较开销小但诊断能力需额外设计保障。面临微探针攻击风险熔断 入侵检测组合使用。熔断作为第一道防线入侵检测作为第二道防线和警报系统。通常用于智能卡、安全元件等场景。成本极其敏感安全等级要求中等简单的密码锁定JTAG或动态扫描输出控制。明确其防护极限主要用于增加攻击门槛防止业余攻击和批量脚本攻击。一个实用的设计流程建议威胁建模明确你的芯片可能面临哪几类攻击者Class 1-4以及攻击的潜在收益。确定测试需求明确是否需要在线测试、诊断分辨率要求、测试时间预算。选择核心防护架构根据1和2从上表中初选一个主要方向如安全JTAG或内部比较。评估开销评估所选方案的面积、功耗、性能时序影响以及是否引入新的密钥管理或供应链流程。分层防御对于高安全产品考虑分层防御。例如采用安全JTAG进行协议控制同时在扫描链内部加入入侵检测触发器并对关键密钥寄存器采用熔断保护。5. 常见问题与工程实践陷阱在实际部署这些防护措施时会遇到一些共性的挑战和容易踩坑的地方。5.1 安全性与可测试性的矛盾这是最根本的矛盾。任何加固测试接口或扫描链的措施都可能给合法的测试、调试和故障分析带来障碍。问题采用了内部响应比较方案后生产线上的ATE无法获取详细的失效数据定位缺陷晶圆的具体故障类型变得极其困难影响良率提升。对策设计可切换的测试模式。例如在芯片生产测试阶段通过熔丝或最高权限密钥启用一个“超级调试模式”提供全扫描访问。在芯片交付前将该模式永久禁用。或者设计多级安全状态在开发阶段使用高权限量产版本降低权限。5.2 密钥/密码管理难题许多方案依赖于预共享密钥或密码。问题全局密钥所有芯片使用相同密钥一旦泄露全线崩溃。唯一密钥每个芯片密钥不同需要建立庞大的数据库进行映射管理并在测试时动态查询流程复杂。密钥注入如何安全地将密钥注入芯片是在产线烧录还是在封装后密钥存储在哪里是否易被提取对策优先考虑使用PUF或基于芯片唯一ID派生密钥避免密钥存储。如果必须存储使用非易失性存储器并配合物理防篡改层。对于对称密钥方案考虑使用分层的密钥派生体系。5.3 防护机制本身引入新的攻击面这是一个典型的“矛与盾”问题。问题安全状态机、密码比较器、入侵检测电路本身可能成为新的攻击目标。例如攻击者可能通过故障注入如电压毛刺、时钟抖动使密码比较器产生错误匹配从而绕过认证。对策对安全逻辑本身进行加固例如采用双轨逻辑、冗余比较、随机化执行顺序等抗故障注入设计。确保安全控制信号路径具有与受保护数据路径相当的安全级别。5.4 对故障覆盖率的影响一些方案会改变测试模式。问题数据扰乱可能使ATPG生成的测试向量失效内部比较方案可能无法检测某些特定类型的故障。对策在设计和验证防护逻辑时必须同步进行DFT验证。确保在授权测试模式下能够达到目标故障覆盖率。可能需要为安全模式下的测试重新生成或调整测试向量。5.5 兼容性与标准问题问题自定义的安全JTAG协议可能与标准的JTAG调试工具链不兼容给客户和后续支持带来麻烦。对策尽量在标准协议框架内增加安全扩展。例如定义新的安全指令而基础指令如BYPASS、IDCODE保持开放。提供配套的安全调试工具或软件库给合作伙伴。在我参与的一个安全MCU项目中我们采用了“安全JTAG 动态扫描输出控制”的组合方案。安全JTAG基于挑战-响应认证用于保护高级调试功能。动态扫描控制则作为一个轻量级的、始终启用的安全网一个简单的状态机监控功能操作时长如果发现长时间运行后突然出现扫描切换请求会触发警报并锁死扫描输出。这个组合在面积开销和安全性之间取得了很好的平衡。最大的教训来自认证协议的实现最初我们使用了一个简单的哈希函数但在侧信道分析评估中发现了时序漏洞。后来我们换成了具有常数时间执行的认证算法并在布局布线阶段严格约束相关路径才通过了安全认证。这提醒我们硬件安全的每一个细节都至关重要协议的逻辑安全必须与物理实现安全同步考虑。
http://www.zskr.cn/news/1405759.html

相关文章:

  • 【MySQL全面教学】MySQL锁机制与并发控制Day10(2026年)
  • 长沙外贸网站建设定制,WaiMaoYa 外贸鸭全程托管式服务,建站、运营无需费心 - 外贸独立站运营
  • 国内定制硅胶件源头厂家推荐:这几家实力工厂凭什么被采购圈反复提及? - 变量人生001
  • 量子启发的张量网络方法解析与应用
  • 在OpenClaw中配置Taotoken作为自定义模型提供方的详细步骤
  • 小米 MiMo-V2.5 系列 API 最高降 99%,营收利润双降仍计划 AI 投 600 亿!
  • Instructor-base架构揭秘:深入理解T5-based指令驱动嵌入的工作原理
  • 春申驾校联系方式查询 官方正规渠道全 - 资讯纵览
  • 2026年安阳工业水处理设备5大品牌深度横评推荐 - 企业名录优选推荐
  • MOSS-VL-Base-0408在文档OCR场景的应用:如何实现长文档精确解析
  • 谷歌搜索AI改革引用户反弹,DuckDuckGo应用安装量周同比增长18.1%
  • 涵道共轴双旋翼无人机飞控算法关键技术【附代码】
  • 为什么选择 FlashVSR v1.1?实时扩散模型在视频超分辨率中的终极优势分析
  • Agent Skills生产级Skills 案例实操-周红伟
  • 如何用Crimson开源字体在3个步骤内提升你的设计专业度
  • 【MySQL】进阶02-索引
  • 使用Python SDK快速开发,让CRM网站拥有智能工单分类能力
  • 鸿蒙开发-想给3D场景加滤镜?PostProcess后处理效果详解
  • 门窗行业GEO优化哪家强?成都百抖获客:技术自研+全国覆盖,领跑门窗AI获客新赛道 - 资讯纵览
  • 题解:AT_arc145_d [ARC145D] Non Arithmetic Progression Set
  • SocialR1-4B-i1-GGUF社区资源大全:从入门到精通的完整学习路径
  • 盘古Pro MoE模型架构详解:48层Transformer与64专家设计的终极指南 [特殊字符]
  • 3步构建私有化Cookie同步系统:CookieCloud实战部署指南
  • 通过 python 调用 taotoken 实现多模型对话功能的最小示例
  • XLNet-base-cased安全性与隐私保护:企业级应用终极指南
  • 【SPIE出版】第六届先进算法与信号、图像处理国际学术会议(AASIP 2026) - 每天学术做一点
  • 专业级开源媒体播放器深度解析:mpv.net的5大优势与核心技术架构
  • 别再傻傻等编译了!手把手教你配置UE5.1的BuildConfiguration.xml,榨干CPU多核性能
  • 从PPT堆砌到认知建模:ChatGPT培训材料制作的范式转移(附教育部AI素养框架对齐表)
  • 洛雪音乐音源配置终极指南:3分钟解锁全网音乐资源