防止密码代币/卡安全强制执行操作受到攻击的方法

文档序号:6656289阅读:190来源:国知局
专利名称:防止密码代币/卡安全强制执行操作受到攻击的方法
技术领域
本发明涉及一种用来侦查和反制对密码代币或集成电路卡所执行的安全强制执行操作可能攻击的方法。
本发明还涉及一种能实施上述方法的代币或集成电路卡结构,它包括用来侦查和反制对安全强制执行操作可能攻击的装置,并包括一个和记忆部份相连或埋于其中的微控制器。
背景技术
如在本专业技术领域中所熟知的,安全代币是以集成电路卡配上一个安全软件而得到的,并专门设计成能保存安全数据和信息。安全代币也可以有可编程语言,例如Java,以便它们能操作各种程序。
安全或密码代币或卡包括一个受保护的储存区和一个不受保护的储存区。该受保护的储存区只能使用一个在该安全代币产品上的个人身份数字代码来进入,但该代码是可以由使用者改变的。
该密码代币通常被用来储存一个秘密关键码,并使用该秘密关键码在某个从外部信号源收到的输入数据上来计算一个密码运算法则。
该计算的结果被送回该外部信号源(外置词)以便它能使用这个计算来完成一个鉴定程序。
可以清楚地懂得,该鉴定程序对于密码代币或卡来说是安全的一个薄弱环节,因为当进行该程序时可以实施一个突击而接触到储存在该代币或卡中的安全信息。先有技术已经提供了用于反突击的各种方法以对付对密码代币和聪明卡所储存的安全信息(例如该代币在安全操作中所使用的该秘密关键码)的可能的攻击,很多的技术已被开发及获得了专利。
先有技术着重于功率分析攻击和电磁分析攻击的反制措施,尝试使基于分析当处理敏感信息时的功率和/或电磁辐射。
某些反制措施既能在运算法则码中实施,也能在硬件层面上实施,并主要是阻止该敏感信息在功率跟踪和电磁辐射中被观察到。
典型地这些反制措施包括在被该卡吸收的功率中加入噪音,或在代码执行中引入随机的延迟。该随机的延迟减少不同的跟踪之间的相互关系,使得攻击更为困难。
另外的抵消攻击的反制措施都基于在运行时的随机转变来屏蔽该敏感信息。
然而,这些技术都是专门设计来保护该运算法则的实施,但是它们并不对该运算法则的基础逻辑有任何保护。换句话说,无论该运算法则多么地好及复杂,但是假以时日,它会变得薄弱因为攻击者能获得的计算能力在日益加强而且该运算法则被各攻击者研究后变得众所周知。
此外,该些实施于该运算法则中的对抗功率和电磁分析的反制措施实施起来都有一定的局限性,不能同样效果地被用于所有的密码运算法则。
另一个试图减少对密码代币或聪明卡攻击风险的反制措施被众所周知为“认证柜台”。
认证柜台尝试限止系统中在整个系统寿命期间能执行的安全强制执行操作的数目。它对旨于在逻辑上和数学上突破密码的攻击以及留意实施的攻击编址。
然而,这个反制措施在某些场合不再有效因为攻击该系统的执行安全程序的数目明显地少于该系统整个寿命期间执行的数目。
另一个解决方案在美国专利US 4,879,645中公开,它涉及一个带有高度安全储存程序的数据处理装置。
上述文件教导我们侦查一个对于该密码代币或卡的输入指令,计下这个输入指令被执行的次数;然而,这篇文件并没有考虑到有可能在这个输入指令上加上一个衡量值(ponder value)。
另外的增进安全程序的技术都基于每当须要密码工作时使用相当的话路密钥。
即使这个技术和上述的先有技术相比可以被认为更有效,可是它实施起来非常复杂,这是因为该密码代币以及另外的牵涉到安全操作储存的初级线路部份不仅是一个公共的屏蔽关键码,也是一个必须用来操作话路密钥的常态,那是必须时刻同步的。
本发明的技术问题是提供一个有效的方法用于侦查和反制对于密码代币或聪明卡执行的安全强制执行操作可能的攻击,该密码代币或聪明卡具有能独立于逻辑的实施和确实保护的特征,该运算法则基于该逻辑,不仅是基于该实施。
本发明的另一个目的是保护基于密码操作的鉴定程序,在密码操作中该鉴定反应是在该密码代币外执行的。
本发明的再一个目的是强制执行有关密码代币的安全操作时,维持在一个合理的复杂程度上。
本发明的还有一个目的是提供一种方法它能够对可能的攻击反应,保障安全而不须对于该系统在寿命期间的敏感操作数目考虑静态的阀值。这方法将维持它的安全性即使攻击者改进了他的技术使攻击该系统的执行安全程序的数目少于一个阀值。
本发明的还有一个目的是提供一种方法它能够以一种动态的和独立实施的方式侦查一个对安全强制执行操作潜在的攻击。

发明内容
本发明所基于的解决方案是为该代币或卡提供一个攻击侦查器它能发出一个信号给主操作系统,告之潜在攻击的情况。
本发明的第一实施例提供一种方法它包括下列步骤侦查一个给该密码代币的输入指令;给该输入指令配上一个衡量值;更新一个计算值(counter value);把该计算值和基准阀值作比较;根据比较阶段的结果提供一个警告信号输出;其中该计算值根据该输入指令的执行顺序动态地改变,该计算值根据接合到该执行了的输入指令的衡量值被更新。
本发明的另一个实施例为一个代币提供了一个集成电路卡或一个电子埋入系统,它们被做成能实施本发明的方法并包括用来侦查和反制对安全强制执行操作的可能攻击的装置,该装置包括一个带有相连的或埋入的记忆部份的微控制器,其特征在于该装置包括一个攻击侦查器它包括一个衡量器(ponder over)用以把一个衡量值配合到该代币或卡的一个输入指令上,一个计算器连接在该输出衡量器以便储存一个计算值,一个阀值基准限定一个比较值,以及一个比较器比较该计算值和该阀值并根据该比较的结果提供一个输出警告信号。
根据本发明的方法和集成电路卡的特征和优点通过下面参照附图对于一个不是作为限制的实施例的说明将会变得清楚。


图1是一个概要和简化了的视图显示配备一个基于本发明方法的攻击侦查器的一个密码代币或一张聪明卡系统;图2是图1中该系统的一部份的一个更详细的概要图;图3是一个流程图显示根据本发明的方法的各步骤。
具体实施例方式
参照各附图,它们显示了按照本发明而实现的一个密码代币或一张集成电路卡系统,它被全面地以及概括地用标号1来表示。
该集成电路卡被用作一个插入件插入一个电子装置主机,该主机没有画出,它具有传统的型式例如一个移动电话装置。
该集成电路卡1可以具有普通用于移动电话装置的订户身份模块卡那样的格式和外形。然而,并不限止卡1可以具有特殊用途所须要的不同的外形或格式。
该集成电路卡1包括一个微控制器2,它可被认为是主要的处理装置,并有传统的记忆部份完全地连接到该微控制器2。
为了实现本发明这一目的,连接到该微控制器2的该记忆部份的质量和组成是没有关系的。然而,为了提供对本系统的全面的评述,我们可以考虑该代币或卡1是一个整体件或配备有一个第一只读记忆部份,一个第二或延伸的永久存储器部份和至少一个附加的记忆部份的埋入系统。
该第一记忆部份是一个大体上的只读存储器内存,包括程序,即软件应用程序,屏蔽在该只读存储器上并限定该卡的功能性。
该第二和延伸记忆部份是一个永久存储器可以是电可擦除只读存储器或具有或非结构的闪卡(Flash)的一个电可擦除的记忆部份,包括子程序、延伸的指令和/或用户化数据。
该附加的记忆部份可以有和该第一只读记忆记忆部份和该延伸的记忆部份独立的结构和功能性,并可以是一个读写存储器例如是一个易失数据的随机存储器。
正如一个可选用的方案,即使该强加的记忆部份可以是一个电可擦除只读存储器或另一个永久存储器装置。
有利的是,根据本发明,该代币或卡1包括一个攻击侦查器3它可以被做成一个硬件线路部份或一个软件运算法则被储存在上面所述的任一记忆部份之中。
更特别要注意的是,该攻击侦查器3被牵涉到该代币1的密码操作中,并包括一个用来接收输入指令(b)的接口4,以及一个用来提供输出信号(c)作为回答的输出接口5。
该攻击侦查器3包括下列宏组件一个衡量器6接收该输入指令和向各输入指令分配一个衡量值;一个计算器7连接到衡量器6的该输出用来增加或减少一个存储的计算值;一个阀值基准8为一个比较阶段限定一个阀值;一个比较器9用来比较储存在该计数器7中的数值和该阀值,如果该计数器比该阀值低就提供一个输出信号来提高输出电压。
更尤其是该计算值不涉及特定的输入指令的执行,但是每次当一个输入指令被执行时它就增加或减少。这样,是否到达该阀值基准8由输入指令的执行顺序来决定;换句话说,该阀值基准不是严格地涉及执行特定的输入指令的次数,但是它是由所有的输入指令的执行次数来决定的。该微控制器2它通常处理该输入数据和提供该输出,接收该比较器9的输出。正如可选择的那样,代币或卡1的操作系统从一个运作中的攻击侦查子程序接收一个警告信号。
为了全面地了解本发明的方法,应注意实施在密码代币和聪明卡上的最常用的对密码运算法则的攻击技术都是基于反复地执行对卡的运算法则进行阅读以便熟悉对攻击者有用的信息。
有用的信息例如密文,纯文本和密文的耦合或有关于攻击种类的物理量值。
成功地完成一次攻击所须的执行次数因运算法则、它的实施和使用仪器或对于攻击者的开放程度而不同,但是典型地来说它是相当大的,要超过10,000次执行。
相隔的两次运算法则执行之间的时间对于决定一次攻击的总体复杂程度来说也是一个很重要的因素;事实上一次攻击能引致成功必须攻击者合理的判断时间。
对于逻辑攻击例如已知的/选择的纯文本攻击,和适应地选择的纯文本攻击,以及功率分析和电磁分析攻击来说,这都是真实的。
有利的是,按照本发明并入该代币或卡1的该攻击侦查器能警告该微控制器2将有一个潜在的攻击,这是当基于密码运算法则的该安全程序的执行,对于典型的工作方案来说被执行得太频繁时,就显示一个警告信号。
这方法按下列步骤实施;侦查一个给该密码代币的输入指令;对该输入指令分配一个衡量值;更新一个计算值;把该计算值和一个基准阀值作比较;按照比较阶段的结果提供一个警告信号输出。
换句话说,该计算值根据该输入指令的执行顺序动态地变化,该计算值按照连接到该执行了的输入指令的该衡量值而被更新。
该系统可以这样地设定成相应的反制,例如减慢该密码运算法则的执行,以便加大攻击成功所须的时间,这可阻吓攻击者;阻塞执行中的该密码运算法则;减弱卡片的声音;送回错误的结果或其它方法来迷惑攻击者。
按照本发明的方法,衡量器6分配一个衡量值给一个输入指令;例如,该衡量方块6可以被做成有一个查阅表格它包括一个衡量值相对于各个不同种类的输入指令。
接下来是一个衡量的例子以便明了查阅表格。假设该卡的输入接受三种不同的应用协议数据单元(ADPU)APDU#1、APDU#2、APDU#3。假设其中的APDU#2和安全有关因为例如会触发密码运算法则的执行。又假设该APDU#2比其它两个APDU更频繁。该查阅表格能像表1那样地被组成。该衡量值由查阅该表中该输入的APDU来显示。
该衡量值的分配策略可以总结如下须要被分配的衡量值应考虑到在正常的工作条件下有关的APDU的安全频率以及其它的APDU的频率。衡量值必须在该攻击侦查器侦查到该有关安全的APDU的频率对于其它的APDU超过了正常工作条件下的频率时,发出一个警告。和安全有关的APDU的衡量值必须有一个正值;和安全无关的APDU的衡量值必须有一个负值。此外该衡量值必须和APDU的频率成反比APDU出现在正常工作条件的频率越高,它的衡量值就应该越低。


表1-衡量表格让我们考虑由该表1的查阅表格来实施的衡量。让我们假设在正常工作条件下的APDU顺序如下APDU#3,APDU#1,APDU#1,APDU#1,APDU#2;再假设该计算值有一个初始值20,以及该阀值被设定在25。表2和表3勾画出该衡量的工作途径。

表2-正常工作顺序;攻击侦查器不发出警告


表3-不正常工作顺序;攻击侦查器发出警告图2显示按照本发明的方法该计算值更新的详细及概略视图。特别是一个普通的『输入指令X』在被执行之前,被衡量器6所处理。衡量器6通过一个如表5中所示的查阅表格侦查到分配给该输入指令X的衡量值。如果该衡量器6,例如,侦查到该被执行的指令是输入指令“i”,就增大该计算值到它的实际值,即该衡量值“Pi”,其中的i代表所有可能的输入指令。在实施软件时,也可以选择该衡量阶段可以通过属于”IF”种类的位于一个特定子程序中的测试指令级联来获得,这样,按照一个“IF”测试的结果分配一个预定的衡量值。
要特别注意的是该衡量值可以在处理一个输入指令之后变化。换句话说,在该查阅表格中的该衡量值或在该子程序中的该预定的衡量值可以被动态地改变来增加该代币或卡1对抗一个反复攻击的反应力。
该计数器7是用来加大或减少所储存的计算值。此外,该计数器7可以按照该分配到的衡量值通过一个预定的或可变的整数值来加大。
该阀值基准8限定一个用以比较的阀值;这个阀值在接收到一个第一次警告信号后可以被更新,所以下一次的或第二次的攻击试图就可以更快地被侦查出来。最后,该比较器9把该计算值和该阀值进行比较如果该计算值小于该阀值就立即提高输出电压。
一个对本发明的结构或程序可能的简化方案将须要一个简单的计计算器来保持及储存一个预定值,该预定值是按照该考虑方块6或子程序的输出来决定的。
当这样一个计算器到达“0”值时,该警告信号将会自动地产生。
行内的熟手将会觉得这个可能的简化实施例只是实施以前讲过的实施例的一种选用方案,因为该简化了的和减少的计算值的最后的“0”值可以被认为相应于该基准阀值,而一个比较被认为正是当该计算值到达“0”值时、或在结束时、或在重设值时做出的。
在这方面,在刚开始时该计数器被初始于一个适当的初始值,该初始值可以例如通过典型工作方案的实验结果得到。
该计数器9能把该计算值储存在该卡的一个永久记忆部份从而保持它即使断去电源,并防止由于断电而引起的问题。
该攻击侦查器分析输入指令(如果是聪明卡的场合就是APDU)在被该微控制器处理之前用外部词(external word)送到该密码代币。
特别是该被称为衡量的方块6分析该输入指令并分配它一个衡量值以便用来更新该计算值。这个值按照设计在衡量方块6中的衡量策略,可以是正值或负值(例如在已公开了的可选用的实施例中),这样能增加或减少该计数器的值。
特别是当负值被分配到所有的安全强制执行操作中时,它须要一个密码运算法则。正如已经说过的,该衡量可以是基于一种组合逻辑并例如通过查阅表格来实施,或者可以基于一种更复杂的连续逻辑网络或运算法则。
在订户身份模块卡的场合其中的该攻击侦查器可以被用来抵消该卡的被仿制,增加网络鉴定运算法则对攻击的保护,根据实验结果适当地选出一个负值可以被分配到APDU RUN_GSM_Algorithm(欧制数字移动电话系统900M)以鉴定该卡。
适当的正值必须被分配到所有其余的输入APDU。
该计算值被经常地和由该微控制器设定的一个阀值进行比较。该阀值由实际情况来定,并可能小于该计数器的初始值。
当该计算值降到该阀值以下时,该系统的攻击侦查器发出一个潜在攻击警告,使该系统警惕潜在攻击并设定一个反应。该反应可以是延迟下一次的密码计算操作以便增长成功地攻击的时间,例如恢复一个延迟子程序。
图3显示一个流程图代表按照本发明方法的步骤;特别是标号S1表示对输入指令i的阅读,标号S2是分配相应的衡量值。
该计算值被更新于S3,即把该输入指令i的衡量值加到它的实际值上去;如果达到阀值的话,该新的计算值在C1中和该阀值基准作比较后造成集成电路卡的堵塞,如S5中所示。否则,如果没有达到该阀值,该输入指令可以在S4中被执行。
一个可供选择的响应可以利用一个通过一个随机号码发生器得出一个错误的输出值来混淆该攻击者。
另一个可能的可选方案可以是阻塞该代币或者一个更复杂的反制策略。
如果和先有技术相比,本发明的明显着的优点是既保护了实施,又保护了该运算法则的该逻辑。
此外本方法是独立于该实施并能被用于所有的运算法则和安全程序。
本发明对远程通讯操作者的订户身份模块的复制问题提供了一个简易的解决方案,该些操作者使用老式的和易攻破的密码运算法则,又不愿化钱来换新的具有更大抵抗力的鉴定密码运算法则的网络鉴定系统。
有利的是,本发明是基于一种用来侦查和反制可能的攻击的方法,把一个衡量值联系到各个输入指令,把一个计算值联系到该输入指令的执行顺序。这样使一个可能的反应就按照该些输入指令的执行顺序产生了,考虑到一个用于输入指令的高值的衡量值须要一个高度的安全性,一个用于输入指令的低的衡量值,甚至是一个负值,被认为对于该集成电路卡的安全性不构成危险。
这个方法是动态的因为一个反应的产生并不依靠一个输入指令被执行的次数,而是依靠当该集成电路激活后所产生的输入指令的全部执行次数。这样,本方法防止由于可进入的用户的差错产生一个不希望有的反应,同时,当实施了的那套输入指令存疑时提供一个正确的反应。
本发明并不限止安全程序的执行总数,即使在不正常的滥用这程序时也能防止安全系统的崩溃;本发明不是基于定时措施所以可用于所有不具有一个内置、连贯和连续的时间的工作基准简单的系统例如聪明卡。
最后本发明可以分拆开来应用在硬件层次上。
以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限制性的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其进行许多改变,修改,甚至等效,但都将落入本发明的保护范围内。
权利要求
1.一种防止密码代币/卡安全强制执行操作受到攻击的方法,其特征在于,用来侦查和反制对由密码代币或集成电路卡启动的安全强制执行操作可能的攻击,包括下列步骤侦查一个给该密码代币或卡的输入指令;分配一个衡量值给这个输入指令;更新一个计算值;把该计算值和一个基准阀值作比较;根据比较阶段的结果提供一个警告信号输出;其中该计算值根据该输入指令的执行顺序动态地变化,该计算值根据联系到该执行了的该些输入指令的该些衡量值被更新。
2.如权利要求1中的方法,其特征在于,若该计算值小于该阀值,则该警告信号用一个输出电压的提升来表示。
3.如权利要求1中的方法,其特征在于,该计算值用一个适当的初始值来初始化,该初始值通过在该代币或卡的一个典型的工作方案做的实验结果而获得的。
4.如权利要求1中的方法,其特征在于,送往该密码代币或卡的该些输入指令都在它们被该代币和卡的一个微控制器处理前就被侦查到了。
5.如权利要求1中的方法,其特征在于,该计算值是经常地和该阀值作比较的。
6.如权利要求1中的方法,其特征在于,该更新了的计算值根据衡量策略是正值或负值以便使该计算器的值增大或减少。
7.如权利要求1中的方法,其特征在于,该基准阀值是该计算器的结束值或重设值。
8.一种代币或集成电路卡(1)包括用来侦查和反制对安全强制执行操作可能的攻击的装置,该装置包括一个连接或埋入记忆部份的微控制器(2),本发明的特征在于,该装置包括一个攻击侦查器(3),该侦查器(3)包括一个用来把一个衡量值分配到该代币或卡的一个输入指令的衡量器(6);一个连接到该衡量器(6)的输出端以便储存一个计算值的计算器(7);一个阀值基准(8)用来限定一个比较值;一个比较器(9)用来把该计算值和该阀值作比较并根据比较的结果提供一个警告信号输出。
9.如权利要求8中的代币或集成电路卡,其特征在于,该输出的警告信号被输向该微控制器(2)来延迟下一个密码计算操作,用错误的输出值来混淆一个攻击者。
10.如权利要求8中的代币或集成电路卡,其特征在于,该计算值被储存在一个连接该微控制器的永久记忆部份中。
11.如权利要求8中的代币或集成电路卡,其特征在于,该计算器用一个适当的初始值来初始化,该初始值由该代币或卡在一个典型工作方案下的一系列实验结果中得出。
12.如权利要求8中的代币或集成电路卡,其特征在于,该衡量器(6)是一个查阅表格。
13.如权利要求12中的代币或集成电路卡,其特征在于,该查阅表格的各种数值都在处理一个输入指令后动态地被更新。
全文摘要
本发明限定一种新的保护机制,对由密码代币和聪明卡所实行的安全强制执行操作的攻撃进行反制。这是基于一个攻击侦查器它把潜在攻击状态信号送到主要的操作系统。本发明对远程通讯操作者的订户身份模块的复制问题提供一个简易的解决方案,该些操作者使用旧式的和易被攻破的密码运算法则例如COMP-128(Nokia手机中的软件)并不想花钱换新的具有更大抵抗力的鉴定密码运算法则的网络鉴定系统。这是新兴市场远程通讯操作者的典型要求,因为他们不使用最新的技术。
文档编号G06F21/55GK101031857SQ200580021261
公开日2007年9月5日 申请日期2005年6月30日 优先权日2004年6月30日
发明者保罗·迪奥里奥 申请人:因卡尔德公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1