CN110048997A - 处理故障注入攻击的安全系统和方法 - Google Patents

处理故障注入攻击的安全系统和方法 Download PDF

Info

Publication number
CN110048997A
CN110048997A CN201811554212.9A CN201811554212A CN110048997A CN 110048997 A CN110048997 A CN 110048997A CN 201811554212 A CN201811554212 A CN 201811554212A CN 110048997 A CN110048997 A CN 110048997A
Authority
CN
China
Prior art keywords
instruction
sensitivity level
fault location
sensitivity
processor core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811554212.9A
Other languages
English (en)
Other versions
CN110048997B (zh
Inventor
伊兰·马格利特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Nuvoton Technology Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN110048997A publication Critical patent/CN110048997A/zh
Application granted granted Critical
Publication of CN110048997B publication Critical patent/CN110048997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种处理故障注入攻击的安全系统和方法,该故障注入对策电路用于保护该处理器核心免受故障注入攻击。在一实施例中,安全系统包含一灵敏度等级控制模组,以动态调整灵敏度等级时避免假警报。

Description

处理故障注入攻击的安全系统和方法
技术领域
本发明涉及装置安全领域,尤其涉及一种处理故障注入攻击的安全系统和方法。
背景技术
美国专利号9523736和其先前技术描述了传统的安全对策(securitycountermeasure,CM)的机制和电路。
已知有灵敏度等级可调的对策机制,且已知有频率突变(Glitch)检测器,并在下列连结中进行了描述:
http://www.invia.fr/detectors/voltage-glitch-detector.aspx
此些网页描述了使用“可配置的检测阈值”;以及
https://hal.inria.fr/emse-01099006/document
“JosepBalasch、BenediktGierlichs和Ingrid Verbauwhede所著的白皮书”8-Bit时脉频率突变对8位MCU的影响的详细了解和黑盒特性(An In-depth and Black-boxCharacterization of the Effects of Clock Glitches on 8-bit MCUs)“,可从IEEE获得,其描述了故障注入研究。
由Martin S.Kelly等人所著的白皮书“藉由执行时数据分析表征的CPU故障攻击模型(Characterising a CPU Fault Attack Model via Run-Time Data Analysis)”可从IEEE获得,其描述了故障注入研究。
Nicolas Moro等人所著的白皮书“两种防止故障攻击的软体对策的实验评估(Experimental evaluation of two software countermeasures against faultattacks)”可从IEEE获得,其评估了软体对策。
Nicolas Moro等人所著的白皮书“电磁故障注入:针对32位元微控制器上的故障模型(Electromagnetic fault injection:towards a fault model on a 32-bitmicrocontroller)”可从IEEE获得,其描述了故障注入研究。
NCC集团于2015年11月发布的“实施实用电气频率突变攻击(ImplementingPractical Electrical Glitching Attacks)”中介绍了关于频率突变攻击的最新知识,并可通过网际网络https://www.blackhat.com/docs/eu-15/materials/eu-15-Giller-Implementing-Electrical-Glitching-Attacks.pdf取得。
在Thierno Barry、Damien Courouss_e、Bruno Robisson所著的“针对指令跳过故障攻击的对策编译(Compilation of a Countermeasure Against Instruction-SkipFault Attacks)”中描述了软体中的对策,例如指令的复制,可通过网际网络https://hal-cea.archives-ouvertes.fr/cea-01296572/document取得,以及“针对故障攻击的低成本软体对策:实施和性能权衡(Low-Cost Software Countermeasures Against FaultAttacks:Implementation and Performances Trade Offs)”,可通过网际网络http://euler.ecs.umass.edu/research/bpbk-WESS-2010.pdf取得。
已知有基于跟踪CPU的执行流程而操作的认证机制,例如美国专利号9703945。
图1绘示的是现有技术中的CPU操作周期,其取自Mike McDonald和Tony Jacobs所著的“DLX机器的基本操作(Basic Operation of a DLX Machine)”,可在以下网际网络位置获得:https://www.cs.umd.edu/class/fall2001/cmsc411/projects/DLX/proj.html。
说明书中提及的所有出版物和专利文件以及其中直接或间接引用的出版物和专利文献的公开内容在此通过引用并入本文。这些出版物和专利文件对可专利性的实质性不予承认。
发明内容
故障注入是一种广泛使用和高度有效的(从骇客观点)技术。某些实施例试图提供针对故障注入攻击或指令跳过故障攻击的改进的保护。
安全系统的衡量标准是误报率(rate of false positives),又称假警报(falsealarms)以及它们提供的安全等级。本发明的某些实施例试图提供一种有优势的系统,即通常在系统全部操作时间(100%)的存储器在较低安全风险的时期,例如但不限于经验上被认为不太受骇客攻击的时期,以及存在较高安全风险的时期,例如但不限于经验上被认为更受骇客欢迎的时期。然后,系统会将对安全威胁更敏感的时间限制为第二类的时段,从而整体上减少了系统对假警报的灵敏度,使得系统更安全,并在相对于将系统在100%的时间内置于对故障注入具有最高的灵敏度的状态下,不会影响可得性(availability)和可用性(usability)。
某些实施例试图提供一种故障注入检测器,其具有即时操作中动态调整(例如,即时调整)灵敏度等级,其具有比故障注入检测器确保CPU的单个指令的解码执行周期(decode-through-execution cycle)更短的回应时间。通常,检测是连续的,而不是间歇的。
该领域的技术人员可能知道或不知道取决于晶片的状态,例如取决于晶片是处于活动状态还是处于睡眠状态而将对策开启和关闭。本文所示和描述的特定实施例试图即时调整灵敏度等级,以牺牲一些误报为代价来微调提供攻击保护的装置中固有的权衡(tradeoffs inherent)。通常地,以对单一操作码的分辨率来提供对策的控制,例如,因为在第一操作码(first opcode)时的检测可能提供第一灵敏度等级,可能是低灵敏度等级,并产生第一权衡,其提供较低等级检测并遭受较低等级的假警报,并且可以在紧接在第一操作码之后的第二操作码的检测时提供第二灵敏度等级,可能是较高的灵敏度等级,产生第二权衡,其以牺牲更高等级的假警报为代价提供更高等级的检测。
本发明的某些实施例试图提供一种安全系统、方法和电脑程序产品,其根据CPU的执行流程动态地控制故障注入对策电路,以保护CPU免受故障注入攻击。例如,可以提供CPU或处理器核心,其在使用时即时产生将要执行的至少一个条件分支(conditional branch)的输出指示,以回应于将要被执行的条件分支的输出指示,如果除了条件分支以外的至少一个指令即将被处理器核心执行,则灵敏度等级配置模组用于选择比由灵敏度等级配置模组选择的至少一个灵敏等级更高的下一个灵敏等级。
因此,至少提供以下实施例:
实施例1:根据处理器核心执行流程,动态地控制故障注入对策电路的安全系统,故障注入对策电路用于保护处理器核心免受故障注入攻击,安全系统包括:
1.处理器核心,其在使用时执行指令并且同时即时地产生至少一些将要执行的指令的输出指示;
2.具有多个可选灵敏度等级的故障注入检测器;以及
3.灵敏度等级控制模组,其即时执行以下操作,
接收输出指示,
使用至少接收输出指示作为输入的灵敏度等级选择逻辑元件,来从多个可选灵敏度等级中选择下一个灵敏度等级;以及
将故障注入检测器设置为下一个灵敏度等级,
从而当根据至少一些指令的输出指示保护处理器核心免受故障注入攻击时提供差动敏感(differentially sensitive)的故障注入对策电路,如果处理器核心保护被提供在与至少一些指令的输出指示无关的灵敏度等级时避免至少一个假警报。
实施例2:根据前述实施例中任一项所述的安全系统,其中,其中当灵敏度等级控制模组接收到与风险等级(risk level)R相关联的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对与低于风险等级R的风险等级相关联的至少一个指令选择的灵敏度等级要高。
实施例3:根据前述实施例中任一项所述的安全系统,其中当灵敏度等级控制模组接收到决定来自中断处理程序的处理器核心返回的单独指令的输出指示时,灵敏度等级控制模组回应性地选择下一个灵敏度等级,其比针对单独指令以外的至少一个指令的灵敏度等级要高。
通常,当CPU完成执行if语句(if-statement)时,灵敏度回复到较低的等级,除非即将到来的操作码指示将要由处理器核心执行的即将到来的指令是另一个条件分支或其他操作码,且其灵敏度等级配置模组可操作来选择高灵敏度等级。通常,输出指示是指示当前时刻处理器核心即将执行什么的信号,并且灵敏度等级由灵敏度等级配置模组相应地设置。当下一个或即将到来的操作码的输出指示出现时,灵敏度等级再次被相应地调整,因此可以保留相同或改变,这取决于接下来的操作码是否与前面的操作码相同,或对应于逻辑元件,其恰好为与前一个操作码相对应的灵敏度等级。
实施例4:根据前述实施例中任一项所述的安全系统,其中,当灵敏度等级控制模组接收到决定例程返回地址的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对单独指令以外的至少一个指令的灵敏度等级要高。
实施例5:根据前述实施例中任一项所述的安全系统,其中,当灵敏度等级控制模组接收到决定回圈的停止条件的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对单独指令以外的至少一个指令的灵敏度等级要高。
实施例6:根据前述实施例中任一项所述的安全系统,其中当灵敏度等级控制模组接收到决定处理器核心执行模式改变的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对单独指令以外的至少一个指令的灵敏度等级要高。
执行模式改变可以例如包括在代码有权访问某些受限资源(restrictedresources)(例如,某些储存区域、某些硬体功能或其他特定资源)的特权模式(privilegedmode)和其中代码未被授权的非特权模式(non-privileged mode)以访问受限制的资源。
实施例7:根据前述实施例中任一项所述的安全系统,其中当灵敏度等级控制模组接收到从存储器读取数据的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对所述单独指令以外的至少一个指令的灵敏度等级要低。
实施例8:根据前述实施例中任一项所述的安全系统,其中,该处理器核心包括存储器,并且其中当灵敏度等级控制模组接收到将数据从存储器读取到本地储存装置(例如,高速缓存或暂存器)中的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对单独指令以外的至少一个指令的灵敏度等级要低。
实施例9:根据前述实施例中任一项所述的安全系统,其中当灵敏度等级控制模组接收到包括条件分支的单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对单独指令以外的至少一个指令的灵敏度等级要高。
应理解的是,条件分支可能与高风险等级相关联,因为条件分支可能是骇客在有限的代码中寻找有价值的攻击目标中的有吸引力的目标。例如,条件分支可能是对骇客而言有吸引力的目标,因为分支可以将代码流(code flow)路由到授权终端用户秘密信息的第一选项,或者因此认为终端用户不可授权而不提供秘密信息的第二选项。
实施例10:根据前述实施例中任一项所述的安全系统,其中当处理器核心即将执行指令I时,产生与指令I有关的至少一个输出指示,从而在执行指令I之前提供指令I将要被执行的输出指示。
实施例11:根据前述任一实施例所述的安全系统,其中其中处理器核心包括适配的解码逻辑元件,解码逻辑元件至少一次解码从程序存储器获取的单独指令,从而导出至少一个CPU内部信号,至少一个CPU内部信号随后操作CPU的至少一个单元,从而执行单独指令,并且其中解码逻辑元件还适于在至少一个单元回应于在从程序存储器取回的单独指令导出的至少一个CPU内部信号而操作之前提供单独指令的输出指示,以便在执行单独指令之前而不是在之后将故障注入检测器设置为下一个灵敏度等级。
实施例12:根据前述任一实施例所述的安全系统,其中处理器核心对多个操作码进行解码,从而生成包括对处理器核心的多个执行单元的指令的信号,以及多个输出指示包括由操作码解码的指令指示的从处理器核心输出的信号,由此提供灵敏度等级选择逻辑元件的将由处理器核心执行的指令的预览。
实施例13:根据前述任一实施例的安全系统,其中从核心输出的信号包括从操作码解码的指令。
实施例14:根据前述任一实施例的安全系统,其中故障注入检测器包括具有分别对应于多个灵敏度等级的多个调谐选项的类比电路。
实施例15:根据前述任一实施例所述的安全系统,其中处理器核心包括适配的解码逻辑元件,解码逻辑元件至少一次解码从程序存储器获取的单独指令,从而导出至少一个CPU内部信号,至少一个CPU内部信号随后操作CPU的至少一个单元,从而执行单独指令,并且其中对于由解码逻辑元件解码的所有指令,解码逻辑元件还适于在该至少一个单元回应于从程序存储器得出的单独指令导出的至少一个CPU内部信号而操作之前,提供单独指令的输出指示,由此确保故障注入检测器在由灵敏度等级逻辑元件选择特定灵敏度等级所使用的指令被执行之前而不是在之后始终被设置至每个特定灵敏度等级。
实施例16:根据前述实施例中任一项所述的安全系统,还包括故障注入改善电路,故障注入改善电路被配置为回应于由检测器检测到的故障注入而执行至少一个故障注入改善操作。
实施例17:根据前述实施例中任一项所述的安全系统,其中处理器核心包括执行管线(execution pipeline),执行管线包括具有至少一个重迭阶段(overlapping phase)的多个连续指令,其中灵敏度等级选择逻辑元件向故障注入检测器提供用于根据至少一个指令I选择灵敏度等级的指示,指示独立地与复数灵敏度等级中的最高故障检测灵敏度等级相关联。重迭阶段可以包括解码阶段和/或执行阶段。
实施例18:根据前述实施例中任一项所述的安全系统,其中,至少一个指令I一旦被解码,就优先于所有正被解码的其他指令,并优先于将要执行的所有其他指令,其中最高检测灵敏度等级被设置为在解码至少一个指令I并仅在该至少一个指令I已被完全执行之后结束,而无关被解码以及即将被执行的其他指令。
实施例19:根据前述实施例中任一项所述的安全系统,其中处理器核心输出指示包括哪个操作码即将被执行的输出指示。
实施例20:根据前述实施例中任一项所述的安全系统,其中故障注入检测器可操作以保护CPU,其故障注入攻击的单个指令的解码执行周期为T时间单位长,并且其中故障注入检测器具有比T短的回应时间。
实施例21:根据前述任一实施例所述的安全系统,其中故障注入检测器包括分别部署在多个处理器核心位置中的多个故障注入检测器单元,从而检测所有多个处理器核心位置处的故障注入攻击。
实施例22:根据前述实施例中任一项所述的安全系统,其中,故障注入检测器警告在设置于位置L处的至少一个故障注入检测单元检测到故障注入攻击时发出警报。
实施例23:一种根据处理器核心执行流程动态地控制故障注入对策电路的安全方法,该故障注入对策电路用于保护一处理器核心免受故障注入攻击,该安全方法包括:
i)提供该处理器核心,该处理器核心在使用时执行指令并且同时即时产生将要执行的至少一些指令的一输出指示;
ii)提供具有多个可控灵敏度等级的故障注入检测器;以及
iii)使用灵敏度等级控制模组,即时执行以下操作:
接收输出指示,
使用灵敏度等级选择逻辑元件从多个可控灵敏度等级中选择下一个灵敏度等级,灵敏度等级选择逻辑元件至少接收输出指示作为输入,以及
将故障注入检测器设置为下一个灵敏度等级,
从而当根据至少一些指令的该输出指示保护处理器核心免受故障注入攻击时,提供差动敏感(differentially sensitive)的故障注入对策电路,故障注入对策电路在灵敏度等级与至少一些指令的输出指示无关时避免至少一个假警报
实施例24:根据前述任一实施例的安全方法,其中处理器核心包括适配的解码逻辑元件,解码逻辑元件至少一次对从程序存储器获取的单独指令进行解码,从而导出至少一个CPU内部信号,至少一个CPU内部信号随后操作CPU的至少一个单元,从而执行单独指令,解码逻辑元件还适于在至少一个单元回应于从程序存储器得出的单独指令导出的至少一个CPU内部信号而操作之前,提供单独指令的输出指示,以允许故障注入检测器在单独指令被执行之前而不是在之后被设置至下一个灵敏度等级。
实施例25:根据前述实施例中任一实施例的安全方法,其中处理器核心通过向其施加组合逻辑来解码多个操作码,从而生成包括到处理器核心的多个执行单元的指令的信号,并且输出指示包括从操作码解码出的指令所指示的处理器核心输出的信号,由此向灵敏度等级选择逻辑元件提供尚未由该处理器核心执行的指令的预览。
可以理解的是,如果需要,某些实施例可以实现为包括电脑程序的电脑程序驱动的决策灵敏度控制产品,该电脑程序通常比由其保护的处理器核心的执行更即时。因此可以提供一种电脑程序产品,其包括具有嵌入其中的电脑可读程序代码的非暂态有形电脑可读介质,电脑可读程序代码适于被执行以实现安全方法,安全方法根据处理器核心执行流程控制可操作用以保护处理器免受故障注入攻击的故障注入对策电路,该方法包括:
i)提供处理器核心,处理器核心在使用时执行指令并且同时即时产生将要执行的至少一些指令的输出指示;
ii)提供具有多个可控灵敏度等级的故障注入检测器;以及
iii)使用灵敏度等级控制模组,即时执行以下操作,
接收输出指示,
使用灵敏度等级选择逻辑元件从该多个可控灵敏度等级中选择下一个灵敏度等级,灵敏度等级选择逻辑元件至少接收输出指示作为输入,并将故障注入检测器设置为下一个灵敏度等级,
从而当根据至少一些指令的输出指示保护处理器核心免受故障注入攻击时,提供差动敏感的故障注入对策电路,故障注入对策电路在灵敏度等级与至少一些指令的输出指示无关时避免至少一个假警报。替代地或附加地,如果灵敏度等级设置为完全避免假警报,则故障注入对策电路可以检测到至少一个故障注入,其在CPU保护以无关至少一些指令的输出指示的灵敏度等级下不会被检测到。
上面提到的实施例和其他实施例在下一部分中详细描述。
文中或图式中出现的任何商标均为其拥有者的财产,在此仅出现以解释或说明如何实施本发明的实施例的一个例子。
除非另外具体说明,否则从以下讨论中显而易见的是,应该理解,在整个说明书中,利用诸如“处理(processing)”、“计算(computing)”、“估计(estimating)”、“选择(selecting)”、“排名(ranking)”、“分级(grading)”、“计算(calculating)”、“决定(determining)”、“产生(generating)”、“重新评估(reassessing)”、“分类(classifying)”、“产生(generating)”、“制造(producing)”、“立体匹配(stereo-matching)”、“注册(registering)”、“检测(detecting)”、“关联(associating)”、“迭加(superimposing)”、“获得(obtaining)”及其类似术语是指至少一个电脑、或电脑系统、或处理器、或类似电子计算装置的操作和/或过程,其处理和/或变换表示为物理的数据,例如计算系统的暂存器和/或存储器内的电子数量,转换成类似地表示为计算系统的存储器、暂存器或其它这样的信息储存、传输或显示装置内的物理量的其它数据。术语“电脑(computer)”应该被广义地理解为涵盖具有数据处理能力的任何种类的电子装置,包括(作为非限制性的例子)个人电脑、伺服器、嵌入式核心(embedded core)、计算系统、通信装置、处理器(例如数位信号处理器(DSP)、微控制器、现场可编程闸阵列(FPGA)、专用集成电路(ASIC)等),和其他电子计算装置。
本文单独列出的元件不必是不同的组件,或者可以为相同的结构。元件或特征可能存在的陈述旨在包括(a)元件或特征存在的实施例;(b)其中元件或特征不存在的实施例;以及(c)其中元件或特征可选地存在的实施例,例如用户可以配置或选择元件或特征是否存在。
附图说明
在以下附图中示出了本发明的某些实施例:
图1现有技术中CPU操作周期的示意图,操作周期明显地通常地包括一个获取过程,随后进行解码,随后执行。
图2是某些实施例的用于构建系统的方法的简化流程图。
图3是某些实施例的安全系统的简化方块图,其通常特征在于由处理器核心或CPU执行的指令成为用于调整保护该核心免受这些攻击的故障注入攻击检测器的触发器,例如执行条件分支或被认为具有被骇客高风险的代码的其他部分可能即时触发对检测器的调整以使其更敏感。
图4是某些实施例的用于动态灵敏度等级调整系统的即时操作的方法的简化流程图。
图5是本发明中例示性动态灵敏度等级调整系统的图,其示出包括被定义为预设等级的最低灵敏度等级的三级灵敏度和两个均高于预设等级的额外等级实施例。
图6是图5的故障检测器的例示性实施方式。
图7是本发明中指令解码信号、组合风险等级(例如低、中或高)和所选灵敏度级别(例如保守、中等或积极/高度敏感)的例示性三级波形图;可以理解的是,可以可选地采用除三个以外的任何数量的等级。
图8是本发明的多个检测器单元实施例的简化图。
包括在本发明范围内的方法和系统可以以任何合适的顺序,例如如所示的那样,通过例示的方式包括具体示出的实现中示出的一部分(例如任何合适的子集)或全部功能块(functional block)。
这里描述和示出的计算、功能或逻辑组件可以以各种形式实现,例如,作为硬体电路,诸如但不限于定制VLSI电路或闸阵列或可编程硬体装置,诸如但不限于FPGA,或者作为软体储存在至少一个有形或无形电脑可读介质上并可由至少一个处理器执行的程序代码,或其任何适当的组合。特定功能组件可以由软体代码的一个特定序列或通过多个这样的软体代码来形成,其共同地起作用或行为,或如本文参考所讨论的功能组件所描述起作用或表现。例如,组件可以分布在多个代码序列上,例如但不限于对象、过程、功能、例程和程序,并且可以源自通常协同操作的若干电脑档案。
本文中描述的任何逻辑元件功能可以被实现为即时应用,如果适当的话并且其可以采用任何合适的架构选项,诸如但不限于ASIC或DSP或其任何合适的组合。这里提到的任何硬体组件实际上可以包括一个或多个硬体装置,例如晶片,它们可以位于同一位置或彼此远离。
具体实施方式
Mike McDonald和Tony Jacobs所著的“DLX机器的基本操作(Basic Operation ofa DLX Machine)”,可在以下网址获得:https://www.cs.umd.edu/class/fall2001/cmsc411/projects/DLX/proj.html
其中描述了DLX架构中的五个执行阶段:指令获取(Instruction Fetch,IF)、指令解码(Instruction Decode,ID)、执行(Execution,EX)、存储器(Memory,MEM)和回写(Write-Back,WB)。每个阶段都需要与最慢的一个相同多的时间,即使它不需要如此多的时间来完成。这段时间系为一个时脉周期(clock cycle)。因此,每条指令从开始到结束总共需要5个时脉周期才能执行。每个执行阶段都与CPU中的硬体相对应,如Hennessy和Patterson的第3.1图所示。数据路径上的硬体的每个“部分(section)”都可以同时运行,而管线利用这些部分来获得巨大的性能优势。非常具体的操作在每个阶段完成。
1.指令获取(IF):从存储器读取指令并将其写入指令暂存器(IR)。更新新的程序计数器(new program counter,NPC),使其指向下一条指令(PC+4,或存储器中的下一个字元)。
2.指令解码(ID):解码指令(基于操作码)。暂存器(REGS[IR6..10]),及从暂存器文件的REG[IR11..15])的输出被放置到临时暂存器“A”和“B”。符号将可能是立即值(immediate value)的指令的部分扩展,并将该值放入临时暂存器“Imm”中。
3.执行(EX):这里发生什么取决于要执行的指令类型。ALU将在这个周期中运行,执行所需的操作。
图1是说明常规CPU周期的习知技术图,其明显地通常地包括获取过程,随后是解码,随后执行。
现在详细描述用于故障注入对策灵敏度调整的系统。
“IF”语句或条件分支是CPU指令的例子,这些指令可能容易受到故障注入的攻击,又称为“故障注入攻击”,例如可能作为故障注入的目标,例如程序流中可能被故意骇客攻击的点。例如,条件分支可以被配置为基于先前操作跳转到向用户提供一些秘密信息的代码段,例如,条件是用户在先前操作中成功提供了用户认证,或跳转到其他地方,或根本不跳转,其中任何一个都不会向用户提供所请求的信息(如果用户未能在先前操作中成功提供用户认证)。在后一种情况下,即使在之前的操作中用户未提供必要的用户认证,骇客可能会在特定时间尝试注入“故障”,试图欺骗条件分支指令而跳转到提供秘密信息的代码。
根据某些实施例,提供了一种安全系统,其中处理器核心在(例如,即时使用时)指示哪个操作码/指令即将被执行。例如,CPU在从程序存储器中获取指令时,通常首先对指令进行解码。指令的解码通常地包括通常以二进制形式(指令操作码通常地包括作为相应程序的二进制码所顺序储存的数字,其可以与指令操作数交错(interleaved))的逻辑函数作为操作码的输入,并且应用逻辑函数(又称“解码逻辑元件”),其产生适合于操作CPU的各种单元以执行相应功能的CPU内部信号,例如用于操作CPU的ALU以执行算术运算(arithmeticoperation)等等。根据某些实施例,解码逻辑元件可以适于将经解码的信号输出到CPU外部的子系统(例如,灵敏度等级控制模组),以使该子系统尽管在CPU外部仍然可以采取行动(例如,选择灵敏度等级),以回应预先知识(advance knowledge)表征CPU在某一特定时间处于即将执行的状态。
可以理解的是,传统上,内置的CPU解码逻辑元件被专门设计用于根据正在处理的指令来控制CPU的操作单元,例如ALU,并且CPU不知道哪个指令即将在给定的时间被执行。与此相反,根据某些实施例中,解码逻辑输出通常地指示哪个指令是现在即将被执行。此外,在CPU指令内可能有重迭的控制状态。例如,一个系列的两个(或N个)不同指令可能具有一些相同的内部控制,因为两个不同的指令操作相同的CPU模组。
令解码逻辑元件与外部子系统通信的一个特别的优点可能是由于解码先于相关的CPU单元(例如,由ALU)对解码指令的实际执行,外部子系统给予CPU尚未实际执行的指令的预览。
可以理解,一部分的IC实现低功耗模式。例如,一旦检测到核心正在执行某些特定的预定义指令(例如,在某些CPU中,WAIT指令或某种其他类型的HALT指令或等待中断(Wait-For-Interrupt))时,IC可进入低功耗模式,所有这些通常可能会使CPU的核心处于核心通常维持的保留状态,等待事件触发核心退出该保留状态。这将涉及到即将执行哪个操作码/指令的即时指示。
例如共同拥有的美国专利号9703945,存在基于跟踪CPU的执行流程而操作的认证机制。执行流程可搁置要执行的指令的特定组以对代码进行认证。具体而言,美国专利号9703945描述了基于跟踪CPU的执行流程操作的认证机制。美国专利号9703945描述了特定的操作或指令,例如访问存储器映射的I/O地址的特定空间,其通过系统设计者的决定,认为其需要在代码认证方面具有更高等级的安全性。因此,一旦检测到这样的指令,例如对该I/O地址空间的写入操作,则执行流程暂时停止,直到某个代码认证序列完成。完成此操作后,假设相应的代码已通过认证,则会恢复流程并执行操作。因此,在此方法中,某些指令的触发会改变程序的流程以执行一些预定义的操作,即对代码进行认证。
此外,美国专利号9703945描述了一种处理核心,其被耦合以从输入桥(inputbridge)接收程序指令并执行这些程序指令,其中程序指令包括能够通过输出桥输出信号的程序指令、以及其不将数据发送到一个或多个系统输出的程序指令,并且其中处理核心可以执行程序指令,在输出桥处于第一状态和处于第二状态时,处理核心皆可以执行不向一个或多个系统输出发送数据的程序指令。
术语“灵敏度等级”旨在包括由故障注入检测器对故障注入的任何标准或触发特性所施加的、或由故障注入检测器对故障注入反应所相关的任何截止点(cut-off point)或阈值,并由故障注入检测器的逻辑元件来区分故障和非故障。通常,故障注入检测器努力检测预期和实际现实之间的差异,并且每次检测到这种差异时,都会提供“故障”警报。
由于不同类型的故障注入检测器使用不同的机制来实现,因此可以采用各种灵敏度控制机制来实现灵敏度等级,例如但不限于以下:
a)故障注入检测器可以识别突然的改变,即电源电压中的故障或晶片中的接地位准(ground level)。在这种情况下,当实际的真实情况(实际检测到的电压)与预期电压相差50mV、100mV或300mV时,可以将检测器设置为识别异常状态。
b)可以在同一逻辑网络上的不同位置之间进行电压位准的比较,以检测本地差异(local differences),因为预期的现实是所有位置将处于相同状态。
c)光检测器可以用于尝试使用光能识别故障注入,基于与光强度相对应的电压位准产生故障注入检测。
可以理解的是,可以在任何给定时间比较应该处于相同逻辑状态的数位信号的电压位准,无论其是1还是0。在这样的比较中,触发电压差可以被定义为X、Y或Z。
而且,灵敏度不需要基于电压位准。具有不基于电压的灵敏度等级的探测器可以例如包括:
1.设计为用于直接检测光线(例如雷射)的检测器。如果检测器将光能转换成与所吸收的光的能量成比例的电压位准,则可以分别检测对应于光能位准X、Y和Z的电压位准A、B或C.
2.设计用于直接检测除光以外的电磁能量的检测器。如果检测器将电磁能转换为与所吸收的电磁能成比例的电压位准,则可以分别检测对应于电磁能位准X、Y和Z的电压位准A、B或C.
在一个例子中,检测器具有不基于电压的非即时操作的灵敏度等级,其系为频率偏差检测器,其对期望的频率中的频率偏差的幅度的具有多个灵敏度等级(应该理解,以这种目标的故障注入可以包括通常地具有预定频率(也就是“期望频率”)的晶片时脉,例如,如果给定晶片的时脉具有250MHz的期望频率,并且与该值有瞬间偏差,例如检测到比预期更接近的两个时脉脉冲,这可能表示有故障正尝试被注入。]
一些频率突变检测器可以被设计为具有通过配置选择的多个灵敏度等级,并且根据系统架构决策和预先配置(与本发明的实施例中动态配置相反)而被预定义。
图2描述了用于构建安全系统的方法,该安全系统可以从处理器核心或CPU接收操作码指示,从而即时相应地做出灵敏度等级判定,可选地,其他因素也可以影响该判定,并且随后提供灵敏度等级控制到对策电路,以上全部根据本发明的实施例。
如上所述,可能存在一些情况或条件,例如但不限于执行条件分支时,安全开发者可能认为这具有较高风险会引起硬体故障注入。
通常情况下,注入故障最终会转化为IC的电气事件(electricalevent),并且该事件会干扰IC的硬体一致性和操作一致性。例如,在MCU/CPU执行代码的情况下,故障注入努力干扰IC硬体的一致和操作一致性,通常会试图干扰代码的执行流程,攻击IC的硬体来干扰IC软体和/或韧体的执行。
在这种情况下,安全开发人员可能希望在安全等级和假警报之间动态应用不同的权衡。
在开始配置逻辑元件时,安全开发人员可以遵循任何适当的步骤。例如,设计者可以先模拟和/或跨全方位的预期正常现实生活场景操作该装置,并允许操作条件,以确保在允许的运行条件下的机构从未(或仅在可接受范围的少数)触发误警报。然后,设计者可以操作该装置,假定该装置意图承受故障注入,并且决定故障注入检测等级,该故障注入检测等级例如在可接受的可靠性等级下正确地触发全部或几乎所有故障注入。设计者可以将此“适当等级(proper level)”定义为检测故障注入的预设检测等级。设计者随后可以调整即时启用较高灵敏度等级的逻辑元件(对应于稍微更积极的检测),以回应于设计者认为与更高故障攻击风险关联的CPU将要执行的指令的输出指示。
通常情况下,开发人员调整检测等级,使其在操作条件确实可能导致硬体不正常运行时触发(检测到攻击)。开发人员可以通过多种装置变型来表征这些等级,以确保在正常操作期间很少或根本没有检测到故障注入。
通常地,希望提供能够以设计者定义的大于一个等级上执行检测的电路,例如至少两个检测等级,其中两个等级中的一个但不是另一个等级,以不必要地干扰装置正常操作的风险等级拦截轻度故障注入。这些等级可能包括:
a)第一级,其检测导致异常情况(例如,产生装置故障风险的状况)的严重故障注入;以及
b)第二级,不仅能够检测到严重的故障注入,还能够检测到非侵入性(又称轻度(mild))故障注入,这会导致意外的情况,而这种情况可以在装置不发生故障的情况下持续。
继续参照图2,通常提供一种处理器,其产生指示在每个给定时刻即将执行哪个指令/操作码或系列/操作码组的操作的信号。例如,从处理器的解码单元识别主题指令/命令开始直到执行单元指示执行指令/命令完成的时间为止,信号可以指示处理器将要执行给定指令。在此实施例中,指示包含给定指令的“解码”和“执行”两个阶段,然而不限于此。可选地,这些信号可以指示给定指令即将在给定指令的“执行”阶段期间执行,而不是在解码阶段期间执行。另一个可能的实施例是保留指示从主体指令I(并包括)的“解码”阶段开始,直到(但不包括)指令I+1的“解码”阶段(在处理器执行指令I之后的指令)。
可以理解的是,控制上述周期的CPU内部信号的某些控制信号是CPU内部设计的一部分,并且对于所有或许多CPU而言是共同的。例如,
a)信号告诉获取单元从存储器获取指令,并将指令储存在本地的某处,以及
b)由解码单元产生的信号,该信号命令或告诉其他CPU单元操作和执行该指令。
而且,如图2中所示,系统设计者通常将至少一个操作码或一组操作码与相关的安全风险相关联。通常情况下,条件分支操作码与高于风险R(R可能是标量(scalar))相关的部分或全部操作码相关,而不是与风险低于R的条件分支操作码。这是因为条件分支指令控制该程序流程,且是故障注入可以将程序从正确和有序流程的转移的点。
可选地或附加地,根据某些实施例,可以使用详细的风险分析来获得与各种不同操作码相关联的相对风险的理解。
为了进行风险分析,设计者可以研究处理器的指令集。以下链接提供了一个指令集(ARM Cortex-M0)的例子做为说明:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0432c/CHDCICDF.html。
至少在某种程度上,这样的分析可以在处理器之间通用化,因为指令集倾向于在处理器之间,至少在类似类型的处理器之间(例如在RISC处理器之间或在CISC处理器之间)相似。例如,许多处理器可能具有全部或大部分的以下指令类型或指令组:
存储器和暂存器处理:通常包括加载(load)、储存(store)和移动(move)指令。
算术和逻辑操作:通常包括加、减、有时乘、除或算术移位(arithmetic shifts),以及逻辑操作,如Or、And、Xor。
堆栈管理(Stack management):通常为推(push)/弹出(pop)。
分支:有条件的和无条件的。
控制:例如但不限于状态管理、中断管理。
尽管如此,最终可能会进行一些处理器风险分析,因为每个特定处理器的指令集倾向于与其他处理器至少有所不同。
设计者还可以审查应用程序及其实施方式(包括应用程序代码分析),并据此量化特定指令或类型指令的风险。例如:
a)堆栈管理指令相对于除堆栈管理指令以外的至少一个指令(和/或相对于与上述指令组3-5中的至少一个指令组中的至少一个指令相关联的风险等级,和/或相对于视为低风险的操作码)具有较高风险,例如,因为堆栈在程序流程中也可能有作用,特别是涉及子程序调用时;堆栈通常会保留返回地址,因此通过故障注入操作它们也可能会将程序从有序的执行流程转移。
b)在算术/逻辑组(上述第2组)中,基于代码的分析,系统设计者可能发现特定运算指令是在影响程序流和/或"做出决策"的代码的“关键的”地点“中使用。这些特定指令可能与高风险相关联,例如高于代码中算术指令的风险,该算术指令不在该关键位置或高于上述指令群3-5中的至少其一的至少一个指令相关联的风险等级和/或高于视为低风险的操作代码。
此外,图2所绘示的故障注入检测器,其具有L=至少两个灵敏度等级:一个容忍度较高(具有较低的灵敏度等级),而另一个较敏感(具有较高的灵敏度等级)。
同时,继续参考图2,可以以任何合适的方式实现动态灵敏度等级调整(例如即时选择L个等级之一)。例如,可以提供解码逻辑元件,其接收来自处理器的那些信号,并且根据操作码的安全风险等级,基于容忍或较敏感的检测等级产生相应的信号以在任何时间向故障注入检测器指示其是否应该触发。图5显示了一个实现的例子,显示了三级灵敏度,包括定义为预设等级的最低灵敏度等级和两个高于预设等级的额外等级。
根据某些实施例,对检测器的指示在解码指令之后马上或立即熄灭(go off),使得检测器在核心开始执行该指令之前获得信号。检测电路通常不这样做,他们自己“拒绝”或吸收或以其它方式处理故障注入。然而,电路确实产生了一个标志,指示出现故障注入,从而允许其他模组以任何合适的方式作出回应,例如但不限于将装置以及程序(例如,CPU或处理器)恢复到流程中的已知状态的已知点。这种恢复可能比较缓慢地发生,例如仅在发生故障注入之后,然而,这是可接受的,因为故障注入的损害不是立即发生,而是仅在达到代码中的某个地方时才发生,而且不应该抵达,并且如果没有故障注入其确实不会达成。在到达代码中的这个位置之前就会恢复。
图2的方法通常包括以下操作中的一些或全部的命令,例如适当地如下的顺序:
操作1.提供易受故障注入影响的处理器核心/CPU,并产生指示在任意给定时刻执行哪个指令/操作码,或系列/操作码组的操作码的信号。
操作2.风险分析:系统设计者将安全风险(例如故障注入风险)与操作码或操作码组列表相关联,并相应地生成灵敏度等级决策/选择逻辑。例如:条件分支操作码:高风险;所有其他操作码:低风险。
操作3.为故障注入检测器提供至少两个灵敏度等级。
操作4.实现对策电路的灵敏度等级调整,例如提供一个对策电路,其灵敏度可以即时调整,例如通过动态选择至少两个等级中的一个。通常,故障注入检测器支持即时操作的灵敏度级别的动态即时调整,并且具有比由处理器或CPU通过故障注入检测器保护的单个指令的解码执行周期短的回应时间。
回应时间通常如上所述的较短,因为通常期望控制信号通过灵敏度控制单元传播到检测器的时段能留下足够的时间让检测器反应。例如:如果指令周期是40ns长,那么从操作码指示到检测器被设置为所需的灵敏度等级所经过的时间,例如最大到10ns,剩下30ns的时间空窗期,其中检测器可能会有反应。
参考图3,可以理解,条件执行和条件分支,即软体判定点被认为是安全代码中的弱点,即易于发生故障注入攻击的点。图3是根据某些实施例的安全系统的简化方块图,其可以例如根据图2的方法来提供。图3的安全系统通常包括:
具有操作码或其他代码指示的处理器核心或CPU,指示特定指令或指令类别(例如但不限于条件分支、特定比较等)的执行;以及
对策电路,例如电子对策电路,包括一个设计有多个可控灵敏度等级的故障注入检测器。该电路可以包括故障注入改善电路以及具有可调节灵敏度的故障注入检测器。如果故障检测器检测到故障注入,例如在每次故障注入检测器检测到故障的时候造成触发,使故障注入改善电路被致动。
关于这种电路的某些例子的设计问题例如在以下白皮书中描述,两者均可在网上获得:
Thierno Barry、Damien Courouss_e、Bruno Robisson所著:针对指令跳过故障攻击的对策汇编(Compilation of a Countermeasure Against Instruction-Skip FaultAttacks),以及,低成本软体对抗故障攻击的对策:实施和性能折衷(Low-Cost SoftwareCountermeasures Against Fault Attacks:Implementation and Performances TradeOffs)。
应该理解,术语“对策”通常用于指用于改善(例如,防止或纠正)故障注入攻击的不良影响的检测器和/或模组。图3的背景下,对策电路检测到这种攻击并触发任何合适的模组来防止或纠正这种攻击的不良影响。
根据一个实施例,已经识别条件分支的执行的安全系统随即将相应电路的检测等级调整为更敏感。
可以理解的是,与没有被考虑的指令相比,各种指令或类型可以被考虑引入更高的错误注入风险。为了给出一些非限制性例示性,任何或所有以下操作码可被认为引入故障注入的较高风险(其可导致系统设计决策将任何或所有以下操作码具有高安全性风险(例如对故障注入具有高风险),即其风险等级高于与以下操作码相关的风险等级,和/或提供在遇到这样的指令时增加故障注入检测器的灵敏度等级的逻辑元件):
a)指示条件分支的操作码,例如,相等则分支(branch-if-equal)、不相等则分支(branch-if-not-equal)为RISC CPU分支指令,其基于在条件分支之前的两个操作数之间的比较并产生随后由条件分支使用的“结果”来决定是分支还是继续。
b)操作码执行比较或其他“测试”,这导致设置各种标志,然后由“决定”是否采用给定的条件分支的逻辑元件使用。
例如,可以操作比较指令来比较两个操作数,并且在两者相等的情况下(或者在两者不相等的情况下)设置标志。减法运算可以在结果为负或非零时设置标志,以比较操作数,例如数字。
c)操作码将特定类型的信息推入处理器堆栈,例如,稍后用于条件操作的关键或敏感信息或数据或CPU子系统标志的返回地址。
d)操作码是表征为用作执行回圈的停止条件。例如,回圈描述如下:
https://www.tutorialspoint.com/assembly_programming/assembly_loops.htm
所描述的“回圈”指令假定回圈计数器保存在预定义的CPU暂存器中。当CPU遇到“回圈”指令时,CPU可以递减回圈计数器,比较回圈计数器为零,并且如果计数器大于或等于零,则返回到回圈的开始,从而实现回圈停止条件。
在某些情况下,它可能不会预先知道使用了哪些指令,例如因为使用的指令可能取决于CPU特定的编译器的选择。例如,一个CPU可能有一个内置回圈指令,它处理一个指定的暂存器或变量,自动增加和减少该暂存器或变量,然后如果回圈计数器如此规定则跳回回圈的开始,或者如果回圈计数器已经消逝,则让程序继续顺序执行。
可以理解,相对于未被考虑的指令,各种指令或类别可以被考虑引入更低的故障注入风险。为了给出一些非限制性例示性,可以认为以下的任何或全部操作码可以被认为具有对于引入故障注入的特别低的风险(其可导致系统设计决策将任何或所有以下操作码具有低安全性风险(例如对故障注入具有低风险),即其风险等级低于与以下操作码相关的风险等级,和/或提供在遇到这样的指令时降低故障注入检测器的灵敏度等级的逻辑元件):
a)加载操作码,其刚刚从存储器读取数据,或
b)储存操作码,其刚刚将数据储存在存储器中
虽然故障注入可能导致上述情况发生故障,但骇客可能认为基于干扰特定储存/加载指令来定义有效的攻击实际上是不可能的。
图4是根据某些实施例的操作的例示性方法;例如根据图2的方法提供的安全系统和/或图3的安全系统。
图4的方法通常地结合核心执行指令而操作,其中指示被提供并被解码,并被用于即时选择故障注入检测器的灵敏度等级。通常,给定的灵敏度等级与多个指令组/指令集中的每一个相关联。通常,根据设计者的风险评估,系统的设计者将更高的灵敏度等级与被视为具有较高风险等级的指令相关联,例如,从骇客寻找适合故障注入攻击的目标位置的角度来看,其被认为是有吸引力的目标,相反的,较低的灵敏度等级与指令被认为遭受较低的风险等级。通常地,使用图4的方法的安全系统被构成为使得指令被即时地解码和回应。指令设置为与刚刚解码并即将执行的指令,或相对应的灵敏度等级相关联。通常,接着在解码指令和由其执行指令之间的时间空窗期中设置灵敏度等级。
图4的方法通常包括以下操作中的一些或全部,例如如图所示适当地依序执行:
310.CPU将操作码指示I提供给灵敏度等级控制模组使用的灵敏等级判定逻辑元件(又称灵敏度等级选择逻辑元件)。
320.灵敏度等级决定逻辑元件产生一个决定:对策电路的灵敏度等级应该是L_I。
330.灵敏度等级控制模组信号(或命令)将对策电路的灵敏度等级调整为L_I。
340.回应地,灵敏度等级控制模组向对策电路发出灵敏度等级控制信号。
350.对策电路将其灵敏度等级调整为L_I。例如,可以使用合适的选择器元件来调整等级,该选择器元件的控制包括或者从灵敏度等级控制命令导出这些指示将要执行哪个操作码。
图5至图6是根据某些实施例的动态灵敏度等级调整系统的三级例示性。预先分析装置的设计,包括风险分类,然后,在操作过程中,检测器基于预先风险分类即时回应。
具体地,图5是示出三级灵敏度的例示性动态灵敏度等级调整系统的图,其包括被定义为预设等级的最低灵敏度等级和两个高于预设等级的额外等级。图6是图5的故障检测器的例示性实现。
图7是示出指令解码信号组合风险等级(例如低、中或高)和所选灵敏度等级(例如保守、中等或积极/高度敏感)的例示性三级波形图。可以理解的是,除了三个以外的任何数量的等级都可以被采用,并且不需要如所示的预设等级。
如图所示,在CPU的例示性执行管线中,如果管线正在处理一个“低风险”指令和一个“高风险”指令,则高风险指令一旦被解码,就优先设置检测器的灵敏度等级。例如,在提取到“中等风险”进入的时候,只要指令解码后(立即)灵敏度就会增加。类似地,当提取到“高风险”时,只要指令被解码,灵敏度立即进一步增加。更一般地,当图7的安全系统识别出比当前设置风险高的指令时,新解码(较高)风险将会优先直到CPU完成处理高风险指令,接着返回到先前的指令处理。
可以理解,例如在图7中的“提取”包括“解码”,为了简洁起见,因此图中的“提取”可以被解释为“提取和解码”。
现在参考图8。根据某些实施例,故障注入检测器包括分别部署在多个处理器核心位置中的多个故障注入检测器单元,例如如图8的例子中所示,从而在考虑所有多个位置时,检测故障注入攻击的某些常规故障注入检测器的局部依赖特性。如果部署在位置L的检测器单元中的至少一个在位置L处检测到故障注入攻击,则故障注入检测器可以发出警告(和/或可以触发施加到位置L的故障注入改善操作)。因此,OR函数(或任何其他合适的逻辑元件功能)可以用于组合由多个单元中的各个单元进行的故障注入检测决定。可以提供任何合适数量的单元,它们之间具有任何合适的距离,通常根据以下因素中的至少一个来决定:每个单元占据的IC晶粒面积,IC电路的物理特性被保护,以及预测故障注入攻击的空间特征。
图8是根据本发明的某些实施例的分布在各个处理器核心位置并分别占据多个IC晶粒区域的多个故障注入检测器单元的简化图。
用于本发明的某些实施例的例子有许多。
例如,共同拥有的美国专利号9,523,736描述了检测给定电网的不同分支之间的状态差异。在IC电性逻辑网络通常预计为通过所有分支时其逻辑状态将会为1或0的相同状态。因此,当在同一逻辑(电力)网络上的两个物理点之间检测到电压位准的差异时,可能指示故障注入正在尝试导致局部改变。设计者可能会认为,在两点之间的地点与其他地方之间的差距是50mV是正常的,相对的300mV的差异则不是,这对于IC功能的风险是足够异常的,而200mV的差异虽然是异常的,但不被视为有风险。根据某些实施例,取决于例如即时的变化的灵敏度等级,可以将设置的控制信号发送到检测器以将检测器设置为200mV灵敏度等级或者300mV灵敏度水平,而不是仅设计目标为300mV的检测器,检测器可以凭借如本文所述的控制来检测200mV的差异或300mV的差异。因此,系统即时决定是否考虑50mV或200mV或300mV作为差异,其中差异的正检测表明已经检测到故障注入。
可以理解的是,可能存在除了故障注入风险以外或更普遍的使用例,其可以即时调整灵敏度等级。例如,骇客被认为研究并表征了他们所针对的给定装置的灵敏度,以便进行故障注入。这可能会先于骇客在特定时间和/或特定装置位置对注入故障的集中尝试。如本文所述,例如通过将特定指令与特定风险等级相关联,随机或根据即时检测到的风险即时改变灵敏度等级可能会混淆或干扰此类研究。
可选地或附加地,如果即时地在某个操作时段期间装置检测到大量(超过阈值)数量的故障注入尝试,例如在Y时间段内多于X个检测,则可以提高灵敏度等级。例如,在系统运行时间的100%中,可能存在安全风险较低的时间段,例如但不限于从经验上看的不太受骇客攻击欢迎的时间段,并且可能存在安全性更高的时间段风险,例如但不限于从经验上看的受骇客欢迎的时间段。
可以记录检测到的故障注入的时间标记事件,此后适当的代码可以随时间跟踪故障注入并且识别具有特别高或特别低的故障注入发生率的离群时间段。
可以理解,这里的故障检测器可以被集成到更大的系统中,从而改善它们的操作。
例如,可以理解的是,这里所示出和描述的实施例不需要作为使条件分支操作更难以破解的唯一防线。相反,在代码等级,这里的故障检测器可以有效地与传统的反骇客技术相结合,用于在代码等级对抗故障注入漏洞,例如:
a)通过防止或阻止或减少故障注入的发生或出现;和/或
b)一旦故障注入发生时,将其避免或改善。
其中的任一个都可以由本文所示和所述的故障注入检测技术触发。
本文中示出和描述的用于检测故障注入的任何方法都可以被采用,并且可以增加或替代在传统系统中使用的传统故障注入检测技术,其中该传统故障注入检测技术包括用于一旦检测到故障注入时避免或改善故障注入的影响的模组。例如,当由两个或多个故障注入检测器触发时,该模组可以被启动。
通常,b类要求检测到故障注入。因此,通过使用在此示出和描述的改进的,动态控制的故障注入检测方法,可以改进类别b中的任何反骇客测量。
一旦检测到故障注入(例如如本文所示和所述),则可以由此触发任何合适的故障注入影响改善操作,并且可以回应地执行以改善,例如纠正至少一个影响(例如,故障注入的不良影响),例如但不限于适用于以下步骤的模组:
a)将装置置于不可逆状态,防止进一步选择的选项。
b)使处理器跳转到指定的例程,例如执行整体完整性检查,然后通常重置或重新启动CPU。
c)将处理器置于无限回圈直到被看门狗定时器(watchdog timer)复位。
d)停止装置直到经过一段时间。
即e)提升灵敏度等级一定时间之后,在没有进一步的检测的情况下将其恢复为预设的灵敏度等级。
f)禁用特定的预先指定的“风险”功能一段时间。风险功能可能是认证的批准、敏感数据的泄露、加密密钥的泄露。
g)暂停系统,直到电源周期或系统或装置硬体重置为止;看门狗定时器复位或任何其他停止标准或释放卡住的CPU的机制。
可以理解的是,上述故障注入改善操作仅仅是可以为设计用于改善故障注入攻击的不良影响的模组提供的功能的例子。改进操作或功能可包括防止或阻止或减少故障注入的发生或出现,和/或一旦发生故障注入时避免或改善故障注入的影响。可以理解的是,改进的操作可以用硬体和/或软体来实现,并且可以利用处理器核心的程序/数据存储器。
可以理解,可以执行多于一个这种故障注入改善操作。例如,上面的操作e可能会与操作a至d或f至g中的一个相结合。
实现条件分支序列:例如,许多这样的技术中,为了使故障注入更困难,因此,例如按照上面的类别a,重复条件分支n>1次,例如两次(n=2),在这种情况下,第一个分支跳转到第二个分支,基于相同的条件,该分支是跳转到最终目的地的分支,n=2的两个分支或者更通常地所有n个分支。这解决了漏洞问题,因为在这里,对于分支被骇客入侵,单个故障将不足够,相对的,需要在两个或更多个通常的n个点中的每个点上注入故障,这增加了骇客攻击主题的执行流程复杂度的等级。可以理解的是,如果系统设计者期望的话,本文中示出和描述的实施例可以与其他反骇客措施(例如,用于改善例如纠正例如故障注入的不良影响的至少一个影响的任何适当措施)在一起使用,使有条件的分支机构操作更难以破解。上述实现条件分支序列的技术由此通过使故障注入变得更加困难因此,例如可以与用于改善故障注入的影响或不良影响的任何合适的技术组合,例如可以包括使用本文所示和所述的任何实施例来检测故障注入,并且接着,如果当检测到故障注入时,实施任何适当的故障注入冲击改善措施。
在共同拥有的美国专利号9,523,736中描述了一种用于更好地检测故障注入(并且因此更好地改善其效果的已知技术,例如通过停止系统直到施加电源周期),其描述了用于检测故障注入的装置,其包括跨越集成电路(IC)的高扇出(high-fanout)网络和电路。高扇出网络可以在IC的功能操作期间连续不活动,并且电路可以被配置为感测高扇出网络中的多个采样点处的信号等级,并且通过基于感测到的信号等级,检测出高扇出网络中的信号异常。电路可以被配置为检测高扇出网络中的多个采样点处的信号等级,以基于感测到的信号等级在IC的功能操作期间区分高扇出网络中的合法信号变化和信号异常,并通过检测信号异常来识别故障注入尝试。该电路可以被配置为回应于识别故障注入尝试而修改高扇出网络中的一个或多个信号等级。由于断言ALERT信号,控制单元或感应器48可修改网络根部40或高扇出网络的另一分支上的信号等级(例如,强制信号为有效)。
另一个例子是检测硬体频率突变,例如由外部电磁能源引起的集成电路中电源/接地的频率突变。通过电源频率突变进行故障注入是一种已知的对IC元件进行入侵的方法。电磁(EM)故障已连续多年被认为是实现对IC的物理攻击的有效故障注入技术。检测硬体频率突变的电路,其指示故障注入漏洞以及其困扰于安全等级和误警报(又称假阳性)之间的权衡,例如,那些可通过互联网在以下网址找到:
http://ieeexplore.ieee.org/document/5376828;
https://www.blackhat.com/docs/eu-15/materials/eu-15-Giller-Implementing-Electrical-Glitc hing-Attacks.pdf;
Zussa,L等所著“针对电磁故障注入的故障检测器的效率(Efficiency of aglitch detector against electromagnetic fault injection)”http://ieeexplore.ieee.org/document/6800417/
关于故障注入攻击检测器的最新技术知识在2016年12月16日发布的“廉价和快乐:用于检测雷射故障注入攻击的低成本数位感应器(A Low-Cost Digital Sensor forDetecting laser fault injection attacks)”中进行了描述,可通过网际网络在以下网址找到:
http://www-users.math.umn.edu/~math-sa-sara0050/space16/slides/space2016121602-37.p df。所提出的解决方案是可调整的(“该感应器具有在后端阶段具有可调灵敏度的双向检测能力”)。如其他地方所指出的,本文件的公开内容以及实际上在此引用的所有文件通过引用结合于此。
可以理解的是,通过使用本文的实施例来增加操作码回应动态灵敏度等级调整,可以改进上述检测器。上述“廉价和快乐”的公开内容中的CPU设计可以调整,以提供指示将要在任何时间执行的指令的输出信号。例如,可以将即时选择的多个调谐(tuning)嵌入到设计中,或者可以添加多个电路,每个调谐之间具有差异,其中即时选择多个电路中的一个电路的一个输出,这取决于此处显示和描述的判定逻辑元件指示的灵敏度等级。
通常,本领域中已知的任何故障注入攻击对策例如在下文中进行描述:
Thierno Barry、Damien Courouss_e、Bruno Robisson撰写的“针对指令跳过故障攻击的对策汇编”,可通过网际网络
https://hal-cea.archives-ouvertes.fr/cea-01296572/document找到;以及
低成本软体对抗故障攻击的对策:实施和性能折衷,可通过网际网络获得:http://euler.ecs.umass.edu/research/bpbk-WESS-2010.pdf
可以与本发明的实施例共存为互补检测/保护层。它们共同提高了CPU或类似装置对于例如故障注入攻击等攻击的保护程度。
可以理解的是,类比电路通常设计有调谐选项,例如具有多个检测等级/阈值,因为可能难以预先预测哪个等级/阈值在真实电气系统的环境中最有效。一旦进入硅片中,通常会执行测试以决定哪种配置最佳地工作,然后根据某些实施例将电路配置为一个特定“最适”或最佳可行设置,而不是配置为以单个测试选择设置。相对的,保留多个设置中的全部或多于一个,并且添加控制电路以即时选择要使用的多个设置中的哪一个,如本文所示和所述。然后可以简单地进行测试来重新确认实际硅片中电路的性能。
在此示出和描述的实施例的特定优点是即使在单个操作码的粒度(granularity)下也能够在故障注入检测的安全等级和假阳性等级之间进行高度可调节的权衡。这允许在极小的范围内克服折衷,通过将必要但令人遗憾的对假阳性(或低安全等级)的高容忍度仅限于那些需要如此高容忍度的操作代码,并且期望地降低误报容差(或对于不需要如此高的容差的所有操作码,都是低安全等级的)。
可以理解的是,这里的特定实施例并非旨在进行限制。本发明旨在包括例如结合CPU或处理器进行操作的任何实施例,所述CPU或处理器在内部具有作为将要执行的指令的解码结果的解码结果的信号。根据这些实施例,这些信号被发送出CPU,由此允许CPU外部的至少一个操作单元基于这些信号的状态来动作,从而利用在一个背景中可用的信号,并且为CPU的内部目的而设计用于另一个,通常是在通常的CPU外部位置或背景中的CPU外部目的。例如,回应于将要执行哪个操作码/指令的即时指示,安全系统中的灵敏度等级控制模组可以即时地(例如立刻)调整灵敏度等级(又称安全等级)的对策电路中的故障注入检测器功能,以对应故障注入攻击。
如果用于实现本文某些实施例的韧体可以保存在非挥发性存储器中,例如快闪存储器或ROM。可以使用任何合适的技术来防止韧体的位置限制对快闪存储器管理的干扰。
或者,本文中描述的某些实施例可部分地或排他地(即,没有韧体地)以硬体实现,在这种情况下,这里描述的变量、参数、顺序操作和计算中的一些或全部可以在硬体中实现。
应该理解,为了清楚起见,诸如“强制(mandatory)”、“需要(required)”、“需要(need)”和“必须(must)”的术语是指在此处描述的特定实施方式或应用的背景下做出的实施选择,并且不旨在限制,在另一种实现中,相同的元件可能被定义为并非强制性的,并且不是必需的,或者甚至可能被完全移除。
本发明的特征(包括在单独实施例的上下文中描述的操作)也可以在单个实施例中组合提供。例如,系统实施例旨在包括相应的过程实施例,反之亦然。而且,每个系统实施例旨在包括系统、电脑可读介质、装置等的全部功能的以服务器为中心的“观点(view)”或以客户为中心的“观点”或来自系统的任何其他节点的“观点”仅包括在该服务器或客户端或节点上执行的那些功能。本发明的技术特征还可以与本领域中已知的特征组合,并且特别地,但不限于背景技术部分或其中提及的出版物中所述的特征。相反地,为了简洁起见,在单个实施例的上下文中或以特定顺序描述的本发明的特征(包括操作)可以单独地或以任何合适的子组合方式提供,包括具有本领域已知的特征(特别但限于所描述的那些在背景技术或在其中提及的出版物中)或以不同的顺序。“例如(e.g.)”用于表示不旨在限制的例子。每个方法可以包括所示出或描述的操作中的一些或全部,适当地例如本文所绘示或所述的内容。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (25)

1.一种处理故障注入攻击的安全系统,其特征在于,该故障注入对策电路用于保护该处理器核心免受故障注入攻击,该安全系统包括:
一处理器核心,在执行指令的同时,该处理器核心即时地产生将要执行的至少一些指令的多个输出指示;
一故障注入检测器,具有多个可选灵敏度等级;以及
一灵敏度等级控制模组,其即时执行以下操作,
接收该多个输出指示,
使用接收该多个输出指示作为输入的一灵敏度等级选择逻辑元件,从该多个可选灵敏度等级中选择下一个灵敏度等级;以及
将该故障注入检测器设置为该下一个灵敏度等级,
从而当根据该至少一些指令的该多个输出指示保护该处理器核心免受故障注入攻击时提供不同敏感度的故障注入对策电路,如果一处理器核心保护被提供在与该至少一些指令的该输出指示无关的灵敏度等级时避免至少一个假警报。
2.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到与一风险等级R相关联的一单独指令的输出指示时,该灵敏度等级控制模组回应性地选择下一个灵敏度等级,其比针对与低于该风险等级R的风险等级相关联的至少一个指令选择的灵敏度等级更高。
3.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到决定来自一中断处理程序的一处理器核心返回的一单独指令的输出指示时,该灵敏度等级控制模组回应性地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更高。
4.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到决定例程返回地址的一单独指令的输出指示时,该灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更高。
5.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到决定回圈的停止条件的一单独指令的输出指示时,灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更高。
6.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到决定一处理器核心执行模式改变的一单独指令的输出指示时,该灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更高。
7.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到从一存储器读取数据的一单独指令的输出指示时,该灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更低。
8.如权利要求1所述的安全系统,其特征在于,该处理器核心包括一存储器,并且其中当该灵敏度等级控制模组接收到将数据从该存储器读取到一本地储存装置中的一单独指令的输出指示时,该灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更低。
9.如权利要求1所述的安全系统,其特征在于,当该灵敏度等级控制模组接收到包括一条件分支的一单独指令的输出指示时,该灵敏度等级控制模组回应地选择下一个灵敏度等级,其比针对该单独指令以外的至少一个指令的灵敏度等级更高。
10.如权利要求1所述的安全系统,其特征在于,当该处理器核心即将执行一指令时,产生与该指令有关的至少一个输出指示,从而在执行该指令之前提供该指令将要被执行的输出指示。
11.如权利要求1所述的安全系统,其特征在于,该处理器核心包括适配的一解码逻辑元件,该解码逻辑元件至少一次解码从一程序存储器获取的一单独指令,从而导出至少一个CPU内部信号,该至少一个CPU内部信号随后操作一CPU的至少一个单元,从而执行该单独指令,并且其中该解码逻辑元件还适于在该至少一个单元回应于在从程序存储器取回的该单独指令导出的该至少一个CPU内部信号而操作之前提供该单独指令的输出指示,以便在执行该单独指令之前而不是在之后将故障注入检测器设置为该下一个灵敏度等级。
12.如权利要求1所述的安全系统,其特征在于,该处理器核心对多个操作码进行解码,从而生成包括对该处理器核心的多个执行单元的指令的信号,以及该多个输出指示包括由该操作码解码的该指令指示的从该处理器核心输出的信号,由此提供该灵敏度等级选择逻辑元件的将由该处理器核心执行的指令的一预览。
13.如权利要求12所述的安全系统,其特征在于,从该处理器核心输出的该信号包括从该操作码解码的指令。
14.如权利要求1所述的安全系统,其特征在于,该故障注入检测器包括具有分别对应于该多个灵敏度等级的多个调谐选项的一类比电路。
15.如权利要求1所述的安全系统,其特征在于,该处理器核心包括适配的一解码逻辑元件,该解码逻辑元件至少一次解码从一程序存储器获取的一单独指令,从而导出至少一个CPU内部信号,该至少一个CPU内部信号随后操作一CPU的至少一个单元,从而执行该单独指令,并且其中对于由该解码逻辑元件解码的所有指令,该解码逻辑元件还适于在该至少一个单元回应于从程序存储器得出的该单独指令导出的该至少一个CPU内部信号而操作之前,提供该单独指令的输出指示,由此确保该故障注入检测器在由该灵敏度等级逻辑元件选择一特定灵敏度等级所使用的指令被执行之前而不是在之后始终被设置至每个该特定灵敏度等级。
16.如权利要求1所述的安全系统,其特征在于,还包括一故障注入改善电路,该故障注入改善电路被配置为回应于由该检测器检测到的一故障注入而执行至少一个故障注入改善操作。
17.如权利要求1所述的安全系统,其特征在于,该处理器核心包括一执行管线,该执行管线包括具有至少一个重迭阶段的多个连续指令,其中该灵敏度等级选择逻辑元件向该故障注入检测器提供用于根据至少一个指令I选择灵敏度等级的指示,其独立地与该复数灵敏度等级中的一最高故障检测灵敏度等级相关联。
18.如权利要求17所述的安全系统,其特征在于,该至少一个指令一旦被解码,就优先于所有正被解码的其他指令,并优先于将要执行的所有其他指令,其中该最高检测灵敏度等级被设置为在解码该至少一个指令并仅在该至少一个指令已被完全执行之后结束,而无关被解码以及即将被执行的其他指令。
19.如权利要求1所述的安全系统,其特征在于,该处理器核心输出指示包括哪个操作码即将被执行的输出指示。
20.如权利要求1所述的安全系统,其特征在于,该故障注入检测器可操作以保护一CPU,其故障注入攻击的单个指令的解码执行周期为T时间单位长,并且其中该故障注入检测器具有比T短的回应时间。
21.如权利要求1所述的安全系统,其特征在于,该故障注入检测器包括分别部署在多个处理器核心位置中的多个故障注入检测器单元,从而检测所有该多个处理器核心位置处的故障注入攻击。
22.如权利要求21所述的安全系统,其特征在于,该故障注入检测器警告在设置于位置L处的该多个故障注入检测器单元的至少其一检测到故障注入攻击时发出警报。
23.一种处理故障注入攻击的安全方法,其特征在于,该故障注入对策电路用于保护一处理器核心免受故障注入攻击,该安全方法包括:
提供该处理器核心,该处理器核心在执行指令并且即时产生将要执行的至少一些指令的一输出指示;
提供具有多个可控灵敏度等级的一故障注入检测器;以及
使用一灵敏度等级控制模组,即时执行以下操作
接收该输出指示,
使用一灵敏度等级选择逻辑元件从该多个可控灵敏度等级中选择下一个灵敏度等级,该灵敏度等级选择逻辑元件至少接收该输出指示作为输入,以及
将该故障注入检测器设置为该下一个灵敏度等级,
从而当根据该至少一些指令的该输出指示保护该处理器核心免受故障注入攻击时,提供差动敏感的一故障注入对策电路,该故障注入对策电路在该灵敏度等级与该至少一些指令的该输出指示无关时避免至少一个假警报。
24.如权利要求23所述的安全方法,其特征在于,该处理器核心包括适配的一解码逻辑元件,该解码逻辑元件至少一次对从一程序存储器获取的一单独指令进行解码,从而导出至少一个CPU内部信号,该至少一个CPU内部信号随后操作CPU的至少一个单元,从而执行该单独指令,该解码逻辑元件还适于在该至少一个单元回应于从程序存储器得出的该单独指令导出的该至少一个CPU内部信号而操作之前,提供该单独指令的输出指示,以允许该故障注入检测器在该单独指令被执行之前而不是在之后被设置至该下一个灵敏度等级。
25.如权利要求23所述的安全方法,其特征在于,该处理器核心通过向其施加组合逻辑来解码多个操作码,从而生成包括到该处理器核心的多个执行单元的指令的信号,并且该输出指示包括从该操作码解码出的指令所指示的该处理器核心输出的信号,由此向该灵敏度等级选择逻辑元件提供尚未由该处理器核心执行的指令的一预览。
CN201811554212.9A 2017-12-18 2018-12-18 处理故障注入攻击的安全系统和方法 Active CN110048997B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/845,412 2017-12-18
US15/845,412 US10990682B2 (en) 2017-12-18 2017-12-18 System and method for coping with fault injection attacks

Publications (2)

Publication Number Publication Date
CN110048997A true CN110048997A (zh) 2019-07-23
CN110048997B CN110048997B (zh) 2021-10-15

Family

ID=66816110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811554212.9A Active CN110048997B (zh) 2017-12-18 2018-12-18 处理故障注入攻击的安全系统和方法

Country Status (3)

Country Link
US (1) US10990682B2 (zh)
CN (1) CN110048997B (zh)
TW (1) TWI685739B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651353A (zh) * 2020-05-29 2020-09-11 北京百度网讯科技有限公司 故障注入的方法、装置、电子设备和存储介质
CN114978866A (zh) * 2022-05-25 2022-08-30 北京天融信网络安全技术有限公司 一种检测方法、检测装置及电子设备
TWI812042B (zh) * 2021-03-30 2023-08-11 新唐科技股份有限公司 安全系統

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
CN113632432B (zh) * 2019-09-12 2023-09-19 奇安信安全技术(珠海)有限公司 一种攻击行为的判定方法、装置及计算机存储介质
EP3839779A1 (en) * 2019-12-18 2021-06-23 Thales DIS France SA Electronic system and methods for a dynamic activation of countermeasures
US11321458B2 (en) 2020-01-28 2022-05-03 Nuvoton Technology Corporation Secure IC with soft security countermeasures
US11783026B2 (en) * 2021-01-05 2023-10-10 Nuvoton Technology Corporation Processor with in-band fault-injection detection
TWI761027B (zh) * 2021-01-08 2022-04-11 瑞昱半導體股份有限公司 可應用於透過動態電壓改變來進行系統保護之積體電路
US11336273B1 (en) 2021-09-02 2022-05-17 Mellanox Technologies, Ltd. Protection against attacks on integrated circuits using voltage monitoring

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683400B1 (en) * 2012-11-21 2014-03-25 Cadence Design Systems, Inc. System and method for fault sensitivity analysis of mixed-signal integrated circuit designs
US20160006838A1 (en) * 2014-07-01 2016-01-07 Canon Kabushiki Kaisha Information processing system, information processing apparatus, image processing apparatus, processing method of information processing system, and program
CN105391542A (zh) * 2015-10-22 2016-03-09 天津大学 用于集成电路检测电磁故障注入攻击探测方法及探测器
CN105450201A (zh) * 2014-09-23 2016-03-30 恩智浦有限公司 抗故障触发器
CN105939331A (zh) * 2015-03-02 2016-09-14 贺利实公司 通信网络和用于保卫通信网络的方法
US20170324745A1 (en) * 2009-09-09 2017-11-09 International Business Machines Corporation Differential security policies in email systems

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216218B1 (en) * 1997-11-03 2001-04-10 Donald L. Sollars Processor having a datapath and control logic constituted with basis execution blocks
US6167479A (en) * 1998-08-03 2000-12-26 Unisys Corporation System and method for testing interrupt processing logic within an instruction processor
US7584386B2 (en) * 2004-04-21 2009-09-01 Stmicroelectronics Sa Microprocessor comprising error detection means protected against an attack by error injection
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US8141163B2 (en) * 2007-07-31 2012-03-20 Vmware, Inc. Malicious code detection
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US8612995B1 (en) * 2009-03-31 2013-12-17 Symantec Corporation Method and apparatus for monitoring code injection into a process executing on a computer
US9098700B2 (en) * 2010-03-01 2015-08-04 The Trustees Of Columbia University In The City Of New York Systems and methods for detecting attacks against a digital circuit
US9967092B2 (en) * 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
EP2756366B1 (en) * 2011-09-15 2020-01-15 The Trustees of Columbia University in the City of New York Systems, methods, and media for detecting return-oriented programming payloads
US10193927B2 (en) * 2012-02-27 2019-01-29 University Of Virginia Patent Foundation Method of instruction location randomization (ILR) and related system
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
WO2014196059A1 (ja) * 2013-06-06 2014-12-11 株式会社日立製作所 マイコン故障注入方法及びシステム
US9523736B2 (en) 2014-06-19 2016-12-20 Nuvoton Technology Corporation Detection of fault injection attacks using high-fanout networks
TWI711939B (zh) * 2014-11-25 2020-12-01 美商飛塔公司 用於惡意程式碼檢測之系統及方法
US9268938B1 (en) * 2015-05-22 2016-02-23 Power Fingerprinting Inc. Systems, methods, and apparatuses for intrusion detection and analytics using power characteristics such as side-channel information collection
US10452493B2 (en) * 2016-05-24 2019-10-22 Virginia Tech Intellectual Properties, Inc. Microprocessor fault detection and response system
US20180173534A1 (en) * 2016-12-20 2018-06-21 Intel Corporation Branch Predictor with Branch Resolution Code Injection
US10878103B2 (en) * 2017-06-05 2020-12-29 Karamba Security Ltd. In-memory protection for controller security

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170324745A1 (en) * 2009-09-09 2017-11-09 International Business Machines Corporation Differential security policies in email systems
US8683400B1 (en) * 2012-11-21 2014-03-25 Cadence Design Systems, Inc. System and method for fault sensitivity analysis of mixed-signal integrated circuit designs
US20160006838A1 (en) * 2014-07-01 2016-01-07 Canon Kabushiki Kaisha Information processing system, information processing apparatus, image processing apparatus, processing method of information processing system, and program
CN105450201A (zh) * 2014-09-23 2016-03-30 恩智浦有限公司 抗故障触发器
CN105939331A (zh) * 2015-03-02 2016-09-14 贺利实公司 通信网络和用于保卫通信网络的方法
CN105391542A (zh) * 2015-10-22 2016-03-09 天津大学 用于集成电路检测电磁故障注入攻击探测方法及探测器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵新杰,王韬,王素贞,吴扬: ""MIBS深度查分故障分析研究"", 《通信学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651353A (zh) * 2020-05-29 2020-09-11 北京百度网讯科技有限公司 故障注入的方法、装置、电子设备和存储介质
CN111651353B (zh) * 2020-05-29 2023-07-18 北京百度网讯科技有限公司 故障注入的方法、装置、电子设备和存储介质
TWI812042B (zh) * 2021-03-30 2023-08-11 新唐科技股份有限公司 安全系統
CN114978866A (zh) * 2022-05-25 2022-08-30 北京天融信网络安全技术有限公司 一种检测方法、检测装置及电子设备
CN114978866B (zh) * 2022-05-25 2024-02-20 北京天融信网络安全技术有限公司 一种检测方法、检测装置及电子设备

Also Published As

Publication number Publication date
US10990682B2 (en) 2021-04-27
TW201928677A (zh) 2019-07-16
TWI685739B (zh) 2020-02-21
CN110048997B (zh) 2021-10-15
US20190188391A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
CN110048997A (zh) 处理故障注入攻击的安全系统和方法
Cheng et al. Orpheus: Enforcing cyber-physical execution semantics to defend against data-oriented attacks
Jang et al. SGX-Bomb: Locking down the processor via Rowhammer attack
TWI512520B (zh) 偵測對數位電路之攻擊之系統與方法
Waksman et al. Tamper evident microprocessors
EP2972877B1 (en) Systems, methods, and apparatus to enhance the integrity assessment when using power fingerprinting systems for computer-based systems
ES2628820T3 (es) uso de toma de huellas digitales de potencia (pfp) para monitorizar la integridad y potenciar la seguridad de sistemas informáticos
US9523736B2 (en) Detection of fault injection attacks using high-fanout networks
US20210240823A1 (en) System and method for coping with fault injection attacks
Halak Cist: A threat modelling approach for hardware supply chain security
CN108280647A (zh) 数字钱包的私钥保护方法、装置、电子设备及存储介质
JP7383750B2 (ja) 故障注入攻撃を検出する改善されたシステムと方法
Reeves Autoscopy Jr.: Intrusion detection for embedded control systems
CN104992126B (zh) 一种抗错误注入攻击的安全芯片加固方法及装置
Thevenon et al. iMRC: Integrated Monitoring & Recovery Component, a Solution to Guarantee the Security of Embedded Systems.
Reeves et al. Lightweight intrusion detection for resource-constrained embedded control systems
Dubreuil et al. Type classification against fault enabled mutant in java based smart card
Huang et al. Unauthorized Microphone Access Restraint Based on User Behavior Perception in Mobile Devices
Yang et al. RTTV: a dynamic CFI measurement tool based on TPM
Sharma Embedded Systems--A Security Paradigm for Pervasive Computing
Chen et al. Vulnerability-based backdoors: Threats from two-step trojans
Dipta et al. MAD-EN: Microarchitectural Attack Detection through System-wide Energy Consumption
Ott Enabling Embedded Software Security via Introspection Through Hardware Performance Counters
Javaheripi et al. Unified architectural support for secure and robust deep learning
Kulkarni Android Malware Detection through Permission and App Component Analysis using Machine Learning Algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant