安全设备、信息处理终端、集成电路、应用装置及方法

文档序号:6412825阅读:147来源:国知局
专利名称:安全设备、信息处理终端、集成电路、应用装置及方法
技术领域
本发明涉及安全地保持数据的JAVA卡等安全设备、和搭载该安全设备的手机或PDA(Personal Digital Assistant,个人数字助理)、个人计算机等信息处理终端。
背景技术
近年来,JAVA卡等具有CPU和防篡改性存储区域的安全设备能够运行卡应用(所谓应用,是指应用程序。下同),被用于电子货币或月票、电子票证等服务。通过将该安全设备安装到手机等信息处理终端上,将信息处理终端的键盘或显示器用作安全设备的用户界面,并且利用信息处理终端的通信功能在网络上传输要向安全设备中写入的数据或从安全设备中读出的数据,能够执行各种服务。规定执行该服务时信息处理终端应进行的工作的终端应用在信息处理终端上运行。
信息处理终端例如通过网络从服务提供商那里下载终端应用,而取得该终端应用。
例如,(日本)特开2003-141457号公报公开了从服务提供商那里下载在脱机环境下显示安全设备中保持的电子货币或电子票证等的价值信息的终端应用的信息处理终端。
然而,在上述现有方式中有下述课题尽管信息处理终端上起动的、存取安全设备的终端应用从安全设备来看是真实的,但是具有正规的认证信息的用户能够用非法的终端应用,不受本应对真实的终端应用施加的制约,来利用安全设备的信息或服务。

发明内容
本发明的目的是认证终端应用的真实性。
根据本发明的一个方面,安全设备采用下述结构,存储着使信息处理终端进行处理的应用,具有应用发行部件,向上述应用中嵌入用于认证上述应用的信息并发行给上述信息处理终端。
根据本发明另一方面,信息处理终端采用下述结构,包括应用发行请求发送部件,在起动应用时,请求安全设备发行嵌入了认证信息的上述应用;应用接收部件,接收从上述安全设备发行的嵌入了上述认证信息的应用;以及应用执行部件,执行应用;上述应用执行部件起动接收到的上述应用后,在上述应用和上述安全设备之间用上述认证信息来进行上述应用的认证处理。
根据本发明另一方面,信息处理终端采用下述结构,包括应用发行请求发送部件,请求发行应用;接收部件,接收从安全设备发行的应用;以及应用执行部件,执行应用;上述应用发行请求发送部件请求上述安全设备发行具有代行上述安全设备的处理功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA,上述应用执行部件起动,上述安全设备和上述MTA用上述MTA中嵌入的上述认证信息进行认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA请求上述安全设备发行上述MTA以外的应用,接收从上述安全设备发行的上述MTA以外的应用并起动,用上述MTA以外的应用中嵌入的上述认证信息在上述安全设备和上述MTA以外的应用之间进行认证处理。
根据本发明另一方面,信息处理终端采用下述结构,包括已加密应用存储部件,存储可用安全设备中存储的应用加密密钥来解密的已加密应用;应用发行请求发送部件,请求发行应用;以及应用执行部件,执行应用;上述应用发行请求发送部件请求上述安全设备发行具有代行上述安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA,上述应用执行部件起动,上述安全设备和上述MTA用上述MTA中嵌入的上述认证信息进行认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA向上述安全设备请求上述应用加密密钥,从上述安全设备接收上述应用加密密钥并对上述已加密应用存储部件中存储的上述已加密应用进行解密并执行。
根据本发明另一方面,终端应用生成装置采用下述结构,生成使信息处理终端进行处理的应用并存储到安全设备中,包括嵌入准备部件,接受上述应用的源代码,进行嵌入认证信息的准备,输出可嵌入上述认证信息的源代码、和表示上述认证信息的嵌入方法的指示书的雏形—指示书模板;编译部件,将可嵌入上述认证信息的源代码编译为信息处理终端可执行的形式—字节码(目标码);以及指示书生成部,接受上述字节码和上述指示书模板,生成上述指示书;将上述字节码和上述指示书发送到上述安全设备来存储。
根据本发明另一方面,应用认证方法采用下述方法,使安全设备保持至少一个以上的要在信息处理终端中运行的应用;对于来自上述信息处理终端的应用发行请求,上述安全设备生成认证信息,向上述应用中嵌入上述认证信息并发送到上述信息处理终端;上述信息处理终端起动接收到的上述应用并与上述安全设备根据上述认证信息来进行认证处理,上述安全设备认证上述应用。
根据本发明另一方面,信息处理终端的集成电路采用下述结构,包括应用执行部件,执行上述信息处理终端的应用;应用发行请求发送部件,在起动应用时,请求安全设备发行嵌入了认证信息的上述应用;以及应用接收部件,接收从上述安全设备发行的嵌入了上述认证信息的应用;在执行接收到的上述应用时与上述安全设备用上述认证信息进行上述应用的认证处理。
根据本发明另一方面,信息处理终端的集成电路采用下述结构,包括应用执行部件,执行上述信息处理终端的应用;应用发行请求发送部件,请求发行应用;以及接收部件,接收从安全设备发行的应用;上述应用发行请求发送部件请求上述安全设备发行具有代行上述安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA并起动,用上述MTA中嵌入的上述认证信息与上述安全设备进行上述MTA的认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA请求上述安全设备发行上述MTA以外的应用,接收从上述安全设备发行的上述MTA以外的应用并起动,用上述MTA以外的应用中嵌入的上述认证信息与上述安全设备进行认证处理。
根据本发明另一方面,信息处理终端的集成电路采用下述结构,包括应用执行部件,执行上述信息处理终端的应用;和应用发行请求发送部件,请求发行应用;上述应用发行请求发送部件请求上述安全设备发行具有代行安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA并起动,用上述MTA中嵌入的上述认证信息与上述安全设备进行上述MTA的认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA向上述安全设备请求上述应用加密密钥,从上述安全设备接收上述应用加密密钥并对已加密应用进行解密并执行。


通过以下结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,附图中示例性地示出一个例子,其中图1是本发明实施方式1的信息处理终端30和安全设备10的功能方框图。
图2(A)是图1的安全设备的结构图。
图2(B)是图1的信息处理终端的结构图。
图3是本发明实施方式1的序列图。
图4是本发明实施方式1的具体系统的说明图。
图5(A)是指示书模板的具体例的说明图。
图5(B)是指示书的具体例的说明图。
图5(C)是指示书的数值的意义的说明图。
图6是发行信息的具体例的图。
图7(A)是有虚拟数据的情况下的指示书模板的具体例的图。
图7(B)是有虚拟数据的情况下的指示书的具体例的图。
图8(A)是使卡应用进行计算的情况下的指示书模板的具体例的图。
图8(B)是使卡应用进行计算的情况下的指示书的具体例的图。
图9是本发明实施方式2的信息处理终端和安全设备的功能方框图。
图10(A)是图9的安全设备的结构图。
图10(B)是图9的信息处理终端的结构图。
图11是本发明实施方式2的序列图。
图12是本发明实施方式3的信息处理终端30和安全设备10的功能方框图。
图13(A)是图12的安全设备的结构图。
图13(B)是图12的信息处理终端的结构图。
图14是本发明实施方式3的序列图。
图15是本发明实施方式3的安装已加密应用的序列图。
图16是应用加密密钥存储部中存储的数据的具体例的图。
图17是本发明实施方式4的信息处理终端和安全设备的功能方框图。
图18(A)是通常的终端应用的图。
图18(B)是添加了虚拟方法的终端应用的图。
图18(C)是嵌入了生成的方法的终端应用的图。
图19(A)是指示书模板的具体例的图。
图19(B)是指示书的具体例的图。
图20是本发明实施方式5的信息处理终端和安全设备10的功能方框图。
图21(A)是指示书模板的具体例的图。
图21(B)是指示书的具体例的图。
图22(A)是加扰前的终端应用的具体例的图。
图22(B)是加扰后的终端应用的具体例的图。
图23是本发明实施方式6的信息处理终端的应用执行LSI的结构的一例和安全设备的功能方框图。
图24是本发明实施方式6的信息处理终端的应用执行LSI的结构的一例的方框图。
图25是本发明实施方式7的信息处理终端的应用执行LSI的结构的一例和安全设备的功能方框图。
图26是本发明实施方式7的信息处理终端的应用执行LSI的结构的一例的方框图。
图27是本发明实施方式8的信息处理终端的应用执行LSI和安全设备的功能方框图。而图28是本发明实施方式8的信息处理终端的应用执行LSI的结构的一例的方框图。
具体实施例方式
以下参照附图来说明本发明的实施方式。
(实施方式1)在本发明实施方式1中,说明保持终端应用的安全设备。将该安全设备安装到信息处理终端上,信息处理终端请求起动终端应用时,安全设备将嵌入了应用认证信息的终端应用发行给信息处理终端,信息处理终端起动终端应用后,在安全设备和信息处理终端之间,用应用认证信息来进行认证。
在图1中,信息处理终端30包括终端OS 35;应用发行请求发送部301,请求发行终端应用31;以及应用接收部302,接受发行的终端应用31。此外,被起动的终端应用31包括应用认证部311,由安全设备10根据终端应用31自身中嵌入的应用认证信息来进行认证;和通信部312,与安全设备10上的卡应用11(请参照图2(A))进行通信。在信息处理终端30中,设有用于保持终端应用31的存储器或HDD等存储部件、用于执行终端应用31的CPU和存储器等,但是在说明及图中省略它们来进行说明,在其他实施方式中也同样。此外,在图1中,在信息处理终端30中设有终端应用31,但是它示出信息处理终端30接受了从安全设备10发行的终端应用31并存储在存储器等中。这在除了信息处理终端30加密存储终端应用31的后述实施方式3(请参照图12、图13)以外的其他实施方式中也同样。
另一方面,安全设备10包括应用发行部101,向终端应用31中嵌入应用认证信息来发行终端应用31;应用发送部102,发送发行的终端应用31;应用认证部103,根据嵌入的应用认证信息来认证发行的终端应用31;通信部104,与信息处理终端30上的终端应用31进行通信;应用存储部105,保持确认了真实性的终端应用31;以及发行信息存储部106,存储发行时嵌入到终端应用31中的应用认证信息。在安全设备10中,也设有用于执行卡应用11和发行应用12的MPU和存储器,但是在说明及图中省略它们来进行说明,在其他实施方式中也同样。此外,图中带括号的数字表示运行步骤(在后述其他图中也同样)。
接着,说明图1中的工作。在用户等请求起动终端应用31后,信息处理终端30的应用发行请求发送部301将终端应用31的发行请求发送到安全设备10的应用发行部101(图1的(1))。应用发行部101从应用存储部105中读出终端应用31,进行发行处理—嵌入每次发行终端应用31时都不同的任意产生的应用认证信息,将与发行有关的信息—终端应用31的应用ID(应用的标识符)、和嵌入的应用认证信息相对应而保存到发行信息存储部106中,并将发行的终端应用31转交给应用发送部102(图1的(2))。应用发送部102将发行的终端应用31发送到信息处理终端30的应用接收部302(图1的(3))。应用接收部302接收发行的终端应用31并起动(图1的(4))。根据在终端应用31的应用认证部311与安全设备10的应用认证部103之间嵌入的应用认证信息来进行认证处理(图1的(5))。此时,如后所述根据应用认证信息生成密钥(以下称为应用认证密钥)来认证终端应用321,而认证了终端应用321后,终端应用31的通信部312及安全设备10的通信部104分别用认证处理中新共享的密钥、即独立于应用认证密钥而生成的密钥来进行通信(图1的(6))。由此,安全设备10中保存的重要数据或有价值的数据—机密信息只转交给用应用认证密钥认证过的终端应用31,所以能够保护这种机密信息,并且应用认证密钥只在认证时使用,在其后的通信中共享新生成的密钥来进行通信,所以认证处理和通信处理中使用的密钥不同,认证和通信的独立性提高,能够更可靠地防止认证密钥和通信时使用的密钥的泄漏等。
图2(A)及图2(B)的结构图分别示出实现实施方式1的信息处理终端30及安全设备10的各功能块的结构。
在信息处理终端30上,应用认证部311、通信部312、及接受服务的提供、向用户呈现信息或接受输入等的服务部313由终端应用31来实现。此外,应用发行请求发送部301及应用接收部302由基本加载器32来实现,该基本加载器请求发行安全设备10中保存的终端应用31、进行起动的应用。
在安全设备10上,应用发行部101及应用发送部102由发行应用12来实现。此外,应用认证部103、通信部104及提供服务的服务提供部109由卡应用11来实现。应用存储部105及发行信息存储部106是位于安全设备10上的、具有防篡改性等的难以从外部直接访问的存储区域,例如由安全设备10内的EEPROM或闪速存储器来实现。
图3的序列图示出该安全设备10及信息处理终端30的处理步骤。
在信息处理终端30的用户进行了指示、或者信息处理终端30检测出插入了安全设备10等情况下,终端OS 35起动基本加载器32(图3的(1))。基本加载器32将指定要起动的终端应用31的应用ID发送到安全设备10的发行应用12(图3的(2))。
在安全设备10中,发行应用12将应用认证信息嵌入到基本加载器32用应用ID指定的终端应用31中(图3的(3)),发行给信息处理终端30的基本加载器32(图3的(4))。
基本加载器32接收到终端应用31后,在终端OS 35上起动接收到的终端应用31(图3的(5))。终端应用31用嵌入的应用认证信息,与安全设备11的卡应用11进行认证(图3的(6))。
图4示出从生成终端应用31直至将终端应用31下载到安全设备10、进而在信息处理终端30上的终端应用31和安全设备10之间进行认证的、系统工作的概要。在图4所示的安全设备10中,将图1所示的应用存储部105和发行信息存储部106表现为1个存储装置13,存储着发行信息131、机密信息132、终端应用31、指示书133等。
此外,在图4中,终端应用生成装置20由搭载了将源代码21变换为可嵌入应用认证信息的终端应用软件的计算机等构成,具有嵌入准备部22、编译器23、以及指示书生成部24。
在以下例子中,采用根据终端应用31中嵌入的应用认证信息在执行时计算应用认证密钥、用应用认证密钥来进行认证的手法。如果进而将源代码、特别是计算应用认证密钥、进行认证的部分的源代码模糊化则效果更好。图4始于像通常那样开发终端应用31、得到用JAVA等语言书写的源代码21。
流程大体分为终端应用生成装置20根据源代码21来生成可嵌入应用认证信息的终端应用31、和指示应用认证信息的嵌入方法的指示书133,存储到安全设备10中之前的图4的(1)至(4)的工作;和安全设备10发行终端应用31,认证处理完成之前的图4的(5)至(9)的工作。
接着,说明图4中的工作。首先,终端应用生成装置20的嵌入准备部22接受开发出的终端应用的源代码21(图4的(1)),进行嵌入准备。具体地说,嵌入准备部22向接受的源代码21中添加用于嵌入应用认证信息的余地、和用于根据嵌入的应用认证信息来得到应用认证密钥、与安全设备10进行认证处理的源代码。此外,生成指示与添加的源代码对应的嵌入方法和其利用的方法的指示书133的雏形—指示书模板(图4的(2))。
进行了该嵌入准备的终端应用31的源代码由编译器23进行编译,作为字节码(目标码)而输出到指示书生成部24(图4的(3))。
接着,指示书生成部24根据来自编译器23的终端应用31的字节码、和来自嵌入准备部22的指示书模板来生成指示书133,编译器23和指示书生成部24分别将终端应用31的字节码和指示书133存储到安全设备10的存储装置13中(图4的(4))。
用户例如用信息处理终端30进行起动操作而请求起动终端应用31后,基本加载器32被起动,基本加载器32向安全设备10的发行应用12传递应起动的终端应用31的应用ID,请求发行应起动的终端应用31(图4的(5))。这相当于图1的(1)的工作。此时,也可以认证用户,认证应起动的终端应用31的许可等。
安全设备10内的发行应用12从存储装置13中读出终端应用31和指示书133,参照指示书133,根据随机数或计算随机数的式子等将每次值都不同的应用认证信息嵌入到终端应用31的字节码中。然后,发行应用12根据终端应用31中嵌入的应用认证信息来计算应用认证密钥,与应用ID相对应而作为发行信息131来存储(图4的(6))。这相当于图1的(2)的工作。计算的应用认证密钥与信息处理终端30上终端应用31实际计算的应用认证密钥相同。
从发行应用12发行的终端应用31被转交给信息处理终端30的基本加载器32后,由信息处理终端30作为终端应用31来起动(图4的(7))。这相当于图1的(3)、(4)的工作。
终端应用31根据终端应用31中嵌入的应用认证信息、和终端应用生成装置20的嵌入准备部22向终端应用31的源代码21中添加的用于与安全设备10进行认证处理的代码,来计算应用认证密钥,与安全设备10的卡应用11通过认证程序来进行认证处理(图4的(8))。这相当于图1的(5)的工作。
如果认证处理的结果是认证为信息处理终端30发行的终端应用31是真实的,从认证过的信息处理终端30的终端应用31收到读出机密信息132等的请求,则卡应用11的通信部104从存储装置13中读出机密信息132等,与信息处理终端30的终端应用31共享独立于应用认证密钥的密钥,进行通信来转交(图4的(9))。这相当于图1的(6)的工作。不响应来自未通过认证的信息处理终端30内的终端应用31的请求。
以下,参照图5~图8来说明图4的包含具体数据例的详细工作。
在图4中的终端应用生成装置20的工作(2)中进行嵌入准备。
作为具体的嵌入的例子,以下描述将嵌入的应用认证信息代入到变量中、根据该变量来计算应用认证密钥的方法。嵌入准备部22准备容纳向源代码21中嵌入的应用认证信息的变量,添加用这些变量来计算应用认证密钥的代码。
对于有的嵌入方法,向编译器23输出调试信息、在根据指示书模板来生成指示书时利用该调试信息等编译的方法很重要。例如,在用局部变量来准备代入的变量的情况下,为了生成指示书133,需要局部变量的信息,但是通常编译器23不将局部变量的信息残留到字节码中。如果使其输出调试信息,则局部变量的信息也将残留,所以能够生成指示书133。如果仍旧残留调试信息,则可能成为解析的线索,所以为了将调试信息作为字节码的一部分来输出,要特别注意在生成指示书后,进行无意义化—从字节码中去除调试信息,使得字节码中不残留多余的信息。
此外,在进行源代码的模糊化的情况下,对于有的模糊化方法,需要从模糊化的软件中得到信息。例如,在进行将符号名变换为无意义的名称这样的模糊化的情况下,必须知道与原来的名称的对应关系。
图5(A)是图4中的工作(2)、即终端应用生成装置20的嵌入准备部22生成的指示书模板的具体例。
第一行示出向终端应用31中嵌入应用认证信息的地址、和作为应用认证信息要嵌入的信息。变量名s1、s2、s3表示代码中的变量,此行示出向s1、s2、s3中填入随机数。该s1、s2、s3在嵌入准备时被准备在代码中。假定按照语言的规定填入32比特的整数值,但是在必要时也可以明示值的种类和范围。
第二行示出根据嵌入的应用认证信息来得到应用认证密钥的计算方法,在此情况下,表示取嵌入的变量的逻辑“异或”。
图5(B)是图4中的工作(4)、即终端应用生成装置20的指示书生成部24生成的与上述指示书模板对应的指示书133的具体例。
用编译决定的s1、s2、s3在字节码上的位置来置换s1、s2、s3。如图5(C)示意性地示出那样,0x47、0x57、0x67分别是s1、s2、s3的位置离起始地址的字节数的十六进制表记(即,0x47表示s1在十进制表记下是字节码的第71个字节)。变量名依次用号码置换为%1、%2、%3。
字节码和指示书在生成后被存储到安全设备10的存储装置13中,以下描述应注意的事项。
在将字节码和指示书133转交给安全设备10时,需要以能够确认真实性和检测篡改的形式来转交。例如,在转交的数据的散列值上附加用终端应用生成装置的私钥实施了电子签名的证书。安全设备10具有生成装置的公钥证书而能够验证证书,验证接受的数据后进行存储。
此外,终端应用生成装置20、或从终端应用生成装置20接受终端应用和指示书并分发的服务器等为了防止终端应用或指示书被盗听、假冒,在向安全设备10进行发送时,在进行了相互认证之后,确立安全信道,进行加密来进行发送。在安全设备10端,发行应用12进行接收、验证并进行存储。
在图4的工作(5)中,基本加载器32将请求发行的终端应用31的应用ID发送到发行应用12,进行发行请求。
此时,也可以与应用ID一起,还发送信息处理终端30的机种和型号、空闲存储器等信息,发行应用12还利用应用ID之外发送的信息来选择要发行的终端应用31。例如,安全设备10对相同服务保持机种A用和机种B用、或者虽然是多功能但是所需存储器大的应用和虽然简单但是所需存储器少的应用,能够按照信息处理终端30来选择要发行的终端应用31。
在图4的工作(6)中,发行应用12参照指示书133向终端应用31的字节码中嵌入应用认证信息。
作为应发行的终端应用31的指示书133而接受了例如图5(B)所示的指示书133的发行应用12根据该指示书133的第一行,向终端应用31的字节码的0x47、0x57、0x67的位置上嵌入随机数(random),分别作为第一至第三个变量(%1、%2、%3)来存储。其后,根据第二行,计算它们的逻辑“异或”,作为应用认证密钥。
这里,发行应用12也可以接受终端应用31的字节码和指示书模板,与指示书生成部24同样来生成指示书133并嵌入,但是其处理很复杂,而且在每次发行时执行安全设备10上的发行应用12,这很浪费,一旦生成指示书133则能使用相同的指示书,所以如果像图4所示的终端应用生成装置20那样预先生成则能避免浪费。此外,在为了进行更加复杂的处理,而借助于编译器23,或者采用模糊化时,为了生成指示书133,需要更多的信息,为此,指示书133也最好不是在安全设备10内生成,而是在终端应用生成装置20等安全设备10外预先生成。
在图4的工作(8)中,卡应用11进行终端应用31的认证处理。
终端应用31与指示书133的指示内容同样进行编程,使得将应用认证信息—嵌入的三个随机数值的逻辑“异或”作为应用认证密钥。卡应用11根据存储装置13中存储的发行信息131来得到应用认证密钥。用应用认证密钥进行的认证手法可以采用用对称密钥进行的手法。例如,采用询问应答,或者如果无需相互认证,则也可以仅将应用认证密钥当作一次性口令,发送到安全设备。再者,在认证时,最好共享其后的通信中使用的新密钥。
这里,发行应用12也可以在将应用认证密钥作为发行信息131来保存时,向应用认证密钥附加有效期。即,在卡应用11的应用认证部103进行认证处理时验证该有效期。具体地说,应用认证部103计测应用发行部101发行终端应用31后的经过时间,在该经过时间在规定的有效期内的情况下,应用认证密钥有效,能够进行认证;而在该经过时间超过了规定的有效期的情况下,使应用认证密钥无效,使得不能进行认证。此外,应用认证密钥只在第一次认证时使用,另外共享其后的通信中使用的密钥。因此,只在结束将终端应用加载到信息处理终端30、用应用认证密钥进行的认证结束之前大约花费的时间内有效就足够了。如果在必要以上长的时间内有效,则发行的终端应用被解析、应用认证密钥泄漏、受到假冒等攻击的危险增加,所以设定较短的期限。这样,如果将有效期附加在应用认证密钥上,使得只在足以解析认证的期间内有效,则即使想解析终端应用31,进行非法假冒的终端应用31的攻击,解析认证信息也特别花费时间,在此期间内应用认证密钥到期,所以能够防御非法假冒的终端应用的攻击,并且能够检测出正在尝试进行某种攻击。
图6是发行信息131的例子。写着应用ID、应用认证密钥、以及应用认证密钥的有效期,例如第二行示出应用ID为ap1的终端应用31的应用认证密钥是0xebabefac(十六进制表记),有效期是2003年3月31日的7时0分5秒之前。
在出于用一个安全设备10来提供多个不同服务的目的而安装了多个卡应用11的情况下,终端应用31需要能够识别自己应与哪个卡应用11进行通信。在开发终端应用31时指定卡应用11的识别信息很简便。卡应用11的识别信息也可以不公开给开发端。在此情况下,发行应用12在从服务器等接受卡应用11的识别信息并存储时,按与嵌入相同的要领来接受指示书,写入到终端应用中。此外,在能够使卡应用11的识别信息为动态的情况下,发行应用12也可以在发行时嵌入卡应用11的识别信息。
此外,最好将终端应用31预先编程,以在信息处理终端30结束执行终端应用31时,将从安全设备10入手的不希望存储到信息处理终端30端的信息、例如应用认证密钥或卡应用11的识别信息等发行信息131或机密信息132等从包含存储器在内的存储区域上擦除并结束。这样,即使不希望存储到信息处理终端30端的信息被转交给信息处理终端30端,在结束执行终端应用31时,也被可靠地擦除,所以能够防止泄漏。
接着,示出应用认证信息的嵌入方法、及对应的指示书133的变化。
图7是加入计算向终端应用31中嵌入的认证信息时不使用的虚拟数据的例子。图7(A)示出有虚拟数据指示书模板的例子。第一行示出将s1至s6六个随机数作为应用认证信息而嵌入到终端应用31中。第二行示出根据s6的值从s1至s5的值中选三个作为a、b、c。即,六个随机数中,两个是虚拟数据。选法例如是产生从s1~s5中取出3个来排列的全排列(称为全排列,在此情况下有60种)并分配号码,根据与s6除以全排列的数目(在此情况下为60)所得的余数对应的排列而分配给a、b、c。第三行用分配的a、b、c来计算应用认证密钥。图7(B)是根据图7(A)所示的有虚拟数据指示书模板而生成的指示书133的例子。决定嵌入的位置、将变量名置换为%7等与图5(B)的情况同样。此外,与图7(B)所示的有虚拟数据指示书133的指示内容同样,将终端应用31编程,以从应用认证信息—嵌入的六个随机数值中选择三个将逻辑“异或”作为应用认证密钥。
如上所述,通过根据有虚拟数据指示书模板、有虚拟数据指示书133来加入虚拟数据,即使在例如能够通过比较多个发行的终端应用31而从外部提取终端应用31中嵌入的应用认证信息的情况下,也能够使推测应用认证密钥更加困难。其结果是,也能够强化对差分攻击的防篡改性。
这样,在实施方式1中,安装了保持终端应用31的安全设备10的信息处理终端30请求起动终端应用31后,安全设备10向终端应用31中嵌入应用认证信息而发行给信息处理终端30,所以起动信息处理终端30发行的终端应用31后,能够在安全设备10和信息处理终端30之间,根据应用认证信息来进行认证。
在本实施方式中,说明了根据指示书133将每次发行终端应用31时值都不同的应用认证信息用作向终端应用31中嵌入的认证信息的例子,但是本发明不限于此,也可以是不从安全设备10发送就不能识别的卡应用11的识别信息、或其他任意信息,例如可以是规定安全设备10的终端应用31的工作的参数,也可以是许可信息等。此时,指示书133也可以用于指示嵌入这种信息的目的。
此外,在本实施方式中,说明了发行应用12根据应用认证信息来计算应用认证密钥并作为发行信息之一而存储到发行信息存储部106中,但是本发明不限于此,也可以使根据应用认证信息来计算应用认证密钥的程序代码位于卡应用11内,例如卡应用11内的应用认证部103等在认证时读入发行应用12生成的应用认证信息来计算应用认证密钥。在此情况下,在发行应用12接受的指示书133中无需写着应用认证密钥的计算方法,所以发行应用11也不知道应用认证密钥,认证的独立性提高,能够更可靠地防止认证密钥的泄漏等。
图8是在根据嵌入的应用认证信息来计算应用认证密钥时使用卡应用11的例子。图8(A)示出指示书模板的例子。第一行示出嵌入256个应用认证信息。在此情况下,作为数组来嵌入。第二行示出将嵌入的应用认证信息作为变元而传递给卡应用11,卡应用11根据嵌入的应用认证信息来进行计算,将返回的结果作为应用认证密钥。图8(B)是根据指示书模板而生成的指示书133的例子。决定嵌入的位置、将变量名置换为0x37等与图5(B)的情况同样。
此外,在本实施方式中,基本加载器32接受发行的终端应用并立即起动,但是也可以通过由发行应用12向终端应用31进行签名,基本加载器32验证该签名后进行起动,来防止起动非法的终端应用31。
(实施方式2)在本发明实施方式2中,说明保持具有在信息处理终端上代行安全设备的处理的一部分的功能的被称为MTA(Master Trusted Agent)的终端应用、和其他终端应用的安全设备。将该安全设备安装到信息处理终端上后,首先,被称为MTA的终端应用从安全设备被发行给信息处理终端并由信息处理终端起动,根据MTA中嵌入的认证信息被认证后,其后的终端应用的起动由MTA来中介。即,信息处理终端安装了安全设备后,在请求起动终端应用时,由安全设备经由MTA来发行嵌入了应用认证信息的终端应用,MTA起动终端应用后,用应用认证信息来进行认证。
因此,与实施方式1的情况不同,在实施方式2中,安全设备被安装到信息处理终端上后,首先,被称为MTA的终端应用从安全设备被发行给信息处理终端并被起动及认证,先认证过的终端应用—MTA起动其他应执行的终端应用,所以其他应执行的终端应用被解析的可能性降低。
在图9中,实施方式2的信息处理终端30包括终端OS 35;应用发行请求发送部301,请求发行终端应用;应用接收部302,接受发行的终端应用31;以及应用发行请求部303,请求发行终端应用。此外,被起动的终端应用31与实施方式1同样,包括应用认证部311,根据嵌入的应用认证信息来进行认证;和通信部312,与安全设备10上的卡应用11进行通信。
另一方面,安全设备10与实施方式1同样,包括应用发行部101,向终端应用31中嵌入应用认证信息来发行终端应用31;应用发送部102,发送发行的终端应用31;应用认证部103,根据嵌入的应用认证信息来进行认证;通信部104,与信息处理终端30上的终端应用31进行通信;应用存储部105,保持确认了真实性的终端应用31;以及发行信息存储部106,存储发行时嵌入到终端应用31中的应用认证信息。
接着,说明图9中的工作。在用户等请求起动终端应用后,信息处理终端30的应用发行请求发送部301将终端应用的发行请求发送到应用发行请求部303(图9的(1))。应用发行请求部303请求应用发行部101发行请求的终端应用(图9的(2))。应用发行部101从应用存储部105中读出终端应用31,进行发行处理—嵌入每次发行终端应用31时都不同的任意产生的应用认证信息,将与发行有关的信息—终端应用31的应用ID(应用的标识符)、和嵌入的应用认证信息相对应而保存到发行信息存储部106中,将发行的终端应用31转交给应用发送部102(图9的(3))。应用发送部102将发行的终端应用31发送到信息处理终端30的应用接收部302(图9的(4))。应用接收部302接收发行的终端应用31并起动(图9的(5))。终端应用31的应用认证部311与安全设备10的应用认证部103用嵌入的应用认证信息通过应用认证密钥来进行认证(图9的(6))。如果该认证的结果是认证了信息处理终端30起动了的终端应用31是真实的,则终端应用31的通信部312及安全设备10的通信部104共享独立于应用认证密钥的密钥、即用应用认证信息进行的认证中新生成的密钥来传送安全设备10中存储的机密信息132等(图9的(7))。
图10(A)及图10(B)的结构图分别示出实现实施方式2的信息处理终端30及安全设备10的各功能块的结构。
在信息处理终端30上,应用认证部311、通信部312、及接受服务的提供、向用户呈现信息或接受输入等的服务部313由终端应用来实现。此外,应用发行请求发送部301由请求发行终端应用31的应用加载器33来实现。此外,应用接收部302及应用发行请求部303由MTA34来实现。
在安全设备10上,应用发行部101及应用发送部102由发行应用12来实现。此外,应用认证部103、通信部104及提供服务的服务提供部109由卡应用11来实现。应用存储部105及发行信息存储部106是位于安全设备上的、具有防篡改性等的难以从外部直接访问的存储区域,例如由安全设备内的EEPROM或闪速存储器来实现。
图11的序列图示出实施方式2的安全设备10及信息处理终端30的处理步骤。
信息处理终端30的用户进行了指示、或者信息处理终端30检测出插入了安全设备10等后,终端OS 35起动应用加载器33(图11的(1))。此时,从信息处理终端30向安全设备10自动地首先请求发行MTA 34,信息处理终端30接收嵌入了应用认证信息的MTA 34并起动,与其他终端应用31同样与安全设备10进行认证处理,认为已认证出起动的MTA 34是真实的。应用加载器33将指定要起动的终端应用31的应用ID传递给MTA 34(图11的(2))。MTA 34在必要时与安全设备10协作来认证用户(图11的(3))。将应用发行请求发送到安全设备10的发行应用12(图11的(4))。
发行应用12确认用户是否有起动终端应用的权限(图11的(5)),在被认可时,将应用认证信息嵌入到指定的应发行的终端应用31中(图11的(6)),发送到MTA 34(图11的(7))。
MTA 34起动接收到的终端应用31(图11的(8))。终端应用31用嵌入的应用认证信息,与卡应用11用应用认证信息来进行认证(图11的(9)),一边用新生成的密钥来传送机密信息132等一边执行该程序。
这里,MTA 34已认证,所以从前述MTA 34认证用户(图11的(3))直至安全设备10发行终端应用31(图11的(7))的处理在已认证的安全信道上执行,而且从安全设备10发行的应执行的终端应用31由MTA 34的应用接收部302接收,所以与不使用MTA 34的实施方式1的情况相比,能够请求安全设备10发行有限制的终端应用31,或者可靠地防止篡改从安全设备10接收到的终端应用31等。
这样,在实施方式2中,在安装了保持被称为MTA 34的应用和其他终端应用31的安全设备10的信息处理终端30上MTA34首先被发行、起动、认证,MTA 34起动后的应执行的其他终端应用31的起动等由被认证了的应用—MTA 34来进行,所以应执行的终端应用31被解析的可能性降低。
特别是,在实施方式2中,进行从已认证的MTA 34认证用户直至安全设备10发行终端应用31的处理,而且从安全设备10发行的应执行的终端应用31由MTA 34的应用接收部302来接收,所以与不使用MTA 34的实施方式1的情况相比,能够可靠地防止篡改信息处理终端30中的终端应用31等。
在本实施方式中,MTA也可以保持与JAVA的VM(Virtual Machine,虚拟机)相当的应用执行部件,MTA自身执行MTA以外的应用。根据该结构,安全设备能够信赖执行MTA以外应用的应用执行部件自身,所以能够安全地执行MTA以外的应用,例如在执行后可靠地擦除机密信息等。
此外,在本实施方式中,MTA 34请求安全设备10发行终端应用31后,安全设备10嵌入认证信息并发行给MTA 34,但是安全设备10也可以不嵌入,而将终端应用31和指示书133原封不动地转交给MTA 34,MTA 34将自身中嵌入的认证信息嵌入到终端应用31中并起动。通过这样做,可以不向安全设备10施加发行的负担。
此外,安全设备10在发行MTA 34时,除了认证MTA 34自身的认证信息以外,也可以随后还嵌入MTA34向终端应用31中嵌入时能够使用的多余的认证信息。或者,MTA 34也可以请求安全设备10发送应嵌入的认证信息。通过这样做,不牺牲安全性,就能够减轻安全设备10的负担。
此外,在本实施方式中,MTA 34请求安全设备10发行终端应用31后,安全设备10嵌入认证信息并发行给MTA 34,但是安全设备10也可以不嵌入,而单单向MTA 34转交终端应用31和新的认证信息,MTA 34将认证信息转交给终端应用31并起动,从而起动无需进行嵌入的终端应用。通过这样做,能够省去将终端应用31加工成可嵌入的形式的时间。
(实施方式3)在本发明实施方式3中,说明保持被称为MTA(Master Trusted Agent)的终端应用的安全设备、和保持加密过的终端应用(以下称为已加密应用)的信息处理终端。
在前述实施方式1、2中,在安全设备中存储着终端应用,所以安全设备需要足够的存储容量。但是,在IC卡等容量不够的情况下,要使信息处理终端存储终端应用,而且为了防止解析和擅自使用,必须进行加密。
在本实施方式中,公开在这种情况下安全设备和终端应用也能够进行认证的起动方法。
此外,将安全设备安装到信息处理终端上后,被称为MTA的终端应用被起动、认证,其后的终端应用的起动由MTA来进行。因此,在本实施方式中,信息处理终端请求起动终端应用后,MTA从安全设备接受应用加密密钥和散列值,进行已加密应用的解密及验证,在用散列值验证了解密过的已加密应用未被篡改等的情况下,MTA向终端应用和安全设备转交应用认证信息,起动终端应用后,用应用认证信息来进行认证。
在图12中,实施方式3的信息处理终端30包括终端OS 35;应用发行请求发送部301,请求发行终端应用;应用解密请求部307,请求对终端应用进行解密;已加密应用存储部304,存储已加密应用;终端端应用解密部305,从安全设备10接受用于对已加密应用进行解密的密钥来进行解密;以及终端端应用发行部306,接受解密过的终端应用31并发行终端应用31。此外,与实施方式1同样,起动了的终端应用31包括应用认证部311,根据应用认证信息来进行认证;和通信部312,与安全设备10上的卡应用11进行通信。
另一方面,实施方式3的安全设备10包括应用发行部101,从信息处理终端30接受终端应用31的应用ID和应用认证信息;应用认证部103,根据应用认证信息来进行认证;通信部104,与信息处理终端30上的终端应用31进行通信;发行信息存储部106,将从信息处理终端30接受的应用认证信息与终端应用31的应用ID相对应来存储;应用加密密钥发送部107,将指定的终端应用31的解密时所用的应用加密密钥发送到信息处理终端;以及应用加密密钥存储部108,存储终端应用31的应用ID和用于对终端应用31进行解密的应用加密密钥以及终端应用31的正确的散列值。
接着,说明图12中的工作。在用户等请求起动终端应用31后,信息处理终端30的应用发行请求发送部301将终端应用31的发行请求发送到应用发行请求部303(图12的(1))。应用发行请求部303向应用加密密钥发送部107发送应执行的已加密终端应用31的识别信息—应用ID,请求用于对请求的终端应用31进行解密的应用加密密钥和验证时所用的散列值(图12的(2))。应用加密密钥发送部107根据接收到的应用ID从应用加密密钥存储部108中读出对应的应用加密密钥和散列值,发送到终端端应用解密部305(图12的(3))。终端端应用解密部305从已加密应用存储部304中读出已加密的终端应用31,用从安全设备10接收到的应用加密密钥进行解密,并且计算散列值,验证终端应用31未被篡改(图12的(4))。然后,终端端应用发行部306验证了终端应用31未被篡改后,进行发行处理—任意产生每次对终端应用31进行解密时值都不同的应用认证信息,将与发行有关的信息—终端应用31的应用ID(应用的标识符)、和应用认证信息发送到安全设备10端的应用发行部101(图12的(5))。应用发行部101接收到终端应用31的应用ID、和应用认证信息后,将它们相对应而保存到发行信息存储部106中(图12的(6))。另一方面,终端端应用发行部306向解密过的终端应用31中嵌入应用认证信息并转交,起动终端应用31(图12的(7))。由此,终端应用31的应用认证部311与安全设备10的应用认证部103与前述实施方式1同样,用应用认证信息生成应用认证密钥来进行认证(图12的(8))。然后,信息处理终端30的通信部312及安全设备10的通信部104进行用应用认证信息进行的认证中新共享的独立于应用认证密钥的密钥来传送安全设备10中存储的机密信息132等(请参照图4)的通信(图12的(9))。
图13(A)及图13(B)的结构图分别示出实现实施方式3的信息处理终端30及安全设备10的各功能块的结构。
在信息处理终端30上,应用认证部311、通信部312、及接受服务的提供、向用户呈现信息或接受输入等的服务部313由终端应用31来实现。此外,应用发行请求发送部301由基本加载器32来实现。此外,应用发行请求部307、终端端应用解密部305及终端端应用发行部306由MTA 34来实现。
在安全设备10上,应用发行部101及应用加密密钥发送部107由发行应用12来实现。此外,应用认证部103、通信部104及提供服务的服务提供部109由卡应用11来实现。发行信息存储部106及应用加密密钥存储部108是位于安全设备10上的、具有防篡改性等的难以从外部直接访问的存储区域,例如由安全设备10内的EEPROM或闪速存储器来实现。
图14的序列图示出实施方式3的安全设备10及信息处理终端30的处理步骤。
信息处理终端30的用户进行了指示、或者信息处理终端30检测出插入了安全设备10等后,终端OS 35起动应用加载器33(图14的(1))。此时,与实施方式2的情况同样,自动地从信息处理终端30向安全设备10请求发行MTA34,信息处理终端30接收嵌入了应用认证信息的MTA 34并起动,与其他终端应用31同样与安全设备10进行认证处理,认为已认证。应用加载器33将指定要起动的已加密应用的应用ID传递给MTA 34(图14的(2))。MTA 34在必要时与安全设备10协作来认证用户(图14的(3)),将与应用ID对应的已加密的终端应用31的解密时所用的应用加密密钥的请求发送到安全设备10的发行应用12(图14的(4))。
发行应用12确认用户是否有起动已加密的终端应用31的权限(图14的(5)),在被确认后,将与应用ID对应的应用加密密钥和散列值发送到MTA34(图14的(6))。MTA 34用接收到的应用加密密钥对已加密的终端应用31进行解密,计算散列值,验证了未被篡改后,将每次解密都不同的任意产生的应用认证信息与应用ID一起发送到发行应用12(图14的(7))。然后,发行应用12将应用ID和应用认证信息相对应来存储。在检测出篡改的情况下,不起动终端应用31。
此外,MTA 34向终端应用31转交应用认证信息并在终端OS上起动终端应用31(图14的(8))。终端应用31用转交的应用认证信息,与卡应用11进行认证(图14的(9)),一边传送机密信息等一边执行该程序。
因此,与实施方式2同样,MTA 34已认证,所以从前述MTA 34认证用户(图14的(3))直至MTA 34发行应用认证信息(图14的(7))的处理在已认证的安全信道上执行,所以与不使用MTA 34的实施方式1的情况相比,能够可靠地防止请求安全设备10发行有限制的终端应用31等等。
图15的序列图示出将已加密应用安装到信息处理终端30上的处理步骤的一例。
用户向分发终端应用31的终端应用生成装置20(请参照图4)等服务器40以某种形式、例如经由WWW(World Wide Web,万维网)等指定了想下载的终端应用31后,服务器40与安全设备10共享用于对终端应用31进行加密的应用加密密钥(图15的(1))。其后,从服务器40将该终端应用的应用ID和验证用的散列值传递给安全设备10(图15的(2))。安全设备10将应用ID、应用加密密钥以及散列值相对应来存储(图15的(3))。服务器40用与安全设备10共享的应用加密密钥将终端应用31加密成已加密应用,与应用ID一起发送到信息处理终端30的MTA 34(图15的(4))。MTA 34将已加密的终端应用31原封不动地与应用ID相对应而存储到已加密应用存储部304中(图15的(5))。
按以上步骤,应用加密密钥和散列值被存储到安全设备10中,已加密的终端应用31被存储到信息处理终端30中。该图15所示的例子示出在向信息处理终端30安装已加密应用前,从安全设备10向信息处理终端30发行MTA34并起动、被认证了的情况,但是在MTA 34未被发行给信息处理终端30的情况下,尽管可靠性降低,但最好是使信息处理终端30中预先内置的应用加载器33等具有以上功能。
图16是应用加密密钥存储部108中存储的数据的具体例。在应用加密密钥存储部108中,写有应用ID、应用加密密钥、以及已加密终端应用31的散列值,例如第二行示出应用ID为ap1的已加密终端应用31的应用加密密钥是0xeface321,散列值是0x7ae9a3ca。
这样,在实施方式3中,向保持已加密的终端应用31的信息处理终端10中安装保持被称为MTA 34的应用的安全设备10后,首先起动该MTA 34,MTA 34起动后的已加密的终端应用31的起动由认证过的MTA 34来进行,所以与实施方式2同样,应执行的终端应用31被解析的可能性降低,并且与不使用MTA 34的实施方式1的情况相比,能够可靠地防止篡改信息处理终端30中的终端应用31等。
特别是,在实施方式3中,请求起动信息处理终端30存储的已加密的终端应用31后,MTA34从安全设备10接受应用加密密钥和散列值,进行已加密的终端应用31的解密及验证后,向解密过的终端应用31和安全设备10转交应用认证信息,起动解密过的终端应用31后,用应用认证信息进行认证,所以不能使安全设备10存储容量大的、或者数目多的终端应用31,所以即使在信息处理终端30上存储了加密过的终端应用31的情况下,安全设备10也能够进行认证。
在本实施方式中,MTA也可以保持与JAVA的VM(Virtual Machine,虚拟机)相当的应用执行部件,MTA自身执行MTA以外的应用。根据该结构,安全设备能够信赖执行MTA以外的应用的应用执行部件自身,所以能够安全地执行MTA以外的应用,例如在执行后可靠地擦除机密信息等。
此外,在安全设备10的存储容量产生余量后与信息处理终端30之间的通信速度足够的情况下,如果将已加密的终端应用31不用信息处理终端30进行解密而转交给安全设备10,由安全设备10对已加密的终端应用31进行解密,则能够不将应用加密密钥从安全设备10取出而在安全设备10内对已加密的终端应用31进行解密,与实施方式2同样,也能够将解密过的终端应用31发行给信息处理终端30。
此外,在本实施方式中,MTA34向解密过的终端应用31单单转交应用认证信息,但是也可以与发行应用12同样对解密过的终端应用31进行嵌入处理。在此情况下,只指示进行嵌入处理、未写着应用认证密钥的计算方法的指示书133与已加密的终端应用31一起被加密而被存储在信息处理终端30中,或者这种指示书133与MTA34一起被存储到安全设备10中,在发行MTA 34时,或者在接收应用加密密钥时一起被发送到信息处理终端30。
此外,在本实施方式中,应用认证信息由MTA 34生成,转交给安全设备10,但是MTA34也可以单单请求安全设备10生成应用认证信息,接受安全设备10生成的应用认证信息。
此外,在本实施方式中,从安全设备10向信息处理终端30发行并起动、被认证了的应用—MTA 34请求了用于对已加密的终端应用31进行解密的应用加密密钥,但是不限于此,当然也可以使信息处理终端30中预先设有的应用或固件、以及终端OS 35等具有该MTA 34的功能等。这样,能够省略从安全设备10向信息处理终端30发行MTA 34的处理,所以能够相应地缩短起动已加密的终端应用31之前的时间。只是,在此情况下,需要进行机器认证等来向安全设备表示信息处理终端30搭载了正规的固件或OS。
(实施方式4)本发明的实施方式4的安全设备向终端应用中作为认证信息不是嵌入值本身,而是以动态方法、即用于计算该值的方法(函数)的形式嵌入动态地每次不同地生成的认证信息方法并发行,使终端应用难以由第三者解析,从而进一步提高安全性。
应用认证信息应该尽量采用安全的嵌入方法。同时,必须能够由资源少的卡应用来执行。需要满足这两者的方式。
最好的是在终端应用的认证处理程序以外不能提取应用认证信息。然而,如果终端应用被取出、解析,则有可能最终提取出应用认证信息。因此,以被解析为前提来考虑对策则安全性大大提高。
因此,即使终端应用被解析、提取,在下次利用时也需要再次解析,使提取的自动化很困难。
因此,在实施方式4中,采用以下说明的动态方法的手法。除了所述终端应用以新的方法发行之外,实施方式4的基本工作与实施方式1相同。因此,以下,以发行终端应用的部分—安全设备的应用发行部的工作为中心来进行说明。
下面简单地说明本实施方式的动态方法的手法。在本实施方式中,将安全设备安装到信息处理终端上,信息处理终端请求起动终端应用后,安全设备生成随机的计算式,动态生成进行该计算的程序代码。
该程序代码作为计算应用认证信息的认证信息方法被嵌入到终端应用中,这种嵌入了程序代码的终端应用被发行给信息处理终端,信息处理终端起动终端应用后,终端应用中嵌入的认证信息方法的程序代码计算应用认证信息,在安全设备和信息处理终端之间,根据应用认证信息来进行认证。
图17示出本发明实施方式4的安全设备10的结构和其处理流程。
在图17中,实施方式4的安全设备10的应用发行部101包括认证信息方法嵌入部1011,嵌入应用认证信息;指示书解释部1012,解释应用存储部105中保存的指示书133并将应用认证信息的嵌入方法传递给认证信息方法嵌入部1011;认证信息运算步骤生成部1013,随机生成计算应用认证信息;认证信息方法生成部1014,生成根据计算应用认证信息的运算步骤来实际计算应用认证信息的信息处理终端30用的程序代码—认证信息方法;以及随机数产生部1015,产生为了随机生成运算步骤而使用的随机数。再者,实施方式4的安全设备10除了实施方式1所示的结构以外,还包括命令信息存储部110,存储认证信息方法生成部1014为了生成认证信息方法而使用的命令信息。
接着说明图17中的工作。认证信息运算步骤生成部1013利用来自随机数产生部1015的随机数,随机生成表示计算应用认证信息的运算步骤的式子,转交给认证信息方法生成部1014。此外,将计算表示该运算步骤的式子的结果存储到发行信息存储部106中(图17的(1))。运算步骤10131例示运算步骤,示出下述步骤向变量a、b、c中以与实施方式1同样的处理来嵌入值,用a*b+c来计算认证信息。
认证信息方法生成部1014根据信息处理终端30请求发行时发送的与该信息处理终端30有关的机种信息从命令信息存储部110中取得与该信息处理终端30的处理单元(CPU)的种类对应的命令信息1101,根据命令信息1101将来自认证信息运算步骤生成部1013的运算步骤10131变换为该信息处理终端30的处理单元(CPU)可理解的命令串来生成认证信息方法10141,转交给认证信息方法嵌入部1011(图17的(2))。命令信息存储部110中存储的命令信息1101例示该信息处理终端30的处理单元(CPU)执行的命令信息,是用于将计算应用认证信息的运算步骤变换为该信息处理终端30可执行的程序代码的信息。认证信息方法10141例示认证信息方法,是该信息处理终端30的处理单元(CPU)可执行的程序代码。
认证信息方法嵌入部1011接受生成的认证信息方法10141,根据指示书133的内容,将认证信息方法10141嵌入到终端应用31中。此时,独立于命令串,代入到式子的变量中的值被嵌入到变量区域中(图17的(3))。
因此,在信息处理终端30上起动终端应用31后,执行认证信息方法10141,计算应用认证信息。根据该应用认证信息来进行认证所需的值被保存在发行信息存储部106中,安全设备10的应用认证部103根据应用认证信息来进行认证处理。
接着,用图4来说明本实施方式的具体处理。以下,只说明与实施方式1的情况下的工作不同的部分,其他工作与实施方式1的情况同样。
首先,说明与图4的工作(1)至(4)相当的、向安全设备10中加入终端应用31和指示书133的准备。
首先,终端应用的开发者生成终端应用31。此时生成的终端应用31是通常的终端应用。图18(A)表示通常的终端应用的物理映像。
接着,在终端应用中预先准备用于嵌入认证信息方法10141的虚拟方法。图18(B)表示添加了虚拟方法的终端应用31的物理映像。
虚拟方法是返回适合表现应用认证信息的变量类型(例如整数类型—int)的值的方法。虚拟方法起在二进制表现内保留嵌入认证信息方法10141的部位的占位符的作用。虚拟方法可以是单单返回0的方法,在发行时难以增加方法的长度的情况下,也可以采用比较复杂的方法来保留足够的长度。
在生成指示书133时,除了实施方式1中进行的以外,将方法信息加入到指示书133中。在终端应用31自身的二进制表现中存在足够的信息的情况下,也可以是指向该信息的偏移量。作为方法的信息,需要实际的方法的偏移量(代码的开始位置)和方法的长度。为了生成这些信息,利用编译器的调试信息等。
接着,说明与图4的工作(5)相当的、请求安全设备发行终端应用的处理。此时,除了用于ID以外,还发送信息处理终端30的机种、CPU的种类等认证信息方法生成部1014用于选择生成代码时所用的命令信息的信息。
接着,说明与图4的工作(6)相当的、在安全设备10内实际进行发行的处理。在实施方式4的情况下,随机生成返回值的认证信息方法,进行置换虚拟方法的处理。图18(C)表示嵌入了生成的方法的终端应用的物理映像。
具体地说,首先,以式子的形式来随机产生运算步骤10131,变换为适合信息处理终端30的程序代码,生成认证信息方法10141。认证信息方法10141的生成结束后,或者在生成的同时,计算该认证信息方法10141返回的值。存储该值,用于发行后的认证处理。根据指示书133的信息来得到认证信息方法10141的位置和长度的信息,用生成的认证信息方法10141来置换虚拟方法。在难以增加认证信息方法10141的长度的情况下,不超过原来的虚拟方法的长度来进行生成。
图19(A)、(B)分别是用于执行本实施方式4的动态方法的指示书模板、和指示书的例子。与实施方式1同样,具体的认证处理如下进行根据应用认证信息来计算应用认证密钥,确认具有相等的密钥。
第一行指示嵌入值。该部分与实施方式1同样。
第二行指示动态方法,即向终端应用31中要嵌入的应用认证信息不是以值、而是以方法(函数)的形式来嵌入。通过以方法(函数)的形式来嵌入应用认证信息,即使从外部攻击,也能够使得难以解析及提取应用认证信息的值。这里,符号表示虚拟方法的名称,在生成指示书时变换为该方法的偏移量和长度。在本例中,dm1、dm2这样的名称的方法被指定为虚拟方法。
示出dm1从第0x135(十六进制表记)字节开始,持续0x100字节。
也同样示出dm2的信息。
第三行和第四行示出如何计算应用认证密钥。在生成指示书133时,按出现顺序向符号分配%1、%2、...等号码,用该号码来表现计算式。式子的意义与实施方式1同样。在%6中包含dm1返回的值,在%7中包含dm2返回的值。
这里,如果产生的运算步骤完全随机,则会出现除以0等产生差错的代码,所以考虑这方面来进行生成。例如进行下述等处理在进行除法时用随机数产生的除数为0的情况下重新产生,或者不进行除法。
此外,在有些执行环境下,有时终端应用31利用的资源的信息被包含在二进制表现中,在执行前进行验证,或者在执行中监视利用资源,进行限制,使得不超过限制来利用资源。在这种环境下,在通过变更代码来变更利用的资源的情况下,也变更这种信息,按照生成的方法来进行调整,使得不因抵触限制而产生差错。
这样,在实施方式4中,不是生成向终端应用31中嵌入的应用认证信息的值,而是生成计算该值的程序代码,以方法(函数)的形式来嵌入,所以能够使认证信息的解析及提取的自动化很困难,进而在能改变方法的长度的情况下,通过改变方法的长度,也能得到对比较攻击的抵抗力。
特别是,在本实施方式4中,通过采用动态方法,认证信息运算步骤生成部1013利用来自随机数产生部1015的随机数,随机生成表示计算应用认证信息的运算步骤的式子,从而在每次发行终端应用时变更认证信息方法的内容,所以能够更可靠地使认证信息的解析及提取的自动化很困难。
在本实施方式中,也可以与实施方式1同样,由发行应用12对终端应用31进行签名,基本加载器32或应用加载器33验证终端应用31的签名后进行起动。这样,通过验证签名,能够防止起动非法的终端应用31。
此外,在本实施方式中,发行的应用是由信息处理终端30起动的通常的应用,但是不限于此,例如也可以发行信息处理终端30的终端OS 35的一部分、或JAVA的VM等任意的程序。
此外,本实施方式如前所述,基本工作与实施方式1同样,在发行终端应用31的安全设备10的应用发行部101中设有前述用于执行动态方法的结构—认证信息运算步骤生成部1013和认证信息方法生成部1014、认证信息方法嵌入部1011等,但是在本发明中,不限于此,当然也可以将本实施方式的用于执行动态方法的结构适用于使用MTA 34的前述实施方式2或实施方式3。在此情况下,在实施方式2的情况下,应用发行部101被设在安全设备10内(请参照图9、10),所以将实施方式4的用于执行动态方法的认证信息方法嵌入部1011等设在该应用发行部101中即可,但是在实施方式3的情况下,则是使MTA 34内的终端端应用发行部306(请参照图13)具有用于执行实施方式4的动态方法的认证信息方法嵌入部1011等或其他功能。
(实施方式5)在本发明实施方式5中,说明在嵌入应用认证信息后、以执行内容不变化的单位每次不同地重排终端应用的二进制表现的字节串来发行的采用了文件加扰的安全设备。
即,将实施方式5的安全设备安装到信息处理终端上,信息处理终端请求起动终端应用后,安全设备在执行内容不变化的范围内重排、或者变更终端应用的二进制表现的字节串。
发行该重排过的终端应用,信息处理终端起动终端应用后,在安全设备和信息处理终端之间,用应用认证信息来进行认证。
基本工作与实施方式1同样,主要是发行终端应用的部分不同。因此,以下,以发行终端应用的部分—安全设备的应用发行部的工作为中心来进行说明。
图20示出本发明实施方式5的安全设备的结构和其处理流程。
在图20中,安全设备10的应用发行部101包括认证信息方法嵌入部1011,嵌入应用认证信息;指示书解释部1012,解释指示书133并将应用认证信息的嵌入方法传递给认证信息方法嵌入部1011;随机数产生部1015,随机产生为了生成值或重排顺序而使用的随机数;认证信息计算部1016,计算实际认证中所用的应用认证信息;以及应用加扰部1017,在不变更执行内容的范围内重排终端应用的二进制表现的字节的排列。
接着说明图20中的工作。认证信息计算部1016用来自随机数产生部1015的随机数来计算应用认证信息,转交给认证信息方法嵌入部1011。此外,将应用认证信息存储到发行信息存储部106中(图20的(1))。
认证信息方法嵌入部1011接受算出的应用认证信息,根据指示书133,将应用认证信息嵌入到终端应用31中,将嵌入了应用认证信息的终端应用31输出到应用加扰部1017(图20的(2))。
应用加扰部1017接受嵌入了应用认证信息的终端应用31,根据来自指示书解释部1012的解释,根据指示书133,在终端应用31的执行内容不变化的单位范围内对嵌入了应用认证信息的终端应用进行加扰并发行(图20的(3))。例如,在终端应用是用JAVA来编程的情况下,如果以字段或方法等的每个类文件为单位来进行加扰,则终端应用31的执行内容不变化。
接着,用图4来说明本实施方式的具体处理。以下,只说明与实施方式1的情况下的工作不同的部分,其他工作与实施方式1的情况同样。
首先,说明与图4的工作(1)至(4)相当的、向安全设备10中加入终端应用3 1和指示书133的准备。
实施方式5的应用加扰部1017在终端应用31的执行内容不变化的单位范围内对终端应用31进行加扰,而终端应用31的具体加扰通过重排终端应用31的方法来进行。因此,在生成指示书133时,除了实施方式1中进行的以外,还将方法信息加入到指示书中。在终端应用31自身的二进制表现中存在足够的方法信息的情况下,也可以是指向该方法信息的偏移量。作为方法的信息,需要实际的方法的偏移量(代码的开始位置)和方法的长度。
通过程序的描述所用的语言来改变方法的位置后,地址将变化,所以这样有时不能进行正确的调用。在这种情况下,需要变更方法的调用端的调用地址等处理,所以需要调用的位置等信息。
在需要这些信息的情况下,将该信息或指向该信息的偏移量加入到指示书133中。为了生成这些信息,利用编译器23的调试信息等。
在代码中用号码来识别调用的方法的语言中,无需这种变更,而通过变更方法的号码、也同时变更调用时指定的号码,不改变处理内容就能够改变代码。
在代码中用名称来识别调用的方法的语言中,也无需这种变更,而通过变更方法的名称、也同时变更调用时指定的名称,不改变处理内容就能够改变代码。
接着,说明与图4的(6)相当的、在安全设备10内实际发行终端应用31的处理。例如,用随机数来选择在终端应用31中掉换多个方法中的哪2个。利用选出的方法的信息,来掉换选出的方法。在需要变更调用端的情况下,利用指示书133的信息来变更调用端。
图21(A)、(B)分别是文件加扰的指示书模板和指示书的例子。
第一行至第二行与实施方式1同样。
第四行指示进行方法的加扰。分别在生成指示书时,添加与待加扰的方法有关的信息。在图21(B)的第四行中,
表示第1个方法从0x100个字节开始,持续0x180个字节。
用图22(A)、(B)来说明调用端的变更。方法名旁边的括号内表示方法的偏移量。在图22(A)中,调用方法的部分按方法A、B、C、D的顺序指定偏移量来调用。在此情况下,如果只掉换,则将执行错误的部分的代码,所以不能正常工作。
因此,掉换了调用的部分指定的方法的偏移量后的偏移量需要变更。进行它的是图22(B),这样能正常工作。
这样,在实施方式5中,应用发行部101将应用认证信息嵌入到终端应用31中后,在执行内容不变化的单位范围内,例如在用JAVA对终端应用31进行编程的情况下以字段或方法等的类文件为单位来每次不同地重排终端应用31的二进制表现的字节串并发行,所以发行给信息处理终端30的终端应用31中的应用认证信息的位置通过加扰而在每次发行终端应用31时不同,即使比较多个发行给信息处理终端30的终端应用31,也不能容易地得到应用认证信息的位置、或解析它的线索,使应用认证信息的提取的自动化很困难,从而能够认证终端应用31。
再者,如果将本实施方式中说明过的手法用于其他方面,则能够使安装到主机的存储媒体上的二进制表现因安装软件的每个机器而异。
如果二进制表现因每个机器而异,则能够获得对例如通过直接改变二进制表现来回避许可认证代码等违法补丁的抵抗力。
也可以与实施方式1同样由发行应用12对终端应用31进行签名,基本加载器32验证签名后进行起动。
此外,在本实施方式中,发行的应用是由信息处理终端30起动的通常的应用,但是不限于此,例如也可以发行信息处理终端30的终端OS 35的一部分、或JAVA的VM等任意的程序。
此外,如果并用实施方式4中说明过的作为认证信息不是嵌入值本身,而是嵌入计算该值的认证信息方法的动态方法的手法,以及实施方式5中说明过的将应用认证信息嵌入到终端应用31中后、在执行内容不变化的单位范围内每次不同地重排终端应用31的二进制表现的字节串来发行的文件加扰这两种手法,则即使比较多个发行给信息处理终端的终端应用31,也能够使应用认证信息的提取的自动化更加困难。
(实施方式6)在本发明实施方式6中,说明典型的用集成电路—LSI来实现实施方式1的信息处理终端30的构件的一部分的情况。
图23示出实施方式6的信息处理终端30和安全设备10的方框结构。
信息处理终端30包括应用执行LSI 2300,向安全设备10请求终端应用,执行接收到的终端应用。
应用执行LSI 2300包括应用执行部2301,执行从安全设备接收到的终端应用;实施方式1的应用发行请求发送部301和应用接收部302。它们可以分别单片化,也可以包含它们中的一部分或全部来单片化。
工作除了从安全设备接收到的终端应用的代码不是由信息处理终端30的终端OS、而是由应用执行LSI 2300的应用执行部2301来执行以外,与实施方式1的情况完全相同。
作为此情况下的应用执行LSI 2300的实现方法,有以CPU核心为基础用专用LSI来实现的方法,也有通过在通用DSP上加载软件来实现的方法,以及用硬连线的专用LSI来实现的方法等各种方法。
图24示出应用执行LSI 2300的内部结构的一例,特别是以CPU核心为基础用专用LSI来实现的情况下的一例。
在图24中,应用执行LSI 2300由下述部分构成CPU 2400;ROM 2401,保存CPU 2400执行的基本程序;RAM 2402,保存CPU 2400处理过的数据及CPU 2400要执行的终端应用;输入输出信号控制部2403,控制与外部的输入输出信号;以及连接它们的总线2404。
在此情况下,CPU 2400、ROM 2401、RAM 2402以及总线2404的部分相当于应用执行部2301。此外,在此情况下,ROM 2401和RAM 2402也可以由EEPROM或FeRAM等非易失性存储器构成。
在ROM 2401中,保存着实施方式1的基本加载器的程序代码—基本加载器程序代码2412、和从安全设备接收到的执行终端应用的代码的应用执行部2301的程序代码—应用执行部程序代码2411。例如,在终端应用为JAVA应用的情况下,应用执行部程序代码2411是解释JAVA应用的字节码来执行的JAVA虚拟机的程序代码。
CPU 2400根据经输入输出信号控制部2403接收到的来自终端OS 35的请求,来执行基本加载器程序代码2412,从安全设备10接收终端应用31并保存到RAM 2402中,进而执行应用执行部程序代码2411,执行接收到的终端应用31。其后,与实施方式1的情况同样,在终端应用31和安全设备10之间,用终端应用31中嵌入的应用认证信息来进行认证处理。图24示出从安全设备10接收到的终端应用31被保存在RAM 2402中的状态。
这样,根据实施方式6,在用LSI来实现实施方式1的信息处理终端30的构件的一部分的情况下,也能得到与实施方式1同样的效果。
(实施方式7)在本发明实施方式7中,说明典型的用集成电路—LSI来实现实施方式2的信息处理终端30的构件的一部分的情况。
图25示出实施方式7的信息处理终端30和安全设备10的方框结构。
信息处理终端30包括应用执行LSI 2500,向安全设备10请求终端应用31,执行接收到的终端应用31。
应用执行LSI 2500包括应用执行部2501,执行从安全设备接收到的终端应用31;以及实施方式2的应用发行请求发送部301。它们可以分别单片化,也可以包含它们中的一部分或全部进行单片化。
工作除了从安全设备10接收到的MTA的代码和终端应用31的代码不是由信息处理终端30的终端OS、而是由应用执行LSI 2500的应用执行部2501来执行以外,与实施方式2的情况完全相同。
作为此情况下的应用执行LSI 2500的实现方法,有以CPU核心为基础用专用LSI来实现的方法,也有通过在通用DSP上加载软件来实现的方法,以及用硬连线的专用LSI来实现的方法等各种方法。
图26示出应用执行LSI 2500的内部结构的一例,特别是以CPU核心为基础用专用LSI来实现的情况下的一例。硬件结构与实施方式6的应用执行LSI 2300的情况相同。
在图26中,应用执行LSI 2500由下述部分构成CPU 2400;ROM 2401,保存CPU 2400执行的基本程序;RAM 2402,保存CPU 2400处理过的数据及CPU 2400要执行的终端应用;输入输出信号控制部2403,控制与外部的输入输出信号;以及连接它们的总线2404。
在此情况下,CPU 2400、ROM 2401、RAM 2402以及总线2404的部分相当于应用执行部2501。此外,在此情况下,ROM 2401和RAM 2402也可以由EEPROM或FeRAM等非易失性存储器构成。
在ROM 2401中,保存着实施方式2的基本加载器的程序代码—基本加载器程序代码2612、和从安全设备接收到的执行终端应用的代码的应用执行部2501的程序代码—应用执行部程序代码2611。例如,在终端应用为JAVA应用的情况下,应用执行部程序代码2611是解释JAVA应用的字节码来执行的JAVA虚拟机的程序代码。
CPU 2400根据经输入输出信号控制部2403接收到的来自终端OS 35的请求,来执行基本加载器程序代码2612,首先,从安全设备10接收MTA 34并保存到RAM 2402中,进而执行应用执行部程序代码2611,执行MTA 34。在MTA 34和安全设备10之间,用MTA 34中嵌入的应用认证信息来进行认证处理,接着,应用执行部2501执行的MTA 34从安全设备10接收终端应用31并保存到RAM 2402中,进而,应用执行部2501执行接收到的终端应用31。
其后,与实施方式2的情况同样,在终端应用31和安全设备10之间,用终端应用31中嵌入的应用认证信息来进行认证处理。图26示出从安全设备10接收到的MTA34和终端应用31被保存在RAM 2402中的状态。
这样,根据实施方式7,在用LSI来实现实施方式2的信息处理终端30的构件的一部分的情况下,也能得到与实施方式2同样的效果。
(实施方式8)在本发明实施方式8中,说明典型的用集成电路—LSI来实现实施方式3的信息处理终端30的构件的一部分的情况。
图27示出实施方式8的信息处理终端30和安全设备10的方框结构。
信息处理终端30包括应用执行LSI 2700,向安全设备10请求终端应用,执行接收到的终端应用。
应用执行LSI 2700包括应用执行部2701,执行从安全设备接收到的终端应用;和实施方式3的应用发行请求发送部301。它们可以分别单片化,也可以包含它们中的一部分或全部来单片化。
工作除了从安全设备接收到的MTA的代码和终端应用的代码不是由信息处理终端30的终端OS、而是由应用执行LSI 2700的应用执行部2701来执行以外,与实施方式3的情况完全相同。
作为此情况下的应用执行LSI 2700的实现方法,有以CPU核心为基础用专用LSI来实现的方法,也有通过在通用DSP上加载软件来实现的方法,以及用硬连线的专用LSI来实现的方法等各种方法。
图28示出应用执行LSI 2700的内部结构的一例,特别是以CPU核心为基础用专用LSI来实现的情况下的一例。硬件结构与实施方式6的应用执行LSI 2300的情况相同。
在图28中,应用执行LSI 2700由下述部分构成CPU 2400;ROM 2401,保存CPU 2400执行的基本程序;RAM 2402,保存CPU 2400处理过的数据及CPU 2400要执行的终端应用;输入输出信号控制部2403,控制与外部的输入输出信号;以及连接它们的总线2404。
在此情况下,CPU 2400、ROM 2401、RAM 2402以及总线2404的部分相当于应用执行部2701。此外,在此情况下,ROM 2401和RAM 2402也可以由EEPROM或FeRAM等非易失性存储器构成。
在ROM 2401中,保存着实施方式3的基本加载器的程序代码—基本加载器程序代码2812、和从安全设备接收到的执行终端应用的代码的应用执行部2701的程序代码—应用执行部程序代码2811。例如,在终端应用为JAVA应用的情况下,应用执行部程序代码2811是解释JAVA应用的字节码来执行的JAVA虚拟机的程序代码。
CPU 2400根据经输入输出信号控制部2403接收到的来自终端OS 35的请求,来执行基本加载器程序代码2812,首先,从安全设备10接收MTA 34并保存到RAM 2402中,进而执行应用执行部程序代码2811,执行MTA 34。在MTA 34和安全设备10之间,用MTA 34中嵌入的应用认证信息来进行认证处理。
接着,应用执行部2701执行的MTA 34从安全设备10接收要起动的终端应用31的应用加密密钥,对已加密应用存储部304中保存的终端应用进行解密,计算散列值,验证未被篡改后,保存到RAM 2402中。
应用执行部2701执行的MTA 34生成每次解密处理时都不同的应用认证信息,与应用ID一起发送到应用发行部101,进而向解密过的终端应用31转交应用认证信息并在应用执行部2701上起动终端应用31。其后,与实施方式3的情况同样,在终端应用31和安全设备10之间用应用认证信息来进行认证处理。图28示出从安全设备10接收到的MTA 34和终端应用31被保存在RAM 2402中的状态。
这样,根据实施方式8,在用LSI来实现实施方式3的信息处理终端30的构件的一部分的情况下,也能得到与实施方式3同样的效果。
在实施方式6、实施方式7、及实施方式8中,应用执行LSI采用LSI,但是根据集成度的不同,也可以称为IC、系统LSI、超(super)LSI、超(ultra)LSI。
此外,集成电路化的手法不限于LSI,也可以用专用电路或通用处理器来实现。也可以利用在LSI制造后能够编程的FPGA(Field Programmable GateArray,现场可编程门阵列)、或利用能够重新配置LSI内部的电路单元的连接和设置的可重新配置处理器。
再者,如果由于半导体技术的进步或派生的别的技术而出现了置换LSI的集成电路化的技术,则当然也可以用该技术来进行功能块的集成化。也可以适应生物技术等。
根据以上说明过的安全设备,向从安全设备发行给信息处理终端的应用中嵌入了用于认证该应用的信息,所以安全设备通过与信息处理终端上起动的应用和用该信息来进行认证,能够认证该应用的真实性。
此外,根据这种安全设备,将每次发行应用时值都不同的认证信息嵌入到应用中,所以在信息处理终端端每次起动应用时认证信息的值都不同,能够可靠地认证应用的真实性。
此外,根据这种安全设备,根据应用中嵌入的认证信息来生成发行信息,用该发行信息来认证信息处理终端上运行的应用,所以能够认证该应用的真实性。
此外,根据这种安全设备,根据应用中嵌入的认证信息来计算认证密钥,用该认证密钥来进行认证,所以只要解析不出认证信息的内容的意义和计算方法,就不知道认证密钥,所以能够更可靠地认证终端应用。
此外,根据这种安全设备,独立于应用发行部件的认证部件根据应用中嵌入的认证信息来计算认证密钥,用该认证密钥来进行认证,所以只要解析不出认证信息的内容的意义和计算方法,就不知道认证密钥,所以能够更可靠地认证终端应用;并且在安全设备中,应用发行部件不知道应用认证密钥,只有认证部件认识应用认证密钥,所以认证的独立性提高,能够更可靠地防止认证密钥的泄漏等。
此外,根据这种安全设备,用认证密钥认证了信息处理终端上起动的应用后,与信息处理终端上起动的应用共享独立于该认证密钥的密钥来进行通信,所以认证处理和图像处理中使用的密钥不同,认证和通信的独立性提高,能够更可靠地防止认证密钥或通信时使用的密钥的泄漏等。
此外,根据这种安全设备,应用发行部件还对上述认证密钥设定规定的有效期;上述认证部件计测上述应用发行部件发行上述应用后直至进行认证的经过时间,在该经过时间在上述规定的有效期内的情况下,进行认证;而在该经过时间超过了规定的有效期的情况下,使上述认证密钥无效,不进行认证。所以,即使想解析终端应用,进行假冒非法终端应用的攻击,解析认证信息也特别花费时间,在此期间内应用认证密钥到期,所以能够防御假冒非法终端应用的攻击,并且能够检测出正在尝试进行某种攻击。
此外,根据这种安全设备,根据指示向应用中嵌入认证信息的方法的指示书来向应用中嵌入认证信息,所以安全设备能够简便地嵌入认证信息。
此外,根据这种安全设备,向应用中嵌入了包含虚拟数据的认证信息,所以即使在通过比较多次发行的同一应用而得以从外部提取出应用中嵌入的认证信息的情况下,也能够使应用认证密钥的推测更加困难,其结果是,也能够强化对差分攻击的防篡改性。
此外,根据这种安全设备,将应用进行编程,以在信息处理终端中的处理结束时擦除上述认证信息或从上述安全设备接收到的机密信息,所以将擦除信息处理终端中的处理结束时不想残留在信息处理终端端的信息,即使将安全设备保持的机密信息转交给信息处理终端,也能够在结束时可靠地擦除,使得不会泄漏。
此外,根据这种安全设备,将代行安全设备的处理的一部分的应用—MTA发行给信息处理终端并起动、认证后,将MTA以外的应用发行给信息处理终端并起动、认证,所以应执行的MTA以外的应用被解析的可能性降低,能够使信息处理终端进行更加正确的工作。
此外,根据这种安全设备,在将MTA发行给信息处理终端并起动、认证后,MTA请求应用发行部件发行用于使上述信息处理终端进行处理的上述MTA以外的应用,所以应执行的MTA以外的应用被解析的可能性降低,发行给信息处理终端的MTA以外的应用不会泄漏,能够更加安全地起动。
此外,根据这种安全设备,MTA向安全设备请求用于对信息处理终端上加密保存的已加密的应用进行解密的应用加密密钥,所以信息处理终端能够从安全设备接受应用加密密钥并对已加密的应用进行解密,进行发行处理,即使在安全设备没有存储大容量的应用的存储容量的情况下,也能够安全地起动。
此外,根据这种安全设备,在从MTA接受了应用ID的情况下,将与应用ID对应的应用加密密钥发送到MTA,所以信息处理终端能够从安全设备接受应用加密密钥,对信息处理终端中加密存储的已加密的应用进行解密并发行,即使在安全设备没有存储大容量的应用的存储容量的情况下,也能够在信息处理终端上安全地起动应用。
此外,根据这种安全设备,MTA用应用加密密钥对信息处理终端中加密存储的已加密的应用进行解密并发行,所以即使在安全设备没有存储大容量的应用的存储容量的情况下,也能够安全地起动。
此外,根据这种安全设备,MTA用应用加密密钥对信息处理终端中加密存储的已加密的应用进行解密后,通过向已加密的MTA以外的应用转交认证信息,或者嵌入认证信息,或者从该安全设备接受认证信息,或者转交给该安全设备,使解密过的已加密的应用、和该安全设备共享认证信息,所以安全设备能够与已加密的应用用共享的认证信息来进行认证。
此外,根据以上说明过的信息处理终端,在起动应用时,请求安全设备发行嵌入了认证信息的应用,接收从安全设备发行的嵌入了认证信息的应用并执行后,在应用和安全设备之间用认证信息来进行应用的认证处理,所以能够确认该应用的真实性。
此外,该信息处理终端请求安全设备发行MTA,接收从安全设备发行的MTA并起动,用MTA中嵌入的认证信息与安全设备进行MTA的认证处理后,MTA请求安全设备发行MTA以外的应用并接收、起动,安全设备和MTA以外的应用用嵌入的认证信息来进行认证,所以应执行的MTA以外的应用被解析的可能性降低,能够更加安全地起动应执行的MTA以外的应用。
此外,该信息处理终端的MTA包括执行应用的应用执行部件,MTA的应用执行部件起动从安全设备接收到的MTA以外的应用,用MTA以外的应用中嵌入的认证信息在安全设备和MTA以外的应用之间进行认证处理,所以安全设备能够信赖执行MTA以外的应用的应用执行部件自身,能够安全地执行MTA以外的应用。
此外,该信息处理终端请求安全设备发行MTA,接收从安全设备发行的MTA并起动,用MTA中嵌入的上述认证信息与安全设备进行MTA的认证处理后,MTA向安全设备请求应用加密密钥,从安全设备接收应用加密密钥,对已加密应用进行解密并执行,所以即使在安全设备没有存储大容量的应用的存储容量的情况下,也能够安全地起动应用。
此外,该信息处理终端的MTA包括执行应用的应用执行部件,MTA的应用执行部件执行用从安全设备接收到的应用加密密钥解密过的应用,所以安全设备能够信赖执行解密过的应用的应用执行部件自身,能够安全地执行MTA以外的应用。
此外,以上说明过的终端应用生成装置接受使信息处理终端进行处理的应用的源代码,进行嵌入认证信息的准备,输出可嵌入认证信息的源代码、和表示认证信息的嵌入方法的指示书的雏形—指示书模板,将可嵌入认证信息的源代码编译为信息处理终端可执行的形式—字节码,根据字节码和指示书模板来生成指示书,将生成的字节码和指示书发送到安全设备来存储,所以安全设备能够得到使信息处理终端进行处理的应用的字节码和指示书。
此外,以上说明过的应用认证方法向从安全设备发行给信息处理终端的应用中嵌入了认证信息,信息处理终端接收应用并起动,与安全设备根据认证信息来进行认证处理,安全设备认证应用,所以安全设备能够认证发行给信息处理终端的应用的真实性。
此外,这种安全设备随机生成计算认证信息的运算步骤,该运算步骤被变换为信息处理终端可执行的命令串而成为认证信息方法,作为用于认证应用的信息而嵌入到应用中并发行给信息处理终端,所以用于认证应用的信息不是以认证信息所用的值本身、而是以计算该值的方法(函数)的形式被嵌入,能够使用于认证信息的值的解析及提取的自动化很困难,并且在能改变认证信息方法的长度的情况下,通过改变方法的长度,也能得到对比较攻击的抵抗力。
此外,该安全设备以该应用的执行内容不变化的单位对嵌入了用于认证应用的信息的应用进行加扰并发行给信息处理终端,所以发行给信息处理终端的应用中的用于认证该应用的信息的位置由于加扰而在每次发行应用时都不同,即使比较多个发行给信息处理终端的应用,也不能容易地得到用于认证应用的信息的位置、和解析它的线索,能够使提取用于认证应用的信息很困难。
此外,该信息处理终端的集成电路在起动应用时,请求安全设备发行嵌入了认证信息的应用,在执行接收到的应用时与安全设备用认证信息来进行应用的认证处理,所以能够认证该应用的真实性。
此外,该信息处理终端的集成电路请求安全设备发行MTA,接收从安全设备发行的MTA并起动,用MTA中嵌入的认证信息与安全设备进行MTA的认证处理后,MTA请求安全设备发行MTA以外的应用并接收、起动,用嵌入的认证信息与安全设备进行认证,所以应执行的MTA以外的应用被解析的可能性降低,能够更加安全地起动MTA以外的应用。
此外,该信息处理终端的集成电路请求安全设备发行MTA,接收从安全设备发行的MTA并起动,用MTA中嵌入的认证信息与安全设备进行MTA的认证处理后,MTA向安全设备请求应用加密密钥并从安全设备接收应用加密密钥,用该应用加密密钥对已加密应用进行解密并执行,所以即使在安全设备没有存储大容量的应用的存储容量的情况下,也能够安全地起动应用。
这样,向终端应用中嵌入用于认证该终端应用的信息,转交给信息处理终端,所以在信息处理终端起动该终端应用时,通过用用于认证该终端应用的信息来进行认证,能够认证该终端应用是否是真实的。其结果是,能够在安全设备和信息处理终端之间认证终端应用,例如能够适用于手机、个人数字助理(PDA)、个人计算机、音乐再生(及录音)装置、照相机、摄像机、自动柜员机、街头终端、结算终端等各种信息处理装置中使用的各种安全设备。此外,本发明的信息处理终端能够适用于上述各种信息处理装置。
本发明不限于上述实施例,在不脱离本发明的范围的情况下,能够进行各种变化和修改。
本发明基于2003年8月6日提交的日本专利申请No.2003-288271和2004年7月8日提交的日本专利申请No.2004-201930,其全部内容通过引用而明确包含于此。
权利要求
1.一种安全设备,存储着使信息处理终端进行处理的应用,其特征在于,它具有应用发行部件,向上述应用中嵌入用于认证上述应用的信息并发行给上述信息处理终端。
2.如权利要求1所述的安全设备,其特征在于,上述应用发行部件将每次发行上述应用时值都不同的认证信息作为用于认证上述应用的信息而嵌入到上述应用中。
3.如权利要求2所述的安全设备,其特征在于,上述应用发行部件还根据上述应用中嵌入的上述认证信息来生成发行信息;所述安全设备还具有认证部件,用上述应用发行部件生成的发行信息,来认证上述信息处理终端上运行的上述应用。
4.如权利要求3所述的安全设备,其特征在于,上述应用发行部件根据上述认证信息来生成认证密钥作为上述发行信息。
5.如权利要求3所述的安全设备,其特征在于,上述认证部件根据上述认证信息来计算认证密钥,用上述认证密钥来认证上述信息处理终端上运行的上述应用。
6.如权利要求4所述的安全设备,其特征在于,它还具有通信部,在上述认证部件用上述认证密钥认证了上述信息处理终端起动的上述应用后,生成独立于上述认证密钥的密钥并与上述信息处理终端起动的上述应用共享来进行通信。
7.如权利要求4所述的安全设备,其特征在于,上述应用发行部件还对上述认证密钥设定规定的有效期;上述认证部件计测上述应用发行部件发行上述应用后直至进行认证的经过时间,在该经过时间在上述规定的有效期内的情况下,进行认证;而在该经过时间超过了规定的有效期的情况下,使上述认证密钥无效,不进行认证。
8.如权利要求1所述的安全设备,其特征在于,上述应用发行部件根据指示向上述应用中嵌入上述认证信息的方法的指示书,向上述应用中嵌入上述认证信息。
9.如权利要求1所述的安全设备,其特征在于,上述应用发行部件向上述应用中嵌入包含虚拟数据的上述认证信息。
10.如权利要求1所述的安全设备,其特征在于,将上述应用进行编程,以在上述信息处理终端中的处理结束时擦除上述认证信息。
11.如权利要求1所述的安全设备,其特征在于,上述应用由具有在信息处理终端上代行该安全设备的处理的一部分的功能的MTA(Master Trusted Agent)、和上述MTA以外的应用组成;上述应用发行部件在发行上述MTA以外的应用前将上述MTA发行给上述信息处理终端。
12.如权利要求11所述的安全设备,其特征在于,上述MTA被发行给上述信息处理终端并被起动,在被上述MTA中嵌入的上述认证信息认证了的情况下,用代行该安全设备的处理的一部分的功能,来请求上述应用发行部件发行用于使上述信息处理终端进行处理的上述MTA以外的应用。
13.如权利要求1所述的安全设备,其特征在于,上述应用是具有在信息处理终端上代行该安全设备的处理的一部分的功能的MTA;上述MTA被发行给上述信息处理终端并被起动,在被上述MTA中嵌入的上述认证信息认证了的情况下,用代行该安全设备的处理的一部分的功能,向该安全设备请求用于对上述信息处理终端中加密存储的已加密的应用进行解密的应用加密密钥。
14.如权利要求13所述的安全设备,其特征在于,它还包括加密密钥存储部件,将上述MTA以外的应用的识别信息—应用ID、和与上述MTA以外的应用对应的应用加密密钥关联存储;和加密密钥发送部件,在从上述MTA接受了上述应用ID的情况下,将与上述应用ID对应的上述应用加密密钥发送到上述MTA。
15.如权利要求14所述的安全设备,其特征在于,上述MTA用上述应用加密密钥对上述已加密的应用进行解密。
16.如权利要求15所述的安全设备,其特征在于,上述MTA用上述应用加密密钥对上述已加密的应用进行解密后,使解密过的上述已加密的应用、和该安全设备共享上述认证信息。
17.如权利要求15所述的安全设备,其特征在于,上述MTA通过向上述MTA以外的应用转交上述认证信息来与该安全设备共享上述认证信息。
18.如权利要求15所述的安全设备,其特征在于,上述MTA通过向上述MTA以外的应用中嵌入上述认证信息来与该安全设备共享上述认证信息。
19.如权利要求15所述的安全设备,其特征在于,上述MTA从上述安全设备接受上述认证信息,使上述MTA以外的应用、和该安全设备共享上述认证信息。
20.如权利要求15所述的安全设备,其特征在于,上述MTA通过将上述认证信息转交给该安全设备来与该安全设备共享上述认证信息。
21.一种信息处理终端,包括应用发行请求发送部件,在起动应用时,请求安全设备发行嵌入了认证信息的上述应用;应用接收部件,接收从上述安全设备发行的嵌入了上述认证信息的应用;以及应用执行部件,执行应用;其特征在于,上述应用执行部件起动接收到的上述应用时,与上述安全设备之间用上述认证信息来进行上述应用的认证处理。
22.一种信息处理终端,包括应用发行请求发送部件,请求发行应用;接收部件,接收从安全设备发行的应用;以及应用执行部件,执行应用;其特征在于,上述应用发行请求发送部件请求上述安全设备发行具有代行上述安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA,上述应用执行部件起动,在上述安全设备和上述MTA之间用上述MTA中嵌入的上述认证信息进行认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA请求上述安全设备发行上述MTA以外的应用,接收从上述安全设备发行的上述MTA以外的应用并起动,用上述MTA以外的应用中嵌入的上述认证信息在上述安全设备和上述MTA以外的应用之间进行认证处理。
23.如权利要求22所述的信息处理终端,其特征在于,上述MTA包括执行应用的应用执行部件,上述MTA的应用执行部件起动从上述安全设备接收到的MTA以外的应用,用上述MTA以外的应用中嵌入的上述认证信息在上述安全设备和上述MTA以外的应用之间进行认证处理。
24.一种信息处理终端,包括已加密应用存储部件,存储可用安全设备中存储的应用加密密钥来解密的已加密应用;应用发行请求发送部件,请求发行应用;以及应用执行部件,执行应用;其特征在于,上述应用发行请求发送部件请求上述安全设备发行具有代行上述安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA,上述应用执行部件起动,上述安全设备和上述MTA用上述MTA中嵌入的上述认证信息进行认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA向上述安全设备请求上述应用加密密钥,从上述安全设备接收上述应用加密密钥并对上述已加密应用存储部件中存储的上述已加密应用进行解密并执行。
25.如权利要求24所述的信息处理终端,其特征在于,上述MTA包括执行应用的应用执行部件,上述MTA的应用执行部件执行用从上述安全设备接收到的应用加密密钥解密过的应用。
26.一种终端应用生成装置,生成使信息处理终端进行处理的应用并存储到安全设备中,其特征在于,包括嵌入准备部件,接受上述应用的源代码,进行嵌入认证信息的准备,输出可嵌入上述认证信息的源代码、和表示上述认证信息的嵌入方法的指示书的雏形—指示书模板;编译部件,将可嵌入上述认证信息的源代码编译为信息处理终端可执行的形式—字节码(目标码);以及指示书生成部,接受上述字节码和上述指示书模板,生成上述指示书;将上述字节码和上述指示书发送到上述安全设备来存储。
27.一种应用认证方法,其特征在于,使安全设备保持至少一个以上的要在信息处理终端中运行的应用;对于来自上述信息处理终端的应用发行请求,上述安全设备生成认证信息,向上述应用中嵌入上述认证信息并发送到上述信息处理终端;上述信息处理终端起动接收到的上述应用并与上述安全设备根据上述认证信息来进行认证处理,上述安全设备认证上述应用。
28.如权利要求1所述的安全设备,其特征在于,上述应用发行部件具有认证信息运算步骤生成部,随机生成计算上述认证信息的运算步骤;认证信息方法生成部,将随机生成的上述运算步骤变换为上述信息处理终端可执行的命令串来生成认证信息方法;以及认证信息方法嵌入部,将上述认证信息方法作为用于认证上述应用的信息而嵌入到上述应用中并发行给上述信息处理终端。
29.如权利要求1所述的安全设备,其特征在于,上述应用发行部件具有信息计算部件,计算用于认证上述应用的信息;信息嵌入部,将算出的用于认证上述应用的信息嵌入到上述应用中;以及加扰部,接受嵌入了用于认证上述应用的信息的上述应用,以上述应用的执行内容不变化的单位对上述应用进行加扰并发行给上述信息处理终端。
30.一种用于信息处理终端的集成电路,其特征在于,包括应用执行部件,执行上述信息处理终端的应用;应用发行请求发送部件,在起动应用时,请求安全设备发行嵌入了认证信息的上述应用;以及应用接收部件,接收从上述安全设备发行嵌入了上述认证信息的应用;在执行接收到的上述应用时与上述安全设备用上述认证信息进行上述应用的认证处理。
31.一种用于信息处理终端的集成电路,其特征在于,包括应用执行部件,执行上述信息处理终端的应用;应用发行请求发送部件,请求发行上述应用;以及接收部件,接收从安全设备发行的应用;上述应用发行请求发送部件请求上述安全设备发行具有代行上述安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA并起动,用上述MTA中嵌入的上述认证信息与上述安全设备进行上述MTA的认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA请求上述安全设备发行上述MTA以外的应用,接收从上述安全设备发行的上述MTA以外的应用并起动,用上述MTA以外的应用中嵌入的上述认证信息与上述安全设备进行认证处理。
32.一种用于信息处理终端的集成电路,其特征在于,包括应用执行部件,执行上述信息处理终端的应用;和应用发行请求发送部件,请求发行应用;上述应用发行请求发送部件请求安全设备发行具有代行安全设备的处理的功能的MTA(Master Trusted Agent),接收从上述安全设备发行的上述MTA并起动,用上述MTA中嵌入的上述认证信息与上述安全设备进行上述MTA的认证处理后,上述应用发行请求发送部件请求上述MTA发行上述MTA以外的应用,上述MTA向上述安全设备请求上述应用加密密钥,从上述安全设备接收上述应用加密密钥并对已加密应用进行解密并执行。
全文摘要
本发明涉及安全设备、信息处理终端、集成电路、终端应用生成装置、应用认证方法,使得安全设备能够认证信息处理终端上运行的、存取安全设备的终端应用。信息处理终端(30)的应用发行请求发送部(301)将终端应用的发行请求送至应用发行部(101)。安全设备(10)的应用发行部(101)从应用存储部(105)中读出终端应用(31)并嵌入应用认证信息,将终端应用(31)的ID和应用认证信息相对应而保存到发行信息存储部(106)中,用应用发送部(102)将终端应用(31)送至信息处理终端(30)的应用接收部(302)。应用接收部(302)起动接收到的终端应用(31)。终端应用(31)的应用认证部(311)与安全设备(10)的应用认证部(103)用应用认证信息来进行认证。
文档编号G06F1/00GK1581118SQ20041005627
公开日2005年2月16日 申请日期2004年8月6日 优先权日2003年8月6日
发明者竹川视野, 高山久, 中 健 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1