一种故障注入攻击方法、装置及电子设备
文献发布时间:2023-06-19 10:08:35
技术领域
本申请涉及计算机技术领域,尤其是涉及一种故障注入攻击方法、装置及电子设备。
背景技术
故障注入攻击通常用于在设备运行算法时引入故障,使得设备运行异常,从而产生错误运算结果。通过故障注入攻击使电子设备产生的多组错误运算结果,可以判断哪些错误运算结果导致设备不能正常工作或泄露设备中的信息,这些会导致设备不能正常工作或泄露设备中的信息的错误运算结果一般称为有效错误。一般来说有效错误越多,则代表着该电子设备不具有足够抵抗故障注入攻击的能力。
测试人员为了评估电子设备抵抗故障注入攻击的能力,会尝试以最短的时间获取尽可能多的有效错误。现有的测试方法是通过一系列的攻击参数组合依次顺序执行故障注入攻击,这种测试方法使得故障注入攻击效率较低。
发明内容
有鉴于此,本申请的目的在于提供一种故障注入攻击方法、装置及电子设备,目的是为了提高有效错误产生的概率,进而提高故障注入攻击的效率。
第一方面,本申请实施例提供了一种故障注入攻击方法,包括:
获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围;
针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量;所述有效错误是利用所述第一数值范围下的攻击参数对所述对象进行故障注入攻击后产生的有效的错误加密结果;
针对每个攻击参数,从所述候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;所述有效错误数量密度是每个候选数值所产生的有效错误数量与所有候选数值所产生的错误加密结果数量之和的比值;
针对每个攻击参数,根据所述目标数值,确定该攻击参数所对应的第二数值范围,并重新执行针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量的步骤,直至所述攻击参数所对应的第二数值范围中的最大数值与最小数值的差值小于预设差值;
针对每个攻击参数,将所述最小数值以及所述最大数值所对应的数值范围作为最优数值范围,以根据所述最优数值范围下的攻击参数,对相同类型的对象进行故障注入攻击。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量,包括:
针对每个攻击参数,将该攻击参数所对应的第一数值范围进行等分时得到的等分点所对应的数值作为所述攻击参数所对应的候选数值;
针对每个攻击参数,统计每个所述候选数值所产生的有效错误数量。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述攻击参数的个数为三个,且所述攻击参数均不相同;
所述针对每个攻击参数,根据所述目标数值,确定该攻击参数所对应的第二数值范围,包括:
根据任意两个攻击参数的目标数值所产生的有效错误数量,分别确定所述两个攻击参数组合下的每个攻击参数所对应的第三数值范围;
针对每个攻击参数,根据该攻击参数所对应的第三数值范围的并集,确定该攻击参数所对应的第二数值范围。
结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述攻击参数包括以下参数中的任意一种或多种:攻击位置、攻击时刻和攻击强度。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述攻击参数为攻击位置;
所述获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,包括:
获取所述目标类型的对象的位置;
根据所述目标类型的对象的位置,确定所述攻击位置所对应的第一数值范围。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第五种可能的实施方式,其中,所述攻击参数为攻击时刻;
所述获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,包括:
获取所述目标类型的对象进行算法运行的时间;
根据所述目标类型的对象进行算法运行的时间,确定所述攻击时刻所对应的第一数值范围。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第六种可能的实施方式,其中,所述攻击参数为攻击强度:
所述获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,包括:
根据所述对象的类型,确定所述攻击强度所对应的第一数值范围。
结合第一方面,本申请实施例提供了第一方面的第七种可能的实施方式,其中,所述针对每个攻击参数,从所述候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值,包括:
针对每个攻击参数,利用故障分析算法筛选出有效错误数量密度超过预设阈值的候选数值作为目标数值。
第二方面,本申请实施例还提供一种故障注入攻击装置,包括:
第一获取模块,用于获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围;
第一确定模块,用于针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量;所述有效错误是利用所述第一数值范围下的攻击参数对所述对象进行故障注入攻击后产生的有效的错误加密结果;
第一筛选模块,用于针对每个攻击参数,从所述候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;所述有效错误数量密度是每个候选数值所产生的有效错误数量与所有候选数值所产生的错误加密结果数量之和的比值;
第二确定模块,用于针对每个攻击参数,根据所述目标数值,确定该攻击参数所对应的第二数值范围,并重新执行针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量的步骤,直至所述攻击参数所对应的第二数值范围中的最大数值与最小数值的差值小于预设差值;
攻击模块,用于针对每个攻击参数,将所述最小数值以及所述最大数值所对应的数值范围作为最优数值范围,以根据所述最优数值范围下的攻击参数,对相同类型的对象进行故障注入攻击。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中的步骤。
本申请实施例提供的一种故障注入攻击方法、装置及电子设备,所述方法包括:获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围;针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量;有效错误是利用第一数值范围下的攻击参数对对象进行故障注入攻击后产生的有效的错误加密结果;针对每个攻击参数,从候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;有效错误数量密度是每个候选数值所产生的有效错误数量与所有候选数值所产生的错误加密结果数量之和的比值;针对每个攻击参数,根据目标数值,确定该攻击参数所对应的第二数值范围,并重新执行针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量的步骤,直至攻击参数所对应的第二数值范围中的最大数值与最小数值的差值小于预设差值;针对每个攻击参数,将最小数值以及最大数值所对应的数值范围作为最优数值范围,以根据最优数值范围下的攻击参数,对相同类型的对象进行故障注入攻击。本申请实施例筛选出了每个攻击参数所对应的最优数值范围,通过利用该最优数值范围对相同类型的对象进行故障注入攻击,提高有效错误产生的概率,进而提高故障注入攻击的效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种故障注入攻击方法的流程图;
图2示出了本申请实施例所提供的密码设备的结构示意图;
图3示出了本申请实施例所提供的热力图;
图4示出了本申请实施例所提供的一种故障注入攻击方法的结构示意图;
图5示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
故障注入攻击通常用于对电子设备中的硬件电路进行攻击,使得硬件电路运行异常,从而产生错误加密结果。通过故障注入攻击使电子设备产生的多组错误加密结果,可以判断哪些错误加密结果导致设备不能正常工作或泄露设备中的信息,这些会导致设备不能正常工作或泄露设备中的信息的错误加密结果一般称为有效错误。一般来说有效错误越多,则代表着该电子设备不具有足够抵抗故障注入攻击的能力。测试人员为了评估电子设备抵抗故障注入攻击的能力,会尝试以最短的时间获取尽可能多的有效错误。现有的测试方法是通过一系列的攻击参数组合依次顺序执行故障注入攻击,由于这些攻击参数的组合非常多,仅当这些参数均选取合适值时才有可能产生有效错误,因此使用这种测试方法产生的有效错误数量的概率较低,导致故障注入攻击效率低。
考虑到上述问题,基于此,本申请实施例提供了一种故障注入攻击方法、装置及电子设备,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种故障注入攻击方法进行详细介绍。
实施例一:
本申请实施例提供了一种故障注入攻击方法,如图1所示的一种故障注入攻击方法的流程图中,包括以下步骤:
S101:获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围;
目标类型是指具有相同型号的设备中的任意一个设备,由于不同型号的设备进行故障注入攻击的攻击参数不同,因此本申请中通过找出目标类型的对象的攻击参数的取值范围,进而将该取值范围应用于与该目标类型的对象具有相同型号的其他设备。具体地,目标类型的对象可以是密码设备,密码设备可以是指具有某种密码功能或能完成某种密码工作任务的设备的统称。密码设备一般依靠特定的硬件电路实现加密算法,而电磁干扰、激光干扰或者电源、时钟的不稳定可能造成硬件电路运行异常,导致加密算法出现计算错误,从而产生错误加密结果(与正确加密结果不同),上述针对密码设备的攻击方法称为故障注入攻击。
攻击参数是指对目标类型的对象进行故障注入攻击的参数,攻击参数至少有一个。在一种可能的实施方式中,攻击参数包括以下参数中的任意一种或多种:攻击位置、攻击时刻和攻击强度,在本申请实施例中,攻击参数可以包括但不限于上述参数,即攻击参数至少可以有6种选择方式。
在一种可行的实施方式中,针对密码设备进行一次故障注入攻击涉及攻击位置L、攻击时刻T和攻击强度P三个攻击参数。
攻击位置是指目标类型的对象接受故障注入攻击的物理位置。在本申请的实施例中密码设备依靠特定的硬件电路实现算法加密,如图2所示的密码设备的结构示意图中,这一硬件电路一般位于一块芯片上,而且电路面积很小,例如有的芯片大小为5mm*5mm,而用于加密的硬件电路部分大小仅为1um*1um,因此,这要求攻击的物理位置必须足够准确,在加密硬件电路上方注入故障攻击才有可能产生有效错误。
攻击时刻是指目标类型的对象接受故障注入攻击的具体时刻。在本申请的实施例中密码设备执行加密算法是一段连续的运算过程,受到算法类型、实现方式等不同因素的影响,其执行时间从几s到几十ns不等。而只有在加密算法某一个特定步骤上注入故障攻击,即在特定的时刻注入故障攻击到硬件电路上才有可能产生有效错误。具体地特定步骤发生的时刻应该在发送待加密数据之后,接收加密结果之前。
攻击强度是指目标类型的对象接受故障注入攻击的强度大小。在本申请的实施例中,过强的故障注入攻击可能造成多个步骤连续出错,而不是特定步骤的错误;过强的故障注入攻击也可能会导致密码设备死机不工作,甚至直接损毁;过弱的故障注入攻击则不能产生错误加密结果;显然,只有找到合适的攻击强度才有可能产生有效错误。
第一数值范围是指每一个攻击参数所对应的较大的取值范围。在一种可能的实施方式中,攻击参数为攻击位置;前述步骤S101,即获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,具体还可以按照以下步骤执行:
S1011:获取目标类型的对象的位置;
在本申请实施例中,如图2所示,加密硬件电路一般位于一块芯片上,但是加密硬件电路的具体位置一般是未知的,并且由于不同类型的对象芯片的位置可能不同,因此,首先需要先获取到密码设备中芯片的位置。
S1012:根据目标类型的对象的位置,确定攻击位置所对应的第一数值范围。
在本申请实施例中,先确定出芯片的位置,具体地,可以是确定该设备中芯片的坐标位置,根据坐标确定芯片的具体位置;也可以是确定该设备中芯片的边界,根据芯片边界确定芯片的具体位置。再根据芯片的位置确定攻击位置的第一数值范围,具体地,第一数值范围可以是密码设备中整个芯片所在的位置。
在一种可能的实施方式中,攻击参数为攻击时刻;前述步骤S101,即获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,具体还可以按照以下步骤执行:
S1013:获取目标类型的对象进行算法运行的时间;
在本申请实施例中,目标类型的对象进行算法运行的时间可以是密码设备执行加密算法的一段连续的时间。由于不同加密算法的算法类型、实现方式等有所不同,其执行时间段长短也不相同,因此需要获取到密码设备执行加密算法的总时长。
S1014:根据目标类型的对象进行算法运行的时间,确定攻击时刻所对应的第一数值范围。
在本申请实施例中,第一数值范围可以是密码设备执行加密算法的总时长,即总时长可以从发送待加密数据到密码设备之后开始计算,到接收加密结果之前停止计算。
在一种可能的实施方式中,攻击参数为攻击强度;前述步骤S101,即获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,具体还可以按照以下步骤执行:
根据对象的类型,确定攻击强度所对应的第一数值范围。
在本申请实施例中,攻击强度所对应的第一数值范围可以是该目标类型的设备在不影响加密结果的强度到直接导致密码设备死机的强度之间。由于不同类型的目标对象承受故障注入攻击的强度范围不同,因此,需要确定该设备所能承受的攻击强度的第一数值范围。
S102:针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量;有效错误是利用第一数值范围下的攻击参数对对象进行故障注入攻击后产生的有效的错误加密结果;
候选数值可以是指每一个攻击参数所对应第一数值范围中的任意一个数值,还可以是选取的特定的数值。其中特定的数值指的是按照一定规则选取出来的数值,具体可以通过对每一个攻击参数的第一数值范围按照一定规则进行划分得到。根据候选数值对密码设备进行故障注入攻击。
本申请实施例中,通过每个攻击参数所对应的每一个候选数值对密码设备进行故障注入攻击,计算每一个候选数值所产生的有效错误数量。
S103:针对每个攻击参数,从候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;有效错误数量密度是每个候选数值所产生的有效错误数量与所有候选数值所产生的错误加密结果数量之和的比值;
每个攻击参数中的每个候选数值对密码设备注入故障攻击后都会产生相应的错误加密结果,而这些错误加密结果中包括有效错误和无效错误等。有效错误数量密度是指,对于每个攻击参数中的每一个候选数值产生的“有效错误的数量之和”与“错误加密结果数量之和”的比值,其中错误加密结果数量之和指的是使用该候选数值对密码设备进行故障注入攻击的总次数;有效错误的数量之和指的是使用该候选数值对密码设备进行故障注入攻击后产生有效错误的次数。
比值越大,说明该候选数值的有效错误数量密度越大,当该候选数值以及与其连续的候选数值的有效错误数量密度值均大于预设阈值时,将该候选数值以及与其连续的候选数值作为目标数值,其中连续的候选数值可以是指相邻的候选数值。即目标数值是指候选数值中,该候选数值与其相邻的候选数值产生有效错误数量密度大于一定阈值的数值。也就是说,当根据每一个攻击参数选取对应的目标数值中的数值进行故障注入攻击时,产生有效错误的可能性越高。
S104:针对每个攻击参数,根据目标数值,确定该攻击参数所对应的第二数值范围,并重新执行针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量的步骤,直至攻击参数所对应的第二数值范围中的最大数值与最小数值的差值小于预设差值;
本申请实施例中,每一个攻击参数所对应的第二数值范围是指每一个攻击参数对应的所有目标数值。判断第二数值范围中的最大数值与最小数值的差值是否小于预设差值,若不小于,则继续执行步骤S102,直至第二数值范围中的最大数值与最小数值的差值小于预设差值时停止。其中预设差值可以是一个固定的数值,设置预设差值的作用是为了从第二数值范围中确定出更精准的范围,以使攻击参数选取在该范围时,产生有效错误的可能性更大。
S105:针对每个攻击参数,将最小数值以及最大数值所对应的数值范围作为最优数值范围,以根据最优数值范围下的攻击参数,对相同类型的对象进行故障注入攻击。
当第二数值范围中的最大数值与最小数值的差值小于预设差值时,将最小数值以及最大数值所对应的数值范围作为最优数值范围,即将此时的第二数值范围作为最优数值范围。也可以说根据最优数值范围中的任意一个数值对密码设备进行故障注入攻击时,均能产生较多的有效错误。因此,测试人员在评估相同类型的密码设备抵抗故障注入攻击的能力时,使用该最优数值范围对密码设备进行故障注入攻击,可以在较短的时间获取到较多的有效错误,提高故障注入攻击效率。
前述步骤S102,即针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量,具体还可以按照以下步骤执行:
S1021:针对每个攻击参数,将该攻击参数所对应的第一数值范围进行等分时得到的等分点所对应的数值作为攻击参数所对应的候选数值;
将每个攻击参数所对应的第一数值范围进行等分,等分指的是将第一数值范围进行均匀的划分,可以避免候选数值集中在第一数值范围中某一较小的范围,若最优数值出现在第一数值范围中的其他范围时,会产生遗漏掉最优数值的现象,因此在本申请实施例中,将每个攻击参数所对应的第一数值范围进行等分,将每个等分点所对应的数值作为该攻击参数的候选数值。
具体地,确定每个攻击参数的各自的等分数量,记为step,例如step=10,表示对该攻击参数的第一数值范围进行10等分。其中每个攻击参数所对应的等分数量可以不相同。
S1022:针对每个攻击参数,统计每个候选数值所产生的有效错误数量。
本申请实施例中,根据每个攻击参数中的每一个候选数值,对密码设备执行故障注入攻击,获得密码设备的错误加密结果,分析并记录错误加密结果是否为有效错误,统计每个候选数值所产生的有效错误数量。具体地,当其中一个攻击参数选取任意一个候选数值时,其他攻击参数取候选数值中的所有值。
在一种可能的实施方式中,攻击参数的个数可以为三个,且攻击参数均不相同;前述步骤S104,即针对每个攻击参数,根据目标数值,确定该攻击参数所对应的第二数值范围,具体还可以按照以下步骤执行:
S1041:根据任意两个攻击参数的目标数值所产生的有效错误数量,分别确定两个攻击参数组合下的每个攻击参数所对应的第三数值范围;
在本申请的实施方式中,选取任意两个攻击参数,一共有三种组合方式,将两个攻击参数中的目标数值组合,对密码设备执行故障注入攻击,并统计产生的有效错误数量,其中,第三个攻击参数可以取任意数值。第三数值范围可以理解为,在当其中一个攻击参数的目标数值在对应的第三数值范围中,另一个攻击参数的目标数值也在对应的第三数值范围中时,对密码设备执行故障注入攻击产生的有效错误密度大于预设阈值,并且该目标数值是连续的数值。
具体地,其中一个攻击参数与另外两个攻击参数分别进行组合,在其中一个组合中,针对每个攻击参数分别产生对应的第三数值范围,在另一个组合中,针对每个攻击参数也分别产生对应的第三数值范围,因此可以得到每个攻击参数分别产生两个对应的第三数值范围。
S1042:针对每个攻击参数,根据该攻击参数所对应的第三数值范围的并集,确定该攻击参数所对应的第二数值范围。
在本申请的实施方式中,每个攻击参数分别产生的两个对应的第三数值范围,针对每个攻击参数,取该攻击参数所对应的两个第三数值范围的并集作为该攻击参数所对应的第二数值范围。第二数值范围可以表示,当攻击参数的取值范围在相对应的第二数值范围中时,此时对目标类型的对象进行故障注入攻击,得到的有效错误较多。
在另一种实施方式中,当每个攻击参数所产生的两个对应的第三数值范围存在交集时,针对每个攻击参数,取该攻击参数所对应的两个第三数值范围的交集作为该攻击参数所对应的第二数值范围。
在另一种可能的实施方式中,攻击参数的个数为三个,且攻击参数均不相同;前述步骤S104,即针对每个攻击参数,根据目标数值,确定该攻击参数所对应的第二数值范围,具体还可以按照以下步骤执行:
S1041:根据任意两个攻击参数的目标数值所产生的有效错误数量,分别确定两个攻击参数组合下的每个攻击参数所对应的第三数值范围;
分别统计各个故障注入攻击参数产生有效错误的数量,以有效错误数量作为热力图颜色深浅的依据,以不同攻击参数作为热力图的多维影响因素,绘制热力图。具体地,热力图中的横纵坐标分别表示攻击参数的数值,而横纵坐标对应位置的颜色鲜艳程度代表该参数组合产生的有效错误数量,其中颜色鲜艳程度可以根据热力图中每个位置的色相、明度等进行确定。从热力图中可以直观地看出哪些参数组合可以产生更多的有效错误。
例如,利用二维热力图很容易发现各个攻击参数处于哪些范围更可能产生有效错误。假设,如图3所示的热力图中,该图的横纵坐标分别代表攻击参数A和攻击参数B,则根据热力图中颜色鲜艳区域可以得到攻击参数A的第三数值范围为[A
S1042:针对每个攻击参数,根据该攻击参数所对应的第三数值范围的并集,确定该攻击参数所对应的第二数值范围。
根据上述可以得出:
攻击参数A的第三数值范围为:[A1min,A1max]、[A2min,A2max];
攻击参数B的第三数值范围为:[B1min,B1max]、[B2min,B2max];
攻击参数C的第三数值范围为:[C1min,C1max]、[C2min,C2max];
对上述的每个攻击参数所对应的第三数值范围求并集,可以获得新的攻击参数的变化范围,即获得每个攻击参数所对应的第二数值范围。
在另一种实施方式中,当上述各个攻击参数的两个第三数值范围存在交集时,还可以对上述的第三数值范围求交集,获得新的攻击参数的变化范围为第二数值范围。
前述步骤S103,即针对每个攻击参数,从候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;具体还可以按照以下步骤执行:
针对每个攻击参数,利用故障分析算法筛选出有效错误数量密度超过预设阈值的候选数值作为目标数值。
在本申请实施例中,对每个攻击参数中的每一个候选数值执行故障注入攻击,得到每一个候选数值所对应的错误加密结果,利用故障分析算法判断哪些错误加密结果是有效错误,分别统计每一个候选数值所产生的错误加密结果数量以及有效错误数量,计算每个候选数值产生的有效错误密度,当该候选数值以及其连续的候选数值产生的有效错误密度均超过预设阈值时,该候选数值以及其连续的候选数值作为目标数值。
实施例二:
基于相同的技术构思,本申请实施例还提供一种故障注入攻击装置、如图4所示的一种故障注入攻击装置的结构示意图,包括:
第一获取模块401,用于获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围;
第一确定模块402,用于针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量;所述有效错误是利用所述第一数值范围下的攻击参数对所述对象进行故障注入攻击后产生的有效的错误加密结果;
第一筛选模块403,用于针对每个攻击参数,从所述候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;所述有效错误数量密度是每个候选数值所产生的有效错误数量与所有候选数值所产生的错误加密结果数量之和的比值;
第二确定模块404,用于针对每个攻击参数,根据所述目标数值,确定该攻击参数所对应的第二数值范围,并重新执行针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量的步骤,直至所述攻击参数所对应的第二数值范围中的最大数值与最小数值的差值小于预设差值;
攻击模块405,用于针对每个攻击参数,将所述最小数值以及所述最大数值所对应的数值范围作为最优数值范围,以根据所述最优数值范围下的攻击参数,对相同类型的对象进行故障注入攻击。
其中,前述第一确定模块402,即用于针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量,包括:
等分模块,用于针对每个攻击参数,将该攻击参数所对应的第一数值范围进行等分时得到的等分点所对应的数值作为攻击参数所对应的候选数值;
统计模块,用于针对每个攻击参数,统计每个候选数值所产生的有效错误数量。
在一种可行的实施方式中,所述攻击参数的个数为三个,且所述攻击参数均不相同;前述第二确定模块404,即用于针对每个攻击参数,根据所述目标数值,确定该攻击参数所对应的第二数值范围,包括:
第三确定模块,用于根据任意两个攻击参数的目标数值所产生的有效错误数量,分别确定两个攻击参数组合下的每个攻击参数所对应的第三数值范围;
第四确定模块,用于针对每个攻击参数,根据该攻击参数所对应的第三数值范围的并集,确定该攻击参数所对应的第二数值范围。
在一种可行的实施方式中,攻击参数包括以下参数中的任意一种或多种:攻击位置、攻击时刻和攻击强度。
在一种可行的实施方式中,攻击参数为攻击位置;前述第一获取模块401,即用于获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,包括:
第二获取模块,用于获取目标类型的对象的位置;
第五确定模块,用于根据目标类型的对象的位置,确定攻击位置所对应的第一数值范围。
在一种可行的实施方式中,攻击参数为攻击时刻;前述第一获取模块401,即用于获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,包括:
第三获取模块,用于获取目标类型的对象进行算法运行的时间;
第六确定模块,用于根据目标类型的对象进行算法运行的时间,确定攻击时刻所对应的第一数值范围。
在一种可行的实施方式中,攻击参数为攻击强度;前述第一获取模块401,即用于获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,包括:
第七确定模块,用于根据对象的类型,确定攻击强度所对应的第一数值范围。
前述第一筛选模块403,即用于针对每个攻击参数,从所述候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值,包括:
第二筛选模块,用于针对每个攻击参数,利用故障分析算法筛选出有效错误数量密度超过预设阈值的候选数值作为目标数值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例三:
基于相同的技术构思,本申请实施例还提供了一种电子设备,如图5所示的一种电子设备的结构示意图,该电子设备包括:处理器501、存储器502和总线503,存储器存储有执行指令,当设备运行时,处理器501与存储器502之间通过总线503通信,处理器501执行存储器502中存储的如下执行指令:
获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围;
针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量;有效错误是利用第一数值范围下的攻击参数对对象进行故障注入攻击后产生的有效的错误加密结果;
针对每个攻击参数,从候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值;有效错误数量密度是每个候选数值所产生的有效错误数量与所有候选数值所产生的错误加密结果数量之和的比值;
针对每个攻击参数,根据目标数值,确定该攻击参数所对应的第二数值范围,并重新执行针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量的步骤,直至攻击参数所对应的第二数值范围中的最大数值与最小数值的差值小于预设差值;
针对每个攻击参数,将最小数值以及最大数值所对应的数值范围作为最优数值范围,以根据最优数值范围下的攻击参数,对相同类型的对象进行故障注入攻击。
针对每个攻击参数,确定该攻击参数所对应的第一数值范围中每个候选数值所产生的有效错误数量,处理器501具体用于:
针对每个攻击参数,将该攻击参数所对应的第一数值范围进行等分时得到的等分点所对应的数值作为攻击参数所对应的候选数值;
针对每个攻击参数,统计每个候选数值所产生的有效错误数量。
在一种可行的实施方式中,攻击参数的个数为三个,且攻击参数均不相同;所述针对每个攻击参数,根据所述目标数值,确定该攻击参数所对应的第二数值范围,处理器501具体用于:
根据任意两个攻击参数的目标数值所产生的有效错误数量,分别确定两个攻击参数组合下的每个攻击参数所对应的第三数值范围;
针对每个攻击参数,根据该攻击参数所对应的第三数值范围的并集,确定该攻击参数所对应的第二数值范围。
在一种可行的实施方式中,攻击参数包括以下参数中的任意一种或多种:攻击位置、攻击时刻和攻击强度。
在一种可行的实施方式中,攻击参数为攻击位置;获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,处理器501具体用于:
获取目标类型的对象的位置;
根据所述目标类型的对象的位置,确定攻击位置所对应的第一数值范围。
在一种可行的实施方式中,攻击参数为攻击时刻;获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,处理器501具体用于:
获取目标类型的对象进行算法运行的时间;
根据目标类型的对象进行算法运行的时间,确定攻击时刻所对应的第一数值范围。
在一种可行的实施方式中,攻击参数为攻击强度;获取针对目标类型的对象进行故障注入攻击的攻击参数所对应的第一数值范围,处理器501具体用于:
根据对象的类型,确定攻击强度所对应的第一数值范围。
针对每个攻击参数,从候选数值中筛选出有效错误数量密度超过预设阈值且连续的候选数值作为目标数值,处理器501具体用于:
针对每个攻击参数,利用故障分析算法筛选出有效错误数量密度超过预设阈值的候选数值作为目标数值。
本申请实施例所提供的进行故障注入攻击方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 一种故障注入攻击方法、装置、电子设备及存储介质
- 一种基于仿真的故障注入攻击方法和装置