安全装置以及集成电路卡发行系统的制作方法

文档序号:6566326阅读:223来源:国知局
专利名称:安全装置以及集成电路卡发行系统的制作方法
技术领域
本发明涉及一种以IC(Integrated Circuit,集成电路)卡为代表的安全装置、以及由以与安全装置进行通信连接的便携式终端为代表的外部机器和安全装置组成的IC卡发行系统,特别是涉及一种接收来自通信连接的外部机器的指示而进行卡发行处理的安全装置以及IC卡发行系统。
背景技术
目前,IC卡作为安全装置而备受瞩目。IC卡中有只存储数据的IC卡,也有实际装载OS(Operating System,操作系统)的IC卡等等。作为IC卡的使用事例,可以举出以信用卡和ETC(Electronic Toll Collection System,电子收费系统)卡为代表的接触型IC卡,以及以交通系统卡和电子货币卡为代表的非接触型IC卡等各式各样的IC卡。今后在新使用领域的开发以及使用领域规模的推广上令人拭目以待。
另一方面,以提高用户的方便性,并对想要提供使用IC卡的服务的业者降低其加入市场的障碍为目的,人们已着手开发在发卡后可将应用下载的多功能卡(Multi-application card)。
并且,将IC卡等的安全装置装载于便携式终端等的移动机器,通过移动机器来执行应用的下载和应用的使用的技术已持续被实用化。
这里,使用图1说明IC卡的硬件结构。图1是有关IC卡的硬件的功能块的图。
IC卡10具备CPU(Central Processing Unit,中央处理单元)11、ROM(ReadOnly Memory,只读存储器)12、易失性存储器(例如RAMRandom AccessMemory,随机存取存储器)13、易失性存储器(例如EEPROMElectricallyErasable Programmable Read Only Memory,电可擦编程只读存储器芯片)14、以及I/O IF15。
CPU11进行运算。ROM12是无法改写而专门用于读取的存储器。存储于ROM12的内容是在IC卡制造时决定,之后就无法变更。RAM13是可读写的存储器。EEPROM14被设计成即使电源断开也能够保持内容。I/O IF15负责IC卡10与外部之间的数据交换。在CPU11执行的程序通常称为“应用(application)”。用于执行应用的代码被存储在ROM12和EEPROM14。另外,使用加密操作IC卡10时,IC卡10除了图1所示的之外,还包括加密处理器。
装载于IC卡10的应用与外部(阅读器)之间,例如使用作为ISO/IEC7816-4规定格式的APDU(Application Protocol Data Unit,应用协议数据单元)来交换数据。APDU由阅读器提供给IC卡的命令消息与IC卡向阅读器返回的响应消息的两个结构组成。
使用图2说明有关APDU命令的格式。图2是表示APDU命令的格式的一个例子的图。
图2的APDU命令20包括报头21和本体22。报头21包括种类(CLA)、命令(INS)以及参数(P1、P2)。本体22包括命令的数据字段长度(LcLength ofCommand Data)、数据部分以及响应的数据字段长度(LeLength of ExpectedData)。APDU命令20的容量为CLA,INS,P1,P2,Lc,Le各1字节,以及数据部分255字节,最大为合计261字节。
接着使用图3说明创建APDU的方法。图3是表示分割数据来创建APDU的方法的概念图。
如上述,由于1个APDU命令20的容量为261字节而较小,为了发送下载应用时的数K字节的数据,有必要将发送数据划分为多个APDU块。通过以各个APDU块的参数(P1,P2)表示块编号以及是否有后续的块,在IC卡端能够检查发送来的命令的顺序的一致性以及最终处理的必要性。
另外,曾有以3字节表示Lc,在第1个字节示出此为3字节表示,并在第2字节以及第3字节表示数据长度的扩展的提案,但从IC卡的存储器容量的观点来看,组装例极少。
一般说来,在像IC卡那样存储器容量小的装置中,对接收的命令进行存储的输入缓冲器无法取较大的尺寸。使用多功能卡进行说明的话,持续地使某个区域作为输入缓冲器,使在应用之间能够共同利用,由此来限制确保的存储器容量。多功能卡在应用被选择时,更新“表示当前选择的应用的当前AP信息”,在接收到下一个命令时参照当前AP信息,由此能够确实地向选择中的应用传递命令。
通过卡管理器进行应用的下载。卡管理器是在多功能卡中进行卡的管理以及卡内应用的管理的应用。所谓“卡的管理”是指,卡发行人进行将为管理卡而需要的ID和密钥存储在卡内的卡发行,以及将发行后的卡转移成暂时停止状态或丢弃状态。另外,所谓“应用的管理”是指,进行应用的下载或删除。
再有,最近有将IC芯片使用为可将大容量存储器作为IC卡扩展存储器保护区域的装置(下面称为安全存储卡)的提案,变得可满足IC卡应用数据的大容量化的需求。由于安全存储卡适合于移动机器的大小,对于直接插入到带有卡槽的移动机器、利用了移动机器的EC(Electronic Commerce,电子商务)服务利用的发展令人期待。
在使用移动机器时,由于位在电波范围外而产生通信中断,结果对卡的动作造成影响的可能性变高。因此,在产生通信中断的时候,有人提出再次从头进行下载或是从途中开始进行重发等的重复处理。
作为这样的IC卡应用程序加载技术,例如有在专利文献1中公开的技术。图4是记载于专利文献1的IC卡应用程序加载装置的方框图。
在图4中,主机30存储应用程序,并对应用程序施加规定的加密处理(RSARivest-Shamir-Adleman,RSA公钥加密算法)作为分割的部件,通过终端装置40提供给IC卡50。IC卡50在与主机30的通信中断,应用程序等的数据的交换中断的时候,将除了正常接收到的部分以外的数据的重发请求发送到主机30。然后,接收到所有的部件的时候,对这些部件进行整合,并执行解密处理和差错检测处理。另一方面,将重发请求发送规定的次数而仍然无法正常接收的时候,中止重发请求的发送,将之前正常接收并存储的数据删除。
特开2003-108384号公报发明内容发明需要解决的问题然而,专利文献1记载的IC卡应用程序加载技术有以下的问题。
第一个问题为,由于在主机与IC卡之间有必要重复进行应用程序的下载所必须的数据的发送/接收,因某种原因而使得两者之间的通信中断时无法避免对下载的影响,从而提高对IC卡的动作造成影响的可能性。尤其在今后,随着安全装置的存储器容量的增加使得高功能应用备受期待,而应用本身具有巨大化的倾向,其结果,可以想到APDU块的数量会变得更多。这样的APDU块数的增加意味着下载时间的增加,也意味着直到下载结束为止发生通信中断的可能性变高。另外,在发生通信中断的时候,即使执行再次从头下载,或是从途中进行重发等重复处理,也会令人对因重发失败而进行的再次重发等重复处理所造成的系统和卡处理的复杂性、以及下载时间的增加所造成的用户压力感到忧虑,因此期待尽可能不受通信中断影响的方法。
第二个问题为,IC卡是被动性的装置,只能读取主机提供的应用程序,并按照该程序的指示动作。也就是说,供人使用的IC卡的应用本身原本是存储在与IC卡连接的外部机器(这里为主机),在卡发行以及应用下载的时候,用户能够选择的应用的范围被限制而欠缺方便性。
第三个问题为,由于主机对应用程序施加规定的加密处理并发送到IC卡,所以在IC卡必须进行解密以及验证的处理。如上所述,IC卡的处理能力不高,因此能够在确保以往的安全性的同时,全都以纯文本进行处理,或是减少解密和验证的次数的方法较为理想。
第四个问题为,在应用程序的下载和卡发行的时候,主机和IC卡共享会话密钥,为了以该会话密钥进行向IC卡发送的APDU块的加密和MAC(Message Authenticate Code,消息验证代码)验证,必须知道成为原始数据的APDU块。实际上,有时候APDU块的创建人与执行应用程序的下载和卡发行的业者彼此分离,因此期待在APDU块包含个人信息等隐蔽性高的信息的时候,能够使执行应用程序的下载和卡发行的业者无法得知APDU块的内容的方式。
本发明是鉴于上述几点而完成的,并且以提供一种能够降低与外部机器的通信中断所造成的影响,并能够高速且安全地读取用户期望的应用程序的安全装置为目的。
解决问题的方案本发明的安全装置所采用的结构包括卡发行单元,从存储在内部存储器的命令组中提取与要获得的卡的功能对应的卡发行命令;以及卡管理单元,执行由所述卡发行单元提取出的所述卡发行命令。
本发明的IC卡发行系统是由安全装置以及与该安全装置进行通信的外部机器组成的IC卡发行系统,其结构为,所述外部机器包括命令生成单元,生成请求卡发行的请求命令;以及命令发送单元,将生成的所述请求命令发送到所述安全装置,所述安全装置包括卡发行单元,从存储在内部存储器的命令组中提取与要获得的卡的功能对应的卡发行命令;以及卡管理单元,在所述请求命令输入时,执行由所述卡发行单元提取出的所述卡发行命令。
发明的效果根据本发明,能够通过削减外部机器与安全装置之间的通信次数,并且在确保以往的安全性的同时减轻安全装置内的安全处理的负荷,以实现外部机器与安全装置之间的数据处理(例如,应用程序的下载和卡发行)的高速化。并且,能够将用户期望的应用程序读取到安全装置。另外,对于在与应用程度的下载和卡发行相关的多个业者之间以合同实现的信息保护,能够在技术上加以实现。


图1是有关IC卡的硬件的功能块的图。
图2是表示APDU命令的格式的一个例子的图。
图3是表示分割数据来创建APDU的方法的概念图。
图4是表示以往的IC卡应用程序加载装置的结构的方框图。
图5是表示本发明实施方式1涉及的安全装置的结构的方框图。
图6是表示图5的外部机器的结构的方框图。
图7是表示本发明实施方式1涉及的外部机器、卡管理单元以及卡发行单元的处理的顺序图。
图8是表示联立命令的结构的一个例子的图。
图9是表示自主发行开始命令的格式的一个例子的图。
图10是表示从接收到自主发行开始命令到开始读出用于卡发行的APDU发行命令为止的安全装置的内部动作的流程图。
图11是表示文件管理表的一个例子的图。
图12是表示本发明实施方式2涉及的安全装置的结构的方框图。
图13是表示本发明实施方式2涉及的外部机器、卡管理单元、卡发行单元以及特权模式管理单元的处理的顺序图。
图14是表示本发明实施方式3涉及的安全装置的结构的方框图。
图15是表示本发明实施方式3涉及的外部机器、卡管理单元、卡发行单元以及特权模式管理单元的处理的顺序图。
图16(A)是表示从卡管理单元将响应通知给卡发行单元的一个例子的图。图16(B)是表示从卡管理单元将响应通知给卡发行单元的另一个例子的图。
图17是表示响应判定表的一个例子的图。
图18是表示本发明实施方式3涉及的卡发行单元的自主发行中的动作的流程图。
图19是表示本发明实施方式4涉及的安全装置的结构的方框图。
图20是表示响应运算单元的输入/输出的图。
图21是表示图19的外部机器的结构的方框图。
图22是表示本发明实施方式4涉及的卡发行单元的自主发行中的动作的流程图。
图23是示出表示自主发行失败的响应的格式的一个例子的图。
图24是表示接收到来自本发明实施方式4涉及的安全装置的响应后的外部机器的动作的流程图。
图25是表示进度管理表的一个例子的图。
图26是表示本发明实施方式5涉及的安全装置的结构的方框图。
图27是表示本发明实施方式5涉及的联立命令的结构的一个例子的图。
图28是表示本发明实施方式6涉及的安全装置的结构的方框图。
图29是表示本发明实施方式6涉及的安全装置的动作的流程图。
图30是表示本发明实施方式6涉及的联立命令的结构的一个例子的图。
图31是表示图30的联立命令所包含的恢复信息的结构的一个例子的图。
具体实施例方式
下面,对于本发明的实施方式,将参照附图进行详细说明。然而,本发明不限于上述实施方式,在不脱离其要旨的范围内,能够以各种形态加以实施。
另外,所谓“安全装置”在广义上是指,配备了包括应用的芯片并具有认证功能和结算功能、VPN(Virtual Private Network,虚拟专用网络)等功能的所有装置。在下面的实施方式中,采用多功能卡作为安全装置的例子来进行说明。
另外,所谓“卡发行”是指具备应用的卡本身的发行,以及对已发行的卡进行应用的下载的两种意思。在下面的实施方式中,采用上述两种意思作为卡发行的例子来进行说明。
(实施方式1)图5是表示本发明实施方式1涉及的安全装置100的结构的方框图。
在图5中,安全装置100的结构包括卡管理单元102、卡发行单元104、以及命令存储单元106。
卡管理单元102与后述的外部机器150进行通信,对应用程序和控制信号等各种命令进行发送/接收。并且,卡管理单元102例如保持为了发行卡所必须的ID和密钥,或者根据需要将发行后的卡转移成暂时停止状态或丢弃状态,由此来管理安全装置100的动作。另外,卡管理单元102对是否接受来自后述的外部机器150的直接存取的请求进行判断。
再有,卡管理单元102具有管理应用程序的下载的功能(卡管理器)。具体就是执行由卡发行单元104写入的各个卡发行命令。然后,卡管理单元102将作为表示卡发行是否成功的结果的响应发送到外部机器150。
卡发行单元104从命令存储单元106存储的命令组中,选择并提取与要获得的卡的功能对应的一系列的卡发行命令。并且,卡发行单元104将提取出的一系列的发行命令以卡发行命令为单位复制到卡管理单元102的APDU缓冲器(未图示)。
命令存储单元106是存储用于执行卡发行的命令组的内部存储器。命令存储单元106存储的命令组例如可以是购买时已存储(预先安装)在安全装置100内的命令组,也可以是购买后从外部机器150写入并嵌入(安装)的命令组。也就是说,可以根据安全装置100的用途和容量自由地变更、添加或是删除存储在命令存储单元106的命令组。并且,命令存储单元106具有存储数据的安全区域,该数据为汇集了作为通过来自外部机器150的直接存取而写入的一系列的卡发行命令的APDU发行命令的数据。
命令存储单元106能够存储与多个的卡功能对应的多个卡发行命令组。与各个的卡的功能对应的一系列的卡发行命令分别作为后述的联立命令被收容存储在文件中。并且,存储该联立命令的文件可通过文件名和文件ID进行识别。
接下来使用图6说明图5的外部机器的结构。图6是表示图5的外部机器150的结构的方框图。
在图6中,外部机器150的结构包括命令生成单元152、命令发送单元154、响应接收单元156以及自主发行管理单元158。
命令生成单元152生成在与卡管理单元102之间进行交换的各种命令。特别是,命令生成单元152根据自主发行管理单元158的指示,生成作为对安全装置100的卡发行请求的自主发行开始命令。在命令生成单元152生成的自主发行开始命令通过命令发送单元154被输出到卡管理单元102。
命令发送单元154将在命令生成单元152生成的自主发行开始命令及其他各种命令输出到卡管理单元102。
响应接收单元156接收来自卡管理单元102的表示卡发行是否成功的响应。在响应接收单元156接收的响应被输出到自主发行管理单元158。
自主发行管理单元158对外部机器150内的自主发行开始命令的生成及发送进行控制。具体地说,自主发行管理单元158对命令生成单元152请求自主发行开始命令的发行。并且,自主发行管理单元158接收来自响应接收单元156的表示卡发行是否成功的响应,对响应的内容进行分析,并决定外部机器150的下一个动作。
例如,自主发行管理单元158接收到表示卡发行成功的响应的时候,发出意指结束外部机器150的处理的指示。另外,在必须先再次对安全装置100通知卡发行成功的事实之后才能使用由卡发行而下载的应用程序的时候,自主发行管理单元158对命令生成单元152请求发行“卡使用许可确认用命令”。
另一方面,自主发行管理单元158在接收到卡发行失败的响应的时候,对命令生成单元152发出意指对自主发行开始命令进行再次生成并重发的指示,或是发出意指中止卡发行的指示。
下面,使用图7详细说明如上述那样构成的安全装置100的动作。
图7是表示本发明实施方式1涉及的外部机器150、卡管理单元102以及卡发行单元104的处理的顺序图。在图7的例子中,表示对从外部机器150写入的APDU发行命令进行处理,并下载应用程序的情况。
在步骤S1000,选择在外部机器150和卡管理单元102之间使用的应用。具体地说,首先,外部机器150将用于选择卡管理器(=用于卡发行的应用)的命令发送到卡管理单元102。其次,在卡管理单元102接收来自外部机器150的命令,并且卡管理器的选择成功之后,将表示当前选择的AP的“当前AP信息”更新到卡管理单元102,在接收到下一个命令的时候,参照更新后的“当前AP信息”。由此,能够向卡管理单元102传递下一个命令。
在步骤S1100,在外部机器150和卡管理单元102之间相互进行认证处理。具体地说,在安全装置100对外部机器150进行认证的外部认证与外部机器150向安全装置100进行认证的内部认证之间,根据所需的安全等级执行这两种认证,或只执行其中一方的认证。
然而,步骤S1100的认证步骤在写入隐蔽性高的数据时,最好是必须执行,在写入其他的数据的时候则可以省略。
在步骤S1200,外部机器150对命令存储单元106的安全区域进行将汇集了执行应用程序的下载的APDU发行命令的数据(下面称为“联立命令”)160写入的直接存取处理。如上述,由直接存取写入的联立命令160以能够用文件名和文件ID识别的方式被存在文件并存储于命令存储单元106。
此时,除非在步骤S1000选择的应用许可,外部机器150无法看存储在命令存储单元106的命令,并且无法对其进行直接存取。在直接存取时,由于使用一次能够写入数M字节的块传输的协议,用于执行应用程序的下载的联立命令160通常只要一次的直接存取即可完成写入。
这里,使用图8说明联立命令160。图8是表示联立命令160的结构的一个例子的图。
在图8,联立命令160包括表示联立命令160是由几个APDU发行命令构成的APDU数161和命令实体部分162。在图8的例子中,APDU数161为m。
命令实体部分162包括由APDU发行命令165-1、165-2、165-3、...、165-m构成的数据,以及表示这些APDU发行命令数据分别是由几字节构成的命令长度170-1、170-2、170-3、...、170-m。
在步骤S1300,外部机器150将作为对安全装置100的卡发行请求的自主发行开始命令180发送到卡管理单元102。该自主发行开始命令180由接收到来自自主发行管理单元158的发行请求的命令生成单元152生成,并通过命令发送单元154进行发送。
在本说明书中,所谓“自主发行”是指,在卡管理单元102与卡发行单元104之间,对构成存储在命令存储单元106的联立命令160的各个APDU发行命令进行处理,并进行卡发行。关于自主发行中的卡管理单元102以及卡发行单元104的动作,将在之后的步骤S1500-1~步骤S1500-m详细说明。
这里,使用图9说明自主发行开始命令180。图9是表示自主发行开始命令180的格式的一个例子的图。
在图9中,自主发行开始命令180包括用于特定自主发行开始命令的报头部分181、文件特定信息182、偏移量183以及长度184。
文件特定信息182是用于特定存储了联立命令160的文件的信息(例如,文件名和文件ID等)。偏移量183是表示从特定了的文件的读出位置的信息,长度184是表示要读出的数据的长度的信息。
然而,由于存储了联立命令160的文件是以唯一的方式决定等的理由而能够进行缺省处理的时候,没有必要包含文件特定信息182的文件名和文件ID等。
除非卡管理单元102在接收到自主发行开始命令180后发送响应,不然无法接收下一个命令。在步骤S1400,卡管理单元102接收在步骤S1300发送的自主发行开始命令180,将自主发行触发输出到开始发行单元104,作为对自主发行开始命令180的响应。自主发行触发包括联立命令160的地址、偏移量183以及长度184。该自主发行触发对卡发行单元104来说,是用于开始自主发行的触发。也就是说,通过自主发行触发的发送/接收,在卡管理单元102与卡发行单元104之间开始对构成联立命令160的各个APDU发行命令进行处理。
在步骤S1500-1~步骤S1500-m,在卡管理单元102与卡发行单元104之间,对构成联立命令160的各个APDU发行命令进行处理(自主发行)。
首先,卡发行单元104在从卡管理单元102输入自主发行触发之后,在图8所示的联立命令160之中,提取以命令长度170-1指定的最初的APDU发行命令165-1(例如Install For Load),并复制到卡管理单元102内的APDU缓冲器(未图示)。此时,卡发行单元104将在卡发行单元104内管理的“已处理命令数”增加1。所谓“已处理命令数”表示构成联立命令160的APDU发行命令已被正常处理的数量,在接收到来自卡管理单元102的自主发行触发时必须为0。另外,已处理命令数被保持在EEPROM等的非易失性存储区域中(未图示)。
卡管理单元102执行被复制到APDU缓冲器的APDU发行命令165-1(Install For Load),在正常结束时,作为其响应,将意味着正常结束的状态字(例如9000h)输出到卡发行单元104(S1500-1)。
其次,卡发行单元104确认来自卡管理单元102的状态字是表示正常结束的意思之后,从联立命令160提取下一个APDU发行命令165-2(例如Load1),并复制到卡管理单元102内的APDU缓冲器。然后,卡管理单元102执行被复制到APDU缓冲器的APDU发行命令165-2(Load1),在正常结束时,作为其响应,将意味着正常结束的状态字输出到卡发行单元104(S1500-2)。
然而,在卡发行单元104将APDU发行命令复制到APDU缓冲器的时候,最好将卡管理单元102之前执行的APDU发行命令删除。
之后,以同样的方式,卡管理单元102执行由卡发行单元104复制到APDU缓冲器的、构成联立命令160的各个APDU发行命令162-3~165-m。也就是说,直到卡发行单元104管理的“已处理命令数”与APDU数161相一致为止,重复执行APDU发行命令(S1500-3~S1500-m)。
然而,如果在APDU发行命令的处理途中,发生了存储器短缺等的异常事态时,卡发行单元104将表示异常结束的状态字(例如6A84h)输出到卡管理单元102,并在该时间点中止APDU发行命令的处理。
在步骤S1600,卡管理单元102将表示所有的APDU发行命令的执行是否正常结束的响应,也就是表示卡发行是否成功的响应发送到外部机器150的响应接收单元156。具体地说,卡管理单元102在卡发行成功的时候将表示正常结束的状态字(例如9000h)发送到外部机器150的响应接收单元156,并且在卡发行失败的时候将表示异常结束的状态字(例如6A84h)发送到外部机器150的响应接收单元156。
再有,外部机器150的自主发行管理单元158对在响应接收单元156接收到的、来自卡管理单元102的表示卡发行是否成功的响应的内容进行分析,决定外部机器150的下一个动作。
例如,如果响应的内容是卡发行成功,则自主发行管理单元158发出将外部机器150的处理结束的意旨的指示,外部机器150结束处理。并且,在必须先再次对安全装置100通知已确认卡发行成功的响应之后才能使用下载的应用程序的时候,自主发行管理单元158对命令生成单元152请求发行“卡使用许可确认用命令”。这个时候,在命令生成单元152生成的“卡使用许可确认用命令”通过命令发送单元154被通知到安全装置100之后,外部机器150结束处理。
另一方面,响应的内容如果是卡发行失败,自主发行管理单元158例如将意指对自主发行开始命令180进行再次生成并重发的指示输出到命令生成单元152,重新开始从图7的步骤S1300的处理。并且,自主发行管理单元158在将卡发行处理试行了规定的次数仍接收到卡发行失败的响应的时候,也可以将意指中止卡发行的指示输出到命令生成单元152,外部机器150结束处理。此时,试行卡发行处理的次数可以是任意的。
如上述,为了卡发行而在外部机器150与安全装置100之间进行的通信,只有以直接存取进行的联立命令160的写入,以及作为卡发行请求的自主发行开始命令180的发送/接收而已。也就是说,如上述的步骤S1500-1~步骤S1500-m,通过在卡管理单元102与卡发行单元104之间重复进行APDU发行命令的处理,从而以安全装置100的内部处理完成在接收到自主发行开始命令180之后的卡发行处理。
这里,对于从接收到自主发行开始命令180到开始读出用于卡发行的APDU发行命令为止的安全装置100内的动作,使用图10的流程图进行说明。
首先,在步骤S2000,卡管理单元102分析接收到的命令的报头部分181,并确认接收到自主发行开始命令180。
然后,在步骤S2100,卡管理单元102参照保持在卡管理单元102内部的文件管理表190(后述),来特定与文件特定信息182对应的地址。也就是说,对存储在命令存储单元106内部的安全区域的文件进行特定。
图11是表示文件管理表的一个例子的图。在文件管理表190中描述了例如文件名、文件路径、文件特定信息、文件大小、表示是否能够直接存取的可能标记、以及地址,各自的内容在创建文件时被添加。
其次,在步骤S2200,卡管理单元102向卡发行单元104输出自主发行触发。自主发行触发包括联立命令160的地址、偏移量183以及长度184。
然后,在步骤S2300,卡发行单元104从自主发行触发所包含的联立命令160的地址以及偏移量183特定出最初的APDU发行命令的物理的读出位置。
然后,在步骤S2400,在卡管理单元102与卡发行单元104之间,将构成联立命令160的各个APDU发行命令的读出和执行开始,亦即开始自主发行。在此,可读出的联立命令160的长度必须小于包含在自主发行开始命令180的读出长度184。
由此,在安全装置100内部开始了在卡管理单元102接收到来自外部机器150的自主发行开始命令之后的APDU发行命令的读出。
然而,在本实施方式中,虽然说明了通过执行以来自外部机器150的直接存取而写入的、构成联立命令160的APDU发行命令,来进行卡发行的情况,但本发明不限于此。例如,在与要获得的卡的功能对应的APDU发行命令预先被存储在命令存储单元106的时候,有可能在安全装置100内部完成卡发行,而不进行外部机器150与安全装置100之间的通信。
这样,根据本实施方式,由于在安全装置内部完成应用的下载与卡发行处理,削减外部机器与安全装置之间的通信次数并降低因通信中断而造成的影响,能够提高卡发行的安全性。
换言之,在以往,下载应用时,卡发行中的外部机器与安全装置之间的通信次数与应用的大小成比例地产生数次~数十次,但在本实施方式中能够减少到直接存取和自主发行开始命令的两次。由此,在本实施方式中能够在安全装置内部进行以往在外部机器与卡管理单元之间进行的卡发行命令的交换,能够大幅减少使用移动网络时通信中断的风险。
并且,在以往技术的应用的下载中,在认证时外部机器与安全装置之间共享会话密钥,其后在外部机器对APDU发行命令进行加密与MAC附加,并在安全装置对来自外部机器的APDU发行命令进行解密和MAC验证。
与此相对,在本实施方式中,通过外部认证和内部认证进行相互认证之后,以直接存取将联立命令存储在仅有卡管理单元可存取的区域,利用该联立命令在所有具有反窜改性的安全装置内部完成下载处理,而不将数据输出到外部。因此,在本实施方式中,没有必要考虑卡发行时的窃听与窜改,因此没有必要进行加密和MAC的附加。其结果,卡管理单元只要处理纯文本即可,下载处理变成高速。
另外,因为可发送的APDU发行命令的全体长为固定,在纯文本的情况下,与进行了加密和MAC的附加的时候相比,以一次的APDU发行命令能够发送的数据较大。因此,可适用纯文本处理时,整个命令发行数变少,在这一点也对下载处理的高速化有效。
另外,根据本实施方式,由于能够自由地变更、添加或删除存储在命令存储单元的命令组以及写入命令存储单元的安全区域的联立命令,因此能够实现具有用户期望的应用的安全装置。
再有,根据本实施方式,在指示卡发行的业者与负责卡发行的业者不同时,由于在指示卡发行的业者不知道使用何种命令发行卡的情况下结束卡发行,所以能够实现卡发行中的安全保护。
(实施方式2)图12是表示本发明实施方式2涉及的安全装置的结构的方框图。对于与实施方式1涉及的安全装置相同的结构元件赋予相同的标号,并省略其说明。
在图12,安全装置200相对于图5的安全装置100,采用进一步包括特权模式管理单元202的结构。
特权模式管理单元202与卡管理单元102以及卡发行单元104协作,对安全装置200设定被称为“特权模式”的模式。
特权模式是指,以在安全装置200内部的卡发行处理为第一优先级的模式,也就是以对构成卡管理单元102与卡发行单元104之间的联立命令160的APDU发行命令进行的处理(自主发行)为第一优先级的模式。在设定成特权模式的期间,无法通过安全装置200的接触界面和非接触界面进行与外部机器150之间的数据交换(例如,自主发行开始命令和响应的发送/接收)。关于特权模式管理单元202设定特权模式的时刻,将在后述的动作说明中详细说明。
下面,使用图13详细说明如上述般构成的安全装置200的动作。
图13是表示本发明实施方式2涉及的外部机器150、卡管理单元102、卡发行单元104以及特权模式管理单元202的处理的顺序图。
图13的步骤S3000~步骤S3400的各个处理以及步骤S3700的处理分别与图7的步骤S1000~步骤S1400的各个处理以及步骤S1600的处理相同,因此省略其说明。
在步骤S3500,在卡发行单元104接收到来自卡管理单元102的自主发行触发之后,特权模式管理单元202对安全装置200设定特权模式。具体地说,首先,接收到来自卡管理单元102的自主发行触发的卡发行单元104向特权模式管理单元202指示特权模式的设定,或者,在卡管理单元102向卡发行单元104输出自主发行触发的同时向特权模式管理单元202指示特权模式的设定。然后,特权模式管理单元202接收来自卡管理单元102或卡发行单元104的指示,对安全装置200设定特权模式。
然而,特权模式的设定不需要总是在卡发行单元104接收到自主发行触发之后进行。例如,在卡管理单元102接收到来自外部机器150的自主发行开始命令之后,或是在卡发行单元104接收到自主发行触发之后,或是在经过规定的期间之后设定特权模式即可。
在步骤S3600-1~步骤S3600-m,与图7的步骤S1500-1~步骤S1500-m同样地,在卡管理单元102与卡发行单元104之间进行自主发行。此时,由于安全装置200被设定为特权模式,因此即使通过安全装置200的接触界面和非接触界面也无法在安全装置200与外部机器150之间进行数据的交换。
然而,一旦设定成特权模式,安全装置200转移为特权模式之后,例如通过停止对安全装置200的电源供给、选择其他的应用、或是再次选择当前选择的卡管理单元102,可解除所设定的特权模式。
由此,根据本实施方式,对安全装置设定特权模式,在特权模式设定期间中不能在安全装置与外部机器之间交换数据,因此能够安全且确实地进行在安全装置内部的卡发行处理而不受到妨碍。
(实施方式3)图14是表示本发明实施方式3涉及的安全装置的结构的方框图。对于与实施方式2涉及的安全装置相同的结构元件赋予相同的标号,并省略其说明。
在图14,安全装置300相对于图12的安全装置200,采用包括卡发行单元302以及特权模式管理单元304以代替卡发行单元102以及特权模式管理单元202的结构。
卡发行单元302具备响应判定表306,该响应判定表306用于对在卡的自主发行中的各个APDU发行命令处理之后,来自卡管理单元102的状态字是否表示成功进行判断。
卡发行单元302除了卡发行单元102具有的功能之外,还具有下面的功能。也就是说,卡发行单元302参照响应判定表306,判断自主发行中的各个APDU发行命令是否由卡管理单元102正常地执行,也就是判断自主发行是否正常地进行。判断的结果,在判断为自主发行正常地结束时,或是判断出在自主发行中有APDU发行命令没有被正常地执行时,卡发行单元302将该判断结果输出到特权模式管理单元304。
特权模式管理单元304除了特权模式管理单元202具有的功能之外,还具有下列功能,即,在安全装置300设定特权模式之后,从卡发行单元302输入表示自主发行正常地结束的判断结果,或是表示自主发行没有被正常地执行的判断结果的任何一方时,解除所设定的特权模式。
下面,使用图15详细说明如上述般构成的安全装置300的动作。
图15是表示本发明实施方式3涉及的外部机器150、卡管理单元102、卡发行单元302以及特权模式管理单元304的处理的顺序图。
由于在图15的步骤S4000~步骤S4500的各个处理分别与图13的步骤S3000~步骤S3500的各个处理相同,故省略其说明。
在步骤S4600-1~步骤S4600-m,在卡管理单元102与卡发行单元302之间进行自主发行。此时,由于安全装置300被设定为特权模式,因此即使通过安全装置300的接触界面和非接触界面也无法在安全装置300与外部机器150之间进行数据的交换。
首先,卡发行单元302在从卡管理单元102输入自主发行触发之后,在图8所示的联立命令160之中,提取以命令长度170-1指定的最初的APDU发行命令165-1(例如Install For Load),并复制到卡管理单元102内的APDU缓冲器。
卡管理单元102执行被复制到APDU缓冲器的APDU发行命令165-1(Install For Load),在正常结束时,作为其响应,将意味着正常结束的状态字输出到卡发行单元302,在没有正常结束时,作为其响应,将意味着异常结束的状态字输出到卡发行单元302(S4600-1)这里,使用图16(A)、(B)说明从卡管理单元102对卡发行单元302的响应的通知方法。图16(A)是表示从卡管理单元102对卡发行单元302的响应的通知方法的一个例子的图。图16(B)是表示从卡管理单元102对卡发行单元302的响应的通知方法的另一个例子的图。
在图16(A)的例子中,通过将存储在卡管理单元102所保持的响应缓冲器的响应数据复制到卡发行单元302所保持的响应缓冲器,来进行响应的通知。并且,在图16(B)的例子中,通过使卡发行单元302参照存储在卡管理单元102所保持的响应缓冲器的响应数据,来进行响应的通知。
在卡发行单元302中,参照响应判定表306,通过对作为来自卡管理单元102的响应的状态字与响应判定表306进行对比,来判断APDU发行命令165-1(Install For Load)是否被正常处理。
判断的结果,在判断为APDU发行命令165-1被正常处理时,进入下一个APDU发行命令165-2(Load1)的处理。另外,在判断为APDU发行命令165-1没有被正常处理的时候,卡发行单元302将该判断结果发送到特权模式管理单元304,请求解除特权模式。
特权模式管理单元304在从卡发行单元302接收到APDU发行命令165-1没有被正常地处理的判断结果以及特权模式解除请求后,解除在安全装置300设定的特权模式。特权模式解除后,变得能够与外部机器150进行通信,卡管理单元102向外部机器150的响应接收单元156发送意味着卡发行失败的状态字(例如,6A84h)。
这里,使用图17说明响应判定表306。图17是表示响应判定表306的一个例子的图。
在图17的例子中,响应判定表306在被通知的响应的状态字为“9000h”时,意味着APDU发行命令被正常地处理(成功),在被通知的响应的状态字为“9000h以外”时,意味着APDU发行命令没有被正常地处理(失败)。
之后,以同样的方式,通过在卡管理单元102与卡发行单元302之间,依序进行构成联立命令160的各个APDU发行命令165-2~165-m的处理来进行自主发行。
然后,在自主发行中发生没有被正常处理的APDU发行命令时,解除特权模式。此时,从卡管理单元102向外部机器150的响应接收单元156发送意味着卡发行失败的状态字(S4800)。
另一方面,在所有的APDU发行命令165-1~165-m被正常处理,自主发行成功的时候,特权模式也被解除。此时,从卡管理单元102向外部机器150的响应接收单元156发送意味着卡发行成功的状态字(S4800)。
接下来使用图18说明本实施方式的自主发行开始后的卡发行单元302的动作。
图18是表示本发明实施方式3涉及的卡发行单元的自主发行中的动作的流程图。另外,假设在安全装置300设定了特权模式来进行说明。
首先,在步骤S5000,卡发行单元302为可分析响应的状态,并等待来自卡管理单元102的表示APDU发行命令的处理结果的响应。
然后,在步骤S5100,卡发行单元302收到来自卡管理单元102的表示APDU发行命令的处理结果的响应的通知。
然后,在步骤S5200,卡发行单元302参照响应判定表306对在步骤S5100被通知的响应是否意味着APDU发行命令处理的成功进行判断。判断的结果,在响应意味着成功的时候(S5200“是”)前进到步骤S5300,在响应不意味着成功的时候(S5200“否”)前进到步骤S5400。
然后,在步骤S5300,卡发行单元302对是否完成所有的APDU发行命令的处理进行判断。判断的结果,在判断为已完成所有的APDU发行命令的处理的时候(S5300“是”),前进到步骤S5400,在判断为没有完成所有的APDU发行命令的处理的时候(S5300“否”),返回步骤S5000,等待表示下一个APDU发行命令的处理结果的响应。
然后,在步骤S5400,卡发行单元302将有APDU发行命令没有被正常处理的事实或是已完成所有的APDU发行命令的处理的事实发送到特权模式管理单元304,同时请求解除所设定的特权模式。
如上述,根据本实施方式,在所有的APDU发行命令被处理而自主发行成功的时刻,或是在APDU发行命令不被正常处理而自主发行失败的时刻解除特权模式,所以能够快速地进行对外部机器的自主发行处理结果的通知。
(实施方式4)图19是表示本发明实施方式4涉及的安全装置的结构的方框图。对于与实施方式1涉及的安全装置相同的结构元件赋予相同的标号,并省略其说明。
在图19中,安全装置400相对于图5的安全装置100,采用包括卡发行单元402以代替卡发行单元104的结构。
卡发行单元402具备在自主发行中检测出卡发行的失败时,对包括意指卡发行失败的信息以及表示“自主发行成功到哪个阶段”的信息的响应进行运算的响应运算单元404。
卡发行单元402除了卡发行单元104具有的功能之外,还具有下面的功能。换言之,卡发行单元402监视在自主发行中的各个APDU发行命令的处理的进度状态,在APDU发行命令不被正常执行而自主发行失败的时候,将意味着因异常结束而卡发行失败的状态字与表示“卡发行成功到哪个阶段”的信息一起发送到卡管理单元102。
表示“卡发行成功到哪个阶段”的信息,例如包含已被正常地处理的APDU发行命令的数量、处理失败的APDU发行命令的报头部分、以及剩余的APDU发行命令的数量等各式各样的信息。也就是说,表示“卡发行成功到哪个阶段”的信息是能够获得对已被正常地执行的卡发行命令进行确定的信息的信息。
在本实施方式中,对以下情况进行说明作为表示“卡发行成功到哪个阶段”的信息的一个例子,使用已被正常地处理的APDU发行命令的数量,并从该信息获得对已被正常地执行的卡发行命令进行特定的信息。
也就是说,本实施方式的响应运算单元404在自主发行失败的时候,使用在那之前已被正常地处理的APDU发行命令的数量,对包含表示“自主发行成功到哪个阶段”的信息的响应进行运算。
下面使用图20说明响应运算单元404所进行的响应的运算。图20是表示响应运算单元404的输入/输出的图。
在图20中,响应运算单元404从卡管理单元102接收到APDU发行命令已被正常执行的响应后,将在卡发行单元402管理的“已处理命令数”增加1,转移到下一个APDU发行命令的处理。另外,由于在自主发行开始时的“已处理命令数”为0,因此在APDU发行命令不被正常执行而自主发行失败时的“已处理命令数”为表示直到该时间点为止已正常处理的APDU发行命令数的数值因此,能够在对外部机器150的响应中包含意指发行失败的信息、以及直到自主发行失败为止的时间点已被正常地处理的APDU发行命令的数量,也就是表示“自主发行成功到哪个阶段”的信息。
接下来使用图21说明图19的外部机器450的结构。图21是表示图19的外部机器450的结构的方框图。
在图21,外部机器450相对于图6的外部机器150,包括自主发行管理单元452以代替自主发行管理单元158。
自主发行管理单元452具备使在自主发行中处理的各个APDU发行命令与对各个APDU发行命令的处理内容相对应并进行存储的进度管理表454。
自主发行管理单元452除了自主发行管理单元158具有的功能之外,还具有在接收到自主发行失败的响应的时候,特定已被正常执行的APDU发行命令,并发出意指从该APDU发行命令的处理开始的指示的功能。
接下来使用图22的流程图来说明本实施方式的自主发行开始后的卡发行单元402的动作。
首先,在步骤S6000,卡发行单元402为可分析响应的状态,并等待来自卡管理单元102的表示APDU发行命令的处理结果的响应。
然后,在步骤S6100,卡发行单元402收到来自卡管理单元102的表示APDU发行命令的处理结果的响应的通知。
然后,在步骤S6200,卡发行单元402对在步骤S6100被通知的响应是否意味着APDU发行命令处理的成功进行判断。判断的结果,在响应意味着成功的时候(S6200YES)前进到步骤S6300,在响应不意味着成功的时候(S6200NO)前进到步骤S6500。
然后,在步骤S6300,卡发行单元402对是否完成所有的APDU发行命令的处理进行判断。判断的结果,在判断为已完成所有的APDU发行命令的处理的时候(S6300YES),前进到步骤S6400,在判断为没有完成所有的APDU发行命令的处理的时候(S6300NO),返回步骤S6000,等待表示下一个APDU发行命令的处理结果的响应。
然后,在步骤S6400,卡发行单元402生成表示已完成所有的APDU发行命令的处理而自主发行成功的响应。
另一方面,在步骤S6500,卡发行单元402生成表示有APDU发行命令没有被正常处理而自主发行失败的响应。在该响应中,包含在自主发行失败的时间点的已处理命令数,也就是直到自主发行失败的时间点为止已被正常处理的APDU发行命令的数量。
这里,使用图23说明在步骤S6500生成的响应。图23是示出表示自主发行失败的响应的格式的一个例子的图。
在图23,响应410包括表示自主发行处理的进度状态的已处理命令数411以及表示自主发行处理失败的状态字412。
另外,作为响应的格式,除了图23所示的格式之外,例如可以使用由2字节组成的状态字的任一比特的格式(例如,63CXh(X为已处理命令数))。
然后,在步骤S6600,卡发行单元402将在步骤S6400或步骤S6500生成的响应输出到卡管理单元102。该响应从卡管理单元102发送到外部机器450的响应接收单元156。
接着,使用图24的流程图说明接收到来自安全装置400的表示自主发行是否成功的响应之后的外部机器450的动作。
首先,在步骤S7000,响应接收单元156接收来自卡管理单元102的表示卡发行是否成功的响应。接收到的响应被输出到自主发行管理单元452。
然后,在步骤S7100,自主发行管理单元452对在步骤S7000接收到的响应是否意味着自主发行成功进行判断。该判断具体上是由自主发行管理单元452参照被包含在响应中的状态字而进行。
判断的结果,自主发行管理单元452判断响应是意味着自主发行成功的时候(S7100“是”),结束外部机器450的处理。此时,在必须先再次对安全装置400通知已接收到意味着自主发行成功的响应的事实之后才能使用下载的应用程序的时候,外部机器450生成“卡使用许可确认用命令”并发送到安全装置400后结束处理。另一方面,判断为响应不意味着自主发行的成功的时候(S7100“否”),前进到步骤S7200。
然后,在步骤S7200,自主发行管理单元452对是否重发自主发行开始命令进行判断。判断的结果,在判断为未重发自主发行开始命令时(S7200“否”),进至步骤S7300,在判断为重发自主发行开始命令时(S7200“是”),进至步骤S7400。
另外,如果安全装置400因为某种理由(例如,安全装置400内部的存储器损坏)而处于无法恢复的状态时,自主发行管理单元452在步骤S7200不进行任何动作。
然后,在步骤S7300,自主发行管理单元452参照进度管理表454来生成“清除命令”后,发送到安全装置400并结束处理,该“清除命令”用于清除在自主发行中写入的数据(被正常处理的APDU发行命令)。
这里,使用图25说明进度管理表454。图25是表示进度管理表454的一个例子的图。
在进度管理表454中,对每个“已处理命令数”记载有包含在来自安全装置400的响应的“已处理命令数”以及与该“已处理命令数”对应的外部机器450的处理内容。
图25表示,在安全装置400内的自主发行中第n个APDU发行命令没有被正常处理。这里,n为符合1nm(mAPDU发行命令的数量)的整数。此时,在步骤S7300发送清除命令,该清除命令用于清除直到第n个为止被正常处理的APDU发行命令(发行中写入的所有数据)。
另外,在步骤S7400,参照进度管理表454确定没有被正常处理的APDU发行命令,重发意指从该APDU发行命令的处理开始的自主发行开始命令后结束处理。
在图25的例子中,由于第n个APDU发行命令没有被正常处理,所以重发意指从第n个APDU发行命令开始处理的自主发行开始命令。
另外,在安全装置400即使接收到上述自主发行开始命令,由于其组装上的理由等而无法从没有被正常处理的APDU发行命令开始处理的时候,重发用于从头开始卡发行的自主发行开始命令。
这样,根据本实施方式,即使自主发行失败,由于将表示自主发行成功到哪个阶段的自主发行进度状态通知给外部机器,因此外部机器能够重发自主发行开始命令而省略重复而无用的自主发行处理,该自主发行开始命令指示从没有被正常处理的APDU发行命令开始处理。
(实施方式5)在上述各个实施方式(实施方式1~4)中对下面的方法进行了说明,即,通过对接收到自主发行开始命令的卡发行单元用来存储联立命令的文件进行确定,提取包含在文件中的APDU发行命令并暂时复制到卡管理单元102内的APDU缓冲器,由此,卡管理单元执行APDU发行命令,而不区别APDU发行命令是通过接触界面或非接触界面从外部机器发送来的,还是起因于自主发行的。
在本实施方式中,对未共享在使用接触界面或非接触界面时的APDU缓冲器和自主发行时的APDU缓冲器的形态进行说明。
图26是表示本发明实施方式5涉及的安全装置的结构的方框图。对于与实施方式1涉及的安全装置相同的结构元件赋予相同的标号,并省略其说明。
在图26,安全装置500相对于图5的安全装置的结构,采用包括卡管理单元502、卡发行单元504以及命令存储单元506以代替卡管理单元102、卡发行单元104以及命令存储单元106的结构。
卡管理单元502具备用于存储APDU发行命令的APDU缓冲器508,该APDU发行命令是用于执行从外部机器使用接触界面或非接触界面写入的卡发行。
卡发行单元504包括直接参照单元510,该直接参照单元510用于让卡管理单元502对在命令存储单元506存储的联立命令中,由后述的联立命令用APDU缓冲器512指定的区域进行直接参照。
命令存储单元506包括联立命令用APDU缓冲器512,该联立命令用APDU缓冲器512将存储的联立命令的区域的一部分指定为联立命令用的APDU缓冲器。
首先,使用图27说明本实施方式中的联立命令520。图27是表示本发明实施方式5涉及的联立命令520的结构的一个例子的图。另外,图27是对最初的APDU发行命令(Install For Load)进行处理时的联立命令的结构的一个例子。
在图27,联立命令520包括表示联立命令520是由几个APDU发行命令构成的APDU数521和命令实体部分522。在图27的例子中,APDU数521为2。
命令实体部分522包括由APDU发行命令(1-a)525-1、(2-a)525-2构成的数据,以及表示这些APDU发行命令数据分别是由几字节构成的命令长度530-1、530-2。其各自的作用将后述。
下面将说明如上述那样构成的安全装置500的动作。
首先,外部机器150将执行卡发行的APDU发行命令写入卡管理单元502的APDU缓冲器508。
接着,卡管理单元502接收到来自外部机器150的自主发行开始命令后,向卡发行单元504输出自主发行触发。该自主发行触发对卡发行单元504来说,是用于开始自主发行的触发。
卡发行单元504在从卡管理单元502输入自主发行触发之后,例如以图27所示的命令长度530-1指定的长度从联立命令520中提取最初的APDU发行命令(例如Install For Load)525-1,并在命令存储单元506内部,将与该APDU发行命令的长度相对应的区域指定为APDU缓冲器。
此时,安全装置500内部为用于存储来自外部机器150的APDU发行命令的APDU缓冲器508与联立命令用APDU缓冲器512共存的状态。换言之,存储来自外部机器150的APDU发行命令的APDU缓冲器属于卡管理单元502,而联立命令用APDU缓冲器512属于卡存储单元506。
在图27的例子中,对最初的APDU发行命令(1-a)525-1进行处理的时候,APDU发行命令(1-a)525-1所占的区域(指定的区域)本身成为联立命令用APDU缓冲器512。
相对于用于存储来自外部机器150的APDU发行命令的APDU缓冲器508是永久作为固定区域,联立命令用APDU缓冲器512只有在处理某个APDU发行命令的瞬间占有装入了该APDU发行命令的区域(指定的区域),在每次进行下一个APDU发行命令的时候,区域的地址和大小随时变化。换言之,对最初的APDU发行命令(1-a)525-1进行处理后,下一个APDU发行命令(2-a)525-2所占的区域本身成为联立命令用APDU缓冲器512。
在此,对表示实施方式1中的联立命令160的图8与表示本实施方式中的联立命令520的图27进行比较。
在图8中,LOAD命令被分割成发行命令2到发行命令m。例如,在要下载的数据为2000K字节的时候,假设一次能够发送的数据的最大长度,也就是能存储在APDU缓冲器508的数据的最大长度为255字节(此为纯文本的情况。在加密和MAC附加的情况下会变得更短),则255×7<2000<255×8,必须分割为8个命令进行发送,因此m=9。
与此相对,在图27中,通过以联立命令用APDU缓冲器512指定Load命令,能够以一次的处理完成。换言之,在联立命令中,联立命令用APDU缓冲器512总是只是即将要处理的APDU发行命令(指定的区域),直接参照单元510参照并处理该联立命令用APDU缓冲器512所指定的区域后,只有下一个应处理的APDU发行命令(指定的区域)成为联立命令用APDU缓冲器512。
卡管理单元502的管理下载的功能(卡管理器)与从卡管理单元502的APDU缓冲器508获得数据的情况同样地,通过直接参照单元510来从联立命令用APDU缓冲器512获得数据。在任何情况下,卡管理器的动作在对APDU缓冲器进行存取这一点为等效的处理。
接着,对在像实施方式1一样地分多次接收Load命令的情况下与像本实施方式一样地一次接收Load命令的情况下的卡管理器的动作进行比较并说明。
在分多次对Load命令进行处理的时候,需要APDU发行命令的数量、APDU发行命令的接收处理、从APDU缓冲器获得数据的处理、用于确定该命令是否以正确的顺序发送来或是确定是否为最后的命令的命令检查、数据的处理、对用于处理下一个APDU发行命令的中间状态的保持、以及响应发送处理。
另一方面,在以一次方式对Load命令进行处理的情况下,具有不需要上述一连串处理的优点。
作为使用直接参照单元510的时刻,可以考虑在接收到自主发行开始命令之后从卡管理单元502向直接参照单元510进行请求的时刻,或是在卡发行单元504在接收到自主发行触发之后向直接参照单元510进行请求的时刻。
另外,也可以如实施方式2或实施方式3那样,使能够在安全装置中设定特权模式,并仅在特权模式设定期间中使用直接参照单元510。
这样,根据本实施方式,与对APDU发行命令进行分割处理的情况相比,通过直接参照单元能够大幅减少必须对每个APDU发行命令进行的标准处理,并能够省略用于下一个APDU发行命令的处理的冗长的处理。因此,与分数次从外部机器下载APDU发行命令的以往方法相比,可实现大幅度的高速化。
使用具有读写功能的便携式电话等高度便携性的移动终端向安全装置下载应用的时候,由于一般作为电源的电池容量有限,所以卡发行的高速化极具意义。
并且,在安全装置为对便携式电话可装卸的移动媒体时,有可能发生用户突然关闭电源的情况或在下载处理途中将安全装置拆卸所引起的对安全装置的电源供给停止。在这些情况下,能够进行高速处理即意味着因用户的错误操作而受到影响的可能性变小,因此极具意义。
(实施方式6)图28是表示本发明实施方式6涉及的安全装置的结构的方框图。对于与实施方式1涉及的安全装置相同的结构元件赋予相同的标号,并省略其说明。
在自主发行的途中对卡的电源供给停止时,安全装置停止卡发行,并无法将响应发送给外部机器。因此,外部机器无法得知在安全装置中的卡发行的进度状态。在本实施方式中,即使在这样的情况下,能够对发生断电而停止卡发行的APDU发行命令或与此相近的APDU发行命令进行确定,并从确定的APDU发行命令重新开始卡发行。
在图28,安全装置600相对于图5的安全装置的结构,采用包括卡管理单元602以及卡发行单元604以代替卡管理单元102以及卡发行单元104的结构。
卡管理单元602包括中断历史发送单元606,该中断历史发送单元606通过对表示自主发行中已处理的APDU发行命令数的已处理命令数进行监视,来保持因电源被切断等原因所引起的自主发行中断的历史。
卡管理单元602除了卡管理单元102具有的功能之外,还具有保持因电源被切断等原因所引起的自主发行中断的历史,并向后述的卡发行单元604的恢复单元608输出的功能。如上述,由于是通过对已处理命令数进行监视来保持自主发行中断的历史,所以能够从自主发行的中断历史特定因中断而无法向外部机器150发送处理结果的最初的APDU发行命令。
卡发行单元604包括恢复单元608,该恢复单元608基于从中断历史发送单元606输入的自主发行的中断历史来特定在自主发行中重新开始的APDU发行命令。
卡发行单元604除了卡发行单元104具有的功能之外,还具有下列功能,即,在因电源被切断等原因使得自主发行中断后又重新开始自主发行的情况下,对应该重新开始自主发行的APDU发行命令进行特定,并从该APDU发行命令重新开始处理。
下面,使用图29的流程图说明如上述般构成的安全装置600的动作。
图29是表示本发明实施方式6涉及的安全装置的动作的流程图。并且,在图29的例子中,假设为在自主发行时,安全装置600的电源被切断而使得自主发行中断之后,安全装置600的电源被再度接通的情况来进行说明。
首先,在步骤S8000,在自主发行中安全装置600的电源被切断。检测到电源的切断时,卡管理单元602保持自主发行的中断历史。自主发行的中断历史中包含能够在表示APDU发行命令的处理结果的响应中,对因中断而无法向外部机器150发送处理结果的最初的APDU发行命令进行特定的信息。另外,例如使用会话超时来检测电源的切断。
然后,在步骤S8100,电源被切断的安全装置600的电源被再度接通。
然后,在步骤S8200,卡管理单元602接收来自外部机器150的自主发行开始命令。
然后,在步骤S8300,卡管理单元602判断在卡管理单元602管理的已处理命令数是否为0。判断的结果,在判断出已处理命令数为0时(S8300“是”),进至步骤S8400,在判断出已处理命令数不为0时(S8300“否”),进至步骤S8500。如上述,已处理命令数表示已被正常地处理的APDU发行命令的数量。因此,在电源被再度接通时已处理命令数不为0代表在步骤S8000的电源切断时,安全装置600的自主发行被中断。
然后,在步骤S8400,通过从最初的APDU发行命令进行处理,从而开始与实施方式1相同的自主发行。
另一方面,在步骤S8500,卡管理单元602向卡发行单元604的恢复单元608发送中断历史发送单元606所保持的自主发行的中断历史。
然后,在步骤S8600,卡发行单元604的恢复单元608对用于重新开始自主发行的最初的处理对象的APDU发行命令的读出位置进行确定。
在此,使用图30和图31对由恢复单元608进行的最初的处理对象的APDU发行命令的特定处理进行说明。
图30是表示本发明实施方式6涉及的联立命令610的结构的一个例子的图。
图30的联立命令610在图8的联立命令160的结构中,还进一步包括恢复信息620。其他的结构则与图8的联立命令160相同,故省略其说明。
图31是表示图30的联立命令所包含的恢复信息620的结构的一个例子的图。
在图31中,恢复信息620包括表示恢复信息620的长度的恢复信息长度630、命令编号640-1、640-2、...、640-m以及偏移量650-1、650-2、...、650-m。命令编号与偏移量被设定为多个对。
命令编号640-1~640-m是表示在自主发行重新开始时从哪个APDU发行命令开始处理的信息。偏移量650-1~650-m是表示以命令编号640-1~640-m特定的APDU发行命令是从联立命令610的哪个位置开始的信息。
恢复单元608只要参照来自卡管理单元602的自主发行的中断历史,就能够对为重新开始自主发行而应该最先处理的APDU发行命令的命令编号进行特定。然后,恢复单元608使用上述恢复信息620,在联立命令610中特定应该最先处理的APDU发行命令的物理上的读出位置。
这里虽然是通过参照恢复信息620来决定APDU发行命令的读出位置,但也能够通过对如图8所示的没有恢复信息620的联立命令160从头进行分析,来特定读出位置。例如,在图8中,如果已处理命令数为2,首先特定命令长度170-1存在的地址,加上指定的长度,然后特定命令长度170-2的地址,决定后续的APDU发行命令165-2的读出位置。
然后,在步骤S8700,从在步骤S8600特定的APDU发行命令开始处理,开始进行自主发行。
以上说明的、如图29所示的恢复处理是至那时为止确保的区域或存储的数据原封不动,能够从发生电源切断的APDU发行命令起重新进行的情况(能够以命令单位进行恢复处理的情况)。
除此之外,恢复处理还可以考虑取决于安全装置的组装方式的以下模式。
第一,可以考虑到以下的情况,即,在发生电源的切断后,在电源被再度接通时或接收到来自外部机器的自主发行请求时,将直到发生电源的切断为止在安全装置内已处理的数据(已确保的区域和已存储的数据)全部清除的情况。
这个情况下的恢复处理是从头重新进行卡发行。对于被施予上述组装方式的安全装置,只要将卡管理单元管理的已处理命令数存储在RAM等的主存储区域即可。另外,外部机器在电源的切断发生后,在用户请求卡发行的时候发送自主发行开始命令即可。
第二,还可以考虑到以下的情况,即,维持在某个APDU发行命令处理之前安全装置内已处理的数据(已确保的区域和已存储的数据),从某个APDU发行命令之后能够重新开始的情况(能够以功能单位进行恢复处理的情况)。
这个情况下的恢复处理是以功能为单位将已正常处理的APDU发行命令原封不动地保持,从之后的APDU发行命令重新开始处理。因此,虽然有时候必须对在自主发行中断时已被正常处理的APDU发行命令再度进行处理,但从卡发行处理的观点来看较理想。
下面示出以功能为单位进行恢复处理的情况的具体例子。
例如,在图31中,假设分别将命令编号1(640-1)设定为“1”,将命令编号2(640-2)设定为“2”。
在图30中,发行命令3(Load2)165-3是第3个APDU发行命令,在执行该发行命令时发生断电时,卡管理单元102所管理的已处理命令数维持“3”的状态被保持在EEPROM等的非易失性存储区域。
此时,在图29的步骤S8600,输入已处理命令数“3”的恢复单元806,对已处理命令数“3”和对命令编号1(640-1)设定的“1”、对命令编号2(640-2)设定的“2”进行比较,基于这些为1<2<3的关系,恢复单元806决定从比“3”小且离“3”最近的“2”的发行命令的执行重新开始。
然后,卡发行单元604提取与命令编号“2”对应的发行命令2(Load1)165-2并复制到APDU缓冲器,开始进行卡发行。
然而,虽然在本实施方式中是在接收到自主发行开始命令的时刻判断已处理命令是否为0,并重新开始自主发行,但不限于此。例如,也可以在自主发行的中断结束时(例如,电源再度接通时)判断已处理命令是否为0,然后重新开始自主发行。
如上述,在本实施方式中,即使在因安全装置的电源被切断等原因而使自主发行中断的情况下,由于在安全装置内保持中断的历史,所以在重新开始自主发行的时候能够特定最佳的APDU发行命令的读出位置。
换言之,通过分别在卡管理单元具备中断历史发送单元,并在卡发行单元具备恢复单元,在自主发行中途对卡的电源供给停止时,能够在事后处理再度试行。另外,由于外部机器能够进行再度试行而不需意识对安全装置的电源供给再度开始时的自主发行的进度状态,因此能够减少卡发行的负荷。
以上,如在上述各实施方式所说明的,本发明的安全装置和外部机器通过从外部机器向安全装置发出一次指示,然后就能够在安全装置内部独立地执行处理,因此适合于与卡之间的通信状态不佳时的卡发行,或是用户利用所持有的便携式终端机器由个人自由地进行卡发行的情况。
本申请主张基于2005年1月11日申请的第2005-003596号日本专利的优先权。该申请说明书所记载的内容全都引用于本申请说明书。
工业实用性本发明的安全装置具有降低与外部机器的通信中断所造成的影响,并能够高速且安全地对用户期望的应用程序进行读取的效果,作为接收来自通信连接的外部机器的指示来进行卡发行处理的安全装置极为有用。
权利要求
1.一种安全装置,包括卡发行单元,从存储在内部存储器的命令组中提取与要获得的卡的功能对应的卡发行命令;以及卡管理单元,执行由所述卡发行单元提取出的所述卡发行命令。
2.如权利要求1所述的安全装置,其中,所述命令组通过从外部机器对所述内部存储器的直接存取而被写入。
3.如权利要求1所述的安全装置,其中,所述卡管理单元基于来自外部机器的请求而开始所述卡发行命令的执行,并将表示所述卡发行是否成功的响应发送到所述外部机器。
4.如权利要求1所述的安全装置,其中,还包括特权模式管理单元,设定特权模式,该模式使所述卡管理单元与外部机器之间不能进行通信,所述特权模式管理单元以开始执行所述卡发行命令的定时来设定所述特权模式。
5.如权利要求4所述的安全装置,其中,所述卡发行单元判断在所述卡管理单元中所有的卡发行命令是否已被正常地执行,在判断为所有的卡发行命令都被正常地执行的时候,或是判断为有卡发行命令没有被正常地执行的时候,将特权模式解除请求输出到所述特权模式管理单元,所述特权模式管理单元在从所述卡发行单元输入特权模式解除请求后,解除特权模式。
6.如权利要求3所述的安全装置,其中,所述卡发行单元对在所述卡管理单元中各个卡发行命令是否已被正常地执行进行监视,在发生了卡发行命令没有被正常地执行的时候,将对已被正常地执行的卡发行命令进行确定的信息输出到所述卡管理单元,所述卡管理单元将响应发送到所述外部机器,该响应包括有发生了没有被正常地执行的卡发行命令的事实,以及所述对已被正常地执行的卡发行命令进行确定的信息。
7.如权利要求1所述的安全装置,其中,所述卡发行单元包括对所述内部存储器所存储的命令组进行直接参照的直接参照单元,所述卡管理单元通过所述直接参照单元执行所述卡发行命令。
8.如权利要求3所述的安全装置,其中,所述卡管理单元保持在所述卡发行命令执行中的中断历史,将没有向所述外部机器发送响应的最初的卡发行命令通知给所述卡发行单元;以及所述卡发行单元从所述中断历史以及没有向所述外部机器发送响应的最初的卡发行命令而确定出应最先执行的卡发行命令,并重新开始卡发行命令的执行。
9.如权利要求1所述的安全装置,其中,所述卡管理单元包括用于确定文件的文件管理表,该文件收纳与所述内部存储器所存储的多个卡功能分别对应的多个命令组,并执行卡发行命令,该卡发行命令是被收纳在外部机器所指定的文件中的命令组。
10.一种IC卡发行系统,该IC卡发行系统由安全装置以及与该安全装置进行通信的外部机器组成,所述外部机器包括命令生成单元,生成用于请求卡发行的请求命令;以及命令发送单元,将生成的所述请求命令发送到所述安全装置,所述安全装置包括卡发行单元,从存储在内部存储器的命令组中提取与要获得的卡的功能对应的卡发行命令;以及卡管理单元,在输入了所述请求命令时,执行由所述卡发行单元提取出的所述卡发行命令。
11.如权利要求10所述的IC卡发行系统,其中,所述安全装置的所述卡管理单元将表示所述卡发行是否成功的响应发送到所述外部机器,所述外部机器包括响应接收单元,接收所述响应;以及自主发行管理单元,分析所述响应,在所述响应表示卡发行成功的时候结束卡发行,在所述响应未表示卡发行成功的时候,将重发所述请求命令的指示输出到所述命令生成单元。
12.如权利要求11所述的IC卡发行系统,其中,所述安全装置的所述卡发行单元对在所述卡管理单元中各个卡发行命令是否已被正常地执行进行监视,发生了卡发行命令没有被正常地执行的时候,将对已被正常地执行的卡发行命令进行确定的信息输出到所述卡管理单元;所述安全装置的所述卡管理单元将响应发送到所述外部机器,该响应包括有发生了卡发行命令没有被正常地执行的事实,以及所述对已被正常地执行的卡发行命令进行确定的信息,所述外部机器的所述自主发行管理单元,分析所述响应,将发送请求命令的指示输出到所述命令生成单元,所述请求命令请求从没有被正常地执行的卡发行命令起进行执行从而开始卡发行。
全文摘要
提供一种能够降低因与外部机器的通信中断所造成的影响,并高速且安全地读取用户所期望的应用程序的安全装置。在该安全装置(100)中,命令存储单元(106)存储用于执行卡发行的命令组。卡发行单元(104)从命令存储单元(106)所存储的命令组中提取与要获得的卡的功能对应的一系列的卡发行命令,并写入卡管理单元(102)的缓冲器。卡管理单元(102)执行由卡发行单元(104)写入的各个卡发行命令。在安全装置(100)的内部处理中完成卡发行。
文档编号G06K17/00GK1942886SQ200680000089
公开日2007年4月4日 申请日期2006年1月10日 优先权日2005年1月11日
发明者田靡雅基, 佐藤光弘, 竹内康雄, 鹤切惠美 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1