智能卡数据写入方法及装置与流程

文档序号:12064231阅读:473来源:国知局
智能卡数据写入方法及装置与流程

本发明涉及智能卡的制造领域,具体地,涉及一种智能卡的生产数据自动写入方法以及实现这种方法的装置。



背景技术:

现在的银行卡、公交卡等具有支付功能的卡片大多是智能卡,并且现在手机使用SIM卡或者UIM卡也是智能卡。对于银行卡、公交卡等金融类智能卡,通常设置一个由塑料制成的卡体,并且在卡体内设置一个芯片,芯片内存储有个人数据,包括卡片的账户、该账户剩余的余额等。由于智能卡所存储的数据涉及资金以及交易问题,因此智能卡对所存储的数据的安全性有极高的要求。为此,现在的智能卡通常需要对存储的数据进行加密,以避免数据不适当的外泄。

通常,在智能卡生产制造过程中,需要向智能卡写入数据,这些数据包括初始化数据、预个人化数据和个人化过程数据,向智能卡写入数据的过程是向智能卡中下载片上操作系统COS,并且配置智能卡的操作系统,最后写入与用户相关账户信息数据的过程。

然而,不同的智能卡需要写入的数据并不相同,例如,某一款智能卡由第一家银行发行,而另一款智能卡由第二家银行发行,两家不同的发行银行对于写入智能卡的数据并不相同。然而,由于智能卡的生产厂家会生产多家银行的智能卡,因此向智能卡写入数据前需要仔细甄别向该智能卡写入的生产数据,一旦写入错误的数据,则造成智能卡因写入的数据错误而无法使用。

现有的做法是,在向智能卡写入数据前,通过人工方式核对待写入生产数据的智能卡的信息,例如人工查找智能卡待写入的生产数据、人工导入生产数据,然后启动生产大型机调用智能卡写入程序对空白的智能卡进行生产数据的写入操作。然而,通过人工核对信息的方式很难避免人工核对错误的情况发生,这样会导致一部分智能卡写入的生产数据是错误的,影响智能卡的使用。

向智能卡写入的生产数据通常包括初始化、预个人化、个人化等几个过程,这几个过程分别向智能卡写入初始化数据、预个人化数据、个人化数据等生产数据。其中智能卡的初始化是向智能卡中下载片上操作系统COS的过程,这一过程通常耗时较长。智能卡的预个人化是在下载完成片上操作系统后,对智能卡进行基本配置并让智能卡的操作系统可以正常工作的过程。而智能卡的个人化是向智能卡写入与用户相关的个人化数据的过程。

由于现在的智能卡都是通过大型的生产设备进行批量生产的,在大型生产设备上对智能卡批量写入生产数据时,由于各种原因,如通讯中断、智能卡的操作系统运行异常等,导致生产数据写入失败,需要重新写入生产数据,而这一过程通常称为跳卡重发过程。

如果在生产过程中出现智能卡跳卡的情况,现在常见的解决方法是对写入数据失败的智能卡进行手工检查,人工分析数据写入失败的原因。然而,由于跳卡可能发生在智能卡生产的任何阶段,所以使用人工干预的方式会导致智能卡的生产效率低下,判断耗时,对执行人员技术要求高,不能满足大批量生产要求。

此外,针对跳卡的情况,如果判断该智能卡并没有损坏,现有的做法是将智能卡的全部生产数据擦除后,按照向新卡的标准向智能卡写入新的生产数据。然而,由于发生跳卡情况的智能卡往往已经写入了一部分生产数据,如果按照新卡的标准重新写入所有生产数据,将导致智能卡的数据写入时间非常长,影响智能卡的生产效率。



技术实现要素:

本发明的第一目的是提供一种能够自动判断跳卡状态并且自动重新写入生产数据的智能卡数据写入方法。

本发明的第二目的是提供一种能够自动判断跳卡状态并且自动重新写入生产数据的智能卡数据写入装置。

为了实现上述的第一目的,本发明提供的智能卡数据写入方法包括读取智能卡的状态参数,并且获取智能卡的当前状态;判断智能卡的所有状态参数与智能卡的当前状态是否匹配,如匹配,则根据智能卡的当前状态,向智能卡写入与当前状态相匹配的生产数据; 如确定智能卡的状态参数与智能卡的当前状态不匹配,则将与智能卡的当前状态不匹配的生产数据擦除,并在成功擦除不匹配的生产数据后,重新写入与智能卡的当前状态相匹配的生产数据。

由上述方案可见,智能卡生产过程中,生产设备通过读取智能卡的状态参数并且获取智能卡的当前状态后,判断两者是否匹配,并且判断两者不匹配时将不匹配的生产数据擦除,并且自动根据智能卡的当前状态重新写入与当前状态相匹配的生产数据。这样,在发生跳卡的情况下,不需要手动的分析跳卡的原因。并且,即使向智能卡重新写入数据,也并不是重新写入所有的生产数据,而是根据智能卡当前的状态写入相对应的数据,从而减少重写数据消耗的时间,提高智能卡的生产效率。

一个优选的方案是,将与智能卡的当前状态不匹配的生产数据擦除后,检测与当前状态不匹配的数据是否擦除成功,并对数据擦除的状态进行标记;重新写入与智能卡的当前状态相匹配的生产数据前,读取数据擦除状态标记,根据数据擦除状态标记确定与智能卡的当前状态不匹配的生产数据是否成功擦除。

由此可见,在成功擦除数据后,进行数据擦除的标记,以便于后续的生产过程中通过读取该擦除标记来判断不匹配的生产数据是否已经被成功擦除,有利于后续的生产流程。

进一步的方案是,如检测与当前状态不匹配的数据未成功擦除,则将该智能卡标记为坏卡。

可见,如果智能卡中与当前状态不匹配的生产数据无法擦除,则该智能卡无法继续使用,通过将该智能卡标记成坏卡来避免该智能卡继续使用,从而防止后续生产可能出现的使用滑块投入生产的问题。

更进一步的方案是,所读取的智能卡的状态参数至少包括以下的一个:复位信息、密钥信息、版本信息、标签值以及APDU命令。

由此可见,通过读取复位信息、密钥信息、版本信息、标签值以及APDU命令等状态参数可以准确的确定智能卡当前的状态,从而快速、有效的对智能卡的当前状态进行核实。

更进一步的方案是,获取智能卡的当前状态包括根据智能卡的复位答应历史数据的数值确定智能卡的当前状态。

由此可见,通过智能卡的复位答应历史数量来确定智能卡的当前状态,确定智能卡的状态的来源与确定智能卡状态参数的来源不相同,可以有效的判断智能卡当前状态与状态参数是否相匹配。

为了实现上述的第二目的,本发明提供的智能卡数据写入装置包括智能卡状态获取模块,用于读取智能卡的状态参数,并且获取智能卡的当前状态;状态参数判断模块,用于判断智能卡的所有状态参数与智能卡的当前状态是否匹配;生产数据写入模块,在确定智能卡的状态参数与智能卡的当前状态匹配时,根据智能卡的当前状态,向智能卡写入与当前状态相匹配的生产数据;生产数据擦除模块,在确定智能卡的状态参数与智能卡的当前状态不匹配时,将与智能卡的当前状态不匹配的生产数据擦除,并在成功擦除不匹配的生产数据后,重新写入与智能卡的当前状态相匹配的生产数据。

由上述方案可见,在智能卡生产过程中,通过读取智能卡的状态参数以及当前状态后,判断两者是否相匹配,并且判断两者不匹配时将不匹配的生产数据擦除,并且自动根据智能卡的当前状态重新写入与当前状态相匹配的生产数据。这样,在发生跳卡的情况下,不需要手动的分析跳卡的原因。并且,即使向智能卡重新写入数据,也并不是重新写入所有的生产数据,而是根据智能卡当前的状态写入相对应的数据,从而减少重写数据消耗的时间,提高智能卡的生产效率。且向新的智能卡写入数据与发生跳卡情况的数据写入可以使用同一套系统,降低智能卡的生产成本。

附图说明

图1是本发明智能卡数据写入方法实施例的流程图。

图2是本发明智能卡数据写入装置实施例的结构框图。

下面将结合附图及实施例对本发明作进一步说明。

具体实施方式

本发明的智能卡数据写入方法是应用在向智能卡写入数据的过程中,所写入的数据主要包括初始化数据、预个人化数据以及个人化数据。本发明的智能卡数据写入装置包括运行在生产设备上的应用程序,通过这些应用程序实现对智能卡的自动化生产。

下面结合图1介绍智能卡的数据写入流程。首先,生成智能卡的生产编码,即执行步骤S1。例如,根据每一张智能卡的实际订单项目进行生成智能卡的生产编码,生产编码的生成规则可以是根据发卡方的信息,如银行的信息等生成,还可以包括智能卡所使用的芯片信息、芯片外观形状信息、智能卡的项目应用信息等。因此,生产编码可以包括多个标识,例如包括发卡用户标识、芯片型号标识、形状标识、应用标识等。

并且,可以建立一个生产编码数据库,在生成每一批订单的智能的生产编码后,将生产编码写入到该生产编码数据库中,并且数据库中记录有该生产编码对应的订单号,还记录该生产编码对应的待写入数据的信息,如待写入的初始化数据、预个人化数据以及个人化数据的信息,包括数据名称、数据的存储位置等。

生成生产编码后,对智能卡进行生产时,将空白的智能卡放入生产设备。本实施例所指的空白智能卡是指未向智能卡写入生产数据的智能卡,如未向智能卡写入初始化数据、预个人化数据以及个人化数据,因此这种智能卡被称为新卡。

在生产智能卡的卡基时,先获取智能卡的生产编码,然后将生产编码写入到智能卡的存储器中。例如,生产卡基前,从生产编码数据库中获取相应的生产编码的数据,并且在生产卡基阶段,通过写卡器将生产编码写入到智能卡的存储器中。优选的,生产编码被写入到智能卡中一个通用标签中,也就是通过一个通用标签来存储生产编码。

并且,在智能卡进入生产设备后,生产设备将执行步骤S2,读取智能卡的状态参数,例如读取以下五个参数中的至少一个:复位信息、密钥信息、版本信息、标签值、APDU命令。可以理解,本实施例设置了五个检查点,根据这五个检查点的参数来确定智能卡的状态参数是否与智能卡的当前状态相匹配。

接着执行步骤S3,获取智能卡的当前状态。例如,获取智能卡的复位答应(ATR)历史数据,并且根据智能卡的复位答应历史数据的数值确定智能卡的当前状态。因此,需要设置智能在不同的状态,复位答复数据有不同的数值。例如,当智能卡是一张新卡,即没有执行初始化前,智能卡接收到生产设备发出的信号后,复位答应的数据是第一数据,而智能卡完成初始化后,复位答应的数据是第二数据,智能卡完成预个人化后,复位答应的数据是第三数据,智能卡完成个人化后,复位答应的数据是第四数据。这样,通过在智能卡的不同阶段设置不同的复位答应的数值,可以确定智能卡处于不同的状态。

因此,当智能卡完成某一阶段后,如智能卡完成初始化后,将修改复位答应的返回数据,以便于生产设备向智能卡发送数据后,接收到与智能卡当前状态相匹配的复位答应数据。

当然,实际应用中,步骤S2与步骤S3是可以同时进行,或者先执行步骤S3,后执行步骤S2,这并不影响本发明的实施。

然后,执行步骤S4,判断智能卡的状态参数是否与当前状态相匹配,如果相匹配,则执行步骤S5,如果不相匹配,则执行步骤S7。由于智能卡处于不同的状态,即处于不同的生产阶段,如完成初始化阶段或者完成个人化阶段,存储在智能卡中的复位信息、密钥信息、版本信息、标签值、APDU命令的具体数值是不相同的,因此,获取智能的状态后,可以判断智能卡的状态参数是否与智能卡当前的状态相匹配。

由于本发明是通过检测五个检查点的参数来判断智能卡的状态参数是否与当前状态相匹配,相比于传统的仅依靠软件版本判断智能卡的状态的检测方式更加准确,适用于金融卡这样对精确性要求极高的智能卡。并且,通过这五个金融卡专有的特征,从智能卡的操作系统的各个方面来精确判断智能卡 状态的同时,也保证智能卡处于正常工作状态。当然,根据智能卡的类型不同,具体的检查点或者部分检查项目可以进行定制,例如,标签tag9f7f中的各个字节含义可以根据智能卡的不同进行按需定制,以便于识别智能卡的状态的同时,辨别出智能卡是否处于正常工作状态。

如果判断智能卡的状态参数与当前状态相匹配,则执行步骤S5,根据智能卡的生产编码以及智能卡当前的状态获取生产数据。例如,生产设备在向智能卡写入生产数据前,先从智能卡中读取该智能卡所存储的生产编码的数据。在生产设备上可以设置智能卡数据读取装置,如读卡器等,通过数据读取装置读取存储在智能卡通用标签上的生产编码的数据。

并且,生产设备判断智能卡的状态参数与当前状态相匹配,先还需要判断智能卡是否处于正常生命周期,例如,在正常的生产过程中,智能卡的每个生命周期中的数据写入操作正常完成后,智能卡的五个检查点的具体数据将调整到下一个生命周期相对应的数据。例如,智能卡完成初始化后,将修改智能卡中的复位信息、密钥信息、版本信息、标签值、APDU命令的具体数值,使得五个检查点的数据值对应为完成初始化后的数值。类似的,在智能卡完成预个人化后,也相应的修改智能卡五个检查点的数值。

这样,在步骤S4中,只有判断智能卡当前状态与五个检查点的数值相匹配,才会判断智能卡当前状态与状态参数相匹配。而步骤S5中,根据五个检查点的具体数值,确定智能卡当前所处的阶段,执行步骤S6,针对处于正常生命周期的智能卡,生产设备将根据智能卡中的生产编码获取相匹配的生产数据,并且将所获取的生产数据写入到智能卡中。

本实施例中,生产数据包括初始化数据、预个人化数据以及个人化数据,当然还可以包括其他的数据,只需要在智能卡生产过程中需要写入到智能卡中的数据,均可以作为生产数据,并且这些数据均需要与生产编码对应。

由于在生产编码数据库中存储有生产编码与待写入的生产数据对应的信息,因此可以根据该生产编码获取与该生产编码相匹配的生产数据,如从若干个初始化数据中获取与该生产编码相匹配的其中一个初始化数据,如此类推。

如果步骤S4中,判断智能卡当前的状态与智能卡的状态参数不匹配,则执行步骤S7,将与当前状态不匹配的生产数据擦除。例如,获取智能卡当前的状态是已经完成预个人化,但从五个检查点获取的状态参数是一部分状态参数是完成初始化后的参数,一部分参数是完成预个人化后的参数,则可以判断智能卡已经完成了初始化,但是写入的预个人化数据可能出错,因此,需要将写入的预个人化数据擦除。因此,步骤S7是将预个人化数据擦除。

然后,执行步骤S8,在执行数据擦除操作后,判断需要擦除的数据是否已经擦除成功,例如判断是否已经成功将预个人化数据擦除,并且在预个人化数据擦除后,对数据擦除状态进行标记。例如,在智能卡内设置一个数据擦除状态标记,如果数据擦除成功,则数据擦除状态标记置为“1”,如果数据擦除不成功,则数据擦除状态标记置为“0”。

由于生产数据写入过程中,智能卡的数据写入错误,因此生成设备将弹出该智能卡,这样后续生产时,可以继续使用该智能卡并且重新写入数据,则返回执行步骤S2。重新写入数据时,生产设备也是需要读取智能卡的状态参数,并且获取智能卡的当前状态,并且写入与智能卡当前状态相匹配的生产数据。

例如,智能卡已经写入了初始化数据,则不再向智能卡写入初始化数据,而是直接写入预个人化数据以及个人化数据,这样可以节省智能卡重新写入数据的时间。当然,在重新写入与智能卡的当前状态相匹配的生产数据前,需要读取数据擦除状态标记,并且根据数据擦除状态标记确定与智能卡的当前状态不匹配的生产数据是否成功擦除,如果不匹配的生产数据没有擦除,则将该智能卡标记成坏卡,并且生产设备直接将该智能卡弹出,即该智能卡无法使用。

这样,生产设备对智能卡进行写卡时,生产设备以及待写入的生产数据兼容了新卡的和旧卡的情况,这样统一的处理,无需人工检查智能卡是否曾经写入过数据,新卡和跳卡可以共用一套生产程序。并且,写卡过程中,生产设备将在每一步进行检测数据的更新,分解了智能卡的生产数据写入的过程,可以完好的保留卡片已经正确写入的数据,在跳卡后重写生产数据时可以节省时间,仅仅进行上一次未完成的工作即可。

下面结合图2介绍智能卡的数据写入装置。本实施例的数据写入装置具有生产编码生产模块11、智能卡状态获取模块12、状态参数判断模块13、生产数据写入模块14以及生产数据擦除模块15。

生产编码生成模块11用于生成每一批订单的智能卡的唯一的生产编码。生产编码的生成可以按照预定的规则生成,例如生产编码包括若干位十六进制数字,其中包括发卡用户标识、芯片型号标识、形状标识、应用标识等,每一个标识可以包括若干位数字,例如,发卡用户标识包括4位十六进制的数字,如此类推。因此,在输入智能卡的订单号,并选择智能卡的发卡用户、芯片型号、芯片形状以及应用项目等,可以自动生成智能卡的生产编码。

优选的,生成智能卡的生产编码后,将生产编码存储到生产编码数据库中,在生产编码数据库中存储多批智能卡的生产编码,并且存储生产编码的对应的生产数据,如初始化数据、预个人化数据以及个人化数据等。

智能卡状态获取模块12用于获取智能卡的当前状态,即向智能卡写入生产数据前,获取智能卡的复位答应历史数据,并且根据智能卡的复位答应历史数据的数值确定智能卡的当前状态。此外,还获取智能卡多个检查点的数据,例如读取以下五个参数中的至少一个:复位信息、密钥信息、版本信息、标签值、APDU命令。

状态参数判断模块13根据获取的智能卡当前的状态以及智能卡的状态参数,判断智能卡的状态参数是否与当前状态相匹配,如果相匹配,则生产数据写入模块14根据智能卡当前的状态以及智能卡的生产编码获取相匹配的生产数据,并且将获取的生产数据写入到智能中。

如果智能卡的状态参数与当前状态不匹配,则生产数据擦除模块15将与当前状态不匹配的生产数据擦除,并且在执行擦除步骤后,对智能卡中的数据擦除标识进行标记。待重写数据时,生产设备读取智能卡中的数据擦除标记,判断数据是否已经成功擦除,如果不匹配的数据没有成功擦除,则将该智能卡标记成坏卡,并且将该智能卡弹出,不再使用该智能卡。如果不匹配的数据已经成功擦除,则重写数据时,不会再写入已经成功写入的生产数据,而是重新写入没有成功写入的生产数据,并且继续写入还未写入的后续生产数据,从而节省生产数据的写入时间,提高智能卡的生产效率。

需要说明的是,以上仅为本发明的优选实施例,但本发明的设计构思并不局限于此,凡利用此构思对本发明做出的非实质性修改,也均落入本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1