安全模块及定制该种安全模块的方法

文档序号:6656335阅读:167来源:国知局
专利名称:安全模块及定制该种安全模块的方法
技术领域
本发明涉及保密的安全模块的领域,该安全模块包含至少一个微 处理器和程序存储器。本发明也涉及该安全模块的个性化方法和其内 容已被公开的安全模块的识别方法。
背景技术
这些安全模块用于激活密码操作的系统,并且以单块
(mono-block)的形式交付。它们被制造在单硅芯片上,该单硅芯片要 么是组装在支撑物上并嵌入在树脂内,要么是由覆盖各个不同单元、 在遭受意图侵犯的情况下起到保险丝的作用的薄片来保护。
这些安全模块具有特别包含启动程序以及一个或多个操作程序的 程序存储器。在处理器被通电或每次被重置时执行启动程序。该启动 程序被储存在ROM类型的存储器内,也就是说只能对其进行只读存 取。
操作程序存储于可重写存储器内,通常是EEPROM、 NVRAM或 Flash类型。
一旦启动程序完成了其验证操作,就启动位于预定地址处的操作 程序的执行。
用于发现安全模块的存储器内容的一种已知的攻击是搜寻安全漏 洞,例如使得处理器可被控制的内存泄漏。 一旦实现了这种控制,就 能够向外部传送存储器的内容,并且能够分析安全机制及所使用的密 钥(keys)。从存储器内容的知识可以获得起管理不同权限(rights)作用的密
钥,并且可以获得由处理器所控制的服务。因此,如果由于管理中心的命令而改变了密钥,则该改变命令将由存储于程序存储器内的密钥加密。通过拥有该密钥,可以解译密钥变更消息,也可更新此新密钥的内容。
因此需要注意,当安全模块的保密性一旦受到恶意的个人破坏,则管理中心所启动的关于保密性的所有改变都无效,因为改变装置(例如新的传输密钥)使用了该个人己握有的密钥。因此,该个人可以解密更新的消息,也能更改它的传输密钥。
一旦安全模块的保密性受到破坏,且程序存储器的内容因此被暴露,则破坏该模块的保密性的恶意个人可能会公开与程序存储器的内容相应的计算机码,这种公开尤其可在诸如互联网之类的网络上进行。这将允许具有空白卡的第三方拷贝这些码,并按此方式以完全非法的途径产生完整功能的复制卡。
限制这些非法活动的手段之一是按这样的方式提高模块的保密性,即使得此模块的保密性特别难于被破坏。
另一更强而有力服制这些非法活动的手段是检测保密性已被破坏且己允许复制的安全模块,并使该模块及该模块所允许产生的复制品失去功能。
美国专利US6,725,374描述使用上述第一种手段的安全模块,艮P ,改进了先前模块的保密性。事实上,在该专利所描述的模块中,由于在模块的计算机码中增加了加扰用来提取密钥的数据的"加扰"单元,即电气消耗,使得发现密钥更加困难。这些加扰单元由模块组成,这些模块的执行顺序对程序的进行不重要。按这样的方式随机地使用这些单元,即两个相同输入信号的处理不会产生两个相同的输出信号。尽管增加了困难,但如果某人能确定安全模块的内容,则该码可被公开并被第三方重复使用,且不可能找到被公开的码的来源。
本发明将使用上述的第二种手段,也就是在模块中采用允许对曾用于非法活动的模块的检测的方法。
众所周知,每个安全模块包括唯一识别编号。
一般地,能提取安全模块的计算机码的个人,从对此模块的内容相对概括的分析开始,也能检测该模块的唯一编号。该唯一编号在计算机码被公幵时不被公开。
一方面,这防止了恶意个人被识别,另一方面,也防止了使原始模块及其复制品失去功能。
本发明的目的是提出一种方法及一种安全模块,该安全模块包括在安全模块的码被非法公开时该模块的识别装置,即使恶意的第三方已撤销对该模块的识别器。因此,在本发明中,与安全模块的复制的对抗不在于增加这些模块的保密性,而在于按这样的方式能更容易地检测曾被用于复制的模块,即使这些模块失去功能。
欧洲专利EP 1 178 406描述了印刷电路唯一序列号被存储在存储器内的处理方法。在该发明中,首先从条形码读取序列号,然后将其转换成数字数据。该数据在被存储到一个或多个存储器中之前可能先被加密。该发明一方面是使得序列号难以被检测,另一方面是防止未授权人员发现及修改序列号。为了隐藏序列号,以难于在其它所有存储的数据中找到其位置的方式将其存储在大型存储器内。为防止发现及修改序号,将其加密。
事实是隐藏序列号不能为本发明的问题提供满意的解答。事实上,序列号是以数值的形式存储在存储器中的指定位置。如果某人或某些人发现了序号的位置,可能导致该位置被公开。在生成安全模块复制品所必需的计算机码公开时,为了避免安全模块被检测到,避免该位置内容的公开就足够了。

发明内容
本发明的目的可通过包括微处理器和程序存储器的安全模块来实现,该程序存储器包含至少一个操作程序和该模块的唯一识别装置,其特征在于这些识别装置是由一组人工计算机码组成,这些计算机码与模块的所述微处理器对其的执行相互兼容,且存储在程序存储器内。
本发明的目的也可通过利用唯一识别器个性化安全模块的方法来实现,该模块包括微处理器以及包含至少一个操作程序的程序存储器,其特征在于该方法包含以下步骤
-生成称为人工计算机码的唯一计算机码组,
-将该码组写入程序存储器的特定存储位置。
本发明的目的也可通过识别先前讨论的、其中的计算机码已为公众所知的安全模块的方法来实现,该方法包括以下步骤--从为公众所知的计算机码中提取人工计算机码;--依照预定规则以推导出该安全模块的识别装置这样的方式来处理该人工计算机码。
本发明的个性化方法的主要优点是人工计算机码被恶意第三方认为是程序的一部分,因此被视为复制模块的复制所必需的。
这些人工计算机码嵌入在操作程序中,从而很难査找到模块的正确操作实际所必需的数据和用于生成识别编号的数据的位置。
根据本发明的安全模块和相关方法,会诱使将盗版的安全模块的计算机码公开的恶意个人也公开确定安全模块的编号或唯一识别编号的数据。这样将容易确定原始安全模块的来源。为此,有多种方法可使得该原始模块及其允许产生的复制品失去功能。这些方法的其中之
一在本发明的申请人的欧洲专利申请案EP 04100969.7中迸行了描述。


阅读以下参考作为非限制例子的附图的详细描述,将更好地理解本发明。
图1概要地示出本发明的安全模块;图2表示图1中的部分安全模块的第一实施例;图3示出了图1中的安全模块的第二实施例;以及图4示出了本发明的方法的特定实施例。
具体实施例方式
参考图1,安全模块SM是安全处理器模块。为此,其具有至少一个微处理器CPU和特别是包含操作程序的程序存储器。在所示的实施例中,程序存储器包含第一启动区Zl和被称为工作区的第二区Z2。第一启动区的全部或部分由不可重写的ROM存储器构成。 一部分可包括RAM或EEPROM中的用于变量的存储空间。它被称为"启动"的原因是因为在安全模块被供电时,其首先被执行。
现有技术中,安全模块可包含可储存于只读存储区中的唯一识别编号UA1。该编号UA1通常是用户可看到的序列号的形式,该序列号例如可印在安全模块本身上,或印在附带的文档上。
工作区Z2包含操作程序和数据。此区域是由非易失性存储器组成,但具有诸如EEPROM的写入能力。工作区Z2也可包含诸如RAM的易失性存储器。事实上,该区域通常不是只包含一种类型的存储器,而是可包含几种类型的存储器,例如ROM、 RAM、 EEPROM、 NVRAM或闪存。
在接通电源或重新启动(重置)期间,微处理器CPU自动地被在 第一区Z1中被引导。在此执行最初的安全操作。这些操作使用第一存
储区,但如有需要,也会使用工作区Z2。
在图1中,1/0方框表示模块SM与外部进行通信的通信装置,所 述装置对于加密功能的使用和存储在存储器中的权限是必不可少的。 利用如前所述的安全漏洞意外地从工作区Z2提取数据也是通过这种与 外部进行通信的方式来实现的。
如前所述,工作区Z2包含用于模块操作的操作程序。图2和图3 详细示出操作程序结构的一个实施例。该操作程序由计算机码组成, 这些计算机码可以用指令行的形式表示,如果在这类程序的编译之前 配置这些指令行,则这些指令具有确定的功能。
为了描述清楚起见,假设将指令划分为对给定语法作出响应的 Bl、 B2禾Q B3的指令块。
在本发明的模块中,至少有两种类型的指令行同时存在。第一类 对应被称为真实指令行(real line)的常规指令,这些常规指令由微处 理器根据产生程序操作的"有用"结果的规定标准来执行。第二类指令是 微处理器不实际执行的和/或不直接产生任何结果的指令。相反地,这 些在下文中称为人工行的指令行用于形成与所讨论的安全模块相关的 唯一识别装置UA2。事实上,人工行可以是不由微处理器执行的指令, 或者是由微处理器实际执行但不产生对操作程序的进行有任何影响的 指令。换句话说,无论这些码是否存在,程序的操作都相同。"人工码" 或"人工行"这两个术语必须被认为涵盖了这两个实施例。
特别参考图2所公开的实施例,操作程序包括一定数量的可形成程序例程的真实指令块B1、 B2,以及一组形成指令块B3的人工计算 机码,指令块B3具有与常规指令块相同的外观,但对于每个安全模块 是不同的。这些计算机码与微处理器的执行相互兼容,并响应所述微 处理器的语法,从而不可能经过简单的码分析来定位将要被执行的真 实码和不被执行或对操作程序无任何影响的人工码的位置。包含该人 工码组的指令是人工行,这些人工行通常不被微处理器执行,或它们 的执行不影响程序的操作;它们没有被用来形成模块的唯一识别装置 UA2。真实指令是由图2和图3中用R表示的真实行构成,而人工行 以这些图中的F表示。优选地,可将该指令块B3插入操作程序,以提 高隐匿性。用于形成识别装置的人工计算机码还可包含例如登录值或
根据图3所示的实施例,与先前例子中人工行集中在操作程序的 存储器中的情形相反,安全模块包含分散于真实指令R中的一定数量 的人工指令行F。这些人工行形成对于每个安全模块而言都是唯一且不 同的一组计算机码。
一般地,由于指令行是被顺序执行的事实,不执行这些指令行或 它们的执行不影响操作程序的正确进行就变得很重要。这些指定的计 算机码不被恶意的个人检测到或很难被检测到也是很重要的。
有数个实施例可满足这些要求。在一个实施例中,人工行包括特 定数据,表示所述行是人工行,因此务必不能由微处理器来执行。
根据另一实施例,某些真实指令包括与人工行的位置相关的指示。 这类指示例如可以是指令的形式,表示存储在规定存储位置的行务必 不能被处理。
可例如通过指出如果条件被满足则必须跳过所讨论的行来隐藏由 不处理的人工行所组成的指令。然后可以使得此条件一直被满足。也可以给真实行增加指出随后的行人工行的指示。
根据另一实施例,在计算机码中没有能够区分人工行与真实行的 东西。安全模块包含存储的数据,其指示微处理器务必不要执行的计 算机码的位置。
可替换地,如以上概要所述的那样,也可以使用实际上由微处理 器处理、但对程序接下来的执行没有影响的指令作为人工行。该类指 令可以是指示程序必须前进到后续行的指令。当然,例如,通过将指 令写成有条件跳过的形式、通过指出仅在满足规定条件的情况下(确 保此条件总是被满足)才前进到后续行,也可以使这类"无用"指令的位 置很难被找到。另一种做法是无论何时条件得到满足,都将程序送到 预确地址,但确保此条件永远得不到满足。还一种做法是修改已知是 不重要的存储位置。因为可被制这些"无用"指令而不会影响操作程 序的执行结果,所以这些指令用文字解释即是"对微处理器执行操作程 序没有影响"。
一种特别适合的使得恶意的个人难以检测到人工行的方法是将其 模糊或隐藏,该过程包括使得对反编译计算机码的理解特别复杂。
根据本发明的另一替代方案,也可以是仅人工行中的一部分用于 安全模块的识别。不用于识别安全模块的人工行的存在仅在于使得对 计算机码的理解更加复杂、防止盗版者检测到产生克隆功能所必须公 开的数据以及如果其安全模块的唯一识别编号必须保持不公开所必须 略去的数据。
这样的人工补充行也可在模块包含人工块的实施例中采用,人工 块中的指令散布于真实指令中。
需要注意,图2和图3所公开的两个实施例可结合起来,也就是说,可在规定块中采用人工指令,同时将其它人工指令进一步分散于 真实指令中。
也可以产生一个以上的识别装置,或可以引入允许产生相同唯一
识别装置UA2多次的数据,这样,即便某些人工行被检测到而未被公 开,则仍可以确定识别装置UA2。
根据本发明,安全模块的实现包括个性化阶段,在此阶段中采用 模块特有的数据。本发明也与已被公开计算机码的模块的检测步骤有 关。该检测步骤包括从公开的数据中提取安全模块特有的数据。
根据本发明的个性化方法主要包括产生一组唯一计算机码,然后 将这些码写入程序存储器。
首先,该个性化方法取决于选择的安全模块的类型,且更具体地 取决于人工计算机码的位置。事实上,当人工码是以独立块的形式配 置在程序存储器内时,可按块的形式生成人工码,然后引入到模块中。
当人工码分散于真实计算机码中时,形成操作程序的真实码是以 其包括空位置的方式存储。然后生成人工码,并将其插入这些空位置。
在微处理器实际执行人工码、但这些码不影响操作程序的进行的 实施例中,可以使用码目录。该目录包含不影响操作程序进行的一组 预定计算机码。如前所述,这些码可以是有条件跳跃、将值写入存储 区、修改值或任何其它无论是否被执行都不会改变程序的进行的指令。
还可以提供从包含在目录中的人工码自动产生识别装置的方法。 事实上,通过得知空指令行的数量和所要插入的块的可能大小,就能 够以填充操作程序的空白行的方式和以每一个安全模块使用一组唯一 指令的方式,从计算机码库的指令中得到一定数量的码。也可通过按照这些码的顺序使用计算机码来获得该唯一性。此方法由图4示意示
出,其中,编号10表示人工码F1、 F2、....的目录。编号ll代表形成 操作程序的真实计算机码R1、 R2、...。这些码包括空的存储位置。
在个性化安全模块时,以两个安全模块不包含相同码的方式从目 录中存储的人工码中选择一定数量的计算机码。将这些码引入操作程 序的空存储位置。在图4所公开的示例中,具有编号为SM1、 SM2及 SM3的安全模块的人工码组分别是(Fl、 Fl、 F3) 、 (F3、 F2、 F4) 及(F3、 F3、 Fl)。
个性化处理也可具有意图使人工计算机码的检测更复杂的步骤。 具体地,当人工码以块的形式集中在规定存储位置时,建议应当避免 通过简单比较保密性已被破坏的两个安全模块的计算机码而使恶意的 个人找到人工码的位置的情况,并因此避免它们的公开。为了解决该 问题,模糊或隐藏阶段是非常合适的。
如上所述,计算机码已被公开的模块的检测阶段包括从公开的数 据中提取安全模块的唯一识别装置, 一方面有可能找到原始模块的拥 有者,另一方面可使模块及其所允许制造的复制品失去功能。
该检测步骤主要包括将公开的计算机码与在个性化阶段已被安全 模块采用的那些计算机码做比较。为此,有不同的做法。具体地,可 以将被公开的码与生成的码进行"逐行"比较。执行该比较的另一方法包 括提取公开的码和人工码,然后对这些人工码施加操作。可执行的基 本操作是连接形成人工码的位。另一操作包括确定指令块的标识 (signature)(无用信息)。事实上,可使用可以从唯一指令块得到唯 一值的每种操作。将相同的操作施加到个性化阶段生成的计算机码, 然后比较这些唯一值。
如在图2所示的示例中那样,以能够确定安全模块的唯一识别装置UA2的方式处理散布的人工指令。
一旦确定了保密性已被破坏的安全模块的识别装置,然后就能够 使原始的安全模块和复制自此原始模块的模块失去功能。
其它明显的变化的实施例虽未在前文中详细描述,但也是本发明 的一部分。具体地,可以采用允许每个安全模块产生一个或多个识别
装置的人工计算机码。例如,第一个识别装置可以由独立的指令块构 成,而另一个识别装置由散布的码构成。
也可以采用冗余的人工码,这样即使在公开期间遗漏了部分人工 码,仍可提取识别装置。
一个识别装置UA2可以不是供一个唯一安全模块使用,而是供一 组安全模块使用。值得注意的是这样的情况,即模块组属于同一人或 更广义地属于同一实体。也可以是以上不同实施例的结合,也就是例 如,安全模块可包含模块组共享的第一识别装置,以及对于每一个模 块唯一的第二识别装置。
识别装置UA2也可由表示注册的值的计算机码来定义。
通常,不允许用识别装置UA2代替通常被包含在安全模块内的识 别装置UA1。第一识别装置UA1位于模块内,如果模块是例如智能卡 或密钥的形式,则也可例如印在模块上。
相反地,如同第二识别编号UA2的存在本身一样,识别装置UA2 将被保密。
权利要求
1. 一种安全模块,包括微处理器和程序存储器,所述程序存储器包含有至少一个操作程序和所述模块的唯一识别装置,其特征在于这些识别装置(UA2)是由一组人工计算机码组成,这些计算机码与所述模块的所述微处理器对它们的执行相互兼容,且储存在所述程序存储器中。
2. 根据权利要求l所述的安全模块,其中所述计算机码排列在特 定指令块中。
3. 根据权利要求l所述的安全模块,其中所述人工计算机码分布 在形成操作程序的计算机码中。
4. 根据权利要求2或3所述的安全模块,其中所述人工计算机码 不由微处理器执行。
5. 根据权利要求2或3所述的安全模块,其中所述人工计算机码 不修改所述微处理器执行的操作程序的进行过程。
6. 根据权利要求l所述的安全模块,其中所述模块还包括一组不 用于安全模块的操作和不用于识别装置的形成的人工计算机码。
7. —种通过唯一识别器个性化安全模块的方法,该模块包括微处 理器以及包含至少一个操作程序的程序存储器,其特征在于包括以下 步骤-生成被称为人工计算机码的一组唯一计算机码,-将该组计算机码写入所述程序存储器的特定存储位置。
8. 根据权利要求7所述的个性化方法,其中配置在所述特定存储位置的人工计算机码不由微处理器执行。
9. 根据权利要求7所述的个性化方法,其中配置在所述特定存储 位置的人工计算机码对所述微处理器对操作程序的执行没有影响。
10. 根据权利要求8或9所述的个性化方法,其中形成所述一组 唯一计算机码的所述人工计算机码选取自计算机码库。
11. 根据权利要求7所述的个性化方法,其中所述人工计算机码 形成与组成操作程序的计算机码不同的指令块。
12. 根据权利要求7所述的个性化方法,其中所述人工计算机码 分散于构成操作程序的计算机码中。
13. 根据权利要求7至12中任意一项权利要求所述的个性化方 法,其中以隐藏由这些计算机码组成的程序的结构的方式处理这些码。
14. 根据权利要求1至6中任意一项权利要求所限定的安全模块 的识别方法,在所述安全模块中的计算机码已是为公众可获取的,该 方法包括以下步骤--从公众可获取的计算机码中提取人工计算机码; -依照预定规则以推导出该安全模块的识别装置的方式来处理该 人工计算机码。
全文摘要
本发明涉及包括微处理器和程序存储器的安全模块,程序存储器包含有至少一个操作程序和模块的唯一识别装置。唯一识别装置由一组唯一人工计算机码组成,这些计算机码与模块的所述微处理器对其的执行兼容,且储存在程序存储器中。本发明还涉及一种通过唯一识别器个性化安全模块的方法,此模块包括微处理器和程序存储器,而程序存储器包含至少一个操作程序,包括生成一组称为人工计算机码的唯一计算机码,并将该组计算机码写入程序存储器的特定存储位置的步骤。
文档编号G06F21/73GK101484864SQ200580022003
公开日2009年7月15日 申请日期2005年6月27日 优先权日2004年6月29日
发明者菲利普·斯特兰斯基 申请人:纳格瑞卡股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1