掌桥专利:专业的专利平台
掌桥专利
首页

一种智能卡抗侧信道攻击防护方法和装置

文献发布时间:2023-06-19 11:52:33


一种智能卡抗侧信道攻击防护方法和装置

技术领域

本发明涉及智能卡领域,特别涉及一种智能卡抗侧信道攻击防护方法和装置。

背景技术

随着智能卡的日益普及,智能卡的应用已经遍布人们生活的方方面面。智能卡是内嵌有微芯片的塑料卡的通称,智能卡需要通过读写器进行数据交互,在这个过程中可能会受到旁路攻击。旁路攻击是利用智能卡在运算过程中泄漏出的信息进行攻击的一种攻击方法,其中的功耗攻击是目前攻击者常用的攻击方法,以差分功耗分析(侧信道)为代表的该类型攻击手段采集的是智能卡加密运算中芯片的功率消耗信息,然后对功耗信息处理和分析,获取关于破解的有用信息。

相关技术中,一般是在智能卡的芯片层或者智能卡的COS(Chip OperatingSystem,片内操作系统)层增加安全处理方法,防止各类旁路攻击。因为不同的芯片或者不同的COS层实现的防护方式不一样,很难保证所有的重点流程都能满足安全要求,因此需要增加新的安全处理方法。

但是,实现安全防护策略必将付出代码长度、运算时间、RAM(Random AccessMemory,随机存取存储器)空间等方面的开销代价,如果增加过多的安全处理,就会增加应用开发调测的难度,这将影响智能卡的可用性。

发明内容

本发明实施例提供一种智能卡抗侧信道攻击防护方法和装置,以解决相关技术中不同的芯片层或者COS层实现不一致,很难保证所有的重点流程都能满足安全要求,因此需要增加新的安全处理方法,但是如果增加过多的安全处理,就会增加应用开发调测的难度的问题。

第一方面,提供了一种智能卡抗侧信道攻击防护方法,一种智能卡抗侧信道攻击防护方法,其特征在于,其包括以下步骤:根据安全策略顺序标记以及策略因子计算安全策略序号;根据所述安全策略序号调用智能卡的应用层中相应的安全策略;在应用层执行相应的所述安全策略。

一些实施例中,在根据安全策略顺序标记以及策略因子计算安全策略序号之前,还包括:获取所述安全策略顺序标记,其中,所述安全策略顺序标记为随机数。

一些实施例中,所述安全策略包括一种或者多种,在根据所述安全策略序号调用智能卡的应用层中相应的安全策略之前,包括:将一种或者多种所述安全策略按顺序进行编号。

一些实施例中,所述安全策略包括一种或者多种,每一种所述安全策略对应具有一个编号,所述根据所述安全策略序号调用智能卡的应用层中相应的安全策略,包括:当所述安全策略序号与所述安全策略的编号相同时,则调用与所述编号对应的所述安全策略。

一些实施例中,所述根据安全策略顺序标记以及策略因子计算安全策略序号,包括:将所述安全策略顺序标记对所述策略因子取余数得到所述安全策略序号;其中,所述安全策略顺序标记包括至少一个字节,每个字节对所述策略因子取余数得到一个所述安全策略序号,所述策略因子为预设的正整数。

一些实施例中,所述安全策略包括一种或者多种,所述在应用层执行相应的所述安全策略,包括:根据安全策略启用标记判断相应的所述安全策略是否开启,若是,则执行对应的所述安全策略;其中,所述安全策略启用标记包括至少一个bit位,每个bit位对应一种所述安全策略,当所述bit位为1时,对应的所述安全策略处于开启状态;当所述bit位为0时,对应的所述安全策略处于关闭状态。

一些实施例中,所述安全策略包括根据安全策略输入因子,增加随机延时、增加算法运算、对特定地址做写操作或者增加特定的数据操作其中的一种或者多种,其中,所述安全策略输入因子为随机数。

一些实施例中,在应用层执行相应的所述安全策略之后,还包括:执行应用流程;再次执行上述的智能卡抗侧信道攻击防护方法。

第二方面,提供了一种智能卡抗侧信道攻击防护装置,其包括:计算模块,其用于根据安全策略顺序标记以及策略因子计算安全策略序号;调用模块,其用于根据所述安全策略序号调用智能卡的应用层中相应的安全策略;执行模块,其用于在应用层执行相应的所述安全策略。

一些实施例中,所述智能卡抗侧信道攻击防护装置还包括获取模块,其用于获取所述安全策略顺序标记,其中,所述安全策略顺序标记为随机数。

第三方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如上述的智能卡抗侧信道攻击防护方法。

第四方面,一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述的智能卡抗侧信道攻击防护方法。

本发明提供的技术方案带来的有益效果包括:

本发明实施例提供了一种智能卡抗侧信道攻击防护方法和装置,由于智能卡抗侧信道攻击防护方法是根据安全策略顺序标记以及策略因子计算安全策略序号,根据所述安全策略序号调用智能卡的应用层中相应的安全策略,在应用层执行相应的所述安全策略。因此,应用层只需要在重要流程前通过调用安全策略的方法来抵抗侧信道攻击,不用增加过多的安全处理,大大降低了应用层增加安全处理的难度,降低了应用开发调测的难度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种智能卡抗侧信道攻击防护装置的结构示意图;

图2为本发明实施例提供的第一种智能卡抗侧信道攻击防护方法的步骤流程图;

图3为本发明实施例提供的第二种智能卡抗侧信道攻击防护方法的步骤流程图;

图4为本发明实施例提供的一种智能卡抗侧信道攻击防护方法在应用层执行相应的安全策略的步骤流程图;

图5为本发明实施例提供的第三种智能卡抗侧信道攻击防护方法的步骤流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种智能卡抗侧信道攻击防护方法和装置,其能解决不同的芯片层或者COS层实现不一致,很难保证所有的重点流程都能满足安全要求,因此需要增加新的安全处理方法,但是如果增加过多的安全处理,就会增加应用开发调测的难度的问题。

参见图2所示,为本发明实施例提供的一种智能卡抗侧信道攻击防护方法,其可以包括以下步骤:

S201:根据安全策略顺序标记以及策略因子计算安全策略序号。

参见图3和图5所示,在一些实施例中,于S201之前,可以通过程序计数器来校验智能卡是否受到攻击,将输入的上一次程序计数器数值加1,和内部保存的值比较,如果不一致则校验不通过说明存在外部攻击,记录攻击次数,智能卡进入异常状态锁死,如果校验通过则继续步骤S1,先获取随机数,随机数可以由随机数生成器产生,随机数的数值可以作为安全策略顺序标记的数值,安全策略顺序标记以及策略因子计算后得到的安全策略序号也是随机的。

在一些实施例中,所述根据安全策略顺序标记以及策略因子计算安全策略序号,具体可以包括:策略因子数值记为β,β可以是大于0的整数,安全策略顺序标记可以由多个字节组成,每个字节可以是应用层流程之前产生的随机数,每个字节可以通过对β取余数计算得到一个安全策略序号来调用安全策略,安全策略序号记为x,根据取余数的计算公式可以知道x的取值范围是0到β-1,由于安全策略顺序标记的字节是随机获取的随机数,则字节通过对策略因子β取余数计算后得到的值x也是随机的,智能卡发卡方可以通过对β的设置来控制安全策略序号数值x的取值范围,能进一步增加配置安全策略的多样性,有更多的安全策略配置方案去抵抗侧信道攻击,也可以根据实际情况通过设置不同数量的字节,来灵活配置不同的安全策略,当智能卡不需要很强的抵抗侧信道攻击能力时,可以设置少量的字节来调用安全策略用于抵抗侧信道攻击,不会增加应用层开发调测的难度,当智能卡需要很强的抵抗侧信道攻击能力时,可以通过增加字节的数量来增加调用的安全策略数量,加强智能卡抵抗侧信道攻击能力。

S202:根据所述安全策略序号调用应用层安全策略中相应的安全策略。

在一些实施例中,所述安全策略包括一种或者多种,在根据所述安全策略序号调用智能卡的应用层中相应的安全策略之前,可以包括:将一种或者多种所述安全策略按顺序进行编号,所述安全策略可以有α种,将所有种类的安全策略从1开始到α编号,对安全策略编号后方便按照编号调用安全策略用于抵抗侧信道攻击。

在一些实施例中,所述安全策略包括一种或者多种,也即α为1或者大于1,每一种所述安全策略对应具有一个编号,所述根据所述安全策略序号调用智能卡的应用层中相应的安全策略,可以包括:当计算得到的安全策略序号为1到α之中的数时,则调用数字编号和安全策略序号相同的安全策略用于抵抗侧信道攻击,当计算得到的安全策略序号为大于α的数时,则没有对应的安全策略可以调用,这种调用方法简单,能一一对应的调用安全策略,计算出的安全策略序号有可能可以调用安全策略,也有可能不可以调用安全策略,增加了安全策略配置方案的多样性,本实施例中,安全策略顺序标记可以通过对策略因子取余数计算得到安全策略序号来调用安全策略,策略因子数值可以是β,β是大于0的整数,根据取余数的计算公式可以知道安全策略序号的取值范围是0到β-1,智能卡发卡方可以通过对β的设置来控制安全策略序号的取值范围,当β的值大于α时,安全策略序号可以是1至α之中的数,则可以调用编号为1至α之中对应编号的一种安全策略,安全策略序号还可以是大于α小于或等于β-1或等于0的数,则没有对应的安全策略可以调用,则β的值设置得越大,安全策略顺序标记通过对策略因子取余数计算后能调用对应安全策略的概率就越小;当β的值小于或等于α时,安全策略序号可以是0,则没有对应的安全策略可以调用,安全策略序号还可以是1到β-1之中的数,则可以调用编号为1到β-1之中对应编号的一种安全策略,则β的值设置得越小,字节通过取余数计算后能调用对应安全策略的种类就越少,智能卡发卡方可以通过对策略因子数值的设置来控制调用安全策略的种类数量或调用安全策略的概率。

S203:在应用层执行所述安全策略。

参见图4所示,在一些实施例中,所述安全策略包括一种或者多种,所述在应用层执行相应的所述安全策略,可以包括:步骤S301,根据安全策略启用标记判断相应的所述安全策略是否开启,若是,则执行相应的所述安全策略,当安全策略顺序标记包括多个字节,每个字节对策略因子计算得到一个安全策略序号,如果安全策略序号没有对应的安全策略可以调用,则继续查找下一个字节,如果安全策略序号有对应的安全策略可以调用,则根据安全策略启用标记判断相应的所述安全策略是否开启,若开启,则执行相应的所述安全策略,若不开启,则不执行相应的所述安全策略,继续查找下一个字节,直至所有字节执行完毕;安全策略启用标记可以包括至少一个bit位,bit位的数量可以和所述安全策略的数量相同,每个bit位可以对应一种安全策略,可以对每个bit位从1开始编号,当bit位为1时表示对应的安全策略处于开启状态,对应的安全策略调用后可以执行,当bit位为0时表示对应的安全策略处于关闭状态,对应的安全策略调用后不可以执行,可以通过对bit位的设置来控制是否执行调用的安全策略,安全策略启用标记可以在安全条件下由智能卡发卡方设置,便于根据实际情况选择灵活的安全配置方案,这种方法增加防护策略方式的多样性。

参见图4所示,在一些实施例中,在步骤S301之后,还可以包括步骤S302,根据安全策略输入因子来执行调用的所述安全策略,安全策略输入因子的数值是在应用层流程前产生的随机数,随机数可以是随机数生成器产生的,安全策略输入因子的数值可以和安全策略顺序标记的数值相同,也可以不相同,通过安全策略输入因子可以增加安全策略执行的多样性,进一步增加智能卡抗攻击的能力,执行完所有调用的安全策略后,可以生成下一次程序计数器,保存并返回。

在一些实施例中,所述安全策略包括根据安全策略输入因子,增加随机延时、增加算法运算、对特定地址做写操作或者增加特定的数据操作其中的一种或者多种,其中,所述安全策略输入因子为随机数;具体的,所述安全策略包括:

1)应用层增加随机延时

可以在应用层通过引入随机延时,使得加密运算不发生在多条功耗波形图的同一时间点上,增加了对齐操作的难度,继而增加侧信道攻击的难度,随机延时的长度可以是安全策略输入因子的长度。

2)应用层增加算法运算

可以在应用层增加一次算法运算,算法可以是对称算法,还可以是摘要算法,比如DES、3DES、SM1、SM3、SM4、SHA1、SHA256、等算法,其中DES是一种使用密钥加密的块算法,3DES是三重数据加密算法块密码的通称,SM1、SM3、SM4是一种国密算法由国家密码局发布的算法,SHA1、SHA256是由美国国家安全局所规划,并由美国国家规范与技能研究院发布的算法,上述算法使用的密钥和数据可以根据安全策略输入因子计算得来。

3)应用层对特定地址做写操作

可以在应用层对特定地址做一次写入操作,写入的数据和长度可以根据安全策略输入因子计算得来。

4)应用层增加特定的数据操作

可以在应用层增加一次特定的数据拷贝或数据比较操作,数据长度和内容可以根据安全策略输入因子计算得来。

参见图3和图5所示,在一些实施例中,在应用层执行相应的所述安全策略之后,即执行完步骤S2后,可以包括步骤S3执行应用流程,应用流程可以是PIN校验,校验完后保存校验结果,还可以包括步骤S4再次根据应用流程起始时获取的随机数,作为安全策略顺序标记和安全策略输入因子选择本次安全策略的执行顺序和个数,用于抵抗侧信道攻击,最后返回校验结果,通过将重要流程隐藏在随机的各类安全策略之间,增强了智能卡抵抗侧信道攻击的能力。

参见图1所示,为本发明实施例提供的一种智能卡抗侧信道攻击防护装置,可以包括计算模块,调用模块和执行模块,每个模块的详细描述如下:计算模块,其用于根据安全策略顺序标记以及策略因子计算安全策略序号;调用模块,其用于根据所述安全策略序号调用智能卡的应用层中相应的安全策略;执行模块,其用于在应用层执行相应的所述安全策略。

智能卡抗侧信道攻击防护装置用于在应用层实现一个安全控制中心,统一配置和管理应用层安全策略,应用层的安全处理在安全控制中心中进行,应用层只需要在重要流程前后通过智能卡抗侧信道攻击防护装置调用安全策略来抵抗侧信道攻击,通过将重要流程隐藏在随机的各类安全策略之间,增强了智能卡抵抗侧信道攻击的能力,大大降低了应用层增加安全处理的难度,降低了应用开发调测的难度。

参见图1所示,在一些实施例中,所述智能卡抗侧信道攻击防护装置还包括获取模块,其用于获取所述安全策略顺序标记,其中,所述安全策略顺序标记为随机数,还可以获取安全策略输入因子,其安全输入因子也是随机数,随机数可以由随机数生成器产生,安全策略顺序标记和安全策略输入因子可以是相同的随机数也可以是不同的随机数,通过产生随机数的方式使得调用的安全策略也是随机的,进一步增加智能卡的抗侧信道攻击能力,不用增加过多的安全策略去抵抗侧信道攻击,降低应用开发调测的难度。

在一些实施例中,本发明实施例还提供了一种计算机设备,可以包括处理器和存储器,存储器中可以存储有一条程序代码或者多条程序代码,程序代码由处理器加载并执行以实现如上述的智能卡抗侧信道攻击防护方法。

在一些实施例中,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质中可以存储有一条程序代码或者多条程序代码,程序代码由处理器加载并执行以实现如上述的智能卡抗侧信道攻击防护方法。

本发明实施例提供的一种智能卡抗侧信道攻击防护方法和装置的原理为:

由于智能卡抗侧信道攻击防护方法是根据安全策略顺序标记对策略因子取余数计算得到安全策略序号,再根据安全策略序号调用智能卡的应用层中相应的安全策略,在应用层执行相应的所述安全策略用于抵抗侧信道攻击,智能卡抗侧信道攻击防护装置在应用层实现一个安全控制中心,统一配置和管理应用层安全策略,其用于在应用层流程前后调用应用层安全策略用于抵抗侧信道攻击。因此,应用层只需要在重要流程前后调用智能卡抗侧信道攻击防护装置来抵抗侧信道攻击,通过将重要流程隐藏在随机的各类安全策略之间,增强了智能卡抵抗侧信道攻击的能力,大大降低了应用层增加安全处理的难度,降低了应用开发调测的难度。

在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

需要说明的是,在本发明中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种智能卡抗侧信道攻击防护方法和装置
  • 一种智能卡三位一体抗侧信道攻击防护方法和系统
技术分类

06120113083561