卡片收到命令后,会用自己的密钥,对ARQC和授权响应码生成ARPC,然后与终端传来的ARPC比较,两都相同,就认为此ARPC是来自一个有效的发卡
行后台.
第七步, 联机圈存报文,
验证了卡片和发卡行的合法性之后,终端向发卡行后台请求圈存,上传的数据包括充值金额,卡内原来的余额等信息,
发卡行后台返回一个写卡的脚本命令, 终端解析这个脚本,直接发给卡片即可. 到这里,卡片充值成功.
第八步,这一步要发送第二请求密文命令(GAC2),
它的作用说白了就是告诉卡片交易结束。与第四步的GAC1不同的是,GAC2的参数里面多了授权响应码,并且请求的密文类型是TC,也就是希望卡片接受交易。如果卡片返回的也是TC,表示接受交易. 第九步,
读交易日志,在整个流程执行的过程中,卡片会以一定的格式读录当前这笔交易的信息,比如授权金额,卡号,交易时间,终端只需通过一个命令就可以把些信息读出,然后提取出有用的信息,以便日后结算.
PBOC/EMV之文件结构
我刚看PBOC/EMV中IC卡的文件结构时,就被DF, MF, EF,DDF,ADF这些概念弄晕了.
无论是中文的PBOC文档还是英文的EMV文档, 对这几个概念讲解的都不够通俗. 不过这也不奇怪,
这种所谓的标准如果讲的太通俗,那么制定这些标准的人又怎么能够称得上是专家呢!
下面根据自己的理解, 把这几个概念讲解一下.
首先, MF,
DF和EF这三个其实是iso7816里的概念. 是7816里规定的卡的文件结构. 这种文件结构是一种树形的结构. MF
可以理解为根目录,DF是目录,EF当成是目录里的文件. 所以MF其是也是一种DF,只不过是最上层的DF.
而ADF,DDF和AEF是PBOC/EMV里的概念. PBOC/EMV里定义的IC卡文件结构是符合ISO7816标准的.
ADF和DDF其实是DF的两种映射, 而AEF是EF的映射. 程序访问时,访问的是ADF,DDF和AEF, 而不是DF和EF.
这种机制非常像操作系统的地址访问,
我们的程序不能访问系统的物理地址,而只能访问由这个物理地址映射的虚拟地址,而同一个物理地址可以是映射到不同的虚拟地址.
所以我们可以把DF, EF 理解成是物理文件结构,而ADF,AEF理解成虚拟的可供程序访问的文件结构.
ADF与DDF有什么区别呢? 简单来说,ADF就已经可以标识一个或一组应用(为什么有一组应用,因为有部分AID匹配,
具体可参考PBOC/EMV文档), 因为它就是应用的入口文件. 而DDF是个目录入口, 它下面有ADF,也有可能还是DDF,
当然也可能什么都没有, 总之它是一个目录. ADF用ADF名来标识应用, ADF名也就是AID.
一个AID代表一个应用,比如电子钱包应用,借记应用,贷记应用等等. AID 是由ISO这种组织来分配. 它分为两个部分,
前面是五个字节的RID, 这个用来唯一标识应用提供商, 后面最长是11字节的PIX., 用来标识某个专有应用, 它由应用提供商定义.
举例来说, ISO可能分给mastercard公司一个RID, 就叫A000000002(5个字节)吧, 然后master- card
公司再用PIX定义一些应用,比如电子钱包, 假设它是0001吧. 我们如果看到一个AID是A0000000020010,
就知道这是master-card 定义的电子钱包应用.事实上一个符合EMV/PBOC
L2标准的终端程序,就是以这些AID为中心在运行,简单说就是找到一个应用,然后处理(处理的过程可就复杂了).
PBOC/EMV在国内的推广带来不仅仅是卡片的变革,它势必引起整个行业的改变, 这其中就包括卡片的操作平台, 金融终端机.
这篇文章就说说,PBOC/EMV的迁移给圈存模式带来的变化.
目前很多圈存机所采用的圈存模式一般是脱机模式, 可以简单的用下图来表示
SAM卡是做什么用的呢. 要回答这个问题,首先你要明白一点,这种模式的圈存是脱机的. 既然是脱机,肯定要有一定的安全认证措施, 否则知道读卡器的模块相应的写卡指令,
任何人都可以写IC卡了.正是因为这个操作是可以脱机完成的, 一般采用SAM卡做这个安全认证,
这种SAM卡也叫ISAM,与读卡器模块构成一个整体.
这个SAM就可以起到读卡器与卡片相互认证的作用,认证双方都是合法的.认证的大致过程是这样的:
首先SAM卡存放一个主密钥, 发卡时,卡中存放用这个主密钥对IC卡的一些信息(比如卡号)加密生成的子密钥,
所以每张卡的子密是不同的.
当把IC卡插入读卡器时, SAM卡生成一个随机数,传给IC卡,IC卡用自己的子密钥加密该数据, 生成一个密文,
然后传给SAM卡,SAM卡读取卡号,用这个卡号生成一个密钥,我暂且把它叫密钥A,用A解密收到的密文,
与之前生成的随机数比较,如果相等, 则表示卡合法.
验证设备是否合法的过程是相反的.
再看看PBOC/EMV模式下的圈存是什么样的呢.如下图所示:
PBOC的IC卡是CPU卡, 里面完善的操作系统保证了它的灵活性, 硬件特性决定了它里面的密钥有极高的安全性.
PBOC/EMV规范要求圈存交易也是必须有联机认证的, 并不是开机初始化时候进行一次,而是每一笔交易都要有这样一个规范流程.
这样一来, 圈存时SAM卡就可以不要了, 取之而来的是更安全的操作. 你可能会说,这样圈存速度就慢了, 但是,这又有什么关系呢,
又不是消费, 它的安全性更重要.
事实,
我个人认为, PBOC给圈存模式带来的变革不仅仅是安全方面的.
我把SAM加读卡器一起叫做卡操作模块, 这种模式下, 一般卡操作模块和IC卡都是一家公司提供, 然后它有一套指令集,

