一种智能卡自动全检方法及装置、计算机装置、存储介质与流程

文档序号:14836271发布日期:2018-06-30 12:33阅读:370来源:国知局
一种智能卡自动全检方法及装置、计算机装置、存储介质与流程

本发明涉及智能卡检测技术领域,具体的,涉及一种智能卡自动全检的方法,还涉及应用该方法的智能卡自动全检装置。还涉及一种用于实现上述方法的计算机装置,还涉及能够实现上述方法的存储介质。



背景技术:

随着智能卡行业的不断发展,社保卡、银行卡、身份证等各种智能芯片卡均需将个人化。将个人信息写入智能卡内时,涉及到密钥的数据需加密写入。一般的发卡工艺流程如下:1、将银行或者社保局等客户的数据进行数据处理导入发卡机台,完成自动化逐条分配;2、发卡机台使用个人化程序将个人化数据写入对应智能卡内;3、完成卡面工艺(例如打凹凸字、打UG、光刻、打印照片等信息等);4、进行人工首检,首检通过后进行批量发卡工作;5、对批量卡片进行抽检验证;6、验证合格后出货。

目前对于检验常用的方案是:按照GB2828国际标准AQL抽样标准进行人工抽检。抽检验证的程序也只是一般通用的校验,检测程序的通用性较强,例如,对一些TAG值进行校验以及进行动态数据认证(DDA,Dynamic Data Authentication)等,条件不允许细致到每个TAG值的比对。

而且,如果检验出有异常卡片时,所有智能的发卡操作都会暂停,从而进行检测找出问题。待检验所有卡片均合格后方能出货。这样存在的问题是,在人工干预的方式下,发卡效率会降低,会延迟交货,达不到客户的出货要求,且人工成本较高,出错率也较高。



技术实现要素:

本发明的第一目的是提供一种提高智能卡检测效率,提高智能卡检测质量的智能卡自动全检方法。

本发明的第二目的是提供一种提高智能卡检测效率,提高智能卡检测质量的智能卡自动全检装置。

本发明的第三目的是提供一种提高智能卡检测效率,提高智能卡检测质量的计算机装置。

本发明的第四目的是提供一种提高智能卡检测效率,提高智能卡检测质量的存储介质。

为了实现上述第一目的,本发明提供的智能卡自动全检方法包括:获取写入到智能卡的个人化原始数据,对个人化原始数据进行校验;判断智能卡是否正常上下电,若是,读取智能卡的内部数据,根据个人化原始数据对内部数据进行校验并对内部数据进行静态数据认证和动态数据认证;获得检测结果。

由上述方案可见,本发明的智能卡自动全检方法通过自动检测,对完成发卡操作的智能卡进行全检操作,避免人为干预,提高检测效率。对个人化原始数据进行校验,可以避免以免客户数据变更后打卡成功导致的功能性异常。在对内部数据进行检测的时候,对内部数据进行静态数据认证和动态数据认证,提高检测质量。

进一步的方案中,判断智能卡是否正常上下电,包括:向智能卡发送复位信号,获取智能卡的应答ATR信号和应答ATS信号;判断应答ATR信号和应答ATS信号是否正常,若是,则确认智能卡正常上下电。

由此可见,由于智能卡在完成高温打凹凸字等表面工艺之后会出现非接天线被打断的情况,另外,智能卡个人化后会出现智能卡操作系统(COS)异常的问题,导致智能卡不能正常上下电,因此,在进行检测操作时,当获取到的应答ATR信号和应答ATS信号均正常后,智能卡才可以进行正常的数据读写。

进一步的方案中,对内部数据进行静态数据认证和动态数据认证,包括:利用国密算法和国际算法分别对内部数据进行静态数据认证和动态数据认证。

由此可见,在对智能卡进行个人化时,同时利用国密算法和国际算法对个人化数据进行加密,保障个人化数据的安全,因此,在检测时利用国密算法和国际算法分别对内部数据进行静态数据认证和动态数据认证,辨别出智能卡是否为通过复制数据而生成的伪卡。

进一步的方案中,对内部数据进行静态数据认证和动态数据认证后,智能卡自动全检方法还包括:对智能卡的进行KMU验证和安全状态检测。

由此可见,对智能卡的进行KMU验证和安全状态检测,进一步保证智能卡的安全。

为了实现上述第二目的,本发明提供的智能卡自动全检装置包括:原始数据校验模块,用于获取写入智能卡的个人化原始数据,对个人化原始数据进行校验;内部数据认证模块,用于判断智能卡是否正常上下电,若是,读取智能卡的内部数据,根据个人化原始数据对内部数据进行校验并对内部数据进行静态数据认证和动态数据认证;检测结果生成模块,用于获得检测结果。

由上述方案可见,本发明的智能卡自动全检装置通过自动检测,对完成发卡操作的智能卡进行全检操作,避免人为干预,提高检测效率。对个人化原始数据进行校验,可以避免以免客户数据变更后打卡成功导致的功能性异常。在对内部数据进行检测的时候,对内部数据进行静态数据认证和动态数据认证,提高检测质量。

为了实现上述第三目的,本发明提供的计算机装置包括有处理器,该处理器用于执行存储器中存储的计算机程序时实现上述的智能卡自动全检方法的各个步骤。

为了实现上述第四目的,本发明提供的存储介质,其上存储有计算机程序,且计算机程序被处理器执行时实现上述的智能卡自动全检方法的各个步骤。

附图说明

图1是本发明智能卡自动全检方法实施例的流程图。

图2是本发明智能卡自动全检装置实施例的结构框图。

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

具体实施方式

本发明的智能卡自动全检方法应用于可以进行发卡操作的发卡智能终端设备上,优选的,发卡智能终端设备可对智能卡进行个人化数据写入,并可对智能卡进行卡面工艺操作,例如,对智能卡打凹凸字、光刻或打印照片等工艺操作。本发明的智能卡自动全检装置应用于可以进行发卡操作的发卡智能终端设备上,并且用于实现上述的智能卡自动全检方法。并且,本发明还提供一种计算机装置,该计算机装置包括有处理器,处理器可以执行应用程序的指令,从而实现上述智能卡自动全检方法的各个步骤。本发明的提供的存储介质上存储有计算机程序,且计算机程序被处理器执行时实现上述的智能卡自动全检方法的各个步骤。

发卡智能终端设备在进行发卡操作时,主要步骤如下:将对应的个人化原始数据逐条写入卡基,在此过程主要是将个人化原始数据写入智能卡内。由于卡基的COS不一样,智能卡的个人化相关指令个人化顺序及写入内容是有所区别的,故而个人化前需对智能卡的相关信息进行判断,以免卡基更换或者人工拿错卡基导致的发卡异常。个人化常用的双界面智能卡的个人化一般流程包括实例删除、实例的安装、个人化PSE、个人化PPSE、个人化PBOC、个人化行业应用、修改KMU、修改卡片周期状态等。在整个过程中每条指令返回状态码均必须是正确的返回码,如果返回码异常必须弹出卡基,重新分配新卡基完成此条数据的个人化,如果个人化仍然报错则需要确认是否为数据异常导致的错误,如为数据问题则需同客户确认异常信息。个人化完成后,在智能卡的卡基相应位置完成打凸字、光刻、打彩照等面工艺操作。

智能卡自动全检方法实施例:

本发明的智能卡自动全检方法用于在完成对智能卡进行个人化数据写入并完成对智能卡进行卡面工艺操作后进行的检测操作。

如图1所示,本发明的智能卡自动全检方法在进行全检操作时,首先,执行步骤S1,获取写入到智能卡的个人化原始数据,对个人化原始数据进行校验。为了确保写入智能卡中的个人化数据的准确性,首先将个人化原始数据进行分析和判断,查看数据是否异常或者变化,以免客户的个人化数据变更后导致的智能卡功能性异常。在对个人化原始数据进行分析和判断时,可判断数据是否出现错误数据或缺失数据等,若写卡成功后是否会造成智能卡异常等。

对个人化原始数据进行校验后,执行步骤S2,判断智能卡是否正常上下电。由于智能卡在完成高温打凹凸字等表面工艺之后会出现非接天线被打断的情况,另外,智能卡个人化后会出现智能卡操作系统(COS)异常的问题,导致智能卡不能正常上下电,因此,需要确认智能卡能够正常上下电,才可以进行正常的数据读写。

本实施例中,受检测的智能卡为双界面智能卡,即同时兼备接触和非接触两种界面通信的多功能卡。因此,判断智能卡是否正常上下电的步骤包括:向智能卡发送复位信号,获取智能卡的应答ATR( Answer To Reset)信号和应答ATS (Answer To Select)信号;判断应答ATR信号和应答ATS信号是否正常,若是,则确认智能卡正常上下电。当判断获取到的应答ATR信号和应答ATS信号均正常后,智能卡才可以进行正常的数据读写。此外,在读取到智能卡的ATS信号后,还需要将此次读取到的ATS信号与该智能卡进行个人化数据写入时所读取的ATS信号进行比较,两次读取到的ATS信号一致时,才认为该智能卡为正常卡基。

若判断智能卡正常上下电,则执行步骤S3,读取智能卡的内部数据,根据个人化原始数据对内部数据进行校验并对内部数据进行静态数据认证和动态数据认证。个人化数据均以DGI(数据分组标记符,Data Grouping Identifier)模式写入智能卡中,在读取智能卡内部数据时,通过接触或非接触的方式向智能卡发送GPO(Get Processing Options,获取处理选项)指令,读取出写入智能卡中的DGI数据。利用读取出来的DGI数据与个人化原始数据进行逐一比较,确认两者中对应的数据是否一致。例如,在确认银行卡号信息时,判断DGI数据解密后得到的TAG数据中TAG57的二磁等效数据和TAG5A的银行卡号是否与个人化原始数据中的银行卡号一致。在比对时,读取TAG数据中对应的TLV(类型长度值数据,Type-Length-Value)的Value数据进行比对。客户提供个人化原始数据一般为两种模式:DGI模式和TLV模式。如果个人化原始数据为TLV格式,则需将智能卡中的DGI数据读取出来后拆分成TLV格式,而后,将拆分得到的TLV格式数据与个人化原始数据中对应的数据进行比对。如果个人化原始数据为DGI模式时,则仅需要对个人化原始数据中的DGI数据和从智能卡读取出来的DGI数据作比对。

根据个人化原始数据对内部数据进行校验后,还需对内部数据进行静态数据认证和动态数据认证。本实施例中,在对智能卡进行个人化时,同时利用国密算法和国际算法对个人化数据进行加密,保障个人化数据的安全,因此,对内部数据进行静态数据认证和动态数据认证的步骤包括:利用国密算法和国际算法分别对内部数据进行静态数据认证和动态数据认证。本实施例中,先利用国际算法对内部数据进行静态数据认证和动态数据认证,再利用国密算法对内部数据进行静态数据认证和动态数据认证。其中,国密算法可以采用分组密码算法(SM1 算法)等,国际算法可以采用DES(Data Encryption Standard,数据加密标准)算法、AES(Advanced Encryption Standard,高级加密标准)算法等。利用国密算法和国际算法对内部数据验证完成后还需分别发GAC1指令测试智能卡是否可以正常交易,进一步确认智能卡可正常工作。

其中,静态数据认证,用于验证智能卡中的重要静态数据在发卡后是否被篡改。发卡智能终端设备使用智能卡中的发卡行公钥验证智能卡中的静态数据,发卡行公钥保存在智能卡中的发卡行公钥证书中。智能卡发卡行在发卡的时候写入静态数据,如卡号等,为了证明这些静态数据是发卡行写入的,而不是其他非法的机构写入的,发卡行要用自己的发卡行私钥进行签名,当然主要是对这些数据先进行计算一个摘要,然后对摘要进行签名,得到一个数字签名,并把这个数字签名也一起写入卡片。数字签名包括一个重要数据哈希结果,使用发卡行私钥签名加密。发卡智能终端设备在进行静态数据认证时,读取个人化原始数据中的静态数据和数字签名,利用发卡行公钥来解密出数字签名,将解密出来的哈希值与内部数据中静态数据所产生的哈希值匹配,证实智能卡的静态数据是否被修改。

动态数据认证,用于验证智能卡是否为伪卡。发卡智能终端设备请求卡片提供由智能卡私钥加密动态交易数据生成的动态签名密文。其中,智能卡私钥存储在智能卡的一个安全区域内,无法进行复制。发卡智能终端设备使用从智能卡中恢复出来的智能卡公钥对动态签名密文解密。将恢复的数据和个人化原始数据进行匹配,验证此智能卡是否从合法智能卡中复制数据而生成的伪卡。

利用国密算法和国际算法对内部数据验证完成后,执行步骤S4,对智能卡的进行KMU验证和安全状态检测。KMU是只有发卡行才知道的DES主密钥,用于分散密钥来产生KENC、KDEK和KMAC用于发卡后的再次个人化。KENC、KDEK和KMAC对每张智能卡都是独有的。为了安全和符合各项要求,智能卡的出厂KMU必须与客户协定修改,一般值为客户指定的一条16字节的子密钥的密文值或者三条16字节的子密钥的密文值。发卡智能终端设备通过对密文值进行验证从而判断卡片修改的KMU是否正确。对智能卡进行KMU验证为公知技术,在此不再赘述。

对智能卡进行KMU验证后对智能卡的安全状态进行检测,保证卡片出货前安全状态符合安全状态要求。安全状态是指智能卡在当前所处的一种安全级别。安全属性是指对某个文件进行某种操作时所必须满足的条件,即在进行对应操作时安全状态寄存器必须要满足预定的数值。安全属性是在构建文件系统时,已经写入智能卡的属性,读写权限数值设置为预设数值,如果要完成本操作就需要将安全状态寄存器置为大于该预设数值,安全状态寄存器的数值通过PIN口令验证或者外部验证来改变。智能卡中根目录和每一个应用目录中都有一个安全属性数值,用于表示操作在此目录下进行对应操作时应具备的条件,只有满足安全条件时才能进行正常的操作。因此,在对智能卡的安全状态进行检测时,读取内部数据中的每一个应用目录安全属性数值进行安全状态的判断。

在执行步骤S2时判断智能卡不能正常上下电或对智能卡的进行KMU验证和安全状态检测后,则执行步骤S5,获得检测结果。在判断判断智能卡不能正常上下电时,可将检测结果生成文字信息,例如,生成“上下电异常”相关信息,以便用户查看,并及时针对检测结果进行暂停发卡操作。在对智能卡的进行KMU验证和安全状态检测后,将步骤S1至步骤S4的检测结果进行整理,生成文字信息,以便用户查看并针对检测结果进一步的操作。当然,获得检测结果这一步骤还可在执行完步骤S1至步骤S3进行。

智能卡自动全检装置实施例:

本发明的智能卡自动全检方法用于在完成对智能卡进行个人化数据写入并完成对智能卡进行卡面工艺操作后进行的检测操作,用于实现上述智能卡自动全检方法。

如图2所示,本发明的智能卡自动全检装置包括原始数据校验模块1、内部数据认证模块2、修改确认模块3和检测结果生成模块4。

原始数据校验模块1用于获取写入到智能卡的个人化原始数据,对个人化原始数据进行校验。为了确保写入智能卡中的个人化数据的准确性,原始数据校验模块1首先将个人化原始数据进行分析和判断,查看数据是否异常或者变化,以免客户的个人化数据变更后导致的智能卡功能性异常。原始数据校验模块1在对个人化原始数据进行分析和判断时,可判断数据是否出现错误数据或缺失数据等,若写卡成功后是否会造成智能卡异常等。

内部数据认证模块2用于判断智能卡是否正常上下电,若是,读取智能卡的内部数据,根据个人化原始数据对内部数据进行校验并对内部数据进行静态数据认证和动态数据认证。

由于智能卡在完成高温打凹凸字等表面工艺之后会出现非接天线被打断的情况,另外,智能卡个人化后会出现智能卡操作系统(COS)异常的问题,导致智能卡不能正常上下电,因此,内部数据认证模块2需要确认智能卡能够正常上下电,才可以进行正常的数据读写。

本实施例中,受检测的智能卡为双界面智能卡,即同时兼备接触和非接触两种界面通信的多功能卡。因此,内部数据认证模块2判断智能卡是否正常上下电的步骤包括:向智能卡发送复位信号,获取智能卡的应答ATR( Answer To Reset)信号和应答ATS (Answer To Select)信号;判断应答ATR信号和应答ATS信号是否正常,若是,则确认智能卡正常上下电。当判断获取到的应答ATR信号和应答ATS信号均正常后,智能卡才可以进行正常的数据读写。此外,内部数据认证模块2在读取到智能卡的ATS信号后,还需要将此次读取到的ATS信号与该智能卡进行个人化数据写入时所读取的ATS信号进行比较,两次读取到的ATS信号一致时,才认为该智能卡为正常卡基。

内部数据认证模块2若判断智能卡正常上下电,则读取智能卡的内部数据,根据个人化原始数据对内部数据进行校验并对内部数据进行静态数据认证和动态数据认证。个人化数据均以DGI(数据分组标记符,Data Grouping Identifier)模式写入智能卡中,内部数据认证模块2在读取智能卡内部数据时,通过接触或非接触的方式向智能卡发送GPO(Get Processing Options,获取处理选项)指令,读取出写入智能卡中的DGI数据。内部数据认证模块2利用读取出来的DGI数据与个人化原始数据进行逐一比较,确认两者中对应的数据是否一致。例如,在确认银行卡号信息时,内部数据认证模块2判断DGI数据解密后得到的TAG数据中TAG57的二磁等效数据和TAG5A的银行卡号是否与个人化原始数据中的银行卡号一致。在比对时,内部数据认证模块2读取TAG数据中对应的TLV(类型长度值数据,Type-Length-Value)的Value数据进行比对。客户提供个人化原始数据一般为两种模式:DGI模式和TLV模式。如果个人化原始数据为TLV格式,则内部数据认证模块2需将智能卡中的DGI数据读取出来后拆分成TLV格式,而后,将拆分得到的TLV格式数据与个人化原始数据中对应的数据进行比对。如果个人化原始数据为DGI模式时,则内部数据认证模块2仅需要对个人化原始数据中的DGI数据和从智能卡读取出来的DGI数据作比对。

内部数据认证模块2根据个人化原始数据对内部数据进行校验后,还需对内部数据进行静态数据认证和动态数据认证。本实施例中,内部数据认证模块2在对智能卡进行个人化时,同时利用国密算法和国际算法对个人化数据进行加密,保障个人化数据的安全,因此,内部数据认证模块2对内部数据进行静态数据认证和动态数据认证的步骤包括:利用国密算法和国际算法分别对内部数据进行静态数据认证和动态数据认证。本实施例中,内部数据认证模块2先利用国际算法对内部数据进行静态数据认证和动态数据认证,再利用国密算法对内部数据进行静态数据认证和动态数据认证。其中,国密算法可以采用分组密码算法(SM1 算法)等,国际算法可以采用DES(Data Encryption Standard,数据加密标准)算法、AES(Advanced Encryption Standard,高级加密标准)算法等。内部数据认证模块2利用国密算法和国际算法对内部数据验证完成后还需分别发GAC1指令测试智能卡是否可以正常交易,进一步确认智能卡可正常工作。

其中,静态数据认证,用于验证智能卡中的重要静态数据在发卡后是否被篡改。内部数据认证模块2使用智能卡中的发卡行公钥验证智能卡中的静态数据,发卡行公钥保存在智能卡中的发卡行公钥证书中。智能卡发卡行在发卡的时候写入静态数据,如卡号等,为了证明这些静态数据是发卡行写入的,而不是其他非法的机构写入的,发卡行要用自己的发卡行私钥进行签名,当然主要是对这些数据先进行计算一个摘要,然后对摘要进行签名,得到一个数字签名,并把这个数字签名也一起写入卡片。数字签名包括一个重要数据哈希结果,使用发卡行私钥签名加密。内部数据认证模块2在进行静态数据认证时,读取个人化原始数据中的静态数据和数字签名,利用发卡行公钥来解密出数字签名,将解密出来的哈希值与内部数据中静态数据所产生的哈希值匹配,证实智能卡的静态数据是否被修改。

动态数据认证,用于验证智能卡是否为伪卡。内部数据认证模块2请求卡片提供由智能卡私钥加密动态交易数据生成的动态签名密文。其中,智能卡私钥存储在智能卡的一个安全区域内,无法进行复制。发卡智能终端设备使用从智能卡中恢复出来的智能卡公钥对动态签名密文解密。内部数据认证模块2将恢复的数据和个人化原始数据进行匹配,验证此智能卡是否从合法智能卡中复制数据而生成的伪卡。

修改确认模块3用于对智能卡的进行KMU验证和安全状态检测。KMU是只有发卡行才知道的DES主密钥,用于分散密钥来产生KENC、KDEK和KMAC用于发卡后的再次个人化。KENC、KDEK和KMAC对每张智能卡都是独有的。为了安全和符合各项要求,智能卡的出厂KMU必须与客户协定修改,一般值为客户指定的一条16字节的子密钥的密文值或者三条16字节的子密钥的密文值。发卡智能终端设备通过对密文值进行验证从而判断卡片修改的KMU是否正确。对智能卡进行KMU验证为公知技术,在此不再赘述。

修改确认模块3对智能卡进行KMU验证后对智能卡的安全状态进行检测,保证卡片出货前安全状态符合安全状态要求。安全状态是指智能卡在当前所处的一种安全级别。安全属性是指对某个文件进行某种操作时所必须满足的条件,即在进行对应操作时安全状态寄存器必须要满足预定的数值。安全属性是在构建文件系统时,已经写入智能卡的属性,读写权限数值设置为预设数值,如果要完成本操作就需要将安全状态寄存器置为大于该预设数值,安全状态寄存器的数值通过PIN口令验证或者外部验证来改变。智能卡中根目录和每一个应用目录中都有一个安全属性数值,用于表示操作在此目录下进行对应操作时应具备的条件,只有满足安全条件时才能进行正常的操作。因此,修改确认模块3在对智能卡的安全状态进行检测时,读取内部数据中的每一个应用目录安全属性数值进行安全状态的判断。

检测结果生成模块4用于获得检测结果。在判断判断智能卡不能正常上下电时,检测结果生成模块4可将检测结果进行整理,生成文字信息,以便用户查看并针对检测结果进一步的操作。

计算机装置实施例:

本发明的计算机装置可以是包括有处理器以及存储器等装置,例如包含中央处理器的单片机等。并且,计算机装置的处理器可以执行存储器中所存储的计算机程序,当处理器执行计算机程序时,可以实现上述的智能卡自动全检方法中各个步骤。

存储介质实施例:

本发明的存储介质可以是被计算机装置的处理器所读取的任何形式的存储介质,包括但不限于非易失性存储器、易失性存储器、铁电存储器等,计算机可读存储介质上存储有计算机程序,当计算机装置的处理器读取并执行存储器中所存储的计算机程序时,可以实现上述的智能卡自动全检方法中各个步骤。

由上述可知,本发明通过自动检测,对完成发卡操作的智能卡进行全检操作,避免人为干预,提高检测效率。对个人化原始数据进行校验,可以避免以免客户数据变更后打卡成功导致的功能性异常。在对内部数据进行检测的时候,对内部数据进行静态数据认证和动态数据认证,提高检测质量。

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

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