一种实现ic卡安全交易的方法

文档序号:6416995阅读:452来源:国知局
专利名称:一种实现ic卡安全交易的方法
技术领域
本发明涉及IC卡应用领域,特别是涉及一种售前交易的IC卡安全认证实现方法。
目前,IC卡的应用越来越普及,范围也越来越广泛,由于其使用方便、便于携带、运行快捷、安全可靠等特点而越来越受到更多使用者的欢迎,特别是在自助的环境下。
但是,现有的采用IC卡的支付系统针对的主要是售后交易,即支付方在支付后获得服务,如商场购物。而对售前交易,即支付方先获得服务后支付,如IC卡加油,则在安全保证上存在有漏洞,尤其是自助环境下的售前服务。现以IC卡加油为例作进一步说明依照现有的一般IC卡支付系统,在用IC卡加油时,其流程为用户插卡、IC卡与终端的双向认证、用户加油、加油结束、终端从IC卡扣款。从上面的流程中可以看出,在从用户开始加油到终端从IC卡扣款成功这一段较长的时间内,如果出现IC卡被从读卡器中拔出、中途断电或终端意外故障等情况,引起终端对IC卡扣款操作无法进行下去(这种情形统称逃卡)时,会引起一系列的问题。而加油环境下受其行业的防爆规范限制,采用全吞式读卡器,成本很高,难以推广。
为解决这一问题,现有的IC卡加油支付系统均引入了灰锁的概念。灰锁是指在IC卡上作一个特定的标记,以标识IC卡在上次使用时的使用情况。若IC卡上的灰锁标记(简称灰标记)被清除,说明这张IC卡在上次交易中正常结束操作,可以继续使用;若IC卡上存在灰锁标记,则说明在上次使用时,交易并没有正常结束,这张IC卡(称为灰卡)若要继续使用,必须先将该灰锁标记清除(解灰锁,简称解灰),如果上次没有从这张卡上扣除所需的金额,则还需先补扣上次交易金额来平帐。
因此,上述的IC卡加油交易流程就变为用户插卡、IC卡与终端的双向认证、判断是否灰卡、若不是灰卡则灰锁IC卡、用户加油、加油结束、终端从IC卡扣款、终端对IC卡解灰锁。同时增加了解灰交易,其流程为若IC卡是灰卡,查找相应的灰记录,判断灰记录与IC卡的匹配,若存在与IC卡相匹配的灰记录,则补扣灰记录中的交易额(如果需要),解灰锁。在上述交易流程中,由于扣款和解灰是分开操作的,因此仍存在有安全隐患若能够仅仅操作灰标记而不进行扣款的话,对持卡人而言就能获利,而对发卡方而言就会蒙受损失。在此,引入“交易的获益方”这一概念加以深入说明。
根据对IC卡随意操作时的收益方,将交易(或对IC卡的操作)分为正方交易和负方交易。正方交易(或对IC卡的操作)是指那些如果可以随意操作的话,会对持卡人有利或对发卡人不利的交易(或对IC卡的操作),如圈存、更改透支限额、个人密码(PIN)解锁、更改IC卡上受保护的文件等;负方交易(或对IC卡的操作)是指那些如果可以随意操作的话,会对持卡人不利或对发卡人有利的交易(或对IC卡的操作),如消费等。一般而言,正方交易的保护密钥存放在发卡方主机上,而负方交易的保护密钥可以存放在终端内,现有的常用方式是存放在终端的PSAM卡上。
根据正方交易和负方交易的定义,可以看出扣款操作是负方操作,密钥是可以存放在PSAM卡上的,而解灰操作是正方操作,密钥应保存在发卡方主机上。但是在正常的交易流程中又必须有解灰操作,且不可能联机进行,所以就出现了矛盾。解灰操作的密钥如果存放在PSAM卡上的话,由于PASM卡是一张IC卡,它只能用密钥被动的计算和认证,对解灰操作而言并不存在约束,这样就有PSAM被使用于非法解锁灰卡的可能。
现有技术的应用中,是将解灰密钥存放在终端的加密模组中,或将解灰密钥一部分存放在终端的加密模组中,一部分存放在终端的PSAM卡上。由于加密模组内部可以存放程序,具有一定的自主性,所以将解灰的操作内建在加密模组中,由它来实现对解灰的安全控制。为了实现加密模组对解灰的安全控制,就必须在服务前锁卡,即建立IC卡的灰锁标记。如果在中途发生逃卡,由终端通过网络将逃卡金额及当前余额上报,在解灰时就需要根据灰锁的标记及通过网络下发的脱逃金额及余额来判断补扣的金额,并在补扣后将IC卡解灰。这时又存在了新的问题(1)IC卡无法判断补扣金额的合法性,补扣金额的安全保障以只能由网络和终端来提供,所以存在较薄弱的安全环节;(2)如前所述,解锁操作是正方交易,而正方保护密钥不得不存放在不受发卡方控制的应用环境下,对这部分密钥的安全管理对发卡方而言也是一个问题。
到目前为止,还没有一个彻底的解决方法来处理这种较为特殊的情况下的IC卡售前交易。
本发明的目的就在于提出一种通过对锁卡来源的判断识别而实现IC卡安全交易的方法。
本发明进一步的目的就在于提出上述的IC卡安全交易方法,通过操作在IC卡上建立的灰锁标记,使IC卡的某些操作权限受到限制。
本发明的再一目的是提出上述的IC卡安全交易方法,更将扣款操作和解灰锁操作合并为IC卡上的一步操作,彻底有效地解决上述问题,极大提高IC卡交易的安全性。
本发明一种实现IC卡安全交易的方法,是在IC卡上建立起至少一个的灰锁标记,该等灰锁标记是与IC卡某些操作的权限相关的。例如,当操作该灰锁标记使IC卡灰锁时,IC卡将禁止执行除与解灰锁相关的操作以外的其他任何可能引起IC卡上电子存折(钱包)余额变化的IC卡操作,如普通的扣款操作等。
本发明一种实现IC卡安全交易的方法,在灰锁IC卡时,即对灰锁标记操作的同时,将锁卡的来源记入IC卡;在解灰锁的同时或之前,IC卡需执行对该锁卡来源以及解灰锁合法性的判断。锁卡来源贯穿整个交易流程。
这里所述的解灰锁合法性的判断,可以是指对扣款金额合法性的判断,对其判断的依据可以是基于上述的锁卡来源。
根据本发明技术方案,所述的锁卡来源可以是在IC卡上建立的一条过程密钥,该过程密钥至少与一IC卡临时生成的伪随机数相关。
根据本发明技术方案,更进一步的可将扣款操作和解灰锁操作合并为IC卡上的一步操作,即IC卡执行对所述的锁卡来源及扣款金额合法性的判断成功之后,执行扣款解灰锁操作。
根据本发明技术方案,更进一步的可在主机上保存有一条可以实现强制解灰锁操作的密钥,使灰锁后的IC卡可在联机的终端上通过联机方式实现强制解灰锁操作;再进一步的可在执行强制解灰锁操作的同时实现扣款操作。例如,如果终端出现故障而引起无法扣款或数据不能上传或这次记录丢失,该卡可以在联机的终端上通过联机方式将灰标记清除。
上述的灰锁IC卡是指IC卡根据其锁卡的来源生成一认证码,同时将产生该锁卡来源的所需参数传递给终端,由终端采用与IC卡相同的机制产生另一锁卡来源码,并使用该锁卡来源码生成另一认证码,将该认证码送入IC卡,IC卡判断与上述IC卡自身生成的认证码是否相同,若相同时执行灰锁操作并将这次产生的一灰锁特征码返回给终端,该灰锁特征码是根据包括锁卡来源及相应信息在内的数据生成。
上述的扣款解灰锁是指终端根据其锁卡来源和扣款所需的参数生成一认证码,将该认证码与相应参数一并送入IC卡,IC卡内部采用其自身的锁卡来源和相同的参数通过相同的机制产生另一认证码,判断该认证码与终端产生的认证码一致就从IC卡的电子存折(钱包)上实现扣款,扣款成功的同时将灰锁标记清除。
终端更进一步可将扣款时所需的认证码、这次的逃卡金额及灰锁特征码共同作为这次灰记录的部分信息保存起来,并上传给中心机;如果某次交易过程未完整结束的未被扣款解灰的IC卡,下一次在任何一个保存有该灰记录的终端上使用时,终端可先验证该灰锁特征码以确定IC卡上的锁卡来源与计算该条灰记录中的扣款认证码的锁卡来源相同,通过后执行补扣款解灰锁操作。
根据本发明技术方案,所述的过程密钥可以是过程消费密钥(SESPK)=3DES(DPK,DATA),其中DPK是IC卡上电子存折(钱包)的消费密钥,是由电子存折(钱包)消费主密钥(MPK)根据该IC卡的应用序号分散得到,DATA是特定的参数,包括有所述的IC卡临时生成的伪随机数(ICC)、电子存折(钱包)的交易序号(CTC)、终端交易序号(TTC)的最后两个字节。可见每次交易的SESPK由于IC卡的应用序号及DATA不同而各不相同,所以可以用SESPK得到可靠的灰锁来源。
根据本发明技术方案构思,将灰锁标记并入IC卡上电子存折(钱包)的属性参数中,构成一特殊的加油电子存折(钱包)时,除具备通常的读余额、圈存、圈提、消费/取现、改透支限额等功能外,同时增加了加油消费、本地解灰锁和联机解灰锁功能;描述该加油电子存折(钱包)的状态除通常的空闲状态、圈存状态、消费/取现状态、圈提状态、修改状态外,还存在预加油状态、灰锁状态、和解灰锁状态,并在加油电子存折(钱包)通常的命令集中增加了加油初始化、加油锁卡、加油消费、解锁初始化、解锁、读取状态命令,其中,加油初始化命令用于初始化加油消费交易,加油锁卡命令用于灰锁加油消费电子存折(钱包),加油消费命令用于本地加油消费交易同时解灰锁,解锁初始化命令用于初始化联机解灰锁消费交易,解锁命令用于联机解灰锁交易同时补扣加油消费,读取状态命令用于读取灰锁状态并启动本地解灰锁交易。
采用本发明技术方案彻底解决了以往的问题由于本发明将一灰锁标记与IC卡某些操作的权限相关,使操作该灰锁标记达到禁止IC卡执行除与解灰锁相关的操作以外的其他任何可能引起IC卡上电子存折(钱包)余额变化的操作,使交易可以安全实现。
再者,本发明引入的锁卡来源,在灰锁IC卡时将其记入IC卡,解灰锁时执行对该锁卡来源以及解灰锁合法性的判断,该锁卡来源贯穿整个交易流程,可更加安全实现交易过程。
本发明更进一步的将解灰和扣款操作合二为一,正常操作的解灰密钥的管理隐患不再存在,可以本着负方交易的原则而存放在PSAM上。而在联机解灰时其操作的密钥本着正方交易的原则存放在主机上,它的管理隐患也不复存在。
由于解灰和扣款操作合二为一,非法解灰的问题一方面转变成了终端扣款准确性的问题,即只要认可终端执行扣款的金额是合法的,解灰就是合法的。在另一方面,当出现逃卡后补扣时,由于只有IC卡和出现逃卡的终端的PSAM才知道可以执行这次补扣的过程密钥SESPK,而且终端的PSAM在交易结束后将不再保留SESPK,所以在补扣时只有IC卡才可获知(内部恢复)这条密钥,扣款操作时的扣款认证码是产生逃卡的终端的PSAM在SESPK被清除之前计算好保存下来的,任何篡改这个认证码或用以计算这个认证码的参数(如逃卡金额等)的举动都会造成补扣失败,而且IC卡的内部应用锁定机制又能防止外界的恶意试探,所以这转变成了IC卡的安全机制的问题,与应用彻底无关。
综上所述,整个解灰的问题转变成了终端和IC卡的可靠性的问题,而这两点都是能有效管理的,并且与现有的终端和IC卡的安全机制不存在冲突。
下面结合附图及具体实施例对本发明再作进一步详细的说明。


图1为本发明实施例加油电子存折加油交易流程示意图。
图2为本发明实施例加油电子存折联机解灰锁交易流程示意图。
图3为本发明实施例加油电子存折本地解灰锁交易流程示意图。
以IC卡加油支付系统为例。将在IC卡上需要与灰锁关联的电子存折与灰锁合并成为一个特殊的电子存折-加油电子存折,这个电子存折除具备一般电子存折的一切功能--读余额、圈存、圈提、消费/取现、改透支限额等,同时针对使用IC卡进行脱机加油消费存在灰锁的情形增加了加油消费、本地解灰锁和联机解灰锁的功能,解决了非法解锁包括直接去锁和篡改逃卡金额的问题,从而保证加油消费这种售前交易的顺畅安全进行。
加油电子存折的基本应用与一般电子存折的应用完全相同,在此请恕不予赘述。而加油消费、本地解灰锁和联机解灰锁作为基本应用的外延,使加油电子存折应用增加了新的范畴,下面通过对其命令和交易流程的分别描述加以详细的说明。
在应用执行过程中,卡片总是处于某种状态之一,在一种状态下,只有某些命令能执行。卡片具有的状态有空闲状态、圈存状态、消费/取现状态、圈提状态、修改状态、预加油状态、灰锁状态、解灰锁状态,其中的预加油状态、灰锁状态和解灰锁状态是加油电子存折特有的状态。
当应用选择完成后,应用首先进入空闲状态。当卡片从终端收到一条命令后,它必须检查当前状态是否允许。命令成功完成以后,卡片根据表1所示进入另一个状态(或同一个)。如果命令没有成功执行,卡片进入空闲状态。
表1说明了命令成功执行后的状态变化。第一行描述了命令发出时卡片的当前状态,第一列描述了发出的命令,而整张表给出了命令执行成功后的状态。
阴影部分指出命令在卡片处于相应状态时是无效的,在这种情况下,卡片不执行命令,并回应终端,6901’状态----命令不接受(无效)状态。由于命令不能成功执行,所以若卡片原来处于灰锁,结果状态仍是灰锁,若卡片原来处于其他状态,结果状态是空闲。
表1命令执行成功后的状态变化
表2定义了命令类别和命令字节的编码,以及加油电子存折应用使用的参数P1和P2。在该命令集中,除通常电子存折所具有的命令外,新增加了加油初始化、加油锁卡、加油消费、解锁初始化、解锁、读取状态命令,其中,加油初始化命令用于初始化加油消费交易,加油锁卡命令用于灰锁加油消费电子存折,加油消费命令用于本地加油消费交易同时解灰锁,解锁初始化命令用于初始化联机解灰锁消费交易,解锁命令用于联机解灰锁交易同时补扣加油消费,读取状态命令用于读取灰锁状态。下面分别对该等新增加的命令以及响应作出详细描述。而其它常规的命令与现有技术应用相同,请恕不再赘述。
表2命令的类别字节和指令字节
1、加油初始化(INITIALIZE FOR PETROL)命令INITIALIZE FOR PETROL命令用于初始化加油消费交易,其命令报文见表3,命令报文的数据域见表4。此命令执行成功的响应报文数据域见表5。如果命令执行不成功,则只在响应报文中回送SW1和SW2。此命令执行成功的响应报文的状态码是‘9000’。表6描述了IC卡可能回送的错误状态。其中ED为电子存折。
表3 INITIALIZE FOR PETROL命令报文
表4 INITIALIZE FOR PETROL命令报文数据域
表5 INITIALIZE FOR PETROL响应报文数据域
表6 INITIALIZE FOR PETROL错误状态
2、加油锁卡(LOCK FOR PETROL)命令LOCK FOR PETROL命令用于灰锁加油消费电子存折。其命令报文见表7。命令报文的数据域见表8。此命令执行成功的响应报文数据域见表9。如果命令执行不成功,则只在响应报文中回送SW1和SW2。此命令执行成功的状态码是‘9000’。表10描述了IC卡可能回送的错误状态。
表7 LOCK FOR PETROL命令报文
表8 LOCK FOR PETROL命令报文数据域
表9 LOCK FOR PETROL响应报文数据域
表10 LOCK FOR PETROL错误状态
3、加油消费(DEBIT FOR PETROL)命令DEBIT FOR PETROL命令用于本地加油消费交易,同时解灰锁。其命令报文见表11。命令报文的数据域见表12。此命令执行成功的响应报文数据域见表13。如果命令执行不成功,则只在响应报文中回送SW1和SW2。此命令执行成功的状态码是‘9000’。表14描述了IC卡可能回送的错误状态。
表11 DEBIT FOR PETROL命令报文
表12 DEBIT FOR PETROL命令报文数据域
表13 DEBIT FOR PETROL响应报文数据域
表14 DEBIT FOR PETROL错误状态
4、解锁初始化(INITIALIZE FOR UNLOCK)命令INITIALIZE FOR UNLOCK命令用于初始化联机解灰锁消费交易。其命令报文见表15。命令报文的数据域见表16。此命令执行成功的响应报文数据域见表17。如果命令执行不成功,则只在响应报文中回送SW1和SW2。此命令执行成功的状态码是‘9000’。表18描述了IC卡可能回送的错误状态。
表15 INITIALIZE FOR UNLOCK命令报文
表16 INITIALIZE FOR UNLOCK命令报文数据域
表17 INITIALIZE FOR UNLOCK响应报文数据域
表18 INITIALIZE FOR UNLOCK错误状态
5、解锁(DEBIT FOR UNLOCK)命令DEBIT FOR UNLOCK命令用于联机解灰锁交易,同时补扣加油消费。其命令报文见表19。命令报文的数据域见表20。此命令执行成功的响应报文数据域见表21。如果命令执行不成功,则只在响应报文中回送SW1和SW2。此命令执行成功的状态码是‘9000’。表22描述了IC卡可能回送的错误状态。
表19 DEBIT FOR UNLOCK命令报文
表20 DEBIT FOR UNLOCK命令报文数据域
表21 DEBIT FOR UNLOCK响应报文数据域
表22 DEBIT FOR UNLOCK错误状态
6、读取状态(GET GREY STATUS)命令GET GREY STATUS命令用于获得存折的灰状态。其命令报文见表23。命令报文的数据域不存在。此命令执行成功的响应报文数据域见表24。如果命令执行不成功,则只在响应报文中回送SW1和SW2。此命令执行成功的状态码是‘9000’。表25描述了IC卡可能回送的错误状态。
表23 GET GREY STATUS命令报文
表24 GET GREY STATUS响应报文数据域
MAC3和TAC是GREY LOCK时IC卡返回的值。
表25 GET GREY STATUS错误状态
下面分别再对作为基本应用外延的加油消费、本地解灰锁和联机解灰锁的交易流程加以详细的说明。
1、加油交易加油交易允许持卡人使用加油电子存折在卡-机联动的IC卡加油机上进行加油。此交易可以脱机进行。加油交易要求提交个人密码(PIN)。参见附图1所示。
步骤1.1终端发出INITIALIZE FOR PETROL命令启动加油交易。
步骤1.2IC卡收到INITIALIZE FOR PETROL命令后,处理INITIALIZE FOR PETROL命令,包括(1)检查IC卡是否处于灰锁状态,如果是,返回状态码‘6901’(不支持的密钥索引)且不返回其他数据;(2)检查命令中包含的密钥索引是否被IC卡支持,如果不支持,返回状态码‘9403’(不支持的密钥索引)且不返回其他数据;(3)通过以上检查之后,IC卡将产生一个伪随机数ICC、过程密钥SESPK及报文鉴别代码MAC1,过程密钥SESPK被用于加油电子存折的加油交易,过程密钥按照SESPK=3EDS(DPK,DATA)机制产生,其中DPK是加油电子存折的消费密钥,DATA数据包括伪随机数ICC、加油电子存折脱机交易序号CTC、终端交易序号TTC的最右两个字节,3DES是指3倍长的DES运算。
SESPK作用于以下数据进行MAC1的计算(按所列顺序)——加油电子存折余额——交易类型标识(加油交易为‘10’)——终端机编号(发出LOCK FOR PETROL命令的终端)步骤1.3验证MAC1
使用伪随机数ICC和IC卡返回的加油电子存折脱机交易序号,加油消费安全认证模块PSAM将产生一样的过程密钥SESPK并验证MAC1是否有效,如果MAC1有效,交易处理将执行步骤1.5,如果MAC1无效,交易处理继续执行步骤1.4。
步骤1.4回送错误状态,终端应中止加油交易并采取相应的措施。
步骤1.5产生MAC2终端确认能够进行加油交易后,将产生一个报文认证码MAC2,供IC卡来验证PSAM的合法性。
SESPK作用于以下数据进行MAC2的计算(按所列顺序)——交易类型标识(加油交易为‘10’)——终端机编号(发出LOCK FOR PETROL命令的终端)——交易日期(发出LOCK FOR PETROL命令的终端)——交易时间(发出LOCK FOR PETROL命令的终端)步骤1.6终端发出LOCK FOR PETROL命令。
步骤1.7验证MAC2收到LOCK FOR PETROL命令后,IC卡要验证MAC2的有效性,如果MAC2是有效的,交易处理将继续执行步骤1.8,如果MAC2是无效的,错误状态‘9302’(MAC无效)被返回给终端。
步骤1.8加油锁卡处理IC卡将伪随机数ICC、终端机编号、终端交易序号、交易日期和交易时间写入内部文件,以备加油中途IC卡掉电后的数据恢复,并将加油电子存折置于灰锁状态,禁止除加油消费和解灰锁以外的其他可能引起加油电子存折中余额变化的IC卡操作(如圈存、圈提、消费/取现、更改透支限额等)。当终端发送上述相关命令时,错误状态‘6989’(卡已被灰锁)被返回给终端。
IC卡将加油电子存折脱机交易序号加1。
IC卡产生一个报文鉴别码MAC3供PSAM对IC卡合法性进行检查,并同时将MAC3写入内部文件。MAC3将包含在从卡传送到PSAM(通过终端)LOCK FOR PETROL的命令响应报文和GET GREY STATUS的命令响应报文中。作为计算MAC3的输入,SESPK作用于以下数据进行MAC3计算——加油电子存折余额——加油电子存折脱机交易序号(加1前)——交易类型标识(加油交易为‘10’)
——终端机编号(发出LOCK FOR PETROL命令的终端)——交易日期(发出LOCK FOR PETROL命令的终端)——交易时间(发出LOCK FOR PETROL命令的终端)IC卡也应采用相同的机制直接用交易认证密钥DTK产生一个交易签名TAC。并同时将TAC写入内部文件。TAC将包含在从卡传送到PSAM(通过终端)LOCK FOR PETROL的命令响应报文和GET GREY STATUS的命令响应报文中。如果出现逃卡等意外情况使交易无法进行下去,TAC将被写入终端交易明细,以便后来传给主机进行锁卡交易验证。下面是用来生成TAC的要素——加油电子存折余额——加油电子存折脱机交易序号(加1前)——交易类型标识——终端机编号——交易日期(终端)——交易时间(终端)步骤1.9验证MAC3终端要验证MAC3的有效性,如果MAC3是有效的,交易处理将继续执行步骤1.10,如果MAC3是无效的,终端将采取相应措施。
步骤1.10持卡人加油在加油过程中,IC卡允许被下电。若下电以后,IC卡重新上电,经过交易预处理(验证密码,选择应用)后应可以继续执行步骤1.11而不受影响。
步骤1.11产生GMAC加油消费安全认证模块PSAM用过程密钥SESPK产生一个报文认证码GMAC,供IC卡来验证PSAM的合法性。
SESPK作用于以下数据进行GMAC的计算(按所列顺序)——加油交易金额步骤1.12终端发出DEBIT FOR PETROL命令。
步骤1.13验证GMAC收到DEBIT FOR PETROL命令后,IC卡先验证终端提交的IC卡脱机交易序号CTC是否匹配,若失败直接出错返回,不影响出错计数器。
IC卡要验证GMAC的有效性,如果GMAC是有效的,交易处理将继续执行步骤1.14,如果GMAC是无效的,错误状态‘9302’(MAC无效)被返回给终端,同时IC卡内部出错计数器减一,若出错计数器减到0则永久锁死IC卡以防止恶意试探。
步骤1.14交易处理IC卡从卡上的加油电子存折余额中减去加油消费的交易金额,并将加油电子存折从灰锁状态下恢复为正常状态。IC卡必须全部成功地完成以上几个步骤或者一个也不完成,如果余额的更新或加油电子存折状态的恢复没有成功,交易明细也不应被更新。
IC卡产生一个报文验证码MAC4供PSAM对IC卡合法性进行检查。MAC4包含在从IC卡传送到PSAM(通过终端)的DEBIT FOR PETROL命令响应报文中。作为计算MAC4的输入,DPK作用于这些数据进行MAC4计算——加油交易金额——交易类型标识——终端机编号——交易日期(主机)——交易时间(主机)IC卡也应采用相同的机制直接用交易认证密钥DTK产生一个交易签名TAC。TAC将被写入终端交易明细,以便后来传给主机进行交易验证。下面是用来生成TAC的要素——交易金额——交易类型标识——终端机编号(发出DEBIT FOR PETROL命令的终端)——终端交易序号(发出DEBIT FOR PETROL命令的终端)——交易日期(发出DEBIT FOR PETROL命令的终端)——交易时间(发出DEBIT FOR PETROL命令的终端)IC卡将用以下数据组成的一个记录更新交易明细。
——加油电子存折脱机交易序号——交易金额——交易类型标识——终端机编号(发出DEBIT FOR PETROL命令的终端)——交易日期(发出DEBIT FOR PETROL命令的终端)——交易时间(发出DEBIT FOR PETROL命令的终端)步骤1.15验证MAC4收到从IC卡(经过终端)传来的MAC4后,PSAM要验证MAC4的有效性。MAC4验证的结果被传送到终端以便采取必要的措施。
2、联机解灰锁交易联机解灰锁交易允许持卡人将IC卡上被灰锁的加油电子存折补扣解锁(恢复到正常状态)。本交易必须在联机的银行终端上进行。持卡人必须提交PIN来完成解灰锁交易。
步骤2.1终端发出INITIALIZE FOR UNLOCK命令启动加油交易。
步骤2.2IC卡收到INITIALIZE FOR UNLOCK命令后,处理INITIALIZE FOR UNLOCK命令,包括(1)检查IC卡是否处于灰锁状态,如果不是,返回状态码‘6901’(无效的命令)且不返回其他数据。(2)检查命令中包含的密钥索引是否被IC卡支持,如果不支持,返回状态码‘9403’(不支持的密钥索引)且不返回其他数据。(3)通过以上检查之后,IC卡将产生一个伪随机数ICC、过程密钥SESULKK和一个报文认证码MAC1,供主机来验证解灰锁交易和IC卡的合法性。过程密钥SESULKK被用于加油电子存折的解灰锁交易。过程密钥SESULKK是用解灰密钥DULKK与产生消费过程密钥相同的机制产生。用来产生过程密钥SESULKK的输入数据如下SESULKK伪随机数ICC‖加油电子存折联机交易序号‖‘8000’SESULKK作用于以下数据进行MAC1的计算(按所列顺序)——加油电子存折余额——交易类型标识(解灰锁交易为‘11’)——终端机编号IC卡将把INITIALIZE FOR UNLOCK命令的响应报文送给终端处理,如果IC卡返回的状态不是‘9000’,终端将终止交易。
在收到INITIALIZE FOR UNLOCK命令的响应报文后,终端将包含表17中数据的解灰锁许可请求报文送往发卡方主机。
步骤2.3验证MAC1主机将生成SESULKK并且确认MAC1是否有效,如果MAC1有效,交易处理将继续执行步骤2.5,如果MAC1无效,交易处理将执行步骤2.4。
步骤2.4回送错误状态如果出现使解灰锁交易不能被接受的条件,则主机会通知终端。终端应采取相应的措施。
步骤2.5主机处理在确认能够进行圈存交易后,主机会产生一个报文验证码MAC2,供IC卡对主机合法性进行检查。SESULKK作用于以下数据进行MAC2计算(按所列顺序)——补扣的交易金额
——交易类型标识——终端编号——交易日期(主机)——交易时间(主机)主机发送一个解锁交易接受报文给终端,其中包括MAC2、交易日期(主机)和交易时间(主机)。
步骤2.6终端收到主机的解锁交易接受报文后,终端会发出DEBIT FOR UNLOCK命令给IC卡以更新卡上加油电子存折余额并将加油电子存折恢复到正常状态。
步骤2.7验证MAC2收到DEBIT FOR UNLOCK命令后,IC卡要验证MAC2的有效性,如果MAC2是有效的,交易处理将继续执行步骤步骤2.8,如果MAC2是无效的,错误状态‘9302’(MAC无效)被返回给终端。
步骤2.8交易处理IC卡从卡上的加油电子存折余额中减去补扣的交易金额,将加油电子存折联机交易序号加1,并将加油电子存折从灰锁状态下恢复为正常状态。IC卡必须全部成功地完成以上几个步骤或者一个也不完成,如果余额或序号的更新或加油电子存折状态的恢复没有成功,交易明细也不应被更新。IC卡产生一个报文验证码MAC3供主机对IC卡合法性进行检查。MAC3包含在从卡传送到主机(通过终端)的DEBIT FOR UNLOCK命令响应报文中。SESULKK作用于以下数据进行MAC3计算——加油电子存折余额——加油电子存折联机交易序号(加1前)——补扣金额——交易类型标识——终端机编号——交易日期(主机)——交易时间(主机)IC卡也应采用相同的机制直接用交易认证密钥DTK产生一个交易签名TAC。TAC将被写入终端交易明细,以便后来传给主机进行交易验证。下面是用来生成TAC的要素——加油电子存折余额——加油电子存折联机交易序号(加1前)——补扣金额
——交易类型标识——终端机编号——交易日期(主机)——交易时间(主机)IC卡用以下数据组成的一个记录更新交易明细——加油电子存折联机交易序号——补扣金额——交易类型标识——终端机编号——交易日期(主机)——交易时间(主机)步骤2.9验证MAC3主机收到从IC卡(经过终端)传来的MAC3后,要验证MAC3的有效性,MAC3验证成功则继续步骤2.10,否则主机发给终端错误报文。
步骤2.10返回确认在成功完成步骤2.9后,主机做相应的处理。
3、本地解灰锁交易本地解灰锁交易允许持卡人将IC卡上被灰锁的加油电子存折补扣解锁(恢复到正常状态)。本交易必须在拥有上次逃卡记录的终端上进行。持卡人必须提交PIN来完成解灰锁交易。
步骤3.1终端发出GET GREY STATUS命令启动本地解灰锁交易。
步骤3.2IC卡收到GET GREY STATUS命令后,处理GET GREY STATUS命令,IC卡将电子存折的灰标志状态(GREY FLAG)、电子存折的余额、电子存折的联机交易序号、电子存折的脱机交易序号、锁卡时的MAC3和TAC通过GET GREY STATUS命令的响应报文返回给终端。
步骤3.3验证MAC3终端判断IC卡的电子存折是灰锁的情况下,将得到MAC3后与逃卡记录中的MAC3比较。
步骤3.4终端发出DEBIT FOR PETROL命令。
步骤3.5验证GMAC收到DEBIT FOR PETROL命令后,IC卡先验证终端提交的IC卡脱机交易序号CTC是否匹配,若失败直接出错返回,不影响出错计数器。
IC卡要验证GMAC的有效性,如果GMAC是有效的,交易处理将继续执行步骤3.6,如果GMAC是无效的,错误状态‘9302’(MAC无效)被返回给终端,同时IC卡内部出错计数器减一,若出错计数器减到0则永久锁死IC卡以防止恶意试探。
SESPK作用于以下数据进行GMAC的计算——加油交易金额步骤3.6交易处理IC卡从卡上的加油电子存折余额中减去加油消费的交易金额,并将加油电子存折从灰锁状态下恢复为正常状态。IC卡必须全部成功地完成以上几个步骤或者一个也不完成,如果余额的更新或加油电子存折状态的恢复没有成功,交易明细也不应被更新。
IC卡产生一个报文验证码MAC4供PSAM对IC卡合法性进行检查。MAC4包含在从卡传送到PSAM(通过终端)的DEBIT FOR PETROL命令响应报文中,作为计算MAC4的输入,DPK作用于这些数据进行MAC4计算——加油交易金额IC卡也应采用相同的机制直接用交易认证密钥DTK产生一个交易签名TAC。TAC将被写入终端交易明细,以便后来传给主机进行交易验证。下面是用来生成TAC的要素——交易金额——交易类型标识——终端机编号(发出DEBIT FOR PETROL命令的终端)——终端交易序号(发出DEBIT FOR PETROL命令的终端)——交易日期(发出DEBIT FOR PETROL命令的终端)——交易时间(发出DEBIT FOR PETROL命令的终端)IC卡将用以下数据组成的一个记录更新交易明细。
——加油电子存折脱机交易序号——交易金额——交易类型标识——终端机编号(发出DEBIT FOR PETROL命令的终端)——交易日期(发出DEBIT FOR PETROL命令的终端)——交易时间(发出DEBIT FOR PETROL命令的终端)步骤3.7验证MAC4收到从IC卡(经过终端)传来的MAC4后,PSAM要验证MAC4的有效性。MAC4验证的结果被传送到终端以便采取必要的措施。
在本加油电子存折应用中,数据元定义包括1、交易类型标识10——加油消费11——解灰锁12——本地解灰锁其他交易类型标识与现有技术同。
2、密钥关系用于加油电子存折的特殊密钥,均为双倍长DEA密钥(128比特长)。
其他的密钥关系请参照现有技术定义。
IC卡内部指令状态变化包括1、加油电子存折的内部文件每一个加油电子存折都有一个内部文件与其对应,该文件用于存放灰锁时的伪随机数ICC、终端机编号、终端交易序号、交易日期、交易时间和MAC2,该文件的内容应不受IC卡电源的影响,以供本地解锁时恢复锁卡时的密钥状态。
操作加油电子存折2、IC卡在收到对加油电子存折操作的命令后需要增加的内部操作——检查该加油电子存折是否处于灰锁状态。如果不是,进入空闲状态。
——如果是灰锁状态,IC卡从内部文件中恢复上次锁卡时的伪随机数ICC、终端机编号、终端交易序号、交易日期、交易时间和MAC2,并通过恢复的数据和相同的机制恢复过程密钥SESPK。
权利要求
1.一种实现IC卡安全交易的方法,其特征在于在IC卡上建立至少一个灰锁标记,该等灰锁标记是与IC卡某些操作的权限相关的;在灰锁IC卡时,即对灰锁标记操作的同时,将锁卡的来源记入IC卡;在解灰锁的同时或之前,IC卡需执行对该锁卡来源以及解灰锁合法性的判断。
2.根据权利要求1所述的方法,其特征在于所述的解灰锁合法性的判断可以是扣款金额合法性的判断,对其判断的依据可以是基于所述的锁卡来源。
3.根据权利要求1或2所述的方法,其特征在于所述的锁卡来源为在IC卡上建立的一条过程密钥,该过程密钥至少与一IC卡临时生成的伪随机数相关。
4.根据权利要求1所述的方法,其特征在于所述的IC卡某些操作的权限可以是在灰锁IC卡时,IC卡禁止执行除与解灰锁相关的操作以外的其他可能引起IC卡上电子存折(钱包)余额变化的IC卡操作。
5.根据权利要求1或2所述的方法,其特征在于更进一步的可将扣款操作和解灰锁操作合并为IC卡上的一步操作,即IC卡执行对所述的锁卡来源及扣款金额合法性的判断成功之后,执行扣款解灰锁操作。
6.根据权利要求5所述的方法,其特征在于更进一步的可在主机上保存有一条可以实现扣款、强制解灰锁操作的密钥,使灰锁后的IC卡可在联机的终端上通过联机方式实现补扣款及强制解灰操作。
7.根据权利要求1所述的方法,其特征在于更进一步的可在主机上保存有一条可以实现强制解灰锁操作的密钥,使灰锁后的IC卡可在联机的终端上通过联机方式实现强制解灰锁操作。
8.根据权利要求5所述的方法,其特征在于所述的灰锁IC卡是指IC卡根据其锁卡的来源生成一认证码,同时将产生该锁卡来源的所需参数传递给终端,由终端采用与IC卡相同的机制产生另一锁卡来源码,并使用该锁卡来源码生成另一认证码,将该认证码送入IC卡,IC卡判断与上述IC卡自身生成的认证码是否相同,若相同时执行灰锁操作并将这次产生的一灰锁特征码返回给终端,该灰锁特征码是根据包括锁卡来源及相应信息在内的数据生成。所述的扣款解灰锁是指终端根据其锁卡来源和扣款所需的参数生成一认证码,将该认证码与相应参数一并送入IC卡,IC卡内部采用其自身的锁卡来源和相同的参数通过相同的机制产生另一认证码,判断该认证码与终端产生的认证码一致就从IC卡的电子存折(钱包)上实现扣款,扣款成功的同时将灰锁标记清除。
9.根据权利要求8所述的方法,其特征在于终端更进一步可将扣款时所需的认证码、这次的逃卡金额及灰锁特征码共同作为这次灰记录的部分信息保存起来,并上传给中心机;如果某次交易过程未完整结束的未被扣款解灰的IC卡,下一次在任何一个保存有该灰记录的终端上使用时,终端可先验证该灰锁特征码以确定IC卡上的锁卡来源与计算该条灰记录中的扣款认证码的锁卡来源相同,通过后执行补扣款解灰锁操作。
10.根据权利要求3所述的方法,其特征在于所述的过程密钥为过程消费密钥(SESPK)=3DES(DPK,DATA),其中DPK是IC卡上电子存折(钱包)的消费密钥,是由电子存折(钱包)消费主密钥(MPK)根据该IC卡的应用序号分散得到,DATA是特定的参数,包括有所述的IC卡临时生成的伪随机数(ICC)、电子存折(钱包)的交易序号(CTC)、终端交易序号(TTC)的最后两个字节。
11.根据权利要求1所述的方法,其特征在于将灰锁标记并入IC卡上电子存折(钱包)的属性参数中,构成一特殊的加油电子存折(钱包)时,除具备通常的读余额、圈存、圈提、消费/取现、改透支限额等功能外,同时增加了加油消费、本地解灰锁和联机解灰锁功能;描述该加油电子存折(钱包)的状态除通常的空闲状态、圈存状态、消费/取现状态、圈提状态、修改状态外,还存在预加油状态、灰锁状态、和解灰锁状态,并在加油电子存折(钱包)通常的命令集中增加了加油初始化、加油锁卡、加油消费、解锁初始化、解锁、读取状态命令,其中,加油初始化命令用于初始化加油消费交易,加油锁卡命令用于灰锁加油消费电子存折(钱包),加油消费命令用于本地加油消费交易同时解灰锁,解锁初始化命令用于初始化联机解灰锁消费交易,解锁命令用于联机解灰锁交易同时补扣加油消费,读取状态命令用于读取灰锁状态并启动本地解灰锁交易。
全文摘要
本发明系关于一种实现IC卡安全交易的方法,其特征在于:在IC卡上建立至少一个灰锁标记,该等灰锁标记是与IC卡某些操作的权限相关的;在灰锁IC卡时,即对灰锁标记操作的同时,将锁卡的来源记入IC卡;在解灰锁的同时或之前,IC卡需执行对该锁卡来源以及解灰锁合法性的判断。对解灰锁合法性的判断可以是对扣款金额合法性的判断,判断的依据即为该锁卡来源。更进一步的可将扣款操作和解灰锁操作合并为IC卡上的一步操作,即IC卡执行对所述的锁卡来源及扣款金额合法性的判断成功之后,执行扣款解灰锁操作。从而彻底有效地解决非法解锁的问题,使IC卡的消费交易过程更加安全顺畅。
文档编号G06K19/073GK1287338SQ9911898
公开日2001年3月14日 申请日期1999年9月6日 优先权日1999年9月6日
发明者李东声 申请人:李东声
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1