集成电路安全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 现有旁路攻击

3.3.1 时序旁路分析攻击

时序旁路分析攻击是一种重要的旁路攻击,攻击者利用特定事件之间的时间差,从密码设备中提取秘密信息。该攻击方法的原理是利用设备操作的时间差,具体分析见本书2.2.1节。这一方法首先由Kocher在文献[16]中引入,并由Dhem等人发展。文献[17]介绍了针对破解智能卡的RSA加密算法的时序攻击。

尽管此后研究者提出了许多新观点或扩展了现有理论[18],但大部分工作都是逐步猜测正确密钥。这些技术的优势主要是速度快,不足之处也很明显,即如果缺失了一个位,则无法找出正确的密钥。Toth等人[19]描述了一种针对密码算法的高级时序攻击方案来克服这种缺陷。他们引入密钥树和优度值的新概念,即使猜测密钥位的方法有很大的偏差,恢复算法也只需检查非常小的密钥空间。该概念可以扩展到任何其他时序攻击。研究人员使用统计工具,即方差分析(ANOVA)和t-检验及蒙哥马利乘法(Montgomery multiplication)[20],对采用RSA算法的一个具体实现演示了这种攻击方案。这种方法的一个缺陷是很难找到最后的几位密钥。

SSL(安全套接层)和TLS(传输层安全性)是两种加密通信协议,结合了对称加密技术和公钥加密技术,旨在为通过不可信网络传输的数据提供保密性和完整性。Canvel等人[21]对SSL和TLS中使用的CBC模式加密方案执行了时序攻击,演示了如何截获IMAP账户的密码。

个人识别号码(PIN)和访问码是验证用户身份的常用密码。Kune等人[22]利用均匀手指速度物理模型构建了隐式马尔可夫模型,可对基于点击的密钥序列进行预测。但是该实验是在理想条件下进行的,忽略了人工PIN输入的一个关键方面,即人并非机器,无法匀速输入PIN。事实上,人们更倾向于记住有意义的信息。鉴于此,Mario等人[23]对两种认知身份验证方案成功进行了被动式时序旁路攻击,即著名的HopperBlum(HB)协议和Mod10方法。这两种方案常用于增强基于密码的身份验证,以防止观察攻击。HB和Mod10方案是身份验证模式的典型代表,要求用户进行某种形式的认知任务,如模拟、视觉回忆和计数、乘法、模运算等。但认知操作难度的细微变化会导致用户认知操作的不对称。因此,研究人员利用被动式时序旁路攻击中的认知不对称,以部分或完全恢复PIN或密码。

3.3.2 功耗旁路攻击

1. 应用

目前,依赖于加密算法的密码设备已被广泛应用于各种不同场景之中,以保证机密信息的保密性和完整性。在实践中,大量的功耗旁路攻击已成功应用于破解各种密码设备上实现的加密算法(包括RSA、DES、AES、ECC[24]、SM3[25]、SM4[26]、PRESENT[27])。这里所说的密码设备包括智能卡[28]、FPGA[13]、处理器[14]和微控制器[12]。Tang等人[26]提出了相关功耗分析攻击的方法,以降低计算成本。该攻击方法主要针对基于选择明文的SM4硬件实现。Socha等人在文献[29]中通过对Digilent ZYBO板上实现的不同抽象层次进行CPA分析,对AES实现的旁路攻击抵抗能力进行了研究。

2. 功耗曲线对齐

在大多数功耗分析攻击中,从密码设计中获得的功耗曲线需要使用基于密码设备的触发信号进行校准。在DPA应用的真实场景中,这种触发信号往往无法部署。考虑到测量时的各种因素,如测量的开始时间不同(只能通过发送输入数据来触发)、为密码设备提供时钟的振荡器出现抖动、示波器没有较大内存、依赖输入数据的处理器指令的不同执行时间,所得到的功耗曲线会有一定偏移,无法对齐。针对功耗SCA攻击,有一些策略是通过使用具有不同频率的内部时钟,或在操作之间插入随机延迟,故意使测量曲线无法对齐。功耗分析攻击假设在每次功耗测量中,加密操作都在完全相同的时间点发生。因此,这些测量偏差降低了功耗SCA攻击的效率。在文献[11]中,研究人员提出了一种名叫“静态对齐”的功耗曲线对齐方法。该方法在测量的功耗曲线中找到一个参考样本(例如上升沿),并通过移动曲线与相同的参考相匹配。但如果加密实现中包含随机时间延迟或变化的时钟频率,静态移位则不能完全对齐这些曲线。文献[30]中使用了一种称为“弹性对齐(elastic alignment, EA)”的对齐算法。弹性对齐以动态时间规整(dynamic time warping, DTW)为基础,是一种时间序列匹配算法。基于DTW算法的弹性对齐可用于曲线同步操作。

3. 降噪

用于执行功耗SCA的测量曲线总是受到诸多噪声的影响,如环境噪声、设备产生的电磁噪声等。这些不可避免的噪声不仅会影响信噪比(SNR),而且会降低功耗SCA的分析性能。为了提高功耗SCA攻击的效率,近年来,研究人员通过弱化各种噪声的平滑度提出了许多方法,包括平均技术[3]、小波变换[31]和经验模态分解(EMD)[32]。其中,小波变换也称时频定位和数据压缩,通过使用多个小波基函数来表达信号。利用小波变换与多种阈值相结合的方法,可去除部分噪声污染。Patel等人[31]引入了一种新方法,即采用小波分解DPA曲线数据集减少曲线。具体方法如下:将曲线数据集分解为不同的小波系数级别,通过识别有利于DPA攻击处理的系数来保留有用的系数。Li等人[33]对不同小波、不同分解水平和不同阈值的降噪效果进行对比,提出了一种连续去除高频部分的小波降噪方法。

为了解决小波变换在降噪操作中存在的某些问题,如小波基对复杂信号的匹配能力、不同应用中的特殊阈值要求等,Ai等人[34]提出了一种基于奇异谱分析(SSA)和去趋势波动分析法(DFA)的小波变换降噪改进方法,通过DFA自适应地选择SSA中的主信号分量,利用小波变换对残差部分进行降噪处理提取重要信息,通过将信号分量与去噪残差部分相结合提高原始小波变换的降噪效率。在文献[35]中,研究人员提出了两种基于变分模分解(VMD)和小波变换相结合的数据自适应降噪方法。该方法具有对先验信息要求不高的特点。其中一种是对VMD分解的每一个固有模态函数进行小波降噪,简称为VMD-WT;另一种方法是迭代VMD-WT去噪法,通过对多次迭代降噪信号的平均提高对噪声的容忍度。

目前也有使用基于经验模态分解(empirical mode decomposition, EMD)的降噪方法,以提高功耗SCA的效率。EMD最早由Huang等人提出[36]。该方法广泛用于分析非平稳、非线性信号过程,能自适应地将任何信号分解成被称为固有模态函数(intrinsic mode functions, IMF)的振荡分量。通过多种降噪方法(小波阈值法)进行IMF处理,重构降噪后的IMF,得到了降噪后的信号。Feng等人提出了一种基于EMD的降噪方法。该方法主要针对SCA的高频噪声[32]

4. 加快测试速度

无论是功耗SCA攻击还是对防御方法的有效性验证,都需要收集大量的功耗曲线。这就需要大量的时间和资源。为此,研究人员提出了几种更快、更有效、更经济的方法来解决这一问题。Swamy等人[37]提出了利用高性能代码针对CPU和GPU进行相关功耗分析的新并行实现。他们利用GPU来加速进程中计算最密集的部分,如计算汉明距离值。在文献[38]中,Gamaarachchi等人提出了一种利用CUDA(统一计算设备架构)在GPU上使用的CPA新方法。CUDA是NVIDIA推出的一款通用并行编程模型和平台,可方便使用其GPU进行复杂的高效计算。他们为每个密钥字节、密钥猜测和每束功耗曲线分配一个单独的CUDA线程,实现了更高的数据并行性。该方法的执行速度比一般的单线程CPU快1300倍,比多核高性能服务器快60多倍。

5. 成功率

Pammu等人[390]提出了一种针对AES-128加密设备进行相关功耗分析(correlation power analysis, CPA)攻击成功率的估计模型。成功率是成功获取密钥的攻击次数与攻击总数的比值。研究人员推导出已处理数据的二阶标准偏差(second order standard deviation, SOSD)来分析加密过程中的转换活动,从而确认难度最小的子密钥(leastdifficult sub-key, LDSK,最容易显示的子密钥)和难度最大的子密钥(most difficult sub-key, MDSK,最难显示的子密钥)。然后,通过使用LDSK和MDSK来应用误差函数模型(error function model, EFM),并根据显示密钥所需的功耗曲线数估计成功率。Mazur等人[40]评估测量了各种设置对运行AES加密算法的FPGA板进行DPA攻击的成功率的影响,分析了去耦电容器的作用,结果表明,将电容器去除可使攻击效果更显著。

3.3.3 电磁旁路攻击

事实上,在旁路攻击的统计分析领域,电磁曲线和功耗曲线有很强的相似性,除内部特性和捕获方式不同外,其他部分都一样。功耗SCA攻击通常需要对目标设备进行直接物理访问,以获取旁路信息。旁路信息只是功耗的单一聚合视图。电磁辐射可通过靠近设备表面的探头测量,无需接触受到攻击的设备。此外,电磁是一个包含丰富空间信息和频谱信息的三维矢量场。由于使用多种先进的电磁探头,可方便测量丰富的电磁辐射信息并有效利用,因此,研究人员认为电磁旁路攻击(EM SCA)比功耗旁路分析更高效。经各种实验证实,电磁旁路攻击使用近场电磁探测能更有效地检索密钥。也就是说,电磁旁路攻击比功耗旁路攻击需要更少的测试曲线[5]。但电磁曲线的质量容易受测量噪声、电磁探针等因素的影响。这些因素限制了电磁旁路攻击的效果。为了提高电磁旁路攻击的效率,研究人员使用多种优化方法,包括信号预处理、更精确的区分器、高分辨率的测量设备等。这里将详细讨论改进电磁旁路攻击的几个技术。

1. 区分器

在文献[41]中,研究人员提出了在旁路攻击中引入各种兴趣点的概念。比如,在模型攻击中提供最多信息的时间点。攻击者可以精确配置模型,并使用兴趣点使攻击更加有效。传统DEMA和CEMA仅考虑中间值的兴趣点,忽略了多个兴趣点之间的相关性。而事实上,实现加密算法的软件可能会在多个时间样本区域泄露相同的中间数据。因此,Ou等人[42]提出了两种高效率旁路区分器,即多兴趣点组合微分电磁分析(MIP-DEMA)和多兴趣点组合相关电磁分析(MIP-CEMA)。该区分器结合了从多个具有相同中间值兴趣点泄露的信息,以减少DEMA和CEMA攻击所需的电磁曲线数量。MIP-DEMA和MIP-CEMA放大了正确密钥的相关系数,降低了错误密钥的相关系数。因此,正确密钥更容易与错误密钥区分。需要注意的是,高效率MIP-DEMA和MIP-CEMA要求攻击者捕获更好的局部电磁曲线。

2. 信号预处理

Meynard等人[43]应用解调技术来提高信噪比。他们提出了一种基于交互信息(mutual information, MI)分析的特征化方法来确定泄露更多信息的解调频率及其带宽。与文献[43]不同,Perin等人[44]提出了一种基于全数字幅度解调的技术(SDEMA)来增强针对RSA实现的简单电磁分析。图3.6显示了该技术的实验方法。利用此方法来确定感兴趣的频率带宽,同时使用带通滤波器(五阶Butterworth滤波器)去除所有无兴趣阶的谐波后,通过解调滤波器输出的曲线来恢复泄露信息。

图3.6 揭示电磁曲线在有噪声条件下存在微小泄露的实验方法

在文献[45]中,Zhou等人提出了一种基于奇异值分解(SVD)的预处理方法,通过选取部分有用的电磁曲线进行分析(而不是使用一组完整的电磁曲线),以提高分析效率。SVD方法是一种统计工具,广泛应用于图像处理和机器学习。该方法可将任意一种阵列分解成低维矩阵,提取出表征电磁曲线质量的特征向量。特征向量中较小的值表明所对应曲线包含的有用信息较少或噪声较多,在进行CEMA预处理时应去除此类曲线。因此,研究人员根据与最大特征值所对应的特征向量值(主特征向量)对曲线进行排序,得到了一部分比原CEMA具有更高性能的高质量电磁曲线。他们通过数学统计分析证明部分高质量电磁曲线可用于提高CEMA的效率,而且通过实验对电磁曲线进行选择。

3. 兴趣点位置

兴趣点位置是指利用较少的测试曲线即能实现电磁旁路攻击的特定位置,在工程实践中通常称其为热点位置。对电磁探测的热点位置进行定位是电磁旁路攻击不可或缺的一部分工作。就此,研究人员在文献[46]中提出了一种基于制图过程中各项评估指标的策略,寻找设备热点。根据文献[47]的分析结果,基于时域振幅分析的定位技术中有大量与电磁数据无关的发射源(如时钟发生器、锁相环或I/O接口)存在,甚至在大型环境电磁噪声源存在的情况下,均无法正常工作。因此,在文献[48]中,Dehbaoui等人介绍了一种基于光谱相干性分析的定位技术,即非同调性加权全局幅度均方(weighted global magnitude squared incoherence,WGMSI)分析法,以定位热点。WGMSI技术揭示了电磁泄露的数据依赖行为:在两次加密操作之间,电磁辐射的某些特征从一个操作到另一个操作期间保持不变(同调),而某些特征完全改变(非同调)。

两信号w1t)和w2t)之间的非同调性幅度均方(MSI)是频率的实值函数,取值范围在0~1之间。其定义公式为:

其中,分别表示的功耗谱密度;表示的互功耗谱密度。考虑到两个时域信号的全谱,以信号为例,两信号的WGMSI系数均按式(3-13)计算,即

其中,BW为考虑的频率带宽;Aw2f)为频率f处的功耗谱振幅。WGMSI的取值范围为0~1。高值表示w1t)和w2t)具有完全的非同调谱,低值刚好相反。根据此WGMSI标准,研究人员可区分数据依赖行为和数据独立行为,并在磁近场扫描(NFS)过程中使用数据依赖的电磁泄漏来定位用于电磁分析的热点区域。

4. 高分辨率测量设备

由于测量的电磁辐射受不同距离、不同探头、不同的探头位置和方向的影响,电磁分析攻击的真正作用与测量使用的电磁探头高度相关。Beer等人[5]对IC进行拆封处理,并使用直径为0.7mm的手工探头进行测量。测量时,探头的线圈方向保持垂直。Heyszl等人[49]的研究表明,采用水平探头代替垂直探头可显著提高测量结果。在文献[50]中,Wittke等人使用相同的攻击设计并记录了使用7种不同探头进行测量的测量结果,最终证明了不同的电磁探头及其方向可对测量曲线产生显著影响。在文献[51]中,研究人员对DEMA攻击的强度和探头的空间位置进行了详细分析。为了改善电磁探头与泄露源之间的相对位置可对测量结果的SNR产生较大影响的这一情况,Li等人[52]提出了一种基于密钥枚举算法(KEA)[53]和秩估计算法(REA)[54]的密钥列表预处理技术。该技术通过向密钥列表中添加一个权重,使具有不同SNR的密钥列表能按更好的性能枚举,最终使正确密钥的排名更高。但当加速搜索键列表时,对其他密钥列表的搜索将会减慢。因此,该技术只有在攻击者能识别出质量差的密钥列表时才具合理性。Heyszl等人后来又提出了高分辨率、低距离电磁分析的改进版本,综合考虑了以上所有因素[55]。这种改进后电磁分析法的特点包括可使用非常小的探头(比如直径为100μm)、具有高空间分辨率、极小探头可抵达极限位置。另外,该方法需要对集成电路进行拆封处理。通过该项技术,可以探测到即使是实施了最先进的防御措施设备的信息泄露。在文献[56]中,Specht等人通过改变线圈直径、探头到极限点的距离、带宽和测量分辨率等因素系统地分析了各种因素所产生的影响,并使用线圈直径的四分之一作为空间测量分辨率,在测量时间和测量质量之间做出了适当的权衡。

5. 电磁频率相关性分析

虽然研究人员已提出了多种与电磁分析攻击相关的方法,但大多都集中在时域上,而电磁辐射丰富的频率信息往往未能得到充分利用。另外,时域电磁分析的一个必要条件要确保信号准确对齐。一旦电磁曲线未对齐,将减少电磁辐射与数据之间的依赖关系,比如在逻辑路径中插入随机延迟[57],时域电磁分析会失效。由于某些频率比其他频率更容易泄露正在处理的秘密数据信息,基于此,在文献[58]中,研究人员提出了一种用于相关频率分析的攻击方法。该方法利用快速傅里叶变换(FFT)技术将电磁曲线从时域变换到频域。与文献[58]中使用的FFT技术不同,文献[59]选择了电磁分析用到的赫希曼最优变换技术(HOT),对密码芯片产生的频域电磁信号进行电磁分析。这两种技术(FFT和HOT)均为线性变换。相关分析只是探讨假设电磁辐射与实际电磁辐射之间的线性关系。也就是说,时域的变化会导致频域的线性变化,而且信号的时间变化不会改变信号的频率。当电磁曲线未对齐时,相应的频率曲线仅对准振幅的微小变化,从而消除了未对准的影响。因此,在旁路攻击中,相关频率分析攻击非常有效。

6. 旁路攻击对物联网设备的影响

在文献[60]中,研究人员将电磁分析攻击用于检查物联网(IoT)设备的安全性,并成功修改了针对Midori(一种超低功耗密码)的CEMA攻击。在文献[61]中,Kabin等人提出了一种水平式总线和地址位DEMA[62]攻击,专门针对NIST椭圆曲线B-233的蒙哥马利kP算法的硬件实现。该硬件实现对于简单的旁路攻击具有很强的抵抗性。其kP设计结构和实现主循环的处理顺序如图3.7所示。该方法利用总线活动和地址位现象,只需要一条曲线做准备,一条曲线用于攻击本身,因此,可被视为一种低成本攻击。

图3.7 kP设计结构和实现主循环的处理顺序

扫描二维码,查看该图的彩色图片

3.3.4 声音旁路攻击

声音以频率、波长和振幅的形式携带信息。这些信息通过音频捕获设备测量。声音旁路攻击可以通过分析设备的声频发射获取秘密信息,已有多项研究,大部分集中在计算机键盘[63,64]、输入PIN用到的小键盘、网络物理系统(CPS)(如3D打印机[65,66])等。

Backes等人[67]介绍了一种针对打印机的声音旁路攻击,通过打印机在打印阶段的声频发射记录,重建打印在点阵式和喷墨打印机上的机密文本。该方法涉及培训和识别两大阶段。培训阶段主要是在构建数据库后,在识别阶段将用于比较未知文本的记录,根据对比结果,计算未知文本的重构。该方法概览如图3.8所示。

图3.8 针对打印机的声音旁路攻击方法概览

Martinasek等人[68]利用声谱图法在时频域上对测得的声音曲线进行处理。他们将声谱图作为典型的两层神经网络(MLP、多层感知器)的输入,利用反向传播学习算法,其潜在的可重复性和可行性通过放在办公室的笔记本电脑(带内置麦克风)得到了验证。Maimun等人[69]开发了一种麦克风阵列传感器攻击。该攻击可通过简单的方法获得较高的密钥识别精度。传感器为两个麦克风,按顺序成排地放在目标的前方位置。这种攻击可检测声音发射,分析按键信号,将获得的一个起点特性作为到达时间。通过TDoA计算可估计到达两个麦克风之间的时间差,并通过声源定位测量确定按键。比如Toreini等人[70]应用先进的声音旁路攻击,根据键盘发出的噪声解码密码机按键。

材料制造网络物理系统(CPS)为快速成型和加工复杂、轻量、自由形状的三维物体提供了网络和物理领域的简单集成。但在使用此类系统创建三维物体时(如3D打印机),系统发出的声音可被声音旁路攻击利用。Faruque等人[65]提出了一种针对材料制造系统的声音旁路攻击新模型,以重构包含知识产权的数据。此外,在文献[66]中,研究人员提出了一种基于熔融沉积建模技术的3D打印机的声音发射源分析方法,并进行了声音泄露分析,以强调G文件的参数可从声音旁路推断得出。研究人员利用最新的3D打印机验证了其新的攻击模型,结果表明,使用声音旁路攻击可重建具有不同基准参数(如速度、尺寸和复杂度)的物体对象。Chhetri等人[71]提出了一种新的方法。该方法通过结合泄露感知计算机辅助制造工具(如切片算法和工具路径生成算法)来提高网络物理制造系统的保密性。这种跨领域安全解决方案利用物理领域的反馈结果,优化了网络域设计变量(方向和速度),以尽量减少网络域代码与物理域声发射之间的相互信息。

3.3.5 可见光旁路攻击

可见光旁路攻击的基本思想本质上很简单。当今大多数数字电路均以CMOS技术为基础。该技术使用互补晶体管作为基本元器件,当集成电路上的晶体管改变状态时,会发射出一些光子。具体而言,CMOS门由NMOS和PMOS晶体管组成。对晶体管通电时,由于电流流入寄生电容和泄漏电流的存在,会使功耗增加。根据文献[72],当输出从高态转到低态时,N通道晶体管出现光发射,当输出从低态转到高态,即晶体管导通时,P通道晶体管出现光发射。由于自由电子的移动性比空穴好,N通道晶体管的光发射要高得多,从而出现不对称的跃迁。这种跃迁可被用来从电路中提取相关信息。同样,光子从靠近漏极的位置发射出来,那里的电场较大。关于N型基底的开关CMOS反相器光子发射如图3.9所示。同样的结果也适用于P型基底。P型基底在现代芯片中更常见。

图3.9 开关CMOS反相器光子发射

可见光旁路攻击已在文献[73]中提到。研究人员将皮秒成像电路分析(PICA)用于检测光子的位置和发射时间。一旦与代码正确同步,并在被观察的设备上重复执行,PICA就能确定开关晶体管。研究人员利用可见光旁路信息,对PIC16F84A微控制器上运行的AES简单实现进行了一次示范攻击,结果所有的秘密数据均被成功恢复。

Skorobogatov在文献[74]中将光发射分析与常规功耗分析进行比较,结果表明,工作芯片的光发射与功耗分析测量值之间有很好的相关性。文中采用低成本的CCD相机作为光传感器来观测光发射。

可见光旁路攻击有一定的局限,测量技术需要与设备上执行的操作同步。此外,在现代深亚微米技术中,多金属层和小晶体管尺寸阻碍了简单、精确的分析,而且由于所需设备的价格比较昂贵,因此可见光旁路攻击的成本费用较高。针对可见光旁路攻击,一些研究人员在芯片中进行随机操作来改变芯片的发光特性,另一些研究人员则在芯片中嵌入传感器来检测光学攻击[75]

3.3.6 热量旁路攻击

Brouchier等人[76]发现冷却风扇可通过CPU耗散的温度间接传递CPU正在处理的数据信息。在实验中,研究人员展示了如何从密码或可能的RSA密钥中提取某些位。此外,他们还强调FPGA中集成的硬件IP核可能通过温度旁路向系统中的其他硬件IP核泄露信息。

Iakymchuk等人[77]演示了热量旁路通道在FPGA器件中的实现和实际应用,通过不同的实验证明这些通道既可被用于探测电气隔离设计之间的通信,也可被用于恶意探测芯片外部泄露的信息,从而导致热量旁路攻击成为FPGA设计安全的重要威胁。

Masti等人在文献[78]中说明,即使是对基于专用磁芯和存储器强大隔离技术实现的系统,也会通过热通道在多核系统中泄露信息。在Intel Xeon服务器平台上进行的实验展示了速度高达12.5bps的热通道和能检测相邻处理器上代码执行过程中的弱热量旁路。

Amrouch等人[79]提出了一种热量旁路监控方法。该方法中,热量旁路可用于远程监控嵌入式处理器上的代码执行情况。考虑到嵌入式设备运行具有周期性的CPS应用,代码的周期性导致了设备(热能)旁路排放也呈现出明确的周期性特征。因此,通过观察旁路产生热能的特征和时间模式,可检测出代码执行过程中嵌入式设备行为的偏差。

由于3D芯片上往往具有热传感器而且比较容易被攻击者访问,因此3D集成电路容易受到基于热量旁路泄露的旁路攻击。Peng[80]等人提出了一种3D热感知旁路屏蔽(TASCS)技术,用于主动隐藏功能单元的重要活动。其具体方法是使用智能芯片控制器来跟踪关键活动模式后,生成动态屏蔽模式来隐藏这些活动。这种动态屏蔽算法通过控制注入噪声来配合硬件热管理策略。Knechtel等人[81]提出了一种能感知旁路攻击的平面布置图方法,从能量和活动模式中解读热行为,从而抵抗实际和潜在的有效威胁,确保三维集成电路(3D IC)的安全性。该技术可通过硅通孔的布置和功耗分布来实现。

温度与功耗之间的线性关系受材料特性的限制,涉及芯片内和芯片之间的热导率和电容。热量旁路具有低带宽的特点,在实际攻击中,会阻碍对高动态计算所产生的泄漏的探测。与其他旁路分析一样,热量旁路分析攻击对各种噪声源都很敏感。所有这些因素都会限制热量旁路分析攻击的实际效果。

3.3.7 故障旁路攻击

目前介绍的旁路攻击大多数都是被动式攻击,即攻击者观察正在运行的密码设备而不影响其操作。与之相反,故障旁路攻击(简称故障攻击)属于主动型攻击,攻击者通过改变运行环境或直接干扰密码计算实施攻击。具体而言,攻击者在加密(或解密)过程中,故意向密码设备注入多种类型的故障,再利用泄露的旁路信息,通过故障计算来恢复秘密信息。故障攻击的理念最初在文献[82]中提出。接着在文献[83]中,研究人员通过对相同输入条件下无故障状态和注入故障状态下的算法结果进行分析,提出了一种差分故障分析方法(DFA)。使用DFA方法后,攻击效率(获得密钥所需的实验次数)显著提高。从那时起,故障攻击已成功地扩展到针对非对称[84]和对称密码[85,86]的攻击,并被证明非常有效。

针对故障注入,各种方法都依赖于恶意改变外部参数和环境条件,包括更改电源电压[87]、注入不规则的时钟信号[88]、辐射或电磁干扰[89],以及将设备暴露在强光下[90]。在文献[91]中,Barenghi等人对故障注入技术进行了总结,首先根据故障注入技术的成本阐明了用于故障攻击的方法,并分析了执行故障注入所需的技术技能和实现知识的程度及时间和空间的精度、有效性。各种故障注入技术的总体情况见表3-1。

表3.1 各种故障注入技术的总体情况

注入故障的数量并不是影响故障攻击效率的唯一因素,其他因素还包括相应故障模型的实用性,其特征为注入故障对电路的影响和故障注入的位置:

(1)受故障注入影响的比特位数目(位、字节和单词);

(2)对注入点的修改类型(如固定、翻转、随机和均匀随机分布);

(3)故障持久性(暂时或永久存在);

(4)算法执行过程中发生故障的位置。

Saha等人[92]基于第八轮输入时AES状态矩阵对角线上的故障感应,针对AES提出了一种故障注入攻击方法。不同于以往的单字节故障注入攻击,该攻击基于多字节级故障建模,称为“对角线故障攻击”。在文献[93]中提到了电磁故障注入技术。这一技术强迫AES状态的一个字节值不变,从而形成了一个可用于实现故障攻击的常量错误模型。Romailler等人[94]针对Ed-DSA和Ed25519算法执行了单故障攻击。结果显示,这些算法虽然在设计上对许多类型的攻击能提供很好的保护,但仍容易受到故障攻击。

除DFA方法之外,研究人员还提出了许多被称为“组合攻击”的新型故障攻击。此类攻击的基本原理是将故障攻击和经典旁路攻击相结合。先向正在运行的密码设备注入故障干扰,然后利用经典的旁路攻击(DPA或CPA)恢复密码信息。Amiel等人[95]将一个故障攻击与一个SPA相结合,以打破模幂运算(曾被认为可抵抗故障和SSCA攻击)。研究人员在模幂运算开始时向其中一个寄存器注入错误,然后通过SPA来检测指数这一秘密信息。因此,运算结束后的故障分析保护并不能防止计算过程中已经发生的SPA泄露。

Clavier等人[85]针对带一阶掩码技术保护的AES标准提出了一种主动与被动相结合的攻击方法。其具体做法是将碰撞故障分析(CFA)与CPA分析相结合。一些AES保护方案可对抗高阶DPA和故障攻击。Franois等人[86]提出了针对此类AES密钥方案的组合攻击,可以攻击这些受保护的AES实现。Patranabis等人[96]提出了一种面向物联网应用的轻量级分组密码PRESENT的旁路辅助故障攻击方法,使用基于激光故障注入的装置向第28轮PRESENT注入故障,并对正确和错误的执行曲线执行一个简化的差分功耗分析,以充分推断出最终的故障掩码。

在文献[97]中,研究人员提出了一种新的基于故障的攻击,被称为故障灵敏度分析(Fault Sensitivity Analysis, FSA)攻击。FSA攻击中使用的秘密信息泄露被称为故障灵敏度,表示设备正常运行和异常运行之间的阈值所对应的临界故障注入强度。研究人员对该攻击进行了验证。结果表明,故障灵敏度取决于处理数据的值,而且可用于密钥检索。

3.3.8 缓存旁路攻击

缓存属于共享资源,用于加快应用程序的执行,包括加密操作的执行。攻击者可利用进程之间的高速交互和共享来执行缓存攻击。因此,缓存攻击也属于旁路攻击中的一种。在通常情况下,与目标进程共享缓存的攻击者有权限监视目标进程执行过程中的缓存访问。目标进程在执行加密时访问的缓存集与密钥的索引相关联,如AES电路。这种基于缓存的信息通常足以在短时间内重建密钥。

根据使用的不同缓存信息,缓存旁路攻击分为三类:轨迹驱动攻击、访问驱动攻击、时间驱动攻击。轨迹驱动攻击监视处理器的功耗,以获得单独的内存访问模式;访问驱动攻击通过共存同一主机上的监视进程获取相同的信息;时序驱动攻击监视完成加密操作的总时间,依赖统计方法确定密钥。

缓存旁路攻击的概念最初由Kelsey等人在文献[98]中提出,即在运行密码算法时,缓存内存可用作旁路泄露。后来该理念由Page在文献[99]中拓展,并提出了一种将高速缓存作为密码分析旁路的理论实现方法。之后,该攻击被成功拓展,并可针对各类密码算法。

建模缓存时间攻击属于时间驱动攻击。该方法由文献[100]证实。在建模缓存时间攻击时,攻击者在监视多个加密的时间后,通过将未知密钥的时间配置文件与模板的时间配置文件进行比较,以获得密钥。在文献[101]中,Rebeiro等人介绍了建模缓存时序攻击,并提出了一种最大化攻击成功率的方法。该方法基于对成功率的先验估计,并使用量化器来提取平台相关信息。该项技术也可拓展为其他旁路攻击,如DPA。在文献[102]中,Bhattacharya等人通过研究表明,硬件预取算法(如常用的顺序预取)可导致非恒定时间加密,有助于建模缓存时间攻击。

Flush+Reload(刷新+重载)攻击是由Gullash等人首次提出的一种强大的缓存攻击技术[103]。该攻击最初由Yarom等人在文献[104]中命名,可归为访问驱动攻击,通常使用一个监视程序来确定特定的高速缓存线路是否已被受攻击的代码访问。在文献[105]中提出了一种利用Flush+Reload攻击技术的缓存旁路攻击,可针对数据报传输层安全性(DTLS)协议成功恢复明文,即使DTLS已经能防御当前的填充式参照攻击(padding oracle attacks)。

通过Prime+Probe(质数+探查)攻击,攻击者可确定在目标进程的执行过程中是否使用了缓存集。此外,该攻击也可归为访问驱动攻击,在文献[106]中首次提出。在Prime阶段,攻击者先用自己的数据填写整个缓存区间,然后开始加密过程。在Probe阶段,攻击者计算某些启动高速缓存线路的重新加载时间。如果目标进程使用的数据被映射到受监控的缓存集,则其中一条预先启动的缓存线路将被清除。因此,探查时间将比目标进程不使用任何映射到受监控的缓存集数据时更长。所以该攻击可显示出目标进程正在使用的缓存集索引。Liu等人[107]提出了针对最后一层缓存(LLC)进行Prime+Probe旁路攻击的有效实现。这种攻击无需在攻击者和目标进程之间共享核心或内存。同时,Liu等人还开发了两种技术来提高这种攻击的效率。Kayaalp等人[108]提出了一种新的Prime+probe风格的高分辨率LLC攻击。该攻击可处理任意大小的页面,而且不依赖目标进程与攻击者之间的密码数据共享。在文献[109]中,研究人员提出了一种Prime+Probe攻击。该攻击无需任何有关内存页和CPU缓存集之间的链接信息。Reinbrecht等人[110]对基于NoC的MPSoC系统进行了时间攻击,并详细解释了攻击过程,对Prime+Probe技术做出了改进。