2.2 硬件木马设计
自第一篇关于硬件木马的论文发表以来[6],硬件木马的研究领域取得了重大进展。为了挖掘硬件木马的潜在风险,人们开发了各种各样的硬件木马。对于设计良好的硬件木马,传统的功能测试方法很难检测[7]。通常,硬件木马包含两个基本部分:木马触发器(实施木马激活)和有害电路(实施有害功能)。硬件木马的抽象模型如图2.2所示。木马触发器是一个可选部件,用于监控电路中的各种信号或一系列事件。有害电路通常从原始(无木马)电路和木马触发器的输出中获取信号。一旦木马触发器检测到预先确定的事件或条件,就会激活有害电路执行恶意行为。通常情况下,木马触发器会在极为罕见的情况下被激活,因此有害电路大部分时间均保持非活动状态。当有害电路处于非活动状态时,IC就像一个无木马的电路,很难将木马检测出来。
图2.2 硬件木马的抽象模型
根据木马触发机制的不同,硬件木马可分为:组合木马和时序木马。一些木马触发机制采用组合和顺序混合机制设计。图2.3展示了组合硬件木马的抽象模型。恶意电路行为由同时发生的一组触发条件激活。组合硬件木马不使用触发器或锁存器来存储状态信息。图2.4展示了时序硬件木马的抽象模型。木马被一系列状态转换激活。文献[8]阐述了在寄存器传输级(register transfer level, RTL)设计和实现硬件木马的经验。阅读文献[8]可以进一步了解硬件木马的外观及其对IC的影响。
图2.3 组合硬件木马的抽象模型
图2.4 时序硬件木马的抽象模型
图2.5给出了硬件木马的触发机制和有害功能机制。现有的硬件木马设计可分为基于触发机制和基于有害功能机制两类。硬件木马的识别主要依赖于识别触发机制和有害功能机制。因此,硬件安全的研究者重点关注这两种机制,以这两种机制为突破口,探索和评估新的硬件木马。
图2.5 硬件木马的触发机制和有害功能机制[9]
1. 触发机制
对于模拟电路木马,触发的条件包括检测到物理环境发生变化,如通过片上传感器检测到过程变化、设备老化和温度变化等。例如,在文献[10]中,基于工艺可靠性的硬件木马被用来降低IC的可靠性,硬件木马由加速的CMOS晶体管的损耗机制激活。对于数字电路木马,触发机制可以是数字电路中的组合逻辑或时序逻辑。最新实例是文献[11]中提出的“Don't Care”状态,它将硬件木马插入设计中,且不会产生太多开销。最近,文献[12]中的A2木马采用开关电容结构来捕获寄存器的翻转,涉及数字和模拟功能。由于A2开销很小,在设计中部署灵活,因此给硬件木马检测带来了新的挑战。
2. 有害功能机制
硬件木马的有害功能机制可以修改电路中的功能或信号值,通过逻辑或侧信道泄露信息[13],甚至影响设备老化。硬件中的附加区域、时序、功率或辐射等侧信道效应自然会导致信息泄露[14]。即使设计人员考虑了侧信道,嵌入式木马也会使其努力功亏一篑。在文献[15]中,由侧信道启用的恶意片外泄露(malicious off-chip leakage enabled by side-channels, MOLES)通过电源侧信道从高级加密标准(advanced encryption standard, AES)电路泄露机密。此外,文献[15]还利用了无线信道等其他特性。文献[16]中的硬件木马能够通过超宽带(ultra-wide-band, UWB)发射机泄露AES电路的敏感密钥。
硬件木马还有许多攻击方法,通过优化硬件木马设计,可以减少硬件木马对电路的影响。文献[17]中展示了零开销硬件木马,可在微处理器中产生权限升级。文献[17]介绍了一种木马增强方法。该方法隐藏了木马对无损检测的影响,提高了硬件木马的生存能力。为了抵御硬件木马攻击,研究者设计了标准测试基准,用于测试和评估硬件木马,以实现各种探测方法[18],包含在RTL、门级和布局级探测各种类型的硬件木马并设计防护对策和工具。