专利名称:对一种安全模块进行安全防护的方法和有关的安全模块的制作方法
技术领域:
本发明涉及一种对被设计成和一种信息处理装置配合工作的安全模块进行安全防护的方法,该模块包含有信息处理装置和信息存储装置,并被安排用于执行全部操作包括至少一次敏感操作。一般理解术语《敏感操作》是其执行对以下方面有重大影响的任何操作-一般安全尤其在涉及以检查一个人对于接进某些信息、服务或功能的资格为目的的任何操作方面;-特别涉及的应用尤其在涉及以确定或修改作为一个用户对于这种应用(例如对于一种银行应用,为结清当天的账目余额的一次操作)的基本权利和义务的特征的某些参数为目的的任何操作方面。
术语“安全模块”的沿用,应该或者在其通常的意义上,指在一个通讯或信息网络中用于被一个管理该网络的机构所持有并被存起来由该网络的秘密的和基本的参数如密钥保护起来的一种装置,或者更简单地是指一种被授予各个网络用户并让他们中每个都能与之接通的装置。这后一种装置也是可以保存秘密参数的。安全模块可以具有一种芯片卡类型的便携物品的形状。
本发明要解决的问题是避免在执行过程中发生任何敏感操作的中断,或者至少能控制可能发生的中断的次数。本发明特别针对虚假中断,也不排除偶然的中断。危险在于对所说的全部操作的执行进行安全防护的操作不能执行。对例如用户给出的一个密码的检验程序来说,便涉及对比较结果的写操作,其目的是限制许可的尝试次数。如果作假者在比较后但在将其结果写入之前终于停止了该程序,他可以大量次数地重新进行提出一个新密码的操作,并可能利用对安全模块接线端处存在的电信令的观察得益,这种信令实际上总是受到计算或结果的性质的影响。作假者将大量这种观察的累积和一次统计分析进行处理,或许可以终于识别出用户的真正密码。
规定措施使安全模块能够检查该敏感操作或先前启动的各个敏感操作是否已完全执行,并在否定情况下能停止执行后续的该敏感操作,前述问题按照本发明即被解决。
更准确地说,按照本发明的该方法包括如下步骤-执行每次敏感操作时和在其上方,执行一次第一补充操作程序以激励信令装置,而在所说的敏感操作的下方,执行一次第二补充操作程序以使所说的信令装置去激励;-记录下每次对其已启动敏感操作但未执行、以致信令装置先被激励而后来未去激励的中断尝试,以便确定观察到的中断尝试次数NRS;-规定一个许可的中断尝试次数NRSA;-每次执行敏感操作时和在其上方,将所说的已观察到的中断尝试次数NRS和所说的许可的中断尝试次数NRSA进行比较;以及-在所说的已观察到的中断尝试次数NRS大于所说的许可的中断尝试次数NRSA时,停止敏感操作的执行。
本发明也涉及一种用于实施此方法的安全模块。
在后面根据附图对较好的但并非限定性的一个实施方式的说明过程中,本发明的其他细节和优点都可以得到清楚的了解。附图中
图1为本发明被指定用于的、和一个信息处理装置配合工作的一个安全模块的原理简图;图2为实现一次敏感操作的流程图;而图3a至3c和图4a、4b表示在一个或多个敏感操作的执行过程中,一个程序断点计数器CRS在不同时刻的状态。
图1上表示的公知的信息处理装置1本身包含一个微处理器2,后者联接有一个存储器ROM3和一个存储器RAM4,包括有和一个安全模块8配合工作的装置5和一个使信息处理装置可以和另一个类似装置或者直接或者通过一个通讯网络进行联系的传输接口7。
装置1还可以装配上存储设备,如软盘或可换或不可换的磁盘、数据输入装置(如键盘和/或鼠标器)和显示装置。这些不同的装置未在图1上表示出来。
此信息处理装置可以由任何在私人位置或公用位置上安装的、能提供信息管理或各种便利或服务的装置的信息仪器构成。此仪器为固定安装或可携带的。尤其是这也可以是一种电信仪器。
另外,安全模块8包括信息处理装置9、一个相关的非易失性存储器10和与此信息处理装置配合工作的装置13。此模块被设置成可在存储器10中划定一个机密区11,信息一旦记入其中,从模块外面便无法访问,而只能由处理装置9进行存取;另外还划出一个空白区12,可以从模块外部访问进行信息的读和/或写。存储器的每个区可以包含一个不可擦除的ROM部分和一个EPROM、EEPROM的、或由“快擦写”型的RAM存储器构成的可以擦除的部分,“快擦写”型的RAM存储器具有一个EEPROM存储器的特性同时又有和一个通常的RAM的相同的存取时间。另外,还备有一个未表示出的易失性RAM存储器。
作为安全模块8,尤其可以将一种以申请人名义的美国专利n°4,382,279中所描述的那种带有非易失性的自动可编程序的存储器的微处理器。如该专利第一页第5至17行所指出的,该存储器的自动可编程序特性对应于位于此存储器中的一个程序fi将同样位于此存储器中的另一个程序fj改成程序gj的可能性。虽然用于实现这种自动编程的装置可以因设计信息处理装置9使用的技术而不同,还是应注意到,在这种处理装置由有一个关联的非易失性的存储器的微处理器构成的情况下,并且按照上述专利,这种装置可以包括-若干和该存储器相关联的数据和地址的缓冲存储器;-一个写入该存储器的程序,被装入存储器中且特别包括有许可在一个足够长的时间内一方面保持该存储器的程序编制的电压,另一方面保持住待写的数据及其地址的指令。不过此写入程序仍然可以由一个有逻辑电路的自动写入装置来代替。
在一种变化形式中,该安全模块8的微处理器被植入半导体芯片中的逻辑电路所代替或至少进行补充。事实上,这种电路依靠有线的和非微编程序的电子技术尤其能适于对真伪辩别和签字进行估算。它们尤其可以是ASIC(专用集成电路)类型的。作为例子可以举出SIEMENS公司的标号为SLE4436的商品部件和SGS-THOMSON公司标号为ST1335的商品部件。
安全模块8最好被设计成在一个单一芯片上的单片形式。
在上述具有非易失性存储器的自动可编程序微处理器的变动方案中,安全模块的安全防护性能是由于它位于一个不受侵犯的区域内而达到的。
上述信令装置至少包含一个程序断点计数器CRS,用于对敏感操作执行过程中发生的程序中断,也就是说对该操作一步接一步的执行中发生的中断进行计数。此计数器并入安全模块8的信息处理装置9。按照图2的该方法应该区分开两个参考数,即一个观察到的程序断点数NRS和一个许可的程序断点数NRSA,第一个数对应于自一确定时刻一个确定的敏感操作的执行当中出现的程序断点的次数,而第二个数对应于可以出现但不会引起安全模块停顿的程序断点的最高次数。通常,程序断点数NRS开始计数的时刻对应于安全模块第一次被所指定用户使用时,次数NRS从此时刻直至确定的日期对出现的全部程序断点进行记数。至于许可的程序断点数NRSA,则由主管部门确定,以便对不仅由虚假动作、而且还由于安全模块的功能在其整个寿命期间可能自动发生的偏差所引起的程序断点进行计数。当然,NRSA应该选得很小,否则造假者容易进行若干次尝试以图侵犯安全模块,例如,NRSA将小于20,特别地,可小于10。
在执行敏感操作的流程图的入口处,第一步骤21是检查程序断点数NRS是否确实小于或等于许可的程序断点数NRSA。在否定情况下,便一直进行到为使该敏感操作的执行停止而引起的一个程序断点。此断点或者可以是决定性地阻止以后对此敏感操作的任何执行,甚至可不管以下是什么样的操作而阻止以后安全模块的任何运行,或者可以是暂时性的,如果作了规定,即在程序断点数NRS被一个授权的主管部门重新初始化后该敏感操作在将来可以重新执行。相反,如果程序断点数NRS确实小于或等于许可的程序断点数NRSA,则一个第二步骤22便将程序断点计数器CRS增加1。下面的阶段是执行敏感操作本身。如果此操作为全面展开,也就是说,没有一次偶然的或虚假的程序断点出现,则程序断点计数器CRS在步骤24减少1,以便重新获得该敏感操作开始前它曾经有的数值。
在变化形式下,程序断点数CRS的数值检验操作21可在程序断点计数器CRS增加1个单位的操作22以后进行。
图3a至图3c表示程序断点计数器CRS在一次要保护的敏感操作执行的上方(upstream)所呈现出的连续状态。此计数器由在几个(至少三个)位置处循环的一个区组成,每个位置至少由一个存储器单元实现。此例子中,位置数等于8,分别从1至8编号。在每个位置中,存储有程序断点数NRS的一个数值,除去在因为不包含数值而未被动用的位置(这里是位置5)中。所有空白的位置都被标上符号φ。
图3a表示图2的流程图上步骤22上方的计数器的状态。位于空白位置上面的位置(这里是位置4)处存有一个对应于计数器的实际数值的当前值NRS,而在3至1然后8至6这6个位置处分别储存有按时间接连取的不同值,即位置3处为NRS+1、位置2处为NRS等,直至时间最早的位置6处为NRS-2,这些位置对应于一定数目的连续的敏感操作。
可以看到,2至4的位置对应于以下事件-位置2图2的步骤22之前计数器的状态;-位置3紧随步骤22之后的计数器状态(增加1个单位);-位置4紧随步骤24之后的计数器状态(减少1个单位),这表明在此次敏感操作的执行中没有出现过一次故意的或偶然发生的程序断点。
相反可以看到,位置7和8对应于如下相对于敏感操作的前面一次执行的事件-位置7图2的步骤22之前计数器的状态;-位置8紧随步骤22之后的计数器状态(增加1个单位);-知道随后的位置1不符合相对于位置8减1个单位(即NRS-1),从此必得出结论,即一次故意的或偶然的程序断点的确在敏感操作的这次执行期间出现。以致通常预料会有的步骤24未被执行。总之,因为计数器的数值没有改变,没有对此值进行一次新的记录。
至于位置6,它对应于在敏感操作的还要更早的一次执行期间、计数器在紧挨步骤24之前的状态。事实上,其中包含的数值对应于位置7的数值增加1个单位。
回到执行过程中的敏感操作,图3b表示图2的流程方框图的步骤22执行的初期阶段断点计数器的状态。安全模块的信息处理装置9进行了位于空白位置5下面的位置6的一次擦除,因而确定了一个新的空白位置。在图3c上,信息处理装置9执行图2的步骤22,同时将位置4的当前值NRS加1个单位并将结果NRS+1储存在后面的位置5中。
图4a和4b表示在图2的敏感操作执行23的下方(downstream)的程序断点计数器CRS所具有的连续状态。图4a表示在图2的步骤24的执行初期阶段断点计数器的状态。安全模块的信息处理装置9进行对位于新的空白位置6下面的位置7的一次擦除。在图4b上,信息处理装置9执行图2的步骤24,同时将位置5的当前值NRS+1减去1个单位并将结果NRS储存在后面的位置6中。
应该指出,在图2至4b的例子中,信令功能最好通过唯一的一个装置程序断点计数器CRS和程序中断计数的功能交织。
计数器递增和递减的步骤21、22和24最好设计为由敏感操作本身构成的主程序的一些子程序。这种情况下,计数器的一个标记或地址被引入作为在调用子程序时参数。这种运行方式为操作程序的实施增加了灵活性。
在希望对不同的且指定要彼此独立执行的多个敏感操作进行安全保护的情况,可以规定程序断点计数器CRS和操作一样多。每个计数器检查确定的一个敏感操作的执行是否良好。尽管如此,按照一种较好的方式,只规定一个公共计数器,在执行任何一个敏感操作时计数可以递增,原则上也可以递减。这一观察对于计数器被换成一个标志位的情况也适用。
本发明很担心的是所述的安全防护过程不能使安全模块的运行放慢或停止下来。这是因为在其运行期间始终可以看到不仅和敏感操作、而且和一般操作有关的不可避免的偶然中断。这里所谓的一般操作,如和涉及的应用(财务应用、服务提供等)有关的那些,其不执行一般既不会影响安全防护,也不会影响用户在涉及的应用中的基本权利和义务。事实上,大量这样防护的操作有因此而使观察到的偶然断点数增加的危险许可的程序断点数NRSA会更快达到,因而使安全模块的部分或全部停止也更快发生。这一引人注意的结果是按照本发明只对敏感操作确实对应的操作运用所述的安全防护过程而得到的。
本发明的一个改进是许可的中断尝试数NRSA包括一个每次当确定次数的敏感操作已启动时随机而变的数。这样,数目NRSA以一个确定的频率变动,但取不可预见的连续值,这有助于干扰对安全模块的性能的任何作弊观察。这个随机数可以在安全模块中按照美国专利N°5,177,790或5,365,466中描述的逻辑方法中的一个方便地产生出来。按照一个变动方案,许可的中断尝试数NRSA由一个固定数加一个随机数组成。
权利要求
1.对被设计和一种信息处理装置(1)配合工作的安全模块(8)进行安全防护的方法,该模块包含有信息处理装置(9、2)和信息存储装置(10;3、4),并被安排执行全部操作,其中至少包括一次敏感操作(23),其特征在于,该方法包括如下步骤-每次执行敏感操作时和在其上方,执行一次第一补充操作程序(22),以激励信令装置,而在所说的敏感操作的下方,执行一次第二补充操作程序(24),以使所说的信令装置去激励;-记录下每次对其已启动敏感操作但未执行、以致信令装置先被激励而后来未去激励的中断尝试,以便确定观察到的中断尝试次数NRS;-规定一个许可的中断尝试次数NRSA;-每次执行敏感操作时和在其上方,将所说的观察到的中断尝试次数NRS和所说的许可的中断尝试次数NRSA进行比较;以及-在所说的观察到的中断尝试次数NRS大于所说的许可的中断尝试次数NRSA时,停止敏感操作的执行。
2.按照权利要求1的方法,其中为了记录下每个中断尝试,在每次执行该敏感操作时及在其上方将计数器增加1个单位,而在敏感操作已执行完时在敏感操作下方将计数器减1个单位。
3.按照权利要求1的方法,其中所说的许可的中断尝试数NRSA包括一个每次当该敏感操作(33)被启动预定次数时变化的随机数。
4.按照权利要求1的方法,其中该安全模块(8)被安排用于执行多个不同的敏感操作(33),并通过同样的观察到的中断尝试数NRS记录下和这些敏感操作中的任何一个敏感操作有关的每个中断尝试。
5.被设计和一种信息处理装置(1)配合工作并包含有信息处理装置(9、2)和信息存储装置(10;3、4),并被安排执行一操作指令集,其中至少包括一次敏感操作(23)的安全模块(8),其特征在于,它包含有-信令装置,被安排用于表现出在一次要保护的敏感操作的上方该装置已被激励的一种状态,以及如果该敏感操作已执行而在其下方信令装置被去激励的另一种状态;-计数装置,用于记录下对其已启动敏感操作但未执行、以致该信令装置先被激励而后来未去激励的每次中断尝试,以便确定观察到的中断尝试次数NRS,所说的信息存储装置(10;3、4)储存有一个许可的中断尝试次数NRSA;-比较装置,每次执行该敏感操作时和在其上方,将所说的观察到的中断尝试次数NRS和所说的许可的中断尝试次数NRSA进行比较;以及-停止装置,在所说的观察到的中断尝试次数NRS大于所说的许可的中断尝试次数NRSA时,停止敏感操作的执行。
6.按照权利要求5的安全模块,其中所说的信令装置和计数装置包含有一个计数器,可用于在每次执行该敏感操作和在其上方时被加上1个单位,而在该敏感操作已执行的情况下在该敏感操作的下方被减去1个单位。
全文摘要
本发明涉及对一种指定配合一个信息处理装置(1)工作的安全模块(8)进行安全防护的方法。该模块被用于执行至少包括一个敏感操作(23)的一套操作。按照本发明,此方法包括如下步骤:在每次执行敏感操作时并在其上方,执行一个第一补充操作程序(22),用于激励信令装置;而在所说的敏感操作的下方,执行一个第二补充操作程序(24),用于将所说的信令装置去激励;在每次执行敏感操作时并在所说的第一补充操作程序(22)的上方,检查该信令装置是否已去激励;在信令装置被激励的情况下,停止执行该敏感操作。
文档编号G06F21/54GK1212770SQ97192699
公开日1999年3月31日 申请日期1997年12月23日 优先权日1996年12月31日
发明者米歇尔·哈泽德 申请人:布尔Cp8公司