《保护智能卡.pdf》由会员分享,可在线阅读,更多相关《保护智能卡.pdf(8页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN101978647A43申请公布日20110216CN101978647ACN101978647A21申请号200980109298722申请日2009012608150860820080131EPH04L9/0620060171申请人耶德托公司地址荷兰霍夫多普72发明人WPAJ米希尔斯C奎佩尔斯74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人李镇江54发明名称保护智能卡57摘要本公开涉及一种保护智能卡。本发明提供一种用于保护智能卡100的方法,该智能卡包含处理装置101,用于以加密的方式存储由处理装置执行的软件模块115的存储器110,和配置用于准时解密。
2、软件模块的解密装置130,该方法包含给智能卡提供解密装置的白盒实施的步骤。在一个实施例中,白盒实施包含LOMBOK密码算法的白盒实施。30优先权数据85PCT申请进入国家阶段日2010091686PCT申请的申请数据PCT/IB2009/0503032009012687PCT申请的公布数据WO2009/095838EN2009080651INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图1页CN101978652A1/1页21一种用于保护智能卡100的方法,所述智能卡包含处理装置101、用于以加密的方式存储由所述处理装置执行的软件模块115的存储器110、和。
3、配置用于准时解密所述软件模块的解密装置130,所述方法包含给所述智能卡提供所述解密装置的白盒实施的步骤。2根据权利要求1所述的方法,其中所述解密装置130利用将4比特映射到4比特的S盒来实现密码算法。3根据权利要求1或2所述的方法,其中所述白盒实施在用于所述解密装置的所述密码算法中保持任何异或运算而不是将所述异或运算转换成查找表。4根据权利要求1所述的方法,其中所述白盒实施包含所述LOMBOK密码算法的白盒实施。5一种智能卡100,包含处理装置101、用于以加密的方式存储由所述处理装置执行的软件模块115的存储器110、和配置用于准时解密所述软件模块的解密装置130的白盒实施。权利要求书CN1。
4、01978647ACN101978652A1/5页3保护智能卡技术领域0001本发明涉及一种智能卡以及一种用于保护该智能卡的方法。背景技术0002智能卡、微处理器卡、芯片卡或集成电路卡ICC被定义为相对小的、通常为袖珍大小的卡,其具有能够处理信息的嵌入式集成电路。这种智能卡用于安全地存储敏感信息,诸如密码钥CRYPTOGRAPHICKEY或实现有价值的算法或专有技术KNOWHOW的软件例程。0003因为智能卡的封闭特性,它们长期被视为黑盒,其中攻击者只能观察输入和输出而不能观察密码算法的实施方式的操作。然而现今存在许多技术来获得这种实施方式的细节,有时甚至从卡提取全部或部分的嵌入式软件。一些众。
5、所周知的示例是缺陷注入攻击FAULTINIECTIONATTACK和缓冲区溢出攻击BUFFEROVERFLOWATTACK。0004在对智能卡的缺陷注入攻击中,攻击者设法通过给予智能卡无效的输入或通过将智能卡暴露于超出规格条件诸如极限电压来改变智能卡的性能。还能以入侵方式进行缺陷注入攻击。入侵式缺陷注入的一个示例是将芯片物理地打开并将未受保护的硬件暴露于辐射,通过辐射改变芯片的性能。由于这种故意导致的缺陷产生的改变后的性能可以揭示某些敏感信息。0005在缓冲区溢出攻击中,攻击者用比能被存储的数据多的数据来填充存储器位置,这会使其他数据结构损坏。利用数据的正确选择,损坏能导致数据或代码片段从存储。
6、器泄漏到外界。0006参见例如OLIVERMARKUSGKUHN在PROCEEDINGSOFTHEUSENIXWORKSHOPONSMARTCARDTECHNOLOGYSMARTCARD99,CHICAGO,ILLINOIS,USA,MAY1011,1999,USENIXASSOCIATION,PP920,ISBN1880446340上发表的、用于概括性介绍这些种类的攻击的“DESIGNPRINCIPLESFORTAMPERRESISTANTSMARTCARDPROCESSOR“擅改有抵抗力的智能卡处理器的设计原理”。0007为了保护免受这些种类的攻击,WO2007105126代理案卷PH00。
7、5600和美国专利申请20060140401提出采用一种白盒实施来保护密码实施并且提到该解决方案可在智能卡中的其他器件之中使用。密码算法的白盒实施是隐藏密码算法的一些或全部内部工作以免受白盒攻击的实施,白盒攻击即是攻击者能够观察由处理器执行的一些或全部指令的一种攻击。在某些情况下,攻击者对操作环境具有某种形式的控制,这允许他观察至少部分的密码操作并且识别执行期间在算法中使用的至少部分的密码钥。例如他能够在调试环境或虚拟机内部执行该实施,并由此观察全部操作、操纵数据缓冲区并监视执行流程。0008在其他情况下,攻击者能使操作环境在密码算法的执行期间“泄漏”或暴露部分实施或数据缓冲区的部分内容。例如。
8、,攻击者能够使用缓冲区溢出攻击来提取部分密码实施。如果提取到正确的部分,则攻击者可由此获悉密码钥或者使他能够解开一些或全部密码保护的实施中的特定设置。说明书CN101978647ACN101978652A2/5页40009白盒实施隐藏密码算法的一些或全部内部工作,尤其是密钥数据。这能以多种方式实现。一种产生白盒实施的流行技术是使用密码算法中的编码表与代表综合步骤而非单独步骤的随机双射的组合。解密密钥和解密算法被有效转变成一个单块集成电路。该集成电路块没有一个部分揭示关于算法或密钥的内部工作的任何信息。实际上,即使在给出整个白盒实施时,对所使用的原始算法或解密密钥进行反向工程也是极其困难的。在例。
9、如欧洲专利申请序列号081557985代理案卷PH010099中公开的另一种技术是在诸如RSA的密码算法中的指数的模糊处理OBFUSCATIONOFANEXPONENT。0010在智能卡上使用密码算法的白盒实施的缺点在于与传统实施相比,白盒实施在代码大小方面会变成极大,而智能卡具有非常有限的存储。例如,如CHOW1如下面所引用的提出的AES加密算法的白盒实施具有大于07兆字节的大小。传统的、即非白盒形式的AES的一个参考实施的大小为10千字节的级别。发明内容0011本发明的一个目的是有效保护智能卡免受攻击,该攻击会暴露关于智能卡中软件模块的工作的信息。0012本发明通过如权利要求1中所要求的一。
10、种方法和如权利要求5中所要求的一种智能卡来实现该目的。使用任何适当的密码算法对需要受到保护的软件模块进行加密。例如可使用3DES或AES。提供准时JUSTINTIME解密模块,该模块在需要执行软件模块时对该软件模块或其中需要的部分解密。随后一旦可能就删除该软件模块的解密的拷贝。这减少了攻击者获得软件模块的拷贝的机会。攻击者能够提取该模块的加密的版本,但没有正确的解密密钥,该版本是无用的。0013根据本发明,使用了解密模块的白盒实施。因为仅仅该相对小的模块使用白盒技术来实现,所以智能卡的存储需求仅稍微提高。可使用用于产生这种白盒实施的上述技术,虽然也可以使用现在已知的或此后设计的其他白盒技术。0。
11、014主要需求在于白盒实施在大小方面并非太小并具有这种性质,即,如果攻击者具有该实施的任何部分包括算法使用的密钥,则他难以由此得到功能上正确的解密函数。该需求比在白盒实施中经常假设的需求弱,即,攻击者对环境具有完全控制。本发明因此允许在白盒安全性和密钥大小之间折衷TRADEOFF。0015用于解密算法的实施的必要条件在于用这种方式来实现,即,攻击者从一部分实施不能获得基础密钥UNDERLYINGKEY。一些白盒技术,例如上述使用编码表的组合的技术,被设计成抵挡攻击者对环境具有完全控制的白盒攻击。虽然这种技术适于本发明的目的,但存在同样适于本发明的其他更容易的白盒技术。0016作为一个示例,当产。
12、生AES的白盒实施时,它有能力通过非线性编码来对每个查找表的输入和输出进行编码。通过线性编码对异或XOR运算之前的查找表的输出以及相应地,还有异或运算之后的查找表的输入进行编码,对本发明的目的而言,没有必要通过查找表来实现异或运算。0017另一个优点在于现在需要被保护的软件更加独立,这意味着可加强对它的检查以保护它免受上述攻击。0018因此,在该假定性敏感代码的执行期间,成功攻击的机会显著减小。虽然其他软件说明书CN101978647ACN101978652A3/5页5仍旧易受攻击,但这最多将暴露受保护软件模块的加密的部分。攻击者将不能利用这些部分。0019白盒实施优选为如US7043016代。
13、理案卷PHNL000365和EP1307993B1代理案卷PHNL000444中公开的LOMBOK密码算法的白盒实施。该实施例的优点在于LOMBOK的白盒实施小于AES的白盒实施。这是由于LOMBOK具有4比特S盒SBOX,即,将4比特映射到4比特的S盒,而AES具有8比特S盒。0020对于每个S盒,白盒LOMBOK和AES实施都具有包含S盒的查找表。M比特S盒在查找表中产生2M行。因而,更小的S盒产生更小的白盒实施。附图说明0021从附图中示出的示例性实施例和参考这些实施例所做的阐明,本发明的这些和其他方面将是容易理解的,其中0022图1示意性示出智能卡。具体实施方式0023图1示意性示出包。
14、含处理器101和存储器110的智能卡100,该存储器110用于存储由处理器101执行的一个或多个软件模块。一个软件模块是模块115,这是本发明的对象。存储器110被优选实现为电可擦除只读存储器EEPROM或闪速存储器,虽然许多可替换的存储介质也是可用的。存储器110可以额外存储诸如密码钥或授权单元AUTHORIZATIONELEMENT的数据。还可使用单独的存储器未示出来存储这种数据,例如如果期望指令与数据分开。0024智能卡100还包含输入/输出模块120,用于从设备未示出接收数据和向设备传输数据,该设备与智能卡100耦接。将该模块120通常被实施为与设备内的读取器中的电连接器相接触的芯片,。
15、优选如ISO/IEC7816和ISO/IEC7810系列的标准中所定义的。在所谓非接触式智能卡中使用一种替换方式,其中数据的传输是通过射频感应技术,例如在ISO/IEC14443中所定义的。0025智能卡100可例如用于条件存取或数字版权管理DRM系统并为在被授权时解密音频和/或视频数据提供解密算法的软件实施。机顶盒、电视、计算机或其他设备然后将加密的数据通过I/O模块120馈送到智能卡100,并且如果智能卡100确定设备被授权接收该数据,则设备进而接收解密后的数据。为此,存储器110或其他存储器可存储权利消息、许可或权利对象RIGHTOBJECT,或者设备可供给这种项目连同它们所应用的数据。。
16、0026由于这种系统的工作是众所周知的,因此将不对其进一步详细阐述。正如本领域技术人员所知的,在期望安全性的许多其他情形下,智能卡也是有用的。0027在存储器110中存储的软件模块115以加密的方式存储。任何已知的或未来的加密算法,例如AES或3DES,都可用于加密该软件模块115。这确保了如果攻击者设法提取存储器110的全部或部分内容,则他不会获得关于软件模块115的有用信息。该模块115可以包含有价值的专用技术或密码钥,例如需要被保护的授权密钥或解密密钥。0028软件模块115只是存储器110中存储的软件模块之一。其他模块也可以加密或不加密的明文形式存储在同一存储器110中。说明书CN10。
17、1978647ACN101978652A4/5页60029智能卡100提供准时解密模块130,该解密模块130被配置用于在由处理器101执行软件模块115的有关部分时对软件模块115的有关部分解密。模块130可能的实施包括在每条指令被馈送到处理器101之前对其解密,或者对软件模块115的多个块解密,接着软件模块115的多个块作为一个整体被供给处理器101。执行之后尽可能快地从存储器擦除解密后的多条指令或多个块。0030在准时解密的一些实施例中,解密后的多条指令或多个块存储在处理器101中或其附近的临时存储器未示出中。在这种实施例中,在多条指令或多个块已经被执行时且在智能卡100被激活或无效时,。
18、该临时存储器必须被清零。0031通常准时解密功能被实现为智能卡101上单独的硬件模块,或实现为嵌入式软件模块。在智能卡中准时解密的概念,也已知名称为诸如总线加密,同样从例如US4168396或US5224166获知。后者专利例如公开了一种诸如智能卡的数据处理系统,在系统的安全物理区中具有内部高速缓冲存储器。相应于存储器110的外部存储器被安置在安全物理区的外部并存储加密和未加密的数据和/或指令。指令使得能够存取包含在安全物理区内的私人密钥,该密钥用于对伴随有加密的数据和指令的加密的主密钥解密。0032类似于安全物理区中的解密模块130的接口电路通过使用私人密钥对每个加密后的主密钥解密并且还对与。
19、每个解密后的主密钥相关的加密后的数据和指令解密。相应于处理器101的中央处理器从外部存储器存取未加密和加密的数据和指令两者的片段,并使接口电路采用解密的主密钥来解密数据和指令以及将解密的信息存储在内部存储器高速缓冲存储器中。未加密的数据和指令被直接存储在内部存储器高速缓冲存储器中。0033根据本发明,模块130中的解密功能被提供为可应用的密码算法的白盒实施。正如所述的,白盒实施通过使用密码算法中的编码表与代表综合步骤而非单独步骤的随机双射的组合来隐藏密码算法的内部工作。0034国际专利申请WO2005/060147代理案卷PHNL031443、WO2007/031894代理案卷PH001720。
20、和WO2006/046187代理案卷PHNL041207公开了密码算法的白盒实施。0035此后被引用为“CHOW1”的STANLEYCHOW,PHILIPEISEN,HAROLDJOHNSON和PAULCVANOORSCHOT在SELECTEDAREASINCRYPTOGRAPHY9THANNUALINTERNATIONALWORKSHOP,SAC2002,STJOHNS,NEWFOUNDLAND,CANADA,AUGUST1516,2002上发表的“WHITEBOXCRYPTOGRAPHYANDANAESIMPLEMENTATION”“白盒密码和AES实施”、和此后被引用为“CHOW2”的S。
21、TANLEYCHOW,PHILIPEISEN,HAROLDJOHNSON,PAULCVANOORSCHOT在DIGITALRIGHTSMANAGEMENTACMCCS9WORKSHOP,DRM2002,WASHINGTON,DC,USA,NOVEMBER18,2002上发表的“AWHITEBOXDESIMPLEMENTATIONFORDRMAPPLICATIONS”“用于DRM应用的白盒DES实施”,公开了产生密码算法的白盒实施的方法。0036这提供了解密模块130仍旧如前操作并可对存储在存储器110中的软件模块115的那些部分解密,但提取解密模块130的内容的任何部分不提供有关其工作、或者有。
22、关用于解密存储器110的软件模块的部分的解密密钥的任何有用的信息。0037虽然存在从智能卡提取数据片段的多种技术参见第1页上引用的参考文献,但那些技术只揭示少量数据。例如,ISO标准7816规定从这种攻击至多可泄漏255字节。诸如只读存储器ROM提取攻击的攻击可暴露更多代码,但是由于这种攻击的特性,通常被说明书CN101978647ACN101978652A5/5页7提取数据字节的五分之一具有错误值。这意味着攻击者只能获取平均为80的白盒实施,这对于从它恢复任何有用的信息是不足够的。0038因为与存储器110的内容相比,模块130中实现的解密机制相对小,所以用于该白盒实施的存储需求也相对小。0。
23、039该机制的小尺寸还允许使用更加严格的代码安全性措施。0040为了减少白盒实施的存储需求,一个选项是采用使用4比特S盒的密码算法而不是象具有8比特S盒的AES的算法,因为M比特S盒在查找表中产生2M行。可以与上述选项一起使用或不一起使用的另一个选项是将算法中的异或运算保持为异或运算而不是将异或运算转换成表。0041在一个优选实施例中,所使用的解密算法是LOMBOK密码算法,正如在US7043016代理案卷PHNL000365和EP1307993B1代理案卷PHNL000444中所公开的。关于如何提供LOMBOK的白盒实施的更多信息可以在WO2005/060147代理案卷PHNL031443中。
24、找到。LOMBOK非常适于白盒实施。实验已经显示LOMBOK的白盒实施可以小到10千字节。0042虽然上面已经参考一个加密的模块115对本发明进行了解释,但是当然能够以加密的方式存储多于一个的软件模块并使用模块130对其解密。0043应该注意到上述实施例例示而非限制本发明,并且本领域技术人员将能够在不背离所附权利要求的范围情况下设计许多可替换的实施例。0044在权利要求中,放在圆括号之间的附图标记不应被解释为限制该项权利要求。单词“包含”不排除存在不同于权利要求中列出的元件或步骤的元件或步骤。元件之前的单词“一个”或“一种”不排除存在多个这种元件。通过包含几个不同元件的硬件和通过适当编程的计算机来实现本发明。0045在列举若干装置的设备权利要求中,可以通过硬件中的一项和相同项来实施这些装置中的若干。仅仅在相互不同的从属权利要求中引用某些措施不表明这些措施的组合不能用于使其有利。说明书CN101978647ACN101978652A1/1页8图1说明书附图CN101978647A。