一种实现智能卡多业务应用的方法及装置的制作方法

文档序号:6667717阅读:146来源:国知局

专利名称::一种实现智能卡多业务应用的方法及装置的制作方法
技术领域
:本发明涉及智能卡
技术领域
,特别涉及一种实现智能卡多业务应用的方法及装置。
背景技术
:在现有智能卡领域中,根据片内操作系统(COS,ChipOperatingSystem)的体系结构以及业务应用代码编写方式的不同,可以将卡片COS类型分为Native卡和Java卡。Native卡是一种卡片的COS和硬件平台紧密相关的智能卡,不具备平台通用性和二次开发的API接口,业务应用的开发和底层COS密不可分,业务应用代码同底层COS—同编译执行。图l为Native卡片的软件体系结构图,包括至少一个Native业务应用,Native片内操作系统COS,以及硬件接口程序。由于Native卡片的业务应用是与底层COS—同编译执行,这样在最大限度上减少了执行的时间,从而,Native卡片具有速度快和执行效率高的优势。一些有时间限制的应用,例如数据传输和安全计算等,都可以采用Native代码形式的程序。但目前多数的Native卡仅支持单一业务应用,即便是支持多业务应用也是事先将业务应用固化在COS中,不能动态的进行下载和删除。同时由于Native卡同底层COS以及芯片的密切相关性,导致Native卡片在功能的增加等方面存在着最大的困难。Java卡是SUN公司推出的面向智能卡的一种Java体系结构,是一种能够运行Java程序的智能卡。在Java卡的COS中加入了JavaCardVM(VirtualMachine),用于将上层的Java语言解释给COS,从而屏蔽了不同芯片以及COS的区别,使Java卡达到了硬件无关性。因此,Java卡能够利用Java"—次编写,随处运行"的能力,使Java能在智能卡和其他存储容量相对匮乏的设备上得以应用。利用Java卡可以加快智能卡业务应用开发的进度,避免开发者苦苦钻研具体的智能卡芯片底层结构,能够以更灵活的方式支持卡片多业务应用以及卡片发行后的应用添加和删除。不同应用之间具有防火墙,可用通过安全通道的方式实现卡片和终端之间的保密通讯。Java卡的框架定义了供业务应用开发者使用的API(业务应用接口)。Java卡的业务应用称为Applet,每个Applet由唯一的AID(业务应用标识符)来识别。其软件体系结构如图2所示。包括Java的应用业务Applet,Java卡运行环境(JCRE,JavaCardRuntimeEnvironment),Java虚拟机(VM,VirtualMachine),禾口工业标准Industryaddonclass6s。由于Java卡需要将应用解释成COS能看得懂的指令,需要多出解释执行的时间,所以相对于Native卡片,Java卡的指令速度和执行效率都比较慢。目前,随着智能卡应用的迅猛发展,涉及到的社会事务、商业业务、消费活动不断增加,迫切需要能支持多种业务应用的智能卡。例如支持交通业务应用和银行业务应用的智能卡,支持小额支付业务应用和银行业务应用的智能卡。由于银行业务应用对于安全性要求比较高,一般对应为Java代码封装形式的业务应用,而小额支付业务应用、电信业务应用对速度要求也非常高,一般对应为Native代码封装形式的业务应用,这样,需要一种能同时支持Native业务应用和Java业务应用的智能卡,而目前,智能卡一般是单独的Native卡,或单独的Java卡,都很难使一张智能卡同时支持Native业务应用和Java业务应用。
发明内容本发明实施例提供一种实现智能卡多业务应用的方法及装置,用以使一张智能卡同时支持Native业务应用和Java业务应用。本发明实施例提供一种实现智能卡多业务应用的方法,应用于包括至少两类业务应用的智能卡中,包括判断接收的指令是否为携带选择业务应用信息的指令;当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令。本发明实施例提供一种实现智能卡多业务应用的装置,包括判断单元,用于判断接收的指令是否为携带选择业务应用信息的指令;调用单元,用于当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令。本发明实施例多业务应用智能卡中,判断接收的指令是否为携带选择业务应用信息的指令,当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令,当接收到的指令不是携带选择业务应用信息的指令时,根据保存的上下文属性信息,执行所述指令,这样使智能卡能同时支持硬件无关性和高安全性的Java业务应用,又支持高速执行速度的Native业务应用,从而,在实现智能卡多业务应用的同时,提高业务应用的执行速度,使得这种智能卡能广泛应用于电信、银行等领域。图1为现有技术中Native卡的软件体系结构图;图2为现有技术中Java卡的软件体系结构图;图3为本发明实施例中智能卡的软件体系结构图;图4为本发明实施例中实现智能卡多业务应用的流程图;图5为本发明实施例一中实现智能卡多业务应用的流程图;图6为本发明实施例中实现智能卡多业务应用装置的结构图。具体实施例方式本发明实施例提供的智能卡能支持多业务应用,其中,每个业务应用可以采用Native代码封装形式,或者采用Java代码封装形式。参见图3,本发明实施例中,智能卡软件体系结构如图3所示,包括至少一个Native业务应用,至少一个Java应用业务Applet,JCRE,Java虚拟机VM,Industryaddonclasses,COS,以及硬件接口程序。在智能卡的COS系统内部可以设置"上下文属性信息",这是一种COS系统内部的一个属性值,包括Native或Java。COS系统需要根据这个属性信息进行运行环境的切换。当上下文属性信息为Native时,则COS直接进入Native运行环境。当上下文属性信息为Java时,则COS直接进入Java运行环境。系统的默认状态可以设置为Native或者是Java。参见图4,本发明实施例中,实现智能卡多业务应用的过程包括步骤401:判断接收的指令是否为携带选择业务应用信息的指令,当该指令是携带选择业务应用信息的指令时,执行步骤402,否则,执行步骤403。智能卡的COS接收的指令中一般携带一些属性信息,例如类型信息,标识信息。当接收的指令的类型信息为一设定值时,确定该指令是携带选择业务应用信息的指令时,执行步骤402,否则,执行步骤403。步骤402:根据接收的指令的标识属性,调用对应的业务应用执行该指令。这里,COS将接收的指令的第一标识属性的值与另一设定值进行比较,然后,根据比较结果,在保存的业务应用中,查找与该指令的第二标识属性相匹配的业务应用。其中,当该指令的第一标识属性的值不为设定值,在保存的所有Native业务应用中,查找与该指令的第二标识属性相匹配的Native业务应用。当该指令的第一标识属性的值为设定值,首先在保存的所有Java业务应用中,查找与该指令的第二标识属性相匹配的Java业务应用,如果不能查找到Java业务应用,则还需在保存的所有Native业务应用中,查找与该指令的第二标识属性相匹配的Native业务应用。步骤403:根据保存的上下文属性信息,执行接收的指令。当保存的上下文属性信息为"Native"时,进入Native运行环境,执行接收的指令。当保存的上下文属性信息为"Java"时,进入Java运行环境,执行接收指令。当然,为了使C0S能执行接收指令,还需进行Java运行环境信息的设置,包括进行栈初始化等信息设置。上述步骤402根据接收的指令的标识属性,确定对应的业务应用后,还需调用该业务应用执行接收到的指令,并在调用成功后,修正保存的上下文属性信息。这里,当接收指令的第一标识属性的值不为设定值,在保存的所有Native业务应用中,查找与该指令的第二标识属性相匹配的Native业务应用,当能查找到匹配的Native业务应用时,调用该业务应用执行接收到的指令,并在调用成功后,将保存的上下文属性信息设置为"Native"。如果不能调用该业务应用,则不修改保存的上下文属性信息,并发送对应的系统异常响应消息;当然,如果不能在保存的所有Native业务应用中,查找到匹配的Native业务应用时,COS也发送对应的系统异常响应消息。当接收指令的第一标识属性的值为设定值,首先在保存的所有Java业务应用中,查找与该指令的第二标识属性相匹配的Java业务应用,如果能查找到,则调用该查找到的Java业务应用执行接收的指令,并在调用成功后,将保存的上下文属性信息设置为"Java"。如果不能调用该查找到的Java业务应用,则不修改保存的上下文属性信息,并发送对应的系统异常响应消息。如果不能查找到Java业务应用,则还需在保存的所有Native业务应用中,查找与该指令的第二标识属性相匹配的Native业务应用,当能查找到匹配的Native业务应用时,调用该Native业务应用执行接收的指令,并在调用成功后,将保存的上下文属性信息设置为"Native"。如果不能调用执行该业务应用,则不修改保存的上下文属性信息,并发送对应的系统异常响应消息。当然,如果还是不能查找到匹配的Native业务应用时,则COS也发送对应的系统异常响应消息。下面结合说明书附图对本发明实施例作进一步详细描述。实施例l,本发明实施例中,智能卡的默认的状态为Native,参见图5,实现智能卡多业务应用的过程包括步骤501:判断接收的指令是否为选择应用指令,即判断接收的指令是否为携带选择业务应用信息的指令。当该指令是选择应用指令时,执行步骤502,否则,执行步骤509。根据智能卡运行环境规范可知,接收的指令的格式一般为APDU格式,如表l所示<table>tableseeoriginaldocumentpage7</column></row><table>表1其中,CLA、INS、PP1、PP2、LEN、和DATA都是APDU格式指令参数,这里,INS为该指令的类型属性,PP1为该指令的第一标识属性,DATA为该指令的第二标识属性,这里可以为数据属性。当该指令的INS的值为固定的0xA4时,确定该指令是选择应用指令时,执行步骤502,否则,执行步骤509。步骤502:将该指令的PP1的值与设定值0x04进行比较,当PP1=0x04时,执行步骤503,否则,执行步骤506。根据智能卡运行环境规范可知,当PP1=0x04时,才能进行Java业务应用的选择。步骤503:根据DATA中的数据信息,在智能卡的文件系统中,查找与该指令的数据信息相匹配的Java业务应用,如果能查找到,则执行步骤504,否则,执行步骤506。在智能卡的文件系统中,每个Java业务应用都有一个唯一的AID,根据DATA中的AID,查找每个Java业务应用的AID,确定是否有与DATA中的AID—致,如果能找到与DATA中的AID—致的Java业务应用,执行步骤504,否则,执行步骤506。步骤504:是否能调用确定的Java业务应用执行接收的指令,如果能,执行步骤505,如果不能,执行步骤512。COS确定与DATA中的AID—致的Java业务应用后,就调用该Java业务应用执行接收的指令。如果能调用,则转入步骤505,否则,转入步骤512。步骤505:修正系统的上下文信息,并转入步骤512。COS能调用Java业务应用执行指令,则将保存的上下文属性信息设置为"Java"。步骤5Q6:根据DATA中的数据信息,在智能卡的文件系统中,查找与该指令的数据信息相匹配的Native业务应用。如果能查找到,则执行步骤507,否则,执行步骤512。当PPl不能等于0x04时,或者,当PPl等于0x04,但不能在智能卡的文件系统中,查找对应的Java业务应用时,需要在智能卡的文件系统中,查找对应的Native业务应用。在智能卡的文件系统中,查找每个Native业务应用的数据信息,如果能找到与DATA中的数据信息一致的Native业务应用,执行步骤507,否则,执行步骤512。步骤507:是否能调用确定的Native业务应用执行接收的指令,如果能,执行步骤508,如果不能,执行步骤512。COS确定与DATA中的数据信息一致的Native业务应用后,就调用该Native业务应用执行接收的指令。如果能调用,则转入步骤508,否则,转入步骤512。步骤508:修正系统的上下文信息,并转入步骤512。COS调用Native业务应用执行接收的指令后,将保存的上下文属性信息设置为"Native,,。步骤509:判断保存的上下文属性信息是否为"Native",如果是,执行步骤510,否则,执行步骤511。这里,已经确定接收的指令不是选择应用指令,此时,根据保存的上下文属性信息,执行对应的系统信息设置。初始状态时,系统默认上下文属性信息是"Native",则执行步骤510。若经过上述的应用选择过程,则有可能对上下文属性信息进行修改,则根据修改后的上下文属性信息来执行对应的系统信息设置。步骤510:进入Native运行环境执行接收的指令,并转入步骤512。此时,COS系统的上下文属性信息是"Native",因此,进入Native的运行环境,执行接收的指令。步骤511:进入Java运行环境执行接收的指令,并转入步骤512。此时,COS系统的上下文属性信息是"Java",因此,进入Java的运行环境,进行栈初始化等环境信息设置工作,然后执行接收的指令。步骤512:返回对应的处理结果,本次指令处理流程结束。这里,不同处理过程,对应不同的处理结果。当从步骤504转入步骤512时,COS不能调用确定的Java业务应用,此时,COS返回对应的错误状态字。当从步骤505转入步骤512时,COS已经根据接收的指令,调用Java业务应用执行了接收的指令,并修正系统的上下文信息,此时COS返回对应的数据信息。当从步骤506转入步骤512时,COS不能在智能卡的文件系统中,查找与该指令的数据信息相匹配的业务应用,此时,COS返回对应的错误状态字。当从步骤507转入步骤512时,COS不能调用确定的Native业务应用,此时,COS返回对应的错误状态字。当从步骤508转入步骤512时,COS已经根据接收的指令,调用Native业务应用执行了指令,并修正系统的上下文信息,此时COS返回对应的数据信息。当从步骤510转入步骤512时,COS进行Native运行环境执行接收的指令,此时COS返回对应的数据信息。当从步骤511转入步骤512时,COS进入Java的运行环境执行接收的指令,此时COS返回对应的数据信息。这样,COS根据指令的标识属性不同的值,执行不同的处理流程,从而选择对应的业务应用。本发明实施例中,当且仅当选择应用指令到来时,才会有可能进行"上下文属性信息"的更迭,从而改变智能卡系统的运行环境。当智能卡卡片复位时,系统会重新置回到Native的状态。并且,上述实施例中,以INS、PP1、和DATA这些APDU格式指令参数为依据,来确定对应的业务应用。但是在实际应用中,还可以根据智能卡的应用领域,选择其他的APDU格式指令参数为依据,来确定对应的业务应用。例如当智能卡应用到电信领域时,还可以增加CLA这个指令参数进行判断。另外在PP1和PP2的判断上,还会根据电信文件或应用的具体特点进行进一步的处理,以能够更好满足Java和Native业务应用兼容的目的。根据上述实现智能卡多业务应用的方法,可以构造一种实现智能卡多业务应用的装置,应用于包括Native业务应用和Java用程序智能卡中,参见图6,包括判断单元100和调用单元200。其中,判断单元100,用于判断接收的指令是否为携带选择业务应用信息的指令。调用单元200,用于当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令。当然,该装置还包括处理单元,用于当接收到的指令不是携带选择业务应用信息的指令时,根据保存的上下文属性信息,执行所述指令。其中,处理单元200包括比较子单元,用于将所述指令的第一标识属性的值与设定值进行比较。第一查找子单元,用于当所述第一标识属性的值等于设定值时,在保存的所有业务应用中,查找与所述指令的数据属性相匹配的业务应用。第二查找子单元,用于当所述第一标识属性的值不等于设定值时,在保存的所有Native业务应用中,查找与所述指令的第二标识属性相匹配的Native业务应用。其中,第一查找子单元,还用于在保存的所有Java业务应用中,查找与所述指令的数据属性相匹配的J肌a业务应用,当未查找到J肌a业务应用时,在保存的所有Native业务应用中,查找与所述指令的数据属性相匹配的Native业务应用。当然该装置还包括修正单元,用于修正保存的上下文属性信息。本发明实施描述了一种同时支持硬件无关性和高安全性的Java业务应用,又支持高速执行速度的Native业务应用的智能卡工作模式。由于这只是一种工作模式,所以也不仅仅适用于智能卡,也可以用在带有智能卡功能的USBKey上。综上所述,本发明实施例中,判断接收的指令是否为携带选择业务应用信息的指令,当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令,当接收到的指令不是携带选择业务应用信息的指令时,根据保存的上下文属性信息,执行所述指令,这样使智能卡能同时支持硬件无关性和高安全性的Java业务应用,又支持高速执行速度的Native业务应用,从而,在实现智能卡多业务应用的同时,提高业务应用的执行速度,使得这种智能卡能广泛应用于电信、银行等领域。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求一种实现智能卡多业务应用的方法,其特征在于,应用于包括至少两类业务应用的智能卡中,包括判断接收的指令是否为携带选择业务应用信息的指令;当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令。2.如权利要求l所述的方法,其特征在于,还包括当接收到的指令不是携带选择业务应用信息的指令时,根据保存的上下文属性信息,执行所述指令。3.如权利要求1所述的方法,其特征在于,所述根据所述指令的标识属性,调用对应的业务应用执行所述指令包括将所述指令的第一标识属性的值与设定值进行比较;当所述第一标识属性的值等于设定值时,在保存的所有业务应用中,查找与所述指令的第二标识属性相匹配的业务应用;当所述第一标识属性的值不等于设定值时,在保存的所有Native业务应用中,查找与所述指令的第二标识属性相匹配的Native业务应用。4.如权利要求3所述的方法,其特征在于,在保存的所有业务应用中,查找与所述指令的第二标识属性相匹配的业务应用包括在保存的所有Java业务应用中,查找与所述指令的第二标识属性相匹配的Java业务应用;当未查找到Java业务应用时,在保存的所有Native业务应用中,查找与所述指令的第二标识属性相匹配的Native业务应用。5.如权利要求1所述的方法,其特征在于,所述调用对应的业务应用执行所述指令之后,包括修正保存的上下文属性信息。6.—种实现智能卡多业务应用的装置,其特征在于,应用于包括至少两类业务应用的智能卡中,包括判断单元,用于判断接收的指令是否为携带选择业务应用信息的指令;调用单元,用于当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令。7.如权利要求6所述的装置,其特征在于,还包括处理单元,用于当接收到的指令不是携带选择业务应用信息的指令时,根据保存的上下文属性信息,执行所述指令。8.如权利要求6所述的装置,其特征在于,所述调用单元包括比较子单元,用于将所述指令的第一标识属性的值与设定值进行比较;第一查找子单元,用于当所述第一标识属性的值等于设定值时,在保存的所有业务应用中,查找与所述指令的数据属性相匹配的业务应用;第二查找子单元,用于当所述第一标识属性的值不等于设定值时,在保存的所有Native业务应用中,查找与所述指令的第二标识属性相匹配的Native业务应用。9.如权利要求8所述的装置,其特征在于,所述第一查找子单元,还用于在保存的所有Java业务应用中,查找与所述指令的数据属性相匹配的Java业务应用,当未查找到Java业务应用时,在保存的所有Native业务应用中,查找与所述指令的数据属性相匹配的Native业务应用。10.如权利要求6所述的装置,其特征在于,还包括修正单元,用于修正保存的上下文属性信息。全文摘要本发明公开了一种实现智能卡多业务应用的方法及装置,应用于包括至少两类业务应用的智能卡中,用以使该张智能卡同时支持Native业务应用和Java业务应用。该方法包括判断接收的指令是否为选择应用指令,当所述指令是携带选择业务应用信息的指令时,根据所述指令的标识属性,调用对应的业务应用执行所述指令。文档编号G07F7/10GK101739755SQ200910241739公开日2010年6月16日申请日期2009年12月4日优先权日2009年12月4日发明者席砺莼,臧宏伟,苑中魁,靳伟申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1