便携式电子装置以及更新便携式电子装置中的应用程序的方法

文档序号:6650145阅读:111来源:国知局
专利名称:便携式电子装置以及更新便携式电子装置中的应用程序的方法
技术领域
本发明涉及一种诸如IC卡的可以执行安装在可写或可重写非易失性存储器中的应用程序的便携式电子装置,以及更新该便携式电子装置中的应用程序的方法。
背景技术
常规地,作为便携式电子装置,已经可以使用由塑料板制造的IC卡,其中嵌入有用作存储器或CPU的IC芯片。在常规的IC卡中,应用程序(应用软件)通常使用对该IC卡(IC芯片)的制造商而言唯一的语言来创建。此外,在常规的IC卡中,应用程序通常存储在非可重写ROM中。在IC卡(IC芯片)中的应用程序存储在非可重写ROM中的情况下,实际中对于除该芯片的制造商以外的制造商来说很难为其创建应用程序并将新的应用程序添加到该IC卡中或在操作之后从该IC卡中删除所述应用程序。
在某些IC卡中,应用程序存储在可重写非易失性存储器中。例如,在Java卡(Java是Sun Microsystems有限公司的注册商标)的情况下,使用Java语言创建的应用程序(以下称作“小应用程序”)被存储在IC卡的可重写非易失性存储器中。在此情况下,拥有权限的人员,例如卡的发行者可以添加新的应用程序到该Java卡中,或从该卡中删除应用程序。
在应用程序更新时,在上述可以向其添加新的应用程序或者可以从其中删除应用程序的IC卡中,新的应用程序是在已有的应用程序已从该IC卡中被完全删除之后安装的。在此情况下,所述已有应用程序所使用的信息(诸如数据结构和实际数据的应用程序信息)与该应用程序主体一起被删除。也就是说,当在该常规IC卡中安装新的应用程序时,有关已有应用程序的应用程序信息都被丢失。

发明内容
根据本发明的一个方面,提供一种可以有效执行应用程序更新处理的便携式电子装置和更新该便携式电子装置中的应用程序的方法。
根据本发明的一个方面,提供一种具有可重写非易失性存储器的便携式电子装置,包括安装处理单元,其在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留供存储在所述非易失性存储器的存储区上的第一应用程序使用的信息;以及恢复处理单元,其恢复所保留的供第一应用程序使用的信息作为供已通过所述安装处理单元安装的第二应用程序使用的信息。
根据本发明的另一个方面,提供一种更新具有可重写非易失性存储器的便携式电子装置中的应用程序的方法,包括在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留供存储在所述非易失性存储器的存储区上的第一应用程序使用的信息;以及恢复所保留的供第一应用程序使用的信息作为供已安装的第二应用程序使用的信息。
本发明的其它目的和优点将在以下描述中进行阐述,并且一部分是从该说明中显而易见的,或者可以通过实施本发明来获知。本发明的目的和优点可以通过以下特别指出的手段和组合实现和获得。


所述附图包含在并构成本说明书的一部分,与以上给出的概括描述和以下给出的实施例的详细描述一起示出了本发明的实施例,用于解释本发明的原理。
图1是表示根据本发明的一个实施例的IC卡系统的结构示例图;图2是示意性地表示IC卡的硬件配置的框图;图3是示意性地表示IC卡的软件配置的图;图4是用于说明IC卡中的卡OS、加载文件以及应用程序实例的存储状态的概念图;图5是用于说明应用程序加载和应用程序安装的概念图;
图6是用于说明应用程序的第一更新处理的例子的概念图;图7是用于说明应用程序的第一更新处理的流程图;图8是用于说明应用程序的第二更新处理的例子的概念图;图9是用于说明应用程序的第二更新处理的流程图;图10是用于说明应用程序的第三更新处理的例子的概念图;图11是用于说明应用程序的第三更新处理的流程图。
具体实施例方式
以下将参照附图对本发明的实施例进行说明。
图1是表示根据根据本发明的一个实施例的IC卡系统的结构示例图。该IC卡系统包括用作便携式电子装置的IC卡1,读/写器2,个人计算机(以下仅称作“PC”)3,键盘4,显示单元5,以及打印机6。
该IC卡1是一种便携式电子装置。例如该IC卡是其中嵌入有IC芯片的卡式电子装置。作为便携式电子装置,可以使用与IC卡1具有相同功能的移动终端设备。
读/写器2,PC3,键盘4,显示单元5,以及打印机6用作IC卡1的主机设备。读/写器2起通信接口的作用,用于与IC卡1交换数据。PC3起主机设备的控制器的作用。例如,该PC3通过读/写器2与IC卡1交换数据。键盘4是用户通过其输入操作指令的操作单元。通过键盘4输入的信息被发送至PC3。显示单元5由其显示内容通过PC3控制的显示部构成。打印机6根据来自PC3的打印指令执行打印。
下面将对IC卡1的硬件配置的一个例子进行示意性的描述。
图2是示意性的表示用作便携式电子装置的IC卡的硬件配置框图。
如图2所示,IC卡1包括CPU1(中央处理单元)11,ROM(只读存储器)12,RAM(随机存取存储器)13,通信单元(UART)14,非易失性存储器(NV(EEPROM))15,协处理器16,计时器17及类似设备。此外,如图2所示,包括CPU11,ROM12,RAM13,通信单元14,非易失性存储器15,协处理器16和计时器17的模块Ca被嵌入在该IC卡1的卡型主体C中。
CPU11执行对IC卡1的整体管理和控制。CPU11根据控制程序等进行操作并用作执行各种处理的处理单元或决定单元。ROM12是其中存储有CPU11的控制程序的非易失性存储器。RAM13是用作工作存储器的易失性存储器。通信单元14用作发送数据的传输单元或接收数据的接收单元。通信单元14是用于IC卡1通过读/写器2与主机设备通信的通信接口。
非易失性存储器15是存储各种数据或应用程序(应用软件)的可重写非易失性存储器。后面将对要存储在非易失性存储器15中的数据的详细情况进行说明。协处理器16协助计算例如加密或解密。计时器17对时间进行计量。
在IC卡1为接触式的情况下(即IC卡1通过物理地接触所述读/写器2来执行数据通信),通信单元14包括用于物理地接触读/写器3的接触部分的接触单元,通信控制器及类似设备。在IC卡1为非接触式的情况下(即IC卡1通过无线通信执行与读/写器2的数据通信),通信单元14包括用于发送和接收无线电波的天线、通信控制器及类似设备。
下面将对IC卡1的软件配置的一个例子进行示意性的说明。
图3是示意性地表示IC卡的软件配置的框图。在图3中,IC卡1用作Java卡。
如图3所示,IC卡1的软件配置由硬件(H/W)层,OS(操作系统)层22和应用程序(小应用程序)层23构成。应用程序层23是最上一层,OS层22位于H/W层21之上。
H/W层21包括诸如通信单元14,非易失性存储器15和协处理器16的硬件。H/W层21通过OS(操作系统)层22的卡OS30控制。
在OS层22中,诸如虚拟机、ISD(发行安全域)和API(应用程序接口)组之类的模块安装在卡OS30中。
虚拟机是表示用于运行Java卡1的配置的模块。ISD是用于管理应用程序层23中的各个应用程序(小应用程序)的模块。API组是表示用作应用程序中所使用的功能的模块。
应用程序层23包括多个应用程序(应用程序A,应用程序B,应用程序C)。应用程序层23中的每个应用程序使用API来实现各种处理。应用程序的实体存储在非易失性存储器15和类似设备中。
下面将对具有上述配置的IC卡1中的应用程序进行描述。
首先,将说明要安装在IC卡1的非易失性存储器15中的应用程序。
图4是表示在非易失性存储器15中加载的加载文件31和根据该加载文件31而安装的应用程序实例32的示意图。图5是示意性的表示在非易失性存储器15上安装应用程序的处理的示意图。
如图4所示,卡OS30存储在IC卡1的ROM12中。卡OS30具有用于根据来自安装在非易失性存储器15中的应用程序的请求执行各种处理的功能。此外,如图4所示,为IC卡1的非易失性存储器15中的各个应用程序A和B存储加载文件31A,31B和应用程序实例(以下仅被称作“实例”)32A,32B。每个加载文件31A,31B是一个从主机设备被加载作为应用程序的文件并且具有存储处理代码的处理代码单元。实例32A,32B是通过安装处理而从加载文件31A,31B中产生的实体(程序代码,数据组等等)。每个实例32A,32B具有存储从加载文件31A,32B中产生的数据等的数据单元。可以为一个应用程序产生多个实例。
如图5所示,IC卡1根据来自主机设备的加载命令在非易失性存储器15中存储应用程序加载文件31。此外,已在非易失性存储器15中存储加载文件31的IC卡1根据来自主机设备的安装命令执行应用程序安装。在完成安装以后,应用程序进入到可执行状态。
例如,主机设备发送要安装到IC卡1中的应用程序的加载命令和加载文件31。在从主机设备接收到加载命令后,IC卡1允许卡OS30执行加载处理。也就是说,卡OS30执行加载处理以将来自主机设备的加载文件31存储在非易失性存储器15中。
当已完成加载文件31的加载时,主机设备向IC卡1发送安装命令。在从主机设备接收到安装命令后,IC卡1允许卡OS30执行安装处理。卡OS30根据已通过加载处理存储在非易失性存储器15中的加载文件执行安装处理。在安装处理时,卡OS30根据存储在非易失性存储器15中的加载文件31安装实例32作为非易失性存储器15中的应用程序的实体。
在已经完成加载处理和安装处理之后,加载文件31和实例32被存储在IC卡1的非易失性存储器15中。加载文件31具有存储处理代码的处理代码单元31a和管理表31b。实例32具有管理表32a和数据单元32b。应用程序加载文件31和应用程序实例32通过管理表31b,32a相互关联。
下面,将对安装在IC1中的应用程序的更新处理进行说明。
以下说明中的主要术语按如下方式定义。
IC卡中的应用程序(以下仅称为“应用程序”)IC卡中的应用程序为安装在IC卡1的非易失性存储器15中的应用程序。IC卡中的应用程序具有处理代码和实例数据,用于执行各种处理。
由应用程序使用的信息(以下仅称为“应用程序信息”)应用程序信息是对用户唯一的信息。应用程序信息是在操作IC卡时所记录的信息。应用程序信息是该应用程序所保留的数据的数据结构和实际数据。应用程序信息存储在应用程序实例的数据单元中。
在更新应用程序时,应用程序信息需要继续保存。常规的IC卡在应用程序已被更新之后不能继续保留应用程序信息。
主机设备中的应用程序(以下仅称为“主应用程序”)主应用程序是操作作为主机设备控制器的PC3的应用程序。主应用程序在与IC卡交换命令时执行各种处理。例如,在与IC卡交换命令时,主应用程序加载应用程序文件到IC卡中并在IC卡中安装该应用程序。用于发布该IC卡的处理也由主应用程序执行。
下面将对用于更新IC卡1中的应用程序的第一更新处理进行说明。
图6是用于说明应用程序的第一更新处理的例子的概念图。图6的例子概念性地示出了在IC卡1的非易失性存储器15中要被更新的应用程序(在先应用程序)和用于更新的应用程序(新的应用程序)。
在先应用程序和新的应用程序在来自主应用程序的命令中具有相同的名称(类名,应用程序ID)。
在图6的例子中,在在先应用程序的加载文件31中预备数据逸出API 31c,该数据逸出API 31c临时保存在应用程序中使用的信息(应用程序信息)作为逸出数据32c。此外,在新的应用程序的加载文件41中预备数据恢复API41c,该数据恢复API41c恢复临时保存的应用程序信息。数据逸出API 31c将所述应用程序信息写入数据逸出区40中,该数据逸出区40是非易失性存储器(EEPROM)15中的一个特定区域。数据恢复API 14c根据已存储在数据逸出区40中的逸出数据32c恢复所述应用程序信息,并根据所恢复的数据42c将此数据应用到新的应用程序实例中。
数据逸出API31c和数据恢复API41c例如在各自的应用程序的加载文件31和41的处理代码单元31a和41a中实现。当在IC卡1与更新应用程序的主应用程序之间建立认证时,通过卡OS30启动由数据逸出API31c写入应用程序信息的处理。类似的,当在IC卡1与更新应用程序的主应用程序之间建立认证时,由卡OS30启动由数据恢复API41c读出数据的处理。
以下将对第一更新处理的流程进行说明。
图7是说明第一更新处理的流程图。
首先,对IC卡1中的应用程序执行更新处理的人员(系统管理员等)使用主机设备的键盘4发出更新IC卡1中的应用程序的指令。在接收到该指令后,PC3激活用于更新IC卡1中的应用程序的主应用程序。在主应用程序已被激活后,在PC3中的主应用程序与IC卡1之间进行认证(步骤S11到S13)。所述认证处理是检查该主应用程序是否有权限更新IC卡1中的已有应用程序(在先应用程序)。在认证处理时,PC3中的主应用程序通过读/写器2发送对在先应用程序的认证命令给IC卡1(步骤S11)。
在接收到来自主应用程序的命令后,IC卡1中的在先应用程序根据该认证命令请求OS层22中的卡OS30执行认证处理(步骤S12)。响应来自在先应用程序的认证请求,卡OS30从API组调用认证API并使用该调用的认证API执行认证处理(步骤S13)。
卡OS30向在先应用程序通知表示使用认证API进行认证处理的结果的信息。当认证成功时,卡OS30发送表示认证成功的信息和充当用于恢复(将在后面说明)为在先应用程序的认证密钥的密钥信息。
在先应用程序将表示来自卡OS30的认证结果的信息(包括认证成功情况下的密钥信息)发送给主机设备中的应用程序。利用该信息,主机设备中的应用程序认识到在先应用程序认证的成败。当认证成功时,主应用程序接收表示认证成功的通知和密钥信息。
当认证处理中的认证成功时,主机设备和IC卡1中的应用程序执行允许将在所认证的在先应用程序中使用的信息(在先应用程序的应用程序信息)临时逸出到数据逸出区40中作为逸出数据32c(步骤S21到S23)的逸出处理。在逸出处理时,主应用程序发送允许所认证的在先应用程序的应用程序信息逸出的逸出命令给IC卡1(步骤S21)。
IC卡1接收来自主应用程序的逸出命令,并且IC卡1的在先应用程序请求卡OS30根据逸出命令执行应用程序信息逸出处理(步骤S22)。在接收到来自在先应用程序的应用程序信息逸出请求后,卡OS30执行允许将在先应用程序实例中的数据单元32b中所存在的应用程序信息临时逸出(将被保存)作为逸出数据32c的逸出处理(步骤S23)。也就是说,卡OS30响应来自在先应用程序的逸出处理请求,从在先应用程序的加载文件31中的处理代码单元31a调用数据逸出API31c。在调用数据逸出API31c之后,卡OS30使用数据逸出API31c执行应用程序信息逸出处理。
在应用程序信息逸出处理中,卡OS30从将要被更新的在先应用程序的实例32中的数据单元32b中提取用在更新应用程序(新的应用程序)中的应用程序信息(在先应用程序的应用程序信息)作为逸出数据32c。在从在先应用程序中提取应用程序信息作为逸出数据32c之后,卡OS30将所提取的应用程序信息保存在数据逸出区40中。该数据逸出区40是由数据逸出API32c指定的非易失性存储器15中的一个特殊区域。数据逸出区40是与非易失性存储器15中用于各个应用程序的加载文件31和41的存储区以及用于各个应用程序的实例32和42的存储区独立设置的。
在已完成应用程序信息逸出处理后,卡OS30向在先应用程序通知表示完成应用程序逸出处理的信息。在接收到该通知之后,在先应用程序向主应用程序通知表示应用程序信息逸出处理已完成的信息。
因此,主机设备中的应用程序认识到已完成在先应用程序的应用程序信息的逸出。
在已完成在先应用程序的应用程序的逸出之后,主应用程序和IC卡1执行删除在先应用程序的删除处理(步骤S31和S32)。在删除处理中,主应用程序发送删除在先应用程序的命令给IC卡1的卡OS30(步骤S31)。
在接收到来自主应用程序的删除请求之后,IC卡1的卡OS30执行删除存储在非易失性存储器15中的在先应用程序的加载文件31和应用程序实例32的删除处理(步骤S32)。在第一更新处理后,在先应用程序的加载文件31和实例32在对在先应用程序的删除处理过程中被完全删除。
在已完成在先应用程序的删除之后,卡OS30向主应用程序通知表示在先应用程序已被删除的信息。因此,主机设备中的应用程序认识到在先应用程序已被删除。
在在先应用程序已被删除之后,主应用程序和IC卡1执行安装用于更新所删除的在先应用程序的应用程序(新的应用程序)的加载和安装处理(步骤S41到S43)。在该处理中,主应用程序发送新的应用程序的加载命令和加载文件,同时使用安装命令以请求卡OS30根据新的应用程序的加载文件执行安装处理(步骤S41)。
新的应用程序的加载文件从主应用程序被发送,并且IC卡1的卡OS30执行将从主应用程序接收的加载文件41存储到非易失性存储器15中的加载处理(步骤S42)。在加载处理时,卡OS30将从主应用程序接收的文件存储在非易失性存储器15中作为新的应用程序的加载文件41。
在已完成新的应用程序的加载文件41的加载处理之后,卡OS30根据存储在非易失性存储器15中的加载文件41执行安装处理(步骤S43)。在安装处理时,卡OS30从新应用程序的加载文件41中产生数据单元42b和管理表42a作为新的应用程序实例42,并将其存储在非易失性存储器15中。
在完成新应用程序的安装处理之后,卡OS30向主应用程序通知表示新应用程序的安装已经完成的信息。因此,主机设备中的应用程序认识到新应用程序的安装已经完成。
在已安装新的应用程序之后,主应用程序和IC卡1执行认证处理(用于恢复的认证处理)(步骤S51到S53)。该认证处理是检查是否允许根据存储在数据逸出区40中的在先应用程序的应用程序信息恢复供新的应用程序使用的信息。使用作为步骤S11到S13的认证处理结果而获得的密钥信息执行对恢复的认证。
在对恢复的认证处理中,主应用程序通过读/写器2发送认证命令和在前一个认证处理中获得的密钥信息(步骤S11到S13)给IC卡1(步骤S51)。
IC卡1接收来自主应用程序的认证命令和密钥信息,并且新的应用程序请求卡OS30根据与认证命令一起接收的密钥信息执行认证处理(步骤S52)。响应来自新的应用程序的认证处理请求,卡OS30从API组中调用认证API,并使用该认证API根据所述密钥信息执行认证(步骤S53)。
在已根据密钥信息完成认证处理之后,卡OS30通知新的应用程序表示对恢复的认证处理的结果的信息。新的应用程序将来自卡OS30的表示对于恢复的认证处理的结果的信息发送至主机设备中的应用程序。从而,主机设备中的应用程序认识到IC卡1的恢复认证的成败。
当在对于恢复的认证处理中认证成功时,主机设备和IC卡1中的应用程序执行用以恢复存储在数据逸出区40中的、在先应用程序的应用程序信息作为新的应用程序的应用程序信息的恢复处理(步骤S61到64)。在恢复处理时,主应用程序发送恢复存储在数据逸出区40中的在先应用程序的应用程序信息的恢复命令给IC卡1(步骤S61)。
IC卡1接收来自主应用程序的恢复命令,并且该新的应用程序请求卡OS30根据所述恢复命令执行应用程序信息恢复处理(步骤S62)。在接收到来自新的应用程序的应用程序信息恢复请求之后,卡OS30执行恢复保存在数据逸出区40中的在先应用程序的应用程序信息作为新的应用程序的应用程序信息的恢复处理(步骤S63)。
也就是说,响应来自新应用程序的恢复处理请求,卡OS30从新的应用程序的加载文件41中的处理代码单元41a调用数据恢复API41c。在调用数据恢复API41c之后,卡OS30根据所调用的数据恢复API41c执行应用程序信息恢复处理。
在应用程序信息恢复处理时,卡OS30从数据逸出区40中读出在先应用程序的应用程序信息。在读出在先应用程序的应用程序信息之后,卡OS30利用对应于新的应用程序的信息更新所述读出的信息,并将所更新的信息存储在新应用程序的实例42的数据单元42b中。此时,卡OS30删除在新的应用程序中不使用的数据(变量),并写入新添加到所述新应用程序中的数据(变量)作为初始值。因此,基于在先应用程序的应用程序信息的应用程序信息被应用到新的应用程序的实例42中。在从存储在数据逸出区40中的在先应用程序的应用程序信息中恢复新的应用程序的应用程序信息之后,卡OS30删除存储在数据逸出区40中的信息。
在上述恢复处理已完成之后,卡OS30通知新的应用程序表示应用程序信息恢复处理已完成的信息。在接收到该通知之后,新的应用程序向主应用程序通知表示应用程序信息恢复处理已完成的信息。从而,主机设备中的应用程序认识到在先应用程序已利用新的应用程序进行了更新,即,应用程序更新处理已经完成。
如上所述,在第一更新处理时,允许在删除将要被更新的在先应用程序之前,将在先应用程序的应用程序信息临时逸出到非易失性存储器15的数据逸出区中,并且临时保存在数据逸出区中的信息被应用作为将要安装的新的应用程序的应用程序信息。
因此,可以使用现有应用程序的应用程序信息更新现有的应用程序。这样,可以有效地执行IC卡中的应用程序更新处理。
允许应用程序信息逸出到数据逸出区中的处理通过存储在应用程序加载文件的处理代码单元中的数据逸出API来实现。此外,恢复临时保存在数据逸出区中的信息作为新安装的应用程序的应用程序信息的处理通过存储在新的应用程序的加载文件的处理代码单元中的数据恢复API来实现。如上所述,可以通过添加唯一的API来执行上述处理。
此外,在逸出处理中,在先应用程序的应用程序信息保存在数据逸出区中,该数据逸出区是IC卡1的非易失性存储器15中的一个特定区域。因此,在不输出前一个应用程序的应用程序信息到外部的情况下可以利用新的应用程序更新在先应用程序。这防止了应用程序信息的泄漏,从而保证了安全性。
此外,在IC卡系统中,只有已通过恢复认证处理进行了认证的主应用程序可以恢复在先应用程序的应用程序信息作为新的应用程序的应用程序信息。这防止了其他应用程序访问IC卡中在先应用程序的应用程序信息,从而实现具有高安全性的应用程序更新处理。
下面,将对用于更新IC卡1中的应用程序的第二更新处理进行说明。
图8是用于说明第二更新处理的示意图。图8的例子概念性地示出了IC卡1的非易失性存储器15中将要被更新的应用程序(在先应用程序)和用于更新的应用程序(新的应用程序)。
如图8所示,在第二更新处理中,在先应用程序的实例32被用于产生新的应用程序的实例52的一部分。也就是说,在第二更新处理时,在先应用程序的实例32被至少保留到已安装新的应用程序为止。
在此状态下,新的应用程序的加载文件51通过加载处理被存储在非易失性存储器15中。在新的应用程序的加载文件51已存储在非易失性存储器15中之后,新的应用程序的实例52随着根据加载文件51的安装处理而产生管理表52a和数据单元52b。此外,诸如根据存储在非易失性存储器15中的在先应用程序的实例52恢复的应用程序信息之类的信息被应用到新的应用程序的实例52中。
因此,包括在先应用程序的应用程序信息的新的应用程序被完全安装在IC卡1的非易失性存储器15中。在新的应用程序的安装已完成后,已保留在非易失性存储器15中的在先应用程序的实例被删除。这样,应用程序的更新已被完成。
下面将对第二更新处理的流程进行描述。
图9是说明第二更新处理的流程图。
首先,主机设备和IC卡1中的应用程序执行认证处理(步骤S111和S112)。认证处理是检查主应用程序是否有权更新IC卡1中的现有应用程序(在先应用程序)。在认证处理时,主应用程序通过读/写器2发送用于在先应用程序的认证命令给IC卡1(步骤S111)。
IC卡1接收来自主应用程序的认证命令,并且卡OS30根据来自主应用程序的认证处理请求从API组中调用认证API,并使用该调用的认证API执行认证处理(步骤S112)。然后卡OS30向主应用程序通知表示由认证API进行的认证处理的结果的信息。从而,主应用程序认识到更新IC卡1中的应用程序的认证处理的成败。
当认证处理中的认证成功时,主应用程序和IC卡1对将要被更新的应用程序设置移动标志。该移动标志是表示在先应用程序的实例32被保留到已完成新的应用程序的安装为止的信息。因此,已为其设置移动标志的在先应用程序的实例32被保留到已完成新的应用程序的安装为止。在处理移动标志的设置时,主应用程序请求IC卡1为在先应用程序设置移动标志(步骤S121)。
IC卡1从主应用程序接收请求设置移动标志的命令,并且IC卡1的卡OS30为在先应用程序设置移动标志(步骤S122)。该移动标志被设置在用作工作存储器的RAM13、非易失性存储器15的未使用区域等中。
在为所述应用程序设置移动标志之后,卡OS30向主应用程序通知表示已为将要被更新的应用程序设置移动标志的信息。从而,主机设备中的应用程序认识到已为将被更新的应用程序设置移动标志。
在设置了移动标志之后,主应用程序和IC卡1执行删除在先应用程序的删除处理(步骤S131和S132)。在删除处理时,主应用程序发送删除在先应用程序的命令给IC卡1的卡OS30(步骤S131)。
在接收到来自主应用程序的在先应用程序的删除请求之后,IC卡1的卡OS30检查是否已为在先应用程序设置移动标志。当确定已为在先应用程序设置了移动标志时,卡OS30删除存储在非易失性存储器15中的在先应用程序中的加载文件31(步骤S32)。此时,卡OS30不删除在先应用程序的实例32,而是继续保留它。
在删除在先应用程序的加载文件31之后,卡OS30产生用于访问未删除的在先应用程序的实例32的ID信息和密钥信息(步骤S133)。在存在在先应用程序的多个实例时,产生多个ID信息和密钥信息。在为在先应用程序的实例32产生ID信息和密钥信息之后,卡OS30向主应用程序通知表示在先应用程序的加载文件31已被删除的信息,同时,发送所述ID信息和密钥信息给主应用程序作为访问在先应用程序的实例32的信息(步骤S134)。从而,主机设备中的应用程序认识到在先应用程序的加载文件31已被删除并且获取用于访问在先应用程序的实例32的信息。
在在先应用程序的加载文件31被删除之后,主应用程序和IC卡1执行新的应用程序的加载文件51的加载处理(步骤S141和S142)。
在加载处理时,主应用程序发送新的应用程序的加载命令和加载文件51给IC卡1(步骤S141)。
在从主应用程序接收到新的应用程序的加载命令和加载文件后,IC卡1的卡OS30执行在非易失性存储器15中存储从主应用程序接收的加载文件51的加载处理(步骤S142)。在加载处理时,卡OS30将从主应用程序接收的文件存储在非易失性存储器15中作为新的应用程序的加载文件51。在完成了新的应用程序的加载文件51的加载处理之后,卡OS30向主应用程序通知已完成加载文件的加载处理。
因此,主应用程序认识到新应用程序的加载文件51的加载处理已经完成。
在新的应用程序的加载文件51的加载处理完成之后,主应用程序和IC卡1根据加载文件51执行安装处理和应用程序信息恢复处理(步骤S143到S147)。在该处理中,主应用程序与安装命令一起发送ID信息和密钥信息作为访问在先应用程序的实例32的信息(步骤S143)。
在从主应用程序接收到安装命令之后,卡OS30根据存储在非易失性存储器15中的加载文件51执行安装处理(步骤S144)。在基于加载文件51的安装处理中,卡OS30从新的应用程序的加载文件51中产生新的应用程序的实例52并将其存储在非易失性存储器51中。
在完成了根据新的应用程序的加载文件51的安装处理之后,卡OS30调用认证API并使用该认证API根据从主应用程序接收的ID信息和密钥信息来执行认证处理(步骤S145)。执行认证处理是为了检查是否允许根据保留在非易失性存储器15中的在先应用程序的实例32来恢复将在新的应用程序中使用的信息。
当认证处理成功时,卡OS30根据保留在非易失性存储器15中的在先应用程序的实例32执行恢复新的应用程序的应用程序信息的恢复处理等(步骤S146)。在恢复处理时,卡OS30从通过ID信息表示的在先应用程序的实例32中恢复将被应用到新的应用程序中的实例52。此时,卡OS30删除在新的应用程序中不使用的数据(变量),并且写入新添加到新的应用程序中的数据(变量)作为初始值。
在新的应用程序的应用程序信息已从在先应用程序的实例32中被恢复并且已被应用到新的应用程序的实例52中之后,卡OS30删除保留在非易失性存储器15中的移动标志和实例32(步骤S147)。
如上所述,在上述处理中,新的应用程序被完全安装在非易失性存储器15中,并且在先应用程序的实例32被从该非易失性存储器15中删除。在删除在先应用程序的实例32之后,卡OS30向主应用程序通知新的应用程序的安装处理已完成。因此,主机设备中的应用程序认识到在先应用程序已利用新的应用程序被更新,即应用程序更新处理已完成。
如上所述,在第二更新处理时,新的应用程序的加载文件被加载同时保留将要被更新的在先应用程序的实例,并且诸如在在先应用程序的实例中保留的应用程序信息之类的信息被反映在根据新的应用程序的加载文件而安装的新的应用程序的实例中。
因此,应用程序更新处理,可以方便的参照现有应用程序的实例的信息并应用在先应用程序的应用程序信息到新的应用程序的实例中。因此,IC卡1中的更新处理可以有效地被执行。此外,在第二更新处理中,在先应用程序的实例被保留在非易失性存储器中,从而可以将在先应用程序的应用程序信息应用到新的应用程序的应用程序信息中,而不输出前一个应用程序的实例到外部。这防止了IC卡中应用程序信息的泄漏,从而保证了安全性。
此外,在IC卡系统中,只有已使用ID信息和密钥信息进行了认证的主应用程序可以应用IC卡中的在先应用程序的实例来恢复将要提供给新的应用程序的实例的信息。这防止了其他没有被认证的应用程序访问IC卡中的在先应用程序的实例,从而实现具有高安全性的应用程序更新处理。
下面,将对更新IC卡中的应用程序的第三更新处理进行说明。
图10是用于说明第三更新处理的示意图。图10的例子概念性地示出了IC卡1的非易失性存储器15中将要被更新的应用程序(在先应用程序)和用于更新的应用程序(新的应用程序)。
如图10所示,在第三更新处理中,新的应用程序的实例62被存储在非易失性存储器15上用于在先应用程序的实例32的存储区中。
也就是说,在第三更新处理中,新的应用程序的加载文件51通过加载处理存储在非易失性存储器15中,同时保留在先应用程序的实例32。在新的应用程序的加载文件51存储完之后,在非易失性存储器15中保留的在先应用程序的实例32上安装新的应用程序的实例62。
此时,在在先应用程序的实例中存在的应用程序信息被用作新的应用程序的实例62。通过利用在先应用程序的实例中的管理表32a的连接信息进行更新来产生新的应用程序的实例62中的管理表62a。
因此,通过使用诸如在先应用程序的实例32中的应用程序信息之类的信息所获得的新的应用程序的实例62被存储在IC卡1的非易失性存储器15中。因此,应用程序的更新完成。
下面将对第三更新处理的流程进行说明。
图11是用于说明第三更新处理的流程图。
在图11的流程中,从步骤S211到S242的处理表示与图9中所示的从步骤S111到S142相同的处理,其已在第二更新处理中说明,因此将省略对从步骤S211到S242的处理的详细描述。
也就是说,在第三更新处理中(步骤S211到S242),新的应用程序的加载文件61存储在非易失性存储器15中,同时与第二更新处理的情况相同,保留在先应用程序的实例。在新的应用程序的加载文件61存储在非易失性存储器15中的状态下,继续保留在先应用程序的实例32。
在已完成新的应用程序的加载文件61的加载处理后,主应用程序和IC卡1根据加载文件61执行安装处理和应用程序信息恢复处理(步骤S243到S247)。在该处理中,主应用程序与安装命令一起发送ID信息和密钥信息作为访问在先应用程序的实例32的认证信息(步骤S243)。
在从主应用程序接收到安装命令和认证信息后,卡OS30调用认证API并使用该调用的认证API根据从主应用程序接收的ID信息和密钥信息来执行认证处理(步骤S244)。执行认证处理是为了检查是否允许访问在先应用程序的实例32。换句话说,在步骤S244,检查是否允许在用于保留在非易失性存储器15中的在先应用程序的实例的存储区32上安装新的应用程序的实例。
当上述认证处理已成功时,卡OS30安装新的应用程序并根据来自主应用程序的请求恢复应用程序信息。也就是说,当认证成功时,卡OS30根据存储在非易失性存储器15的在先应用程序的加载文件61和实例32执行安装处理(步骤S245)。
在上述基于加载文件61的安装处理中,卡OS30在存储在非易失性存储器15中的在先应用程序的实例32上安装新的应用程序的实例62。在安装处理时,通过利用在先应用程序的实例32中的管理表上的连接信息进行更新来产生新的应用程序的实例62中的管理表。在先应用程序的应用程序信息继续保留在在先应用程序的实例32的数据单元中。因此,新的应用程序的实例62利用继续保留的应用程序信息而被安装在用于非易失性存储器15上的在先应用程序的实例32的存储区上。
在根据新的应用程序的加载文件61和在先应用程序的实例32安装了新的应用程序的实例62之后,卡OS30执行恢复在先应用程序的应用程序信息作为新的应用程序的应用程序信息的恢复处理(步骤S246)。在该恢复处理中,被保留在非易失性存储器15上新的应用程序的实例62中的在先应用程序的应用程序信息被新的应用程序的应用程序信息更新。在恢复处理中,卡OS30删除在先应用程序的应用程序信息中在新的应用程序中不使用的数据(变量),并写入新添加到新的应用程序中的数据(变量)作为初始值。
在完成了新的应用程序的安装和应用程序信息的恢复之后,卡OS30删除移动标志,并向主机设备中的应用程序通知已完成新的应用程序的安装。
利用上述处理,新的应用程序被完全安装在用于非易失性存储器15上的在先应用程序的实例32的存储区上。也就是说,利用上述处理,非易失性存储器15中的在先应用程序被新的应用程序更新。主机设备中的应用程序根据来自IC卡1的通知认识到在先应用程序已被新的应用程序更新,即应用程序更新处理已完成。
如上所述,在第三更新处理中,IC卡加载新的应用程序的加载文件61,同时保留将被更新的在先应用程序的实例32。在新的应用程序的加载文件61存储在非易失性存储器15中之后,IC卡根据新的应用程序的加载文件61在用于在先应用程序的实例32的存储区上安装新的应用程序,同时保留在先应用程序的应用程序的信息。之后,已在用于在先应用程序的存储区上安装了新的应用程序的IC卡根据新的应用程序更新存在于新的应用程序的实例62中的在先应用程序的应用程序信息。
因此,在应用程序更新处理中,可以方便地应用在先应用程序的实例的信息到新的应用程序的实例中。这样,在IC卡中,可以有效地执行应用程序的更新处理。
此外,根据第三更新处理,IC卡将新的应用程序安装到保留在非易失性存储器中的在先应用程序的实例上。因此,可以利用新的应用程序更新在先应用程序,而不需要输出前一个应用程序的应用程序信息到外部。这防止了IC卡中应用程序信息的泄漏,从而保证了安全性。
此外,在IC卡系统中,只有已使用ID信息和密钥信息进行了认证的主应用程序可以将IC卡中的在先应用程序的实例应用到新的应用程序的实例中。这防止了其它未认证的外部应用程序访问IC中在先应用程序的实例。因此,可以实现具有高安全性的应用程序更新处理。
如上所述,在根据上述实施例的IC卡中,在更新安装在非易失性存储器中的应用程序的情况下,使用现有应用程序的应用程序信息来更新应用程序。因此,可以实现有效的应用程序的更新处理。
此外,在根据所述实施例的IC卡中,在先应用程序的应用程序信息被应用到新的应用程序中,而不需要输出到IC卡的外部。这防止了应用程序信息被非法解密或滥用,实现了具有高安全性的IC卡。
此外,在根据上述实施例的IC卡中,只有当成功地进行了使用IC卡或密钥信息的认证时,才能执行将在先应用程序的应用程序信息应用到新的应用程序的应用程序信息中的恢复处理。这防止了应用程序信息被滥用,从而提高了安全性。
对于那些本领域技术人员来说很容易发觉其它优点和改进方式。因此,在较宽范围内的本发明并不局限于以上所示并描述的具体内容和典型实施例。因此,在不脱离如由所附的权利要求及其等同物限定的全面的发明概念的精神和范围的情况下可以对其进行各种修改。
权利要求
1.一种具有可重写非易失性存储器的便携式电子装置,其特征在于,包括安装处理单元,其在所述非易失性存储器的一个存储区上安装用于更新第一应用程序的第二应用程序,同时保留供存储在所述非易失性存储器的一个存储区中的第一应用程序使用的信息;以及恢复处理单元,其恢复所保留的供第一应用程序使用的信息作为供已通过所述安装处理单元安装的第二应用程序使用的信息。
2.根据权利要求1所述的便携式电子装置,其特征在于,还包括包含所述安装处理单元和恢复处理单元的模块,以及其中埋有该模块的壳体。
3.根据权利要求1所述的便携式电子装置,其特征在于,还包括数据逸出处理单元,其在位于所述非易失性存储器中的数据逸出区中保存供存储在该非易失性存储器的存储区中的第一应用程序使用的信息,并且所述安装处理单元在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留保存在所述数据逸出区中的信息。
4.根据权利要求3所述的便携式电子装置,其特征在于所述恢复处理单元恢复保存在所述数据逸出区中的信息作为供已通过所述安装处理单元安装在所述非易失性存储器的存储区上的第二应用程序使用的信息。
5.根据权利要求3所述的便携式电子装置,其特征在于,还包括认证处理单元,其认证请求安装第二应用程序的外部应用程序,并且所述恢复处理单元仅响应来自已通过所述认证处理单元认证的外部应用程序的请求,恢复保存在所述数据逸出区中的信息。
6.根据权利要求1所述的便携式电子装置,其特征在于所述安装处理单元在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留供存储在该非易失性存储器的存储区中的第一应用程序使用的信息,并且所述恢复处理单元根据所述供存储在非易失性存储器的存储区中的第一应用程序使用的信息来恢复供已通过所述安装处理单元安装在该非易失性存储器的存储区上的第二应用程序使用的信息。
7.根据权利要求6所述的便携式电子装置,其特征在于所述恢复处理单元通过从所述供存储在非易失性存储器的存储区中的第一应用程序使用的信息中删除在第二应用程序中未使用的信息并添加在第二应用程序中所添加的信息来恢复供第二应用程序使用的信息。
8.根据权利要求6所述的便携式电子装置,其特征在于,还包括认证处理单元,其对请求安装第二应用程序的外部应用程序进行认证,并且所述恢复处理单元仅响应来自已通过所述认证处理单元进行认证的外部应用程序的请求,恢复供第二应用程序使用的信息。
9.根据权利要求1所述的便携式电子装置,其特征在于所述安装处理单元在所述非易失性存储器的存储区上安装第二应用程序,同时保留供该非易失性存储器的存储区中的第一应用程序使用的信息,并且所述恢复处理单元通过更新供存在于所述非易失性存储器的存储区中的第一应用程序使用的信息来恢复供第二应用程序使用的信息。
10.根据权利要求9所述的便携式电子装置,其特征在于所述恢复处理单元通过从所述供存储在非易失性存储器的存储区中的第一应用程序使用的信息中删除在第二应用程序中未使用的信息并添加在第二应用程序中所添加的信息来恢复供第二应用程序使用的信息。
11.根据权利要求9所述的便携式电子装置,其特征在于,还包括认证处理单元,其对请求安装第二应用程序的外部应用程序进行认证,并且所述安装处理单元和恢复处理单元仅响应来自已通过所述认证处理单元进行认证的外部应用程序的请求,安装第二应用程序并恢复供第二应用程序使用的信息。
12.一种更新具有可重写非易失性存储器的便携式电子装置中的应用程序的方法,其特征在于,包括在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留供存储在该非易失性存储器的存储区中的第一应用程序使用的信息;以及恢复所保留的供第一应用程序使用的信息作为供已安装的第二应用程序使用的信息。
13.根据权利要求12所述的方法,其特征在于,还包括在位于所述非易失性存储器中的数据逸出区中保存供存储在该非易失性存储器的存储区中的第一应用程序使用的信息,以及安装步骤,在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留保存在所述数据逸出区中的信息。
14.根据权利要求13所述的方法,其特征在于所述恢复步骤恢复保存在所述数据逸出区中的信息作为供已安装在所述非易失性存储器的存储区上的第二应用程序使用的信息。
15.根据权利要求13所述的方法,其特征在于,还包括对请求安装第二应用程序的外部应用程序进行认证,并且所述恢复步骤仅响应来自已认证的外部应用程序的请求,恢复保存在所述数据逸出区中的信息。
16.根据权利要求12所述的方法,其特征在于所述安装步骤在所述非易失性存储器的存储区上安装用于更新第一应用程序的第二应用程序,同时保留供存储在该非易失性存储器的存储区中的第一应用程序使用的信息,并且所述恢复步骤根据所述供存储在非易失性存储器的存储区中的第一应用程序使用的信息来恢复供已安装在该非易失性存储器的存储区上的第二应用程序使用的信息。
17.根据权利要求16所述的方法,其特征在于所述恢复步骤通过从所述供存储在非易失性存储器的存储区中的第一应用程序使用的信息中删除在第二应用程序中未使用的信息并添加在第二应用程序中所添加的信息来恢复供第二应用程序使用的信息。
18.根据权利要求16所述的方法,其特征在于,还包括对请求安装第二应用程序的外部应用程序进行认证,并且所述恢复步骤仅响应来自已认证的外部应用程序的请求,恢复供第二应用程序使用的信息。
19.根据权利要求12所述的方法,其特征在于所述安装步骤在所述非易失性存储器的存储区上安装第二应用程序,同时保留供该非易失性存储器的存储区中的第一应用程序使用的信息,并且所述恢复步骤通过更新供存在于所述非易失性存储器的存储区中的第一应用程序使用的信息来恢复供第二应用程序使用的信息。
20.根据权利要求19所述的方法,其特征在于所述恢复步骤通过从所述供存储在非易失性存储器的存储区中的第一应用程序使用的信息中删除在第二应用程序中未使用的信息并添加第二应用程序的附加信息来恢复供第二应用程序使用的信息。
21.根据权利要求19所述的便携式电子装置,其特征在于,还包括对请求安装第二应用程序的外部应用程序进行认证,并且所述安装步骤和恢复步骤仅响应来自已认证的外部应用程序的请求,安装第二应用程序并恢复供第二应用程序使用的信息。
全文摘要
本发明提供一种便携式电子装置以及更新便携式电子装置中的应用程序的方法。在具有可重写非易失性存储器(15)的便携式电子装置(1)利用第二应用程序更新存储在所述非易失性存储器(15)的存储区(32)中的第一应用程序的情况下,该装置(1)在所述非易失性存储器(15)的存储区(42)上安装用于更新第一应用程序的第二应用程序,同时保留供存储在该非易失性存储器(15)的存储区(32)中的第一应用程序使用的信息,并且恢复(S63)所保留的供第一应用程序使用的信息作为供所安装的第二应用程序使用的信息。
文档编号G06F11/14GK1763716SQ20051011638
公开日2006年4月26日 申请日期2005年10月21日 优先权日2004年10月21日
发明者坂田康治 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1