一种智能IC卡数据检测方法及装置与流程

文档序号:11177839
一种智能IC卡数据检测方法及装置与流程

本发明涉及智能卡技术领域,具体的,涉及一种智能IC卡数据检测方法,以及应用该方法的装置。



背景技术:

对于在智能IC卡(Intelligent card)个人化时,写卡终端与芯片的通信过程中,特别是非接触方式的通信过程中,可能会受到静电或其他因素干扰,从而导致实际存储到IC卡的数据与原数据不一致。例如:数据在终端程序发送到芯片的过程中被篡改或因芯片内部个别存储磁道损坏等使得数据与原数据不一致。

而现在的COS(Chip Operating System,卡内操作系统或智能卡系统)厂商,以金融应用为例,芯片COS接收到数据后存储到卡片,然后返回一个状态码,例如:SW=9000表示写入成功,没有对芯片COS存储后的数据跟终端的原数据做一致性验证。目前生产上比较通用做法是在智能IC卡个人化完成后做检测,即从芯片读取数据与客户提供的数据进行一致性比较。但是,对于批量生产的智能IC卡而言,很难做到全检,特别是一些敏感数据,客户提供的是密文,写卡时通过转加密写卡,个人化后再去检测,难以验证,更有数据在个人化后无法读取出来校验,如果在一批卡片中有个别卡出现问题,很难被抽检出来,即使抽检到问题卡,对非芯片厂商的专业技术人员很难分析此类问题,直接影响整批卡的质量评估。



技术实现要素:

本发明的主要目的是提供一种防止智能IC卡在个人化阶段实际接收和存储的数据与客户提供的原数据不一致,且能够及时发现问题卡的智能IC卡数据检测方法。

本发明的另一目的是提供一种防止智能IC卡在个人化阶段实际接收和存储的数据与客户提供的原数据不一致,且能够及时发现问题卡的智能IC卡数据检测装置。

为了实现上述主要目的,本发明提供的智能IC卡数据检测方法应用于写卡终端,该方法包括:将个人化数据转换成个人化APDU指令;通过安全通道向智能IC卡发送个人化APDU指令,获取智能IC卡的反馈信息;对反馈信息进行一致性比较,获得比较信息;根据比较信息中止或结束个人化进程。

由上述方案可见,本发明的智能IC卡数据检测方法通过将个人化数据发送智能IC卡后,获取智能IC卡的反馈信息进行一致性的比较,保证卡片个人化时每条数据的正确性,防止个人化时,数据被干扰或由于芯片内部存储区域不稳定导致数据不一致性,从而能够及时发现问题卡。

进一步的方案中,反馈信息包括智能IC卡所生成的第一MAC数据和状态码;对反馈信息进行一致性比较,包括:利用在打开安全通道时生成的MAC过程密钥对个人化数据和状态码进行MAC计算,获得第二MAC数据;对第一MAC数据与第二MAC数据进行比较。

由此可见,由于智能IC卡返回的第一MAC数据中为了信息的安全保密,对卡片中存储的个人化数据和需要返回的状态码进行了MAC计算,因此,在对反馈信息进行一致性比较时,需对原个人化数据进行MAC计算,利用打开安全通道时产生的MAC过程密钥对个人化数据和状态码进行计算,从而得到第二MAC数据。通过第一MAC数据与第二MAC数据的一致性对比,保证比较信息的正确性。

进一步的方案中,获得比较信息,包括:若第一MAC数据与第二MAC数据一致且状态码为预设字段,则获得数据成功写入的结果信息。

由此可见,为了确保个人化数据成功写入智能IC卡中,仅当第一MAC数据与第二MAC数据一致且状态码为预设字段时才认为数据成功写入,从而可以判断个人化APDU指令的成功执行。

进一步的方案中,利用在打开安全通道时产生的MAC过程密钥对个人化数据进行MAC计算,获得第二MAC数据,包括:利用智能IC卡中预设的算法进行MAC计算。

由此可见,为了保障第一MAC数据与第二MAC数据计算过程一致,避免数据误差,在进行第二MAC数据计算时,使用与第一MAC数据相同的算法,减少验证误差。

进一步的方案中,根据比较信息中止或结束个人化进程,包括:根据比较信息生成提示信息。

由此可见,为了操作人员获知当前智能IC卡个人化的结果,在个人化进行中止或结束时,生成提示信息,以便操作人员发现问题卡片。

为了实现上述另一目的,本发明提供的智能IC卡数据检测装置,应用于写卡终端,该装置包括:指令生成模块,用于将个人化数据转换成个人化APDU指令;数据交互模块,用于通过安全通道向智能IC卡发送个人化APDU指令,获取智能IC卡的反馈信息;验证模块,用于对反馈信息进行一致性比较,获得比较信息;执行模块,用于根据比较信息中止或结束个人化进程。

由上述方案可见,本发明的智能IC卡数据检测装置通过将个人化数据发送智能IC卡后,获取智能IC卡的反馈信息进行一致性的比较,保证卡片个人化时每条数据的正确性,防止个人化时,数据被干扰或由于芯片内部存储区域不稳定导致数据不一致性,从而能够及时发现问题卡。

附图说明

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

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

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

具体实施方式

本发明的智能IC卡数据检测方法应用于写卡终端,实现对写入智能IC卡的个人化数据进行检测,保证存储的数据与客户提供的原数据一致,及时发现问题卡。其中,写卡终端是可以实现与智能IC卡数据交互的终端设备。本发明智能IC卡数据检测装置用于实现本发明智能IC卡数据检测方法。

智能IC卡数据检测方法实施例:

如图1所示,本发明的智能IC卡数据检测方法在进行智能IC卡数据检测时,首先执行步骤S1,将个人化数据转换成个人化APDU(Application Protocol Data Unit,应用协议数据单元)指令。个人化数据可在写卡终端直接输入或通过外接设备输入,个人化数据包括个人信息数据及安全密钥等个人数据。在向智能IC卡发送数据时,通常采用报文的形式进行数据的传输,因此,在进行数据传输前,需将个人化数据转换成个人化APDU指令,以待向智能IC卡发送。在转化个人化数据时,根据个人化数据的条数进行转换成个人化APDU指令序列,每条个人化数据转换成对应的一条个人化APDU指令。

将个人化数据转换成个人化APDU指令后,执行步骤S2,通过安全通道向智能IC卡发送个人化APDU指令,获取智能IC卡的反馈信息。在进行个人化APDU指令前需判断与智能IC卡的通信通道是否已经打开安全通道,若安全通道已经打开,则发送个人化APDU指令,若安全通道没有打开,则执行打开安全通道的操作,同时,在打开安全通道时产生MAC过程密钥,产生的MAC过程秘钥分别存储在写卡终端和智能IC卡中。在向智能IC卡发送个人化APDU指令时,将个人化APDU指令逐条发送至智能IC卡。

智能IC卡接收到个人化APDU指令后,对接收到的个人化数据进行持久化存入智能IC卡芯片的存储区,在进行数据存储时,生成状态码。完成数据存储后,智能IC卡对存储后的数据进行获取,然后使用MAC过程密钥对存储的个人化数据与状态码进行MAC计算,得到第一MAC数据。在进行MAC计算时,使用智能IC卡中预设的算法进行计算,预设的算法可以是现有公知的任意加密算法。得到第一MAC数据后,智能IC卡向写卡终端发送反馈信息。本实施例中,反馈信息包括第一MAC数据以及状态码等数据。

获取到智能IC卡的反馈信息后,执行步骤S3,对反馈信息进行一致性比较,获得比较信息。对反馈信息进行一致性比较时包括:利用在打开安全通道时生成的MAC过程密钥对个人化数据和状态码进行MAC计算,获得第二MAC数据;对第一MAC数据与第二MAC数据进行比较。其中,利用在打开安全通道时产生MAC过程密钥对个人化数据进行MAC计算,获得第二MAC数据的步骤包括:利用智能IC卡中预设的算法进行MAC计算。在获得第二MAC数据时,利用智能IC卡中预设的算法进行MAC计算,使第一MAC数据与第二MAC数据计算过程一致,避免数据误差。

获得比较信息的步骤包括:若第一MAC数据与第二MAC数据一致且状态码为预设字段,则获得数据成功写入的结果信息。智能IC卡响应个人化APDU指令而返回的状态码中,状态码使用不同的字段代表不同的含义,例如,状态码为“9000”表示写入成功;状态码为“6700”表示数据长度错误;状态码为“6982”表示不满足安全状态等。本实施例中,预设字段为“9000”,状态码为“9000”表示写入成功,即,数据成功写入智能IC卡中。在判断第一MAC数据与第二MAC数据一致,且状态码表示数据成功写入智能IC卡时,才认为个人化APDU指令的成功执行。

在获得比较信息,执行步骤S4,根据比较信息中止或结束个人化进程。其中,在根据比较信息中止或结束个人化进程时包括:根据比较信息生成提示信息。若比较信息判断为数据成功写入智能IC卡,则可结束该个人化APDU指令的执行,并生成数据成功写入的提示信息。若比较信息判断为数据写入智能IC卡时出现错误,则可中止该个人化APDU指令的执行,并生成数据写入错误的提示信息。生成的提示信息可通过显示装置(未示出)进行显示或者被发送至外接设备进行提示,以便用户获知当前个人化APDU指令的执行情况,从而采取相应的措施。当前个人化APDU指令正常结束时,则可自动检测是否还有下一条个人化APDU指令需要执行,若有,则进行下一条APDU指令执行步骤,若无,则结束个人化的进程。当个人化APDU指令出现中止时,则对中止的原因进行检测,排除指令执行错误的原因,从而确定当前智能IC卡是否出现损坏。

智能IC卡数据检测装置实施例:

如图2所示,本发明的智能IC卡数据检测装置包括指令生成模块1、数据交互模块2、验证模块3以及执行模块4。

指令生成模块1用于将个人化数据转换成个人化APDU指令。个人化数据可在写卡终端直接输入或通过外接设备输入,个人化数据包括个人信息数据及安全密钥等个人数据。在向智能IC卡发送数据时,通常采用报文的形式进行数据的传输,因此,在进行数据传输前,需将个人化数据转换成个人化APDU指令,以待向智能IC卡发送。在转化个人化数据时,根据个人化数据的条数进行转换成个人化APDU指令序列,每条个人化数据转换成对应的一条个人化APDU指令。

数据交互模块2用于通过安全通道向智能IC卡发送个人化APDU指令,获取智能IC卡的反馈信息。在进行个人化APDU指令前需判断与智能IC卡的通信通道是否已经打开安全通道,若安全通道已经打开,则发送个人化APDU指令,若安全通道没有打开,则执行打开安全通道的操作,同时,在打开安全通道时产生MAC过程密钥,产生的MAC过程秘钥分别存储在写卡终端和智能IC卡中。在向智能IC卡发送个人化APDU指令时,将个人化APDU指令逐条发送至智能IC卡。

智能IC卡接收到个人化APDU指令后,对接收到的个人化数据进行持久化存入智能IC卡芯片的存储区,在进行数据存储时,生成状态码。完成数据存储后,智能IC卡对存储后的数据进行获取,然后使用MAC过程密钥对存储的个人化数据与状态码进行MAC计算,得到第一MAC数据。在进行MAC计算时,使用智能IC卡中预设的算法进行计算,预设的算法可以是现有公知的任意加密算法。得到第一MAC数据后,智能IC卡向写卡终端发送反馈信息。本实施例中,反馈信息包括第一MAC数据以及状态码等数据。

验证模块3用于对反馈信息进行一致性比较,获得比较信息。验证模块3对反馈信息进行一致性比较包括:利用在打开安全通道时生成的MAC过程密钥对个人化数据和状态码进行MAC计算,获得第二MAC数据;对第一MAC数据与第二MAC数据进行比较。其中,验证模块3利用在打开安全通道时产生MAC过程密钥对个人化数据进行MAC计算,获得第二MAC数据包括:利用智能IC卡中预设的算法进行MAC计算。在获得第二MAC数据时,利用智能IC卡中预设的算法进行MAC计算,使第一MAC数据与第二MAC数据计算过程一致,避免数据误差。

验证模块3获得比较信息包括:若第一MAC数据与第二MAC数据一致且状态码为预设字段,则获得数据成功写入的结果信息。智能IC卡响应个人化APDU指令而返回的状态码中,状态码使用不同的字段代表不同的含义,例如,状态码为“9000”表示写入成功;状态码为“6700”表示数据长度错误;状态码为“6982”表示不满足安全状态等。本实施例中,预设字段为“9000”,状态码为“9000”表示写入成功,即,数据成功写入智能IC卡中。在判断第一MAC数据与第二MAC数据一致,且状态码表示数据成功写入智能IC卡时,才认为个人化APDU指令的成功执行。

执行模块4用于根据比较信息中止或结束个人化进程。其中,执行模块4在根据比较信息中止或结束个人化进程时包括:根据比较信息生成提示信息。若比较信息判断为数据成功写入智能IC卡,则执行模块4可结束该个人化APDU指令的执行,并生成数据成功写入的提示信息。若比较信息判断为数据写入智能IC卡时出现错误,则执行模块4可中止该个人化APDU指令的执行,并生成数据写入错误的提示信息。生成的提示信息可通过显示装置(未示出)进行显示或者被发送至外接设备进行提示,以便用户获知当前个人化APDU指令的执行情况,从而采取相应的措施。当前个人化APDU指令正常结束时,则可自动检测是否还有下一条个人化APDU指令需要执行,若有,则进行下一条APDU指令执行步骤,若无,则结束个人化的进程。当个人化APDU指令出现中止时,则对中止的原因进行检测,排除指令执行错误的原因,从而确定当前智能IC卡是否出现损坏。

由上述可知,本发明通过将个人化数据发送智能IC卡后,获取智能IC卡的反馈信息进行一致性的比较,保证卡片个人化时每条数据的正确性,防止个人化时,数据被干扰或由于芯片内部存储区域不稳定导致数据不一致性,从而能够及时发现问题卡。此外,由于智能IC卡返回的第一MAC数据中为了信息的安全保密,对卡片中存储的个人化数据进行了MAC计算,因此,在对反馈信息进行一致性比较时,需对原个人化数据进行MAC计算,利用在打开安全通道时产生的MAC过程密钥对个人化数据进行计算,从而得到第二MAC数据。通过第一MAC数据与第二MAC数据的一致性对比,保证比较信息的正确性。

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

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