集成电路中的故障注入攻击检测
文献发布时间:2023-06-19 09:29:07
背景技术
集成电路(IC)可能包括含有敏感信息的设计。这种敏感信息的示例是在密码引擎实施方式(例如,AES)中使用的密钥信息。可以通过针对电路的未授权或非预期的访问方法来进行尝试访问IC上的安全或敏感信息(密码或其他方面)。这样的方法包括故障注入攻击,其中攻击者将某些东西注入到电路中以改变电路的行为。故障注入攻击包括光学毛刺(optical glitching)、电磁故障注入和主体偏置注入。
发明内容
本文描述了集成电路中的故障注入攻击检测。所描述的故障注入攻击检测和相应的电路可以识别独立电力网上的升高的电力特性,以检测故障注入攻击。
一种结合故障注入攻击检测的系统的实施方式可以包括电路块、至少一个不向电路块供电的独立电力网、耦合到独立电力网以检测独立电力网的电力特性变化的检测器、以及耦合到独立电力网并且位于具有电路块的有源层上的传感器。独立电力网可以包括静默电源(quiet power supply)。在一些情况下,多个独立电力网可以设置有相应的检测器或耦合到同一检测器。传感器可以包括一个或多个可以响应于故障注入攻击的晶体管或其他器件。在一些情况下,传感器中的至少一个是反相器(inverter)。
传感器可以分布在整个电路块中和/或位于电路块的子电路之间。传感器的密度和放置可以是基于所需的保护量或预期的攻击区域的。在一些情况下,传感器的放置可以作为自动化放置和布线工具的一部分而自动化。
提供本发明内容以便以简化的形式来介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
图1A示出了具有各种电路块的IC的简化视图。
图1B示出了热图(heat map)的示例,这些热图表示可以针对如图1A所示的IC进行的各种故障注入攻击的影响区域。
图2示出了具有用于故障注入攻击检测的独立电力网的IC的示例。
图3示出了具有独立电力网的IC的示例实施方式,其中示出了用于故障注入攻击检测的附接的传感器。
图4A-4C示出了故障注入攻击检测电路的示例实施方式。
图5示出了用于故障注入攻击的示例传感器的图示。
图6示出了具有多个独立电力网的IC的示例。
图7示出了附接到独立电力网的传感器的放置和布线的示例。
具体实施方式
本文描述了集成电路中的故障注入攻击检测。所描述的故障注入攻击检测和相应的电路可以通过识别独立电力网上的升高的电力特性,来保护可能包含在IC上的安全或敏感信息。
如上所述,故障注入攻击是在电路中引起未授权或非预期行为的常见方法。所描述的电路的各种实施方式可以检测一种或多种类型的故障注入攻击,包括但不限于光学故障注入(“光学毛刺”)、电磁故障注入(EMFI)和主体偏置注入(BBI)。
图1A示出了具有各种块的IC的简化视图。参考图1A,实现IC的芯片100可以包括多个不同的电路块和子块,包括但不限于处理器102、存储器104、模拟电路106、接口电路和其他块108、以及密码块110。密码块110通常为或包括黑客试图造成毛刺的区域(“优选毛刺区域”)。应当理解,尽管单个块被示出为具有优选毛刺区域,但芯片100可以具有可以存在于IC内的多个优选毛刺区域。此外,在一些情况下,优选毛刺区域可以是一个其他块的一部分(例如,在处理器102、存储器104或其他块中)。因此,可以将IC电路块的子块视为属于以下至少两类之一:需要高保护的区域和需要低(较低)保护的区域(当然可以预期其他覆盖层次)。通常,需要高保护的区域包括具有安全或敏感信息的密码块110,而需要低(较低)保护的区域包括典型的子块,例如,处理器102、存储器104、模拟电路106、以及接口电路和其他块108。
图1B示出了热图的示例,这些热图表示可以针对如图1A所示的IC进行的各种故障注入攻击的影响区域。参考图1B,三个热图覆盖同一优选毛刺目标区域,一个热图用于光学故障注入120,一个热图用于电磁故障注入130,以及一个热图用于BBI故障注入140。如在用于光学故障注入的热图120中所反映的,当激光束击中毛刺区域的一部分时,激光的光散射(包括由于芯片中的金属)。在直接激光束击中的地方,最高能量的最高影响被传递到电路中的该特定门或点;然而,散射产生强度变化的影响(其可以或可以不均等地分布在影响点附近)。如在用于电磁故障注入的热图130中所反映的,电磁变化被感应到芯片上,与光学故障注入相比,其具有更大的影响范围。此外,如在用于BBI故障注入的热图140中所反映的,当电压被感应到芯片本身的衬底的背侧时,可以看到最大的影响区域。
图2示出了具有用于故障注入攻击检测的独立电力网的IC的示例。参考图2,至少一个独立电力网202可以被实现在例如相对于图1A的芯片100所描述的芯片200上。电力网(例如,独立电力网202)包括电力线(例如,电压源线和第一电压线)以及内部或独立电源(未示出)。在一些情况下,独立电力网202可以在芯片外部。在一些情况下,独立电力网202可以源自内部电源。
独立电力网202不向IC的电路供电。相反,IC从例如耦合到电力框205的通用电力网接收电力。此外,在一些情况下,密码块210可以从其自身的安全电力环220接收电力。然而,应注意,在一些情况下,独立电力网202可以被配置为使得独立电力网可以名义上向电路块供电(但这种配置将考虑检测器的灵敏度和/或检测发生的时间的时序)。
独立电力网202可以被配置为使得其通常具有非常低的电力活动。在一些情况下,独立电力网202的电源可以是“静默”电源。因此,可以例如通过电力活动中的异常尖峰(例如,电力签名的改变)而从独立电力网202检测故障注入攻击。
图3示出了具有独立电力网的IC的示例实施方式,其中示出了用于故障注入攻击检测的附接的传感器。传感器阵列300可以耦合到独立电力网202并沿着芯片(例如,有源器件区域)的表面放置,例如,集中在已知或预期的优选毛刺区域(例如,位于或集中于密码块210附近)。独立电力网202和传感器阵列300可以分布在所有期望的高保护区域上。在一些情况下,独立电力网202可以是网格的形式。用作传感器阵列300的一部分的传感器元件(例如,300-1、300-2)可以包括一个或多个晶体管、二极管、电容器、电阻器、或其组合。在一些情况下,传感器阵列300的一个传感器(例如,传感器300-1)可以与传感器阵列300的另一传感器(例如,传感器300-2)不同。另外,在一些情况下,至少一些传感器可以通过信号路径彼此耦合(例如,一个传感器的输出可以耦合至另一传感器的输入,从而形成链)。
一些传感器组件比其他组件更适合受到某些故障注入攻击的影响。例如,一些电容器和一些电阻器可能受到电磁注入攻击的影响,但可能不受光学注入攻击的影响。然而,当传感器由晶体管或二极管(以及一些类型的电容器和电阻器)形成时,它们可能受到光学、电磁和主体偏置攻击的影响。传感器的配置可以被选择为使得传感器对至少两种类型的故障注入攻击做出响应(例如,对其具有敏感性)。实际上,可以从同一传感器元件检测至少两种不同的故障注入攻击。
可以选择用于传感器的特定传感器组件以使其对期望的注入攻击类型是敏感的,以在“正常”状态下具有非常低的电力活动(例如,静态电流消耗)、在“暴露”(例如,暴露于注入攻击)状态下与“正常”状态相比具有显著的电力活动、或其组合。
图4A-4C示出了故障注入攻击检测电路的示例实施方式。参考图4A和图4B,覆盖芯片的区域400的独立电力网405的传感器410可以是耦合到独立电力网405的电力线408的反相器415。独立电力网405可以包括静默电源406和电力线408,其可以包括电压源线(例如,VDD)和第一电压线(例如,VSS)。检测器420可以耦合到静默电源406以检测电力特性的变化。检测器420本身可以使用通用电力网来操作或进行供电(并且因此在系统电力线上)。
在一些情况下,检测器420可以利用传感器组件在“正常”状态和“暴露”状态时的电力活动(形式和幅度)的差异。在一些情况下,检测器420可以包括电流传感器。在一些情况下,检测器420可以包括电力传感器。在一些情况下,检测器420包括电压传感器。在一些情况下,检测可以是基于线(或电荷存储设备)上的电流值或电压值的。在一些情况下,可以提供检测反相器输出的值(来自单个反相器或一系列反相器)的检测器。在一些情况下,可以包括例如不同类型和/或位于电力线上的多个位置的多个检测器。在一些情况下,至少一个检测器可以耦合到电压源线,并且至少一个检测器可以耦合到第一电压线。
静默电源406可以通过如下方式而被示为“静默”:仅连接到传感器,而不连接到常规逻辑(或者至少在感兴趣的时间期间不连接到常规逻辑、或仅名义上耦合到常规逻辑);以及通过例如使用开关电容器或调节器(例如,低电力调节器)或其他隔离机制而与通用电源隔离。静默电源406可以由外部电源供电或在芯片上产生。
如图4C所示,在一些情况下,静默电源406可以是选择性可充电电荷存储设备406A,其通过将电荷存储设备C2选择性连接到系统电压源线VDD_SOC和系统第一电压线VSS_SOC而提供静默电压源线VDD_Q和静默第一电压线VSS_Q。
图4C中所示的实施方式还可以被认为具有两个静默电源:一个作为电压源线VDD_Q,并且另一个作为第一电压线VSS_Q。在一些情况下,可能仅需要电压源线或仅第一电压线。
独立电力网的功耗本质上是正常状态下的传感器的泄漏电流。泄漏电流通常非常低。反相器的输入/输出是静态且确定的。然而,当传感器之一暴露于由故障注入攻击引起的外部干扰时,根据暴露的影响,电力活动急剧增加。一个或多个反相器可以在暴露期间改变输出状态。检测机制依赖于由于暴露于干扰而引起的这种过大电力活动和/或逻辑状态改变。
图5示出了用于故障注入攻击的示例传感器的图示。参考图5,IC中的传感器元件500可以是反相器,其具有耦合到独立电源的电压源线(例如,VDD)的P型场效应晶体管(PFET)以及耦合到独立电源的第一电压线(例如,VSS、GND)的N型场效应晶体管(NFET)。应理解,反相器仅是可以在故障注入攻击中使用的传感器元件的一个示例。对于基于晶体管的传感器元件,甚至多个栅极的单个晶体管也可以形成单个传感器元件。电压源线或第一电压线上的电力特征的变化(例如,被视为电力耗散的增加)可以用于检测故障注入攻击的存在。
对于光学毛刺攻击,可以将光或激光施加到IC的区域而意图使晶体管处于“OFF”的导电状态。除此意图外,攻击者还可以使用光学毛刺来影响模拟行为,从而影响计算(例如,数学函数)的性能或结果。通常NFET由于光学活动而变为ON,并且PFET的阈值电压降低(降低将电流从源极传导至漏极所需的电压)。其他效果也可能发生。传感器元件500存在于可能受到所施加的光影响的区域中会导致传感器元件500受到光学毛刺攻击的影响。例如,如果向形成传感器元件500的反相器的输入(IN)输入表示0的值,则NFET变为“OFF”且PFET变为“ON”,并且输出OUT为表示1的值。然而,可以执行光学毛刺攻击(例如,由510表示)以将NFET置于导电状态,这将使NFET变为“ON”(或部分地“ON”),这可能导致输出OUT为0而不是适当的1。可以使用反相器作为攻击感测元件500并检测独立电源的电源线(例如,VDD)上由于NFET和PFET两者都为“ON”而引起的电力耗散增加来检测光学毛刺攻击。
对于电磁故障注入(EMFI)攻击,探针线圈施加来自信号发生器的放大信号,以例如发出可以修改电线(例如,信号线)上的电压以影响指令的执行的信号。传感器元件500存在于可能受到EM信号影响的区域内会导致传感器元件500受到EMFI攻击的影响。例如,如果向形成传感器元件500的反相器元件的输入(IN)输入表示1的值,则NFET变为“ON”,PFET变为“OFF”,并且输出OUT为表示0的值。然而,可能执行EMFI攻击(例如,由510表示)而使反相器的净输出OUT修改为1而不是适当的0。可以使用反相器作为攻击感测元件500并检测独立电源的电源线(例如,VDD)上由于NFET和PFET两者都为“ON”而引起的电力耗散增加来检测EMFI攻击。
对于主体偏置注入(BBI)攻击,电路衬底的电压被修改(例如,施加高压脉冲)以修改晶体管的电特性。传感器元件500存在于可能受到所施加的主体电压影响的区域内会导致传感器元件500受到BBI攻击的影响。例如,如果向形成传感器元件500的反相器元件的输入(IN)输入表示0的值,则NFET变为“OFF”,PFET变为“ON”,并且输出OUT为表示1的值。然而,可能执行BBI攻击(应用未示出)而影响NFET来使净输出OUT为0而不是适当的1。可以使用反相器作为攻击感测元件500并检测独立电源的电源线(例如,VDD)上由于NFET和PFET两者都为“ON”而引起的电力耗散增加来检测BBI攻击。
在一些情况下,可以检测基于反相器的传感器的状态变化来指示存在故障注入攻击。
图6示出了具有多个独立电力网的IC的示例。参考图6,系统600可以包括可独立操作的多个独立电力网610。在一些情况下,每个独立电力网(例如,610-1、610-2、610-3、610-4)都可以生成可在检测器感测到恶意能量(例如,来自注入攻击620)时设置警报的信号。多个独立电力网610可以具有重叠的覆盖区域,这些重叠的覆盖区域确保即使在攻击者禁用一个或多个独立电力网的情况下,也可以感测到恶意能量。此外,多个独立电力网610可以协作以检测恶意活动/能量。例如,可以将一个独立电力网检测到的能量水平与另一独立电力网检测到的能量水平进行核查,以提高检测恶意活动的概率。
图7示出了附接到独立电力网的传感器的放置和布线的示例。电子电路的设计过程包括放置电路元件以及对线和互连进行布线的步骤。这对于集成电路或现场可编程门阵列可以在芯片级进行,或对于印刷电路板或其他电路封装可以在电路板级进行。例如可通过卡得斯设计系统公司(Cadence Design Systems,Inc.)和新思科技公司(Synopsys,Inc.)获得的电子设计自动化(EDA)工具在放置和布线阶段用于优化布置并增加设计的复杂性(与手动布局相比)。
集成电路设计过程的物理设计阶段通常包括逻辑综合、布局规划、电力规划、放置、时钟树综合、布线、验证和“流片(tapeout)”(以制造形式导出数据)。可以使用可单独或一起形成EDA工具的关联工具来执行这些阶段。例如,在一个具有自动放置和布线(APR)软件的EDA工具中,通过放置标准单元布局(放置阶段)并然后基于从网表推断的连接来对单元进行自动布线(布线阶段),来在布局中物理地实现可从逻辑综合工具获得(作为逻辑综合阶段的一部分)的门级网表。在APR软件与后续阶段中使用的软件分开的情况下,可以从APR工具中以后期分析工具(例如,提取或电力分析工具)可以理解的格式来导出布线设计。
参考图7,芯片700的一部分的顶视图布局示出了散布有传感器720的逻辑区域710。可以看出,(系统电压源线VDD_SOC和系统第一电压线VSS_SOC的)通用电力网与独立电力网的电力线(VDD_Q、VSS_Q)是分开的。在一些情况下,用于传感器的电压源线或第一电压线分别耦合到系统电压源线或系统第一电压线。在这种情况下,耦合到传感器的两条线中的另一条可以提供静默电源,从中可以检测电力特性。
在一些情况下,可以提供包含传感器电路的定制标准单元。定制标准单元可类似于放置和布线软件库中的其他可用标准单元,但支持不同的电力线布线连接。
传感器可以作为特殊的宏而以预定间隔预先放置在需要保护的区域上,或者可以放置在标准或密码单元的布局之后。在一些情况下,占位符块(或甚至传感器的定制单元)可以在执行常规标准单元放置之前分布在层上,以使常规电路放置变为围绕区域的期望传感器密度而布置。
自动放置和布线工具可以确定电路的高保护区域。在一些情况下,可以基于从设计者接收输入来确定高保护区域。在一些情况下,可以基于接收识别可能攻击的区域的电路测试的结果来确定高保护区域。在一些情况下,可以从指示密码块的网表中确定高保护区域。可以将多个定制单元(提供传感器的组件)放置在芯片中的位置。可以根据电路的区域是否在高保护区域中来为该区域选择传感器的数量和密度。传感器的密度可以基于可用面积和/或基于期望发生优选毛刺的位置。另外,区域中的传感器密度可以基于可能遭受注入攻击的影响的位置的预期热图/散布模式/能量干扰/电压幅度。
可以基于设计者选择的优化(例如,对区域成本的偏好、预期的攻击类型等)来自动计算传感器的数量和布置。另外,可以包括用于确定区域的传感器类型的优化。例如,具有密集标准电路的芯片区域可以利用具有较小覆盖区(footprint)的传感器。在一些情况下,可以基于预期的攻击类型来选择和优化传感器的类型。例如,可以基于传感器组件对两种或更多种故障注入攻击类型的响应来选择它们。
在一些情况下,在放置定制单元之后,然后可以将IC的标准单元自动地放置在定制单元周围。
传感器还可以尽可能地放置在期望的低(较低)保护区域中的间隙(例如,密度减小)中以最小化面积开销。传感器的输入和输出可以成链连接,或者输入可以由可与传感器集成在一起的固定逻辑驱动。
独立电力网的电力线(例如,电压源线和第一电压线)可以例如在电力线的自动布线期间被布线为专用网。在通用电力网的系统电力线耦合到标准单元并且独立电力网的电力线耦合到定制单元的情况下,可以执行电力线的自动布线。用于独立电力网的电力线的自动放置可以创建单独的独立电力网,由定制单元实现的传感器耦合到该独立电力网。此外,在一些情况下,单独的独立电力网的传感器可以具有重叠的芯片覆盖区域。
本说明书中对“一个实施例”、“实施例”、“示例实施例”、“示例”、“一些示例”等的任何引用表示结合该实施例或示例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。这些短语在说明书中各个地方的出现不一定都指代同一实施例。另外,本文公开的任何发明或其实施例的任何要素或限制可以与本文公开的任何和/或所有其他要素或限制(单独或以任何组合)、或任何其他发明或其实施例进行结合,并且在没有任何限制的情况下,所有这样的组合是在本发明的范围内。
尽管已经用特定于结构特征和/或动作的语言描述了主题,但应理解,所附权利要求中限定的主题不一定限于上述特定特征或动作。相反,上述特定特征和动作被公开为实现权利要求的示例,并且其他等效特征和动作意图在权利要求的范围内。
- 集成电路中的故障注入攻击检测
- 用于集成电路的防止故障注入控制信号的方法及集成电路