用于检测数据处理系统中的故障注入的方法与流程
未命名
07-23
阅读:83
评论:0
1.本公开大体上涉及数据处理,且更具体地说,涉及一种用于检测数据处理系统中的故障注入的方法。
背景技术:
2.故障注入攻击是一种非侵入式尝试,旨在将“故障”注入装置以更改装置中的程序执行。故障注入攻击背后的想法是,破坏装置的正常执行流程并使其在计算过程中产生故障结果。毛刺可以是电源或其它电压毛刺、时钟毛刺、电磁故障注入(emfi)、装置处的激光照射等。攻击者可能会尝试在程序执行的某一特定时刻注入毛刺,以导致程序执行采用错误的支路、跳过程序的某一步骤或作出某一其它错误的决定。毛刺攻击可能会允许攻击者在安全启动过程中跳过数学上复杂的密码操作,例如签名验证,从而执行未经授权的代码或获得对安全数据处理系统的访问权。
3.故障注入攻击的常见目标是影响整个系统的安全的代码的安全敏感型部分,例如:安全启动、密码签名验证、校验和验证以及数据的加密或解密。保护装置免受故障注入影响的常用方式是实施一种故障注入检测机制。如果这种检测机制检测到故障,则会提供正发生故障的指示,并且装置可采取措施来缓解与故障注入相关的问题,例如:重新开始计算,重置自身或甚至擦除一些秘密(例如,密码密钥和口令)以防它们被提取。
技术实现要素:
4.根据本发明的第一方面,提供一种用于检测数据处理系统中的毛刺的方法,所述方法包括:
5.提供辅助代码,所述辅助代码包括预定函数,在利用已知受测试输入执行时具有已知预期结果;
6.在所述数据处理系统中执行主要代码;
7.在所述数据处理系统中与执行所述主要代码并行地执行所述辅助代码以产生输出;以及
8.将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。
9.在一个或多个实施例中,所述主要代码是安全敏感型代码。
10.在一个或多个实施例中,所述方法另外包括提供具有多个函数的所述辅助代码以及在多个输入上执行所述辅助代码以产生多个输出,并且其中将所述多个输出中的每个输出与执行所述辅助代码的多个已知预期结果中的对应已知预期结果进行比较以检测所述故障注入攻击。
11.在一个或多个实施例中,所述方法另外包括提供具有多个函数的所述辅助代码,其中以串行次序执行所述多个函数中的每个函数以产生最终输出,并且其中将所述最终输出与执行所述辅助代码的已知预期结果进行比较以检测所述故障注入攻击。
12.在一个或多个实施例中,所述方法另外包括提供具有多个函数的所述辅助代码,其中执行所述多个函数中的每个函数具有预期已知结果,其中以串行顺序执行所述多个函数中的每个函数以产生多个串行输出,并且其中将所述多个输出中的每个输出与所述多个串行输出的多个已知预期结果中的对应已知预期结果进行比较。
13.在一个或多个实施例中,与执行所述主要代码并行地执行所述辅助代码包括在开始执行所述主要代码的同时或之前开始执行所述辅助代码,以及在结束执行所述主要代码的同时或之后结束执行所述辅助代码。
14.在一个或多个实施例中,执行所述主要代码和所述辅助代码另外包括在所述数据处理系统的第一处理器核心上执行所述主要代码以及在所述数据处理系统的第二处理器核心上执行所述辅助代码。
15.在一个或多个实施例中,执行所述主要代码和执行所述辅助代码另外包括在所述数据处理系统的单个处理器上使用主要和辅助代码执行的随机化时间间隔。
16.在一个或多个实施例中,所述方法另外包括提供所述输出与所述已知预期结果不匹配的指示。
17.在一个或多个实施例中,执行所述辅助代码另外包括与执行所述主要代码并行地执行多个辅助代码,所述多个辅助代码中的每一者具有不同代码长度和不同开始时间。
18.根据本发明的第二方面,提供一种用于检测数据处理系统中的故障注入攻击的方法,所述方法包括:
19.提供辅助代码,所述辅助代码包括预定函数、具有已知预期结果;
20.在所述数据处理系统中执行安全敏感型代码;
21.在所述数据处理系统中与执行所述安全敏感型代码并行地执行所述辅助代码以产生输出;以及
22.将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。
23.在一个或多个实施例中,所述方法另外包括提供具有多个函数的所述辅助代码以及在多个输入上执行所述辅助代码以产生多个输出,并且其中将所述多个输出中的每个输出与执行所述辅助代码的多个已知预期结果中的对应已知预期结果进行比较以检测所述故障注入攻击。
24.在一个或多个实施例中,所述方法另外包括提供具有多个函数的所述辅助代码,其中以串行次序执行所述多个函数中的每个函数以产生最终输出,并且其中将所述最终输出与执行所述辅助代码的已知预期结果进行比较以检测所述故障注入攻击。
25.在一个或多个实施例中,所述方法另外包括提供具有多个函数的所述辅助代码,其中执行所述多个函数中的每个函数具有预期已知结果,其中以串行顺序执行所述多个函数中的每个函数以产生多个串行输出,并且其中将所述多个输出中的每个输出与所述多个串行输出的多个已知预期结果中的对应已知预期结果进行比较。
26.在一个或多个实施例中,与执行所述安全敏感型代码并行地执行所述辅助代码包括在开始执行所述安全敏感型代码的同时或之前开始执行所述辅助代码,以及在结束执行所述安全敏感型代码的同时或之后结束执行所述辅助代码。
27.在一个或多个实施例中,执行所述安全敏感型代码和所述辅助代码另外包括在所
述数据处理系统的第一处理器核心上执行所述安全敏感型代码以及在所述数据处理系统的第二处理器核心上执行所述辅助代码。
28.在一个或多个实施例中,执行所述安全敏感型代码和执行所述辅助代码另外包括在所述数据处理系统的单个处理器上使用所述安全敏感型代码和辅助代码执行的随机化时间间隔。
29.在一个或多个实施例中,所述方法另外包括提供所述输出与所述已知预期结果不匹配的指示。
30.在一个或多个实施例中,执行所述辅助代码另外包括与执行所述安全敏感型代码并行地执行多个辅助代码,所述多个辅助代码中的每一者具有不同代码长度和不同开始时间。
31.在一个或多个实施例中,所述辅助代码包括散列函数或加密函数。
32.本发明的这些和其它方面将根据下文中所描述的实施例显而易见,且参考这些实施例予以阐明。
附图说明
33.本发明通过举例示出且不受附图的限制,在附图中,类似标记指示类似元件。为了简单和清晰起见而示出图中的元件,并且这些元件不一定按比例绘制。
34.图1绘示根据实施例的辅助代码执行与主要代码执行并行的时序图。
35.图2绘示根据实施例的具有多个函数、输入和输出的辅助代码执行。
36.图3绘示根据实施例的多个函数被串行执行以提供多个输出的辅助代码执行。
37.图4绘示根据实施例的单个函数被多次执行以生成单个最终输出的辅助代码执行。
38.图5a和5b绘示根据实施例的辅助代码与安全敏感型代码的良好及不良代码对准。
39.图6绘示根据实施例的多个处理器上的辅助代码执行和安全敏感型代码执行的时序图。
40.图7绘示根据实施例的单个处理器上的辅助代码和安全敏感型代码的随机化执行的时序图。
41.图8绘示根据实施例的用于检测故障注入的方法。
42.图9绘示根据实施例的多个辅助代码执行的使用的时序图。
43.图10绘示根据实施例的适于在故障注入检测方法中使用的数据处理器。
具体实施方式
44.大体而言,提供一种用于检测数据处理系统中的毛刺或故障注入的方法。在所述方法中,辅助代码与受攻击的主要代码并行地运行。所述主要代码可以是需要被保护免受故障注入攻击的安全敏感型代码。所述辅助代码包括函数,当在已知受测试输入上运行时会始终产生已知预期结果。所述已知预期结果是预计算出的,并且可加载并保存到所述数据处理系统上的文件或表格中。如果执行所述辅助代码的结果与所述已知预期结果不匹配,则在辅助代码执行期间已发生故障。所述辅助代码可连续地运行,可仅在所选择的安全敏感型操作期间运行,或间歇地运行。所述辅助代码无需以任何方式与所述主要代码相关
以检测故障。
45.根据实施例,提供一种用于检测数据处理系统中的毛刺的方法,所述方法包括:提供辅助代码,所述辅助代码包括预定函数,在利用已知受测试输入执行时具有已知预期结果;在所述数据处理系统中执行主要代码;在所述数据处理系统中与执行所述主要代码并行地执行所述辅助代码以产生输出;以及将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。所述主要代码可以是安全敏感型代码。所述方法可另外包括提供具有多个函数的所述辅助代码以及在多个输入上执行所述辅助代码以产生多个输出,并且其中将所述多个输出中的每个输出与执行所述辅助代码的多个已知预期结果中的对应已知预期结果进行比较以检测所述故障注入攻击。所述方法可另外包括提供具有多个函数的所述辅助代码,其中以串行次序执行所述多个函数中的每个函数以产生最终输出,并且其中将所述最终输出与执行所述辅助代码的已知预期结果进行比较以检测所述故障注入攻击。所述方法可另外包括提供具有多个函数的所述辅助代码,其中执行所述多个函数中的每个函数具有预期已知结果,其中以串行顺序执行所述多个函数中的每个函数以产生多个串行输出,并且其中将所述多个输出中的每个输出与所述多个串行输出的多个已知预期结果中的对应已知预期结果进行比较。与执行所述主要代码并行地执行所述辅助代码可包括在开始执行所述主要代码的同时或之前开始执行所述辅助代码,以及在结束执行所述主要代码的同时或之后结束执行所述辅助代码。执行所述主要代码和所述辅助代码可另外包括在所述数据处理系统的第一处理器核心上执行所述主要代码以及在所述数据处理系统的第二处理器核心上执行所述辅助代码。执行所述主要代码和执行所述辅助代码可另外包括在所述数据处理系统的单个处理器上使用主要和辅助代码执行的随机化时间间隔。所述方法可包括提供所述输出与所述已知预期结果不匹配的指示。执行所述辅助代码可另外包括与执行所述主要代码并行地执行多个辅助代码,所述多个辅助代码中的每一者具有不同代码长度和不同开始时间。
46.在另一实施例中,提供一种用于检测数据处理系统中的故障注入攻击的方法,所述方法包括:提供辅助代码,所述辅助代码包括预定函数、具有已知预期结果;在所述数据处理系统中执行安全敏感型代码;在所述数据处理系统中与执行所述安全敏感型代码并行地执行所述辅助代码以产生输出;以及将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。所述方法可另外包括提供具有多个函数的所述辅助代码以及在多个输入上执行所述辅助代码以产生多个输出,并且其中将所述多个输出中的每个输出与执行所述辅助代码的多个已知预期结果中的对应已知预期结果进行比较以检测所述故障注入攻击。所述方法可另外包括提供具有多个函数的所述辅助代码,其中以串行次序执行所述多个函数中的每个函数以产生最终输出,并且其中将所述最终输出与执行所述辅助代码的已知预期结果进行比较以检测所述故障注入攻击。所述方法可另外包括提供具有多个函数的所述辅助代码,其中执行所述多个函数中的每个函数具有预期已知结果,其中以串行顺序执行所述多个函数中的每个函数以产生多个串行输出,并且其中将所述多个输出中的每个输出与所述多个串行输出的多个已知预期结果中的对应已知预期结果进行比较。与执行所述安全敏感型代码并行地执行所述辅助代码可包括在开始执行所述安全敏感型代码的同时或之前开始执行所述辅助代码,以及在结束执行所述安全敏感型代码的同时或之后结束执行所述辅助代码。执行所述安全敏感型代码和所述辅助代码可另外
包括在所述数据处理系统的第一处理器核心上执行所述安全敏感型代码以及在所述数据处理系统的第二处理器核心上执行所述辅助代码。执行所述安全敏感型代码和执行所述辅助代码可另外包括在所述数据处理系统的单个处理器上使用所述安全敏感型代码和辅助代码执行的随机化时间间隔。所述方法可另外包括提供所述输出与所述已知预期结果不匹配的指示。执行所述辅助代码可另外包括与执行所述安全敏感型代码并行地执行多个辅助代码,所述多个辅助代码中的每一者具有不同代码长度和不同开始时间。所述辅助代码可包括散列函数或加密函数。
47.图1绘示根据实施例的辅助代码执行与主要代码执行并行的时序图。主要代码可以是安全敏感型代码,例如安全启动、密码签名验证、校验和验证以及数据的加密或解密。辅助代码包括在已知受测试输入运行的函数,且因此将始终具有已知预期结果。辅助代码与主要代码不相关,并且执行辅助代码不会影响执行主要代码。如果执行辅助代码的结果与预期已知结果不匹配,则在装置进行操作时处理中发生故障。故障可能归因于故障注入攻击,或简单的随机化毛刺。执行辅助代码不会透露任何有关何种原因引起毛刺的信息,只会透露发生毛刺。辅助代码可始终或仅在某些选定时间内运行。
48.图2绘示根据实施例的辅助代码执行10,具有表示为函数f1-f4的多个函数14、输入12(ai-di)、输出16(ao-do)以及已知预期结果18(ae-de)。利用输入12运行函数14以计算输出16,随后将输出16与预计算的已知预期结果18进行比较。辅助代码可使用各种不同的函数,复杂的及简单的,包括例如加法、乘法或二进制异或(xor)等单个指令。对于更复杂的函数,辅助代码可使用已知的函数,例如散列函数或加密函数,这种函数甚至在于输入中的任何位置更改单个位的情况下也会产生不同的结果。请注意,除故障检测之外,函数14对于执行主要代码没有任何有效用途。函数14可具有一个或多个参数。还可能使用数种不同函数f1、f2、
…
、f4用于辅助代码中的计算。如图2所示,生成输入12的列表或表格,并且函数14在所有这些输入上运行以产生输出16的列表或表格。将具有输入12、函数14和已知预期结果18的辅助代码加载到处理器中。在一个实施例中,将已知预期结果保存到安全存储器。当处理器执行一些敏感型代码(例如,密码算法或访问权限验证)时,辅助代码在对应输入12上运行函数f1-f4,同时检查输出ao-do是否对应于已知预期结果ae-de。如果所有输出ao-do都与事先计算出的已知预期结果匹配,则有可能在代码执行期间不存在故障注入。存储具有已知输入和对应输出的列表,因此导致处理器的存储器占用率增加,这对于仅具有少量存储器的处理器来说可能成问题。
49.图3绘示根据实施例的辅助代码执行20,具有一个输入22,多个函数24以串行次序被执行以提供多个输出26。图3的实施例通过仅使用一个初始输入22用于函数24来减少存储器存储要求,而用于后续阶段的输入的后续值依次是每个函数24的输出26。在运行辅助代码之后,将输出26与预期已知结果28进行比较。如果输出26与预期已知结果28全部匹配,则未检测到故障注入。应注意,函数24可以是重复多次的相同函数或不同函数。
50.图4绘示根据实施例的辅助代码执行30,具有单个输入31,并且单个函数以串行顺序被执行多次32-35以生成单个最终输出36。此外,还可能通过仅将最终输出36与已知预期输出进行比较37来减少对最终输出36的存储的要求。如果最终输出36与已知预期输出匹配,则未检测到故障,并且处理继续38。如果最终输出36与已知预期结果不匹配,则发出警报39以允许采取适当的动作作为响应。应注意,由于处理是串行的,因此装置可能需要更多
的时间来检测计算期间发生的错误或故障。一些混合方式也是可能的。例如,代替检查函数f的每个输出的结果且代替等待最后一个结果执行,可对照预期输出检查函数f每第2个、第3个或第n个结果。这可能会平衡故障检测速度与预期结果和输入所需的存储空间。
51.图5a和5b分别绘示根据实施例的辅助代码关于主要代码的良好及不良代码对准。辅助代码运行所花费的时间应大于或至少等于主要代码(需要受到保护的代码)计算结果所需的时间,如图5a所示。理想情况下,辅助代码必须先于主要代码开始执行,晚于主要代码完成,以确保覆盖主要代码执行。然而,如图5b所示,如果主要受保护代码执行先于辅助代码执行开始,则攻击者可能会在辅助代码开始执行之前在主要代码执行开始时注入故障。类似地,如果辅助代码执行未覆盖主要代码执行,则攻击者可能会在主要代码执行结束时注入故障。
52.图6绘示根据实施例的多个处理器上的辅助代码执行和安全敏感型代码执行的例子的时序图。可能有多种方式用以并行地运行辅助代码和受保护的主要代码,以防止潜在的故障注入。一种方式是使用如图6所示的第二处理器或核心或中央处理单元(cpu),其中在第二cpu上进行辅助代码执行。在第二处理器上执行辅助代码与在第一cpu上处理例如安全敏感型代码并行发生,以检测针对安全敏感型代码的故障注入。如图6中可见,当装置不执行例如密码算法的安全相关计算时,第二cpu可用于其它目的。
53.图7绘示根据实施例的单个处理器上的辅助代码和安全敏感型代码的随机化执行的时序图。代替在第二处理器上运行辅助代码,辅助代码可与装置的主代码一起在同一cpu(核心、处理器)上同时运行,同时在辅助代码与主要代码的执行之间进行切换。如果处理器上有随机数发生器,则可随机进行切换。这也可通过类似于正常任务切换的方式来完成。然而,在故障注入检测的情况下,可能需要在随机时间间隔之后在主要代码执行与辅助代码执行之间进行切换。这可能使得攻击者更难将主要代码作为目标,因为攻击者不知晓主要代码何时运行。然而,如果攻击者必须以主要代码中的特定指令为目标才能成功注入故障,则攻击者可能会更难发起攻击。
54.应注意,有可能组合图6和图7两者的技术。例如,辅助代码的一个实例可在单独的cpu核心上运行,而辅助代码的第二实例可在同一cpu上运行,所述cpu使用主要和辅助代码之间的时序安排来进行例如密码操作。
55.图8绘示根据实施例的用于检测故障注入的方法40。方法在步骤41处开始。在步骤41和42处,检索执行函数f的输出o和对应的预计算已知预期结果e。在步骤43处,将输出o与已知预期结果e进行比较。当辅助代码获得来自执行f的结果并将所述结果与预期结果e进行比较时,如果结果不匹配,则可能会触发针对故障的响应,如步骤45和46处所示。具体响应可能取决于装置的类型、装置的应用以及在进一步计算中使用故障结果时可能发生的安全事件的类型。例如,作为对故障检测的反应,装置可重启,装置或装置的一部分可重置,安全敏感型代码的执行可重新开始以尝试获得正确的非故障结果,代码执行可停止,可请求额外用户输入,可向远程服务器发送警报消息等。然而,如果未检测到故障,则在步骤44处继续正常执行。
56.图9绘示根据实施例的多个辅助代码执行的使用的时序图。攻击者可能会尝试注入多于一个故障来破坏安全敏感型代码的执行结果,并尝试绕过所描述的辅助代码执行所提供的保护。可通过改变执行时间(运行f更多次)和改变执行开始时间来提高检测机制和
辅助代码的安全性。在一个实施例中,可随机地选择开始时间。并且,为了实现更好的保护,可并行地执行多个辅助代码a-c。多个辅助代码的开始时间可不同,并且辅助代码可彼此不同。应注意,在于系统中使用多个辅助代码的情况下,一个辅助代码“覆盖”主代码的整个安全敏感型部分不再重要,如图5a所示。但是,所有辅助代码执行(时间)的总和覆盖要提供的主要代码(例如,安全敏感型代码)。
57.图10绘示根据实施例的适于在故障注入检测方法中使用的数据处理系统50。数据处理系统50可实施于一个或多个集成电路上,并且可用于实施所描述实施例。数据处理系统50包括总线或交换网络52。各种模块或电路可连接到总线52。例如,连接到图10中的总线52的是一个或多个处理器核心54、存储器56、用户界面58、指令存储器60和网络接口62。一个或多个处理器核心54可包括能够执行存储于存储器56或指令存储器60中的指令的任何硬件装置。例如,处理器核心54可执行用于检测故障注入的主要和辅助代码。处理器核心54可以是例如微处理器、现场可编程门阵列(fpga)、专用集成电路(asic)或类似装置。处理器核心54可实施于安全硬件元件中且可以是防篡改的。
58.存储器56可以是任何种类的存储器,例如l1、l2或l3高速缓冲存储器或系统存储器。存储器56可包括易失性存储器,例如静态随机存取存储器(sram)或动态ram(dram),或可包括非易失性存储器,例如快闪存储器、只读存储器(rom)或其它易失性或非易失性存储器。并且,存储器56可实施于安全硬件元件中。可替换的是,存储器56可以是实施于数据处理系统50外部的硬盘驱动器。在一个实施例中,存储器56用于存储运行故障检测器和用于检测故障注入的方法所需的软件或数据。
59.用户界面58可连接到用于实现与例如管理员的用户通信的一个或多个装置。例如,用户界面58可被启用以用于耦合到显示器、鼠标、键盘或其它输入/输出装置。网络接口62可包括用于实现与其它硬件装置的通信的一个或多个电路。例如,网络接口62可包括或耦合到被配置成根据以太网协议进行通信的网络接口卡(nic)。并且,网络接口62可实施用于根据tcp/ip协议进行通信的tcp/ip堆栈。用于分类的数据样本可经由网络接口62或类似接口输入。可使用用于进行通信的各种其它硬件或配置。
60.指令存储器60可包括用于存储供处理器核心54执行的指令的一个或多个机器可读非暂时性存储介质。在其它实施例中,存储器56和60两者可存储处理器核心54可对其进行操作的数据。存储器56和60还可存储例如加密、解密和验证应用程序。存储器56和60可实施于安全硬件元件中且可以是防篡改的。
61.各种实施例或实施例的部分可实施于硬件中或作为非暂时性机器可读存储介质上的指令,所述非暂时性机器可读存储介质包括用于以例如个人计算机、膝上型计算机、文件服务器、智能手机或其它计算装置的机器可读的形式存储信息的任何机构。非暂时性机器可读存储介质可包括易失性和非易失性存储器,例如只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光学存储介质、快闪存储器等。非暂时性机器可读存储介质不包括暂时性信号。
62.虽然本文中参考具体实施例描述了本发明,但是可以在不脱离如所附权利要求书中所阐述的本发明的范围的情况下进行各种修改和改变。因此,说明书和图式应视为说明性而非具有限制性意义,并且预期所有此类修改都包括在本发明的范围内。并不意图将本文中关于具体实施例所描述的任何优势、优点或针对问题的解决方案理解为任何或所有权
利要求的关键、必需或必不可少的特征或元素。
63.如本文中所使用的,术语“耦合”并不意图限于直接耦合或机械耦合。
64.此外,如本文中所使用的,术语“一”或“一个”被定义为一个或超过一个。同样,权利要求书中如“至少一个”和“一个或多个”的介绍性短语的使用不应被解释为暗示由不定冠词“一”或“一个”引入的另一权利要求元素将包含此类引入的权利要求元素的任何特定权利要求限于仅包含一个此类元素的发明,甚至是在同一权利要求包括介绍性短语“一个或多个”或“至少一个”和例如“一”或“一个”的不定冠词时。这同样适用于定冠词的使用。
65.除非另有陈述,否则例如“第一”和“第二”等术语用于任意地区别此类术语所描述的元素。因此,这些术语不一定意图指示此类元素时间上的优先级或其它优先级。
技术特征:
1.一种用于检测数据处理系统中的毛刺的方法,其特征在于,所述方法包括:提供辅助代码,所述辅助代码包括预定函数,在利用已知受测试输入执行时具有已知预期结果;在所述数据处理系统中执行主要代码;在所述数据处理系统中与执行所述主要代码并行地执行所述辅助代码以产生输出;以及将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。2.根据权利要求1所述的方法,其特征在于,所述主要代码是安全敏感型代码。3.根据权利要求1所述的方法,其特征在于,另外包括提供具有多个函数的所述辅助代码以及在多个输入上执行所述辅助代码以产生多个输出,并且其中将所述多个输出中的每个输出与执行所述辅助代码的多个已知预期结果中的对应已知预期结果进行比较以检测所述故障注入攻击。4.根据权利要求1所述的方法,其特征在于,另外包括提供具有多个函数的所述辅助代码,其中以串行次序执行所述多个函数中的每个函数以产生最终输出,并且其中将所述最终输出与执行所述辅助代码的已知预期结果进行比较以检测所述故障注入攻击。5.根据权利要求1所述的方法,其特征在于,另外包括提供具有多个函数的所述辅助代码,其中执行所述多个函数中的每个函数具有预期已知结果,其中以串行顺序执行所述多个函数中的每个函数以产生多个串行输出,并且其中将所述多个输出中的每个输出与所述多个串行输出的多个已知预期结果中的对应已知预期结果进行比较。6.根据权利要求1所述的方法,其特征在于,与执行所述主要代码并行地执行所述辅助代码包括在开始执行所述主要代码的同时或之前开始执行所述辅助代码,以及在结束执行所述主要代码的同时或之后结束执行所述辅助代码。7.根据权利要求1所述的方法,其特征在于,执行所述主要代码和所述辅助代码另外包括在所述数据处理系统的第一处理器核心上执行所述主要代码以及在所述数据处理系统的第二处理器核心上执行所述辅助代码。8.根据权利要求1所述的方法,其特征在于,执行所述主要代码和执行所述辅助代码另外包括在所述数据处理系统的单个处理器上使用主要和辅助代码执行的随机化时间间隔。9.根据权利要求1所述的方法,其特征在于,执行所述辅助代码另外包括与执行所述主要代码并行地执行多个辅助代码,所述多个辅助代码中的每一者具有不同代码长度和不同开始时间。10.一种用于检测数据处理系统中的故障注入攻击的方法,其特征在于,所述方法包括:提供辅助代码,所述辅助代码包括预定函数、具有已知预期结果;在所述数据处理系统中执行安全敏感型代码;在所述数据处理系统中与执行所述安全敏感型代码并行地执行所述辅助代码以产生输出;以及将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。
技术总结
描述了一种用于检测故障注入的方法。所述方法包括提供辅助代码,所述辅助代码包括预定函数,在利用已知受测试输入执行所述辅助代码时具有已知预期结果。在数据处理系统中执行主要代码。所述主要代码可以是需要被保护免受故障注入攻击的代码的一部分,例如安全敏感型代码。在所述数据处理系统中与所述主要代码执行并行地执行所述辅助代码以产生输出。将所述输出与所述已知预期结果进行比较以检测所述数据处理系统的所述故障注入攻击。在一个实施例中,所述辅助代码与所述主要代码不相关。所述辅助代码与所述主要代码不相关。所述辅助代码与所述主要代码不相关。
技术研发人员:拉斯
受保护的技术使用者:恩智浦有限公司
技术研发日:2023.01.06
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
