一种发卡行脚本指令链式MAC的实现方法与流程

文档序号:12366385阅读:620来源:国知局
一种发卡行脚本指令链式MAC的实现方法与流程

本发明涉及金融支付领域,具体涉及一种发卡行脚本指令链式MAC的实现方法。



背景技术:

在金融交易中,最为关键是发卡行脚本,它是发卡行向终端发送的命令或者命令序列,目的是向IC卡片连续输入命令。但是,数据在传输过程中可能存在被监听、被截获或则篡改的风险,给IC卡片持卡人或发卡行造成财产损失。



技术实现要素:

本发明所要解决的技术问题是改进现有发卡行脚本指令传输方案,加强卡片和发卡行之间的认证和数据传输的安全性的问题。

为了解决上述技术问题,本发明所采用的技术方案是提供一种发卡行脚本指令链式MAC的实现方法,包括以下步骤:

使用卡片衍生MAC的过程密钥对发卡行脚本指令的待加密数据进行加密运算,获得该发卡行脚本指令的MAC;

对于第一条发卡行脚本指令的MAC,待加密数据的组织顺序依次为:APDU指令头5字节、上次应用交易计数器、8字节授权请求密文和命令数据域数据;

对于不是第一条发卡行脚本指令的MAC,待加密数据的组织顺序依次为:APDU指令头5字节、上次应用交易计数器、上一条发卡行脚本指令的MAC和命令数据域数据。

在上述方法中,所述发卡行脚本指令的MAC为8字节全MAC或4字节MAC。

在上述方法中,所述APDU指令头5字节包括CLA、INS、P1、P2和LC。

在上述方法中,使用过程密钥对发卡行脚本指令的待加密数据进行加密运算采用3DES-CBC算法。

在上述方法中,针对当前的应用交易计数器,组织第一条发卡行脚本指令报文时,该脚本指令的MAC初始向量H0为8个字节的全零。

在上述方法中,当发卡行脚本指令的MAC为4字节的MAC时,从对待加密数据进行加密运算的计算结果左侧依次取4字节长度作为MAC,并置CLA的后半字节为4。

在上述方法中,当上一条发卡行脚本指令的MAC长度是4字节时,在MAC后填充4字节00,组成8字节MAC用于组织待加密数据。

本发明计算第一条发卡行脚本指令的MAC使用的是8字节授权请求密文,并在之后计算下一条发卡行脚本指令的MAC时,使用上一条发卡行脚本指令的8字节MAC,使同一应用交易计数器时发卡行脚本指令的MAC构成链式结构,这种链式结构让发卡行脚本指令序列按顺序执行,能够有效防止发卡行脚本指令在数据传输过程中被遗漏、截获或篡改;由于在金融借记、贷记规范中外部认证步骤是可选的,且修改卡片数据又必须具备一定的安全性,而本发明成功校验MAC通过的前提是上一条脚本指令的成功执行,即跟发卡行一样拥有正确的计算数据,这样就有效的保证了卡片和发卡行之间的可靠认证。

附图说明

图1为本发明中发卡行脚本指令的传输系统结构示意图;

图2为本发明中待加密数据的组织结构示意图;

图3为采用本发明提供的一种发卡行脚本指令链式MAC的实现方法进行发卡行脚本指令传输的流程图。

具体实施方式

下面结合说明书附图和具体实施例对本发明做出详细的说明。

本发明通过将各条发卡行脚本指令MAC形成链式,有效地保证了卡片3和发卡行1之间数据传输的安全性。在金融交易中,发卡行脚本指令的传输系统如图1所示,包括发卡行1、终端2和卡片3;

发卡行1用于对卡片3进行个人化数据和联机处理,且通过向终端2发送发卡行脚本指令修改卡片3上的数据;

在金融交易(即借记、贷记交易,是由于持卡者和商户之间的商品或服务交换行为而在持卡者、发卡机构、商户和收单行之间产生的信息交换、资金清算和结算行为,交易类型包括联机、脱机和拒绝交易)中,终端2用于接收发卡行脚本指令、向卡片3发送APDU(应用协议数据单元)指令、接收卡片3处理APDU指令后的响应信息、执行脱机认证或者向发卡行1转发卡片3的响应信息;

卡片3用于执行处执行终端2发送过来的APDU指令和存储发卡行1分配的个人化数据。

其中,

个人化数据是指发卡行1按规定格式为每张卡片3组织的特定数据;

联机处理是指如果卡片3和终端2决定交易,需要一个联机授权,终端2传送一个联机授权报文给发卡行1,这个报文包括授权请求密文、生成授权请求密文的数据和脱机处理结果指示器;

发卡行脚本指令是发卡行1向终端2发送的APDU命令或APDU命令序列,以修改卡片3上存储的允许发卡行1修改的数据;

脱机认证包含静态数据认证(SDA)和动态数据认证(DDA),静态数据认证(SDA)验证卡片中的重要数据在发卡后是否被篡改,终端2使用卡片3中的发卡行公钥验证卡片3中的静态(不变)数据;动态数据认证(DDA)验证卡片3中的重要数据在发卡后是否被篡改,同时验证卡片3是否是伪卡,而动态数据认证有标准动态数据认证(DDA)和复合动态数据认证(DDA/AC-CDA)两种,终端2要求卡片3提供由IC私钥签名动态交易数据生成的动态签名,动态交易数据是由终端2和卡片3为当前交易产生的唯一数据,终端2用从卡片3数据中获取的IC卡公钥来验证动态签名。

本发明提供的一种发卡行脚本指令链式MAC的实现方法为:

使用卡片衍生MAC的过程密钥(MAC UDK)对发卡行脚本指令的待加密数据进行加密运算(按3DES-CBC算法对待加密数据进行运算),获得该发卡行脚本指令的MAC(8字节或4字节),加在APDU指令的末尾处,得到发卡行脚本指令,MAC UDK由卡片上专为计算MAC准备的密钥衍生得到。

发卡行使用授权请求密文(ARQC)计算第一条发卡行脚本指令的MAC。

如图2所示,对于第一条发卡行脚本指令的MAC,待加密数据的组织顺序依次为:APDU头5字节(包括CLA、INS、P1、P2和LC)、上次应用交易计数器、8字节授权请求密文和命令数据域数据;当发卡行脚本指令的MAC为4字节的MAC时,则从对待加密数据进行加密运算的计算结果左侧依次取得4字节长度的数据作为MAC,然后,置CLA的后半字节为4。

针对上次应用交易计数器,组织第一条发卡行脚本指令报文时,该脚本指令的MAC初始向量H0为8个字节的全零。

使用上一条发卡行脚本指令的MAC,计算不是第一条发卡行脚本指令的MAC时,待加密数据的组织顺序与第一条发卡行脚本指令的基本相同,只用将8字节授权请求密文替换成上一条发卡行脚本指令的MAC,即待加密数据的组织顺序依次为:APDU指令头5字节、上次应用交易计数器、上一条发卡行脚本指令的8字节MAC和命令数据域数据。

当上一条发卡行脚本指令的MAC长度是4字节时,在MAC后填充4字节00,组成8字节MAC用于组织待加密数据。

如图3所示,利用本发明进行发卡行脚本指令传输具体包括以下步骤:

步骤S1、在借记、贷记交易中,当卡片3和终端2决定进行联机交易,需要一个联机授权(终端2具有联机能力),则终端2传送一个联机请求(即联机授权报文)给发卡行1;

所述借记、贷记交易,本文档中未描述部分遵循中国金融集成电路(IC)卡规范JR/T 0025中借记贷记应用相关标准。

步骤S2、发卡行1收到联机请求后,发送外部认证指令给卡片3;

步骤S3、卡片3处理外部认证指令,如果通过,则进入步骤S4;否则,交易结束;

步骤S4、卡片3进行交易结束最终检查,并生成最终应用密文;

步骤S5、发卡行1接收应用密文确定交易结果,并使用授权请求密文计算第一条发卡行脚本指令的MAC,发送该指令给卡片3;

步骤S6、卡片3收到发卡行脚本指令报文并验证MAC通过后,执行该发卡行脚本指令;

步骤S7、判断是否还有下一条发卡行脚本指令,如果有,进入步骤S8;否则,交易结束;

步骤S8、发卡行1使用上一条发卡行脚本指令的8字节全MAC,计算下一条发卡行脚本指令的MAC,并发送该指令给卡片3;

步骤S9、卡片3收到发卡行脚本指令报文并验证MAC,通过后,执行该发卡行脚本指令,然后执行步骤S7。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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