公开/公告号CN1985229A
专利类型发明专利
公开/公告日2007-06-20
原文格式PDF
申请/专利权人 纳格拉卡德股份有限公司;
申请/专利号CN200580023255.9
发明设计人 卡尔·欧森;
申请日2005-06-16
分类号G06F1/00(20060101);G06F9/445(20060101);H04N7/24(20060101);
代理机构中国国际贸易促进委员会专利商标事务所;
代理人郭思宇
地址 瑞士舍索-苏尔-洛桑
入库时间 2023-12-17 18:50:31
法律状态公告日
法律状态信息
法律状态
2020-06-02
未缴年费专利权终止 IPC(主分类):G06F1/00 授权公告日:20091202 终止日期:20190616 申请日:20050616
专利权的终止
2010-04-28
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F1/00 变更前: 变更后: 申请日:20050616
专利权人的姓名或者名称、地址的变更
2009-12-02
授权
授权
2007-08-15
实质审查的生效
实质审查的生效
2007-06-20
公开
公开
技术领域
本发明涉及安全模块领域,尤其涉及具有能被更新的软件的安全模块。
背景技术
这种安全模块负责许多功能,例如对信用卡权利的验证、核实或管理。这些功能需要大的处理能力并且需要快速微处理器,在该微处理器中大部分软件存储在可重写存储器里。
这样,一旦检测出编程错误或安全漏洞,准备好校正块并存储在该存储器的自由区中。还在程序部分中进行修改以便利用该第一程序块中的功能。
当在分散系统中使用这种类型的模块时,通过可得到的电信手段例如广播(diffusion)(大量模块接收相同的消息)或者点对点连接进行对安全模块的更新。
在这二种情况中,尤其在第一情况中,更新消息容易受到恶意人员的攻击。分析模块接收的消息可能暴露所述模块的功能并且暴露和安全性相关的秘密。
这些消息肯定是加密的,但是为了解密这些消息并提取内容恶意人员会激励重要装置。
本发明考虑的模块用于付费电视、移动电话以及甚至银行应用。
下面,把付费电视作为例子。
按照已知过程,向监视中心报告安全泄漏并且该中心会准备一个称为“补丁”的用于更新安全模块的软件的程序块。
用一个或几个和安全模块有关的密钥加密按此方式准备的块。可能利用共用于所有安全模块的全局密钥或者利用和每个模块相关的个人密钥加密该程序块。在后一种情况下,必须准备和不同安全模块的数量相同的消息。
接着把消息发送到配置着对各模块的传输装置的管理中心。在单向系统中,在给定的时段内重复消息以保证每个模块接收它。
当检测到安全泄漏时业内人士处于困难境地,因为他/她必须评估第三方分析此类消息的风险以及听任该泄漏继续下去的风险。有时该困境导致出由于替换程序的复杂性风险太大阻止人们修正程序的故障的情况。
更新付费电视解码器中的程序是周知的并且例如在资料US2004/10 7349中说明。把程序模块发送到用一次性使用的密钥加密的解码器上。引起注意的并且在本文中应用的正是这个原则。一旦接收该程序模块把它存储在解码器的存储器中并且按照常用的协议加以激励(向补丁转移地址)。
发明内容
本发明的目的是使业内人士能以消息在不担心该消息的恶意解密后果下发送含有程序块的消息。
通过一种更新安全模块中的软件的安全方法达到该目的,该方法包括以下步骤:
形成第一更新程序块(PBI),
确定所述安全模块的目标存储区,
通过所述安全模块确定所述目标存储区中的预存储内容(MM-Ref),
形成通过使全部或部分预存储内容和第一程序块(PBI)混合得到第二程序块(SBI),
向该安全模块发送该第二程序块(SBI),
该安全模块接收该第二块,
读该目标存储区(MEM),以及
通过对全部或部分第二块和该目标存储区内容的逆混合得到该第一块并写入到该目标存储区中。
这样,由于本发明,对于不知道目标存储器内容的人,发送的代码(第二块)是和第一块无关的。
成功解密该消息的第三方除了安全模块的功能外别的都不了解。
该方法可应用于向所有的安全模块发送相同的消息,在此情况下认为对于所有的模块目标存储区的内容是一样的。如果实现单独定址,每个存储器的内容能是不同的。一旦生成第一程序块,它和每个安全模块的数据混合以产生相同数量的第二程序块。
附图说明
参照给出非限制例子的附图通过下面的详细说明会更好地理解本发明,附图中:
图1示出产生第二块的过程,以及
图2示出在安全模块的存储器中的写过程。
具体实施方式
依据第一实施例,利用伪随机值预存储目标存储器内容。在该类型的模块的个性化时,一方面在安全模块MEM中另一方面在管理中心中存储随机生成的数据MM-Ref。
依据第二实施例,该预存储数据由可由安全模块的处理器执行的程序码构成。实际上,永远不执行该码,它只充当更新区的初始化值。如前面的例子中那样,所有模块可以具有相同的哑程序或者每个模块接收不同的程序。
图1示出形成用于广播(diffusion)的第二程序块的过程。
当准备好要传播的程序块PBI时,本发明的方法包括确定该块在安全模块中的未来定位。一旦知道该定位,通过管理中心中存储的数据能找出已经在个性化时编程的内容。一旦知道该数据,进行把该数据和程序块PBI混合的操作以得到新的数据块SBI。
该混合操作可以为各种不同的类型。最简单的方式是利用程序块PBI和预存储数据MM_Ref之间的“异或”函数。
混合的第二个例子在于用预存储数据MM_Ref的内容加密程序块PBI的每个存储位置。
该混合的结果形成第二程度块SBI。按照该管理中心和安全模块之间能得到的通信模式可以将以此方式构成的该块发送到相关的安全模块。通过该系统的加密密钥按照已知方法加密它。
图2示出安全模块的存储器中的写过程。
一旦接收了该第二块,在安全模块的存储器中的对新程序块的写操作通过对目标存储器位置内容的读操作。根据我们的例子,读目标区MEM的每个存储位置i并按照选定的算法进行处理(或者混合)。在此例中,每个存储器位置和该程序的第二块SBI的对应位置i混合。把结果记录在该安全模块的存储器中。
应注意要更新的程序块伴随着按照已知方式(散列,CRC等)的检验数据。一旦把该程序存储到模块存储器中并且恰当地检验,通常可以通过修改主区中的部分程序激活它。
该过程可以是递归的,也就是说如果希望修改程序区中某个已经接收程序的部分,前一个程序充当预存储值。按照一个其中新程序会占据更多空间的例子,管理中心把先前程序的内容当成预存储值,而尚未使用过的存储器空间会使用个性化时产生的预存储值。
实际上,该管理中心会保留一个其内容代表安全模块在该位置的内容的虚拟安全模块。还把要用于各安全模块的所有程序引入到该虚拟模块中。
依据本实施例的一种变型,只有预定区的一部分预存储特定值,例如三分之一。其余部分保持空白。这样,只在三分之一的位置上执行混合,其余部分保持不修改。
机译: 安全更新加载在安全模块中的程序块的方法
机译: 安全更新加载在安全模块中的程序块的方法
机译: 安全更新加载在安全模块中的程序块的方法