一种单张智能卡支持多个金融规范的方法
技术领域
本发明涉及智能卡应用技术领域,具体来说是一种单张智能卡支持多个金融规范的方法。
技术背景
IC卡(Integrated Circuit Card,集成电路卡)根据功能可以划分为存储卡和微处理器卡(CPU Card,以下简称智能卡)。非接触智能卡,又名感应卡或射频卡,由IC芯片和感应天线组成,并完全密封在一个标准PVC(聚氯乙烯)卡片中,无外露部分。非接触式IC卡的读写过程通常由非接触型IC卡与读写器之间通过无线电波来完成。智能卡与磁条卡相比,智能卡中增加了读写保护和数据加密保护,并且在使用保护上采取个人密码、卡与读写器双向认证,使其复制与伪造难度加大,安全性大大提高。由于智能卡复制难度极高,所以具备很强的抗攻击能力。
传统智能卡芯片的操作系统(Chip Operate System,以下简称COS)安装在ROM中,COS是在芯片制造时通过特殊的工艺烧制进去的,这个工艺称为硬掩膜。基于JAVA CARD技术设计开发的小应用程序(以下简称APPLET)也可以通过硬掩膜工艺被安装在ROM中。
EMV标准是由国际三大银行卡组织--Europay(欧陆卡,已被万事达收购)、MasterCard(万事达卡)和Visa(维萨)共同发起制定的银行卡从磁条卡向智能IC卡(Integrated Circuit Card,集成电路卡的简称)转移的技术标准,是基于CPU卡的金融支付标准,目前已成为公认的框架性标准。其目的是在金融IC卡支付系统中建立卡片和终端接口的统一标准,使得在此体系下所有的卡片和终端能够互通互用,并且该技术的采用将大大提高银行卡支付的安全性,减少欺诈行为。目前 正式发布的版本有EMV96和EMV2000。
EMV2000是现行的国际上金融IC卡借记/贷记应用的基础性技术标准,由国际三大银行卡组织联合制定,标准的主要内容包括借贷记应用交易流程、借记/贷记应用规范和安全认证机制等,其目的是为金融IC卡、金融终端、支付系统以及金融机构建立一个统一的通用的标准平台。
Mastercard组织根据EMV2000标准,制订了Mastercard的金融IC卡规范(以下简称Mastercard规范);VISA组织根据EMV2000标准,制订了VISA的金融IC卡规范(以下简称VISA规范);中国人民银行参考和借鉴了最新EMV2000,制订了中国人民银行金融集成电路(IC)卡规范(以下简称PBOC2.0规范)。该规范利用安全性更高的智能IC卡替代现有的磁卡来实现借记/贷记金融应用,使国内发行的金融卡既可以方便地在国外应用,国外的金融卡又可以在国内受理;与此同时,考虑到国内的特殊需求,新规范在受理、身份认证等方面又不同于VISA、Mastercard,拥有自己的特色。
EMV2000只是框架性的标准,并不具备可实施性,各成员组织在该框架范围内,需要对实施细节可以进行具体化的扩展,比如APDU命令PIN(Personal Identification Number)CHANGE/UNBLOCK(个人密码修改/解锁),EMV2000标准描述支持P2(APDU命令头第四个字节)参数为0x00的情况,而VISA和PBOC规范都支持P2参数为0x00、0x01以及0x02的情况,这就是VISA和PBOC在框架范围内对EMV的一种扩展。
目前,对于各个EMV组织下属成员机构针对EMV2000扩展实现之后的不同规范,几乎所有的智能卡厂商都是依据每一个规范专门开发一款COS/APPLET,这样的实现方式虽然可行,但各个具体实现虽然对EMV标准进行了不同程度和不同方式的扩展,这样的扩展却 并没有改变EMV规范的主体,因此,这样的开发方式导致了很大程度上的重复劳动,增加了开发的成本,而且当需要以掩模方式将COS/APPLET安装在ROM空间时,多次掩膜的成本也远高于一次掩膜的成本。
发明内容
本发明针对目前EMV组织下属各个成员及机构针对金融IC卡国际标准(EMV2000)所进行的各种不同方式的扩展,所导致的难以在一张IC卡芯片上实现支持所有这些扩展后的多个金融规范的问题,提出了通过对不同规范的共性与差异性的分析和整理,并根据内定的内部特征标准区分各个标准的方式,实现单张智能卡支持多个金融规范的方法。
本发明解决其技术问题所采取的技术方案是:一种单张智能卡支持多个金融规范的方法,在智能卡应用准备阶段,建立必须的文件,并根据金融规范定义的基本业务流程中存在多个规范的差异部分,在智能卡操作系统的程序主体中嵌入应用类型标志,各金融规范的扩展函数分别对应于所述应用类型标志,
在智能卡使用阶段,根据所述应用类型标志执行对应应用类型的扩展函数。
所述智能卡使用阶段可包括如下步骤:
1)程序处理过程中接收应用协议数据单元命令;
2)读取并检查所述智能卡操作系统中的应用类型标志;
3)根据应用类型标志,调用对应规范的扩展函数。
所述步骤3)中,根据对所述应用类型标志检查,可进行如下具体的处理方式:
a)对于通用的公共处理环节,智能卡处理时不做分支处理;
b)对于多个金融规范间存在差异的处理环节,智能卡根据应用类型标志,调用对应的扩展函数。
应用类型标志可决定智能卡在使用阶段所支持的金融规范的类型,允许在智能卡应用准备阶段修改应用类型标志;允许在智能卡使用阶段安全访问应用类型标志,但不允许修改。
本发明在智能卡的应用准备阶段,建立必需的文件以及设置智能卡使用阶段在卡片上通用的操作系统和应用程序,并在操作系统或应用程序中嵌入不同规范的扩展函数,所述扩展函数中设置对应的应用类型标志等,在使用阶段根据应用协议数据单元中的应用类型标志,调用对应规范的扩展函数,在一个智能卡里实现同时支持一个技术标准中的多个规范应用。具体应用于金融领域的EMV2000技术标准时,只需要在发卡过程中通过执行厂商依据ISO以及其他相关智能卡标准而自定义的内部APDU命令[SET ATF]设置应用支持的规范类型,COS/APPLET运行时便遵循该规范,即可实现同一款COS/APPLET具备支持PBOC2.0、VISA、MASTERCARD这三个规范乃至更多基于EMV2000技术标准扩展的业务需求。也就是说,用同一款COS/APPLET可以同时满足VISA、MASTERCARD、PBOC2.0等三个规范乃至更多基于EMV2000规范扩展的应用需求,以达到在一张IC卡芯片中,同时支持Mastercard规范、Visa规范及PBOC2.0规范三个规范之应用的目的。
附图说明
图1为应用类型标志安全管理示意图
图2为本发明的工作流程图
具体实施方式
首先,对本发明的研发背景做简要概述:
所述IC卡通过I/O接口与终端之间的全部数据交换都是用应用协议数据单元(Application Protocol Data Unit,是智能卡的通讯标准,以下简称APDU)进行的。APDU包括命令APDU和应答APDU两种,命令APDU由终端发送到卡片,应答APDU则是卡片对命令APDU的响应。遵照ISO/IEC 7816-4标准,APDU设计得完全与传输协议无关。
一条命令APDU包含命令头和命令体两个部分,命令体可以有不同的长度,而命令头固定由四个字节的数据元组成,分别是:
■CLA:Class,类
■INS:Instruction,命令
■P1:Parameters 1,参数1
■P2:Parameters 2,参数2
卡片生命周期通常分为以下五个阶段:
■卡生产阶段:设计芯片,开发COS,制造芯片模块,封装卡片
■卡准备阶段:安装COS
■应用准备阶段:应用初始化,应用个人化
■卡使用阶段:应用激活
■卡终止阶段:应用终止,卡停用
其中,应用准备阶段的应用初始化工作,主要包括建立所必需的文件以及设置卡使用阶段在各卡片上通用的COS内置参数等。
下面结合具体实施例对本发明内容加以详细描述。本发明重点在于支持对EMV2000标准的不同扩展,通过对各种扩展规范的分析和整理,以EMV2000标准作为整个COS/APPLET代码的程序主体,将EMV2000提供给各个成员组织自己扩展实现的部分设计为程序接口,然后在COS/APPLET内部内置一个应用类型标志(Application Type Flag,缩写ATF)参数,主程序运行过程中,根据ATF调用相应的扩展接口。
ATF作为COS/APPLET的内置参数,映射到EEPROM上一块特定的物理地址,如图1所示,该EEPROM地址受COS/APPLET的保护,只允许通过专用的函数读取和修改,而禁止普通的EEPROM读写函数操作,且修改ATF的函数调用还受到卡片生命周期的限制,只允许在应用准备阶段的应用初始化时期调用该函数,读取ATF的函数可以在应用准备阶段和卡使用阶段调用。
ATF初始值默认为MasterCard。应用准备阶段的应用初始化时期,COS/APPLET允许通过[SET ATF]命令修改ATF;应用初始化结束之后,COS/APPLET将禁止修改ATF。
COS/APPLET的主程序是依据EMV2000标准而搭建的,因为其他扩展的规范都是依托在EMV2000的基础上,对标准的未明确部分进行的扩展,因此,要实现在同一张卡上分别支持不同规范的关键点就在于,针对这些不同规范在每个细节上的扩展,分别封装接口函数,用于供主程序选择及调用。
对于遵循EMV2000的业务流程中的同一个细节,MasterCard规范与VISA规范、PBOC2.0规范的实现可能都不相同,那么,我们就针对这个细节差异,将每个规范该处细节的处理都分别封装成一个接口函数,当具体业务流程执行到该细节时,只需要根据ATF就可以判定调用具体的一个接口函数。
以EMV标准定义的命令PIN CHANGE/UNBLOCK为例,处理流程如图2中所示。
[100]接收PIN CHANGE/UNBLOCK命令的APDU;
[101]首先,读取所述APDU中的ATF;
[200]执行CLA参数检查,VISA、MasterCard以及PBOC2.0等
规范都对CLA参数进行了扩展,根据ATF调用对应的扩展函数:
[201]当ATF=PBOC2,如图实线箭头指向,调用根据PBOC2规范实现扩展的CLA参数检查函数,
[203]当ATF=VISA,如图虚线箭头指向,调用根据VISA规范实现扩展的CLA参数检查函数;
[300]执行P1参数检查,该项检查对EMV2000的各个扩展规范执行相同的处理,该步骤为公共部分,则执行VISA中的公共应用程序。
[400]执行P2参数检查,VISA、MasterCard以及PBOC2.0等扩展规范对P2参数进行了扩展,根据ATF调用对应的扩展函数:
[401]当ATF=PBOC2,如实线箭头指向,调用根据PBOC2规范实现扩展的P2参数检查函数,
[403]当ATF=VISA,如虚线箭头指向,调用根据VISA规范实现扩展的P2参数检查函数;
[500]继续执行其他处理步骤......
以上对本发明所提供的单个智能卡支持技术标准中多个扩展规范的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。