PBOC/EMV 流程概述 && 要点叙述

(一)  EMV/PBOC 应用选择


根据PBOC3.0的第三部分《中国金融集成电路(IC)卡规范第3部分:与应用无关的IC卡与终端接口规范》中提到的应用选择,如下:

1.      应用选择是触电激活\卡片复位之后,在第一个应用功能之前执行的处理过程。

2.      应用选择过程,使用IC卡的数据,决定终端程序与相应的IC卡应用进行交易,过程分两个步骤:建立终端支持的IC卡应用列表,在这个候选列表中选择一个将要运行的应用。

3.      AID由5个字节的RID加上最长11个字节的PIX。AID是唯一的,PIX可以不唯一,针对相应的AID有特定的含义;PIX前面3个字节:010101为借记,010102为贷记,010103为准贷记。

4.      ADF的目录入口可以包括‘87’:应用优先权标识符。一个字节,第一个位表明是否需要持卡人确认才可以选择该应用。


根据第四部分,《中国金融集成电路(IC)卡规范 第4部分:借记贷记应用规范》交易流程大致如下:

1.      应用选择(M):终端检测终端与卡片都支持的应用,或者终端根据发卡行事先定义的优先级别自动选择应用。SELECT选择应用,卡片返回FCI,如果卡片支持SM2,还要返回SM2指示器:DF69.[SELECT& READ RECORD]通过前面这两个命令,进行目录选择,获取卡片支持的应用列表。终端也可以对列表中包含的每个应用对卡片发送SELECT命令,最终形成候选列表。如果超过一个应用有

2.      应用初始化(M):终端读取卡片该应用的应用数据决定要执行的处理。[GPO]

3.      读应用数据(M):在应用初始化提供的AFL标记了文件盒记录号,终端读取并保存。[READ RECORD]

4.      脱机数据认证(O):SDA或DDA或CDA。校验卡片真实性。[如果DDA,INTERNAL ANTHENTICATE]

5.      处理限制(M):检查交易是否允许继续,比如:生效日期,失效日期,应用版本号,国内国外,现金或购物或服务。

6.      持卡人验证(M):验证持卡人身份,通过CVM lists,包括:脱机明文PIN,联机PIN,签名,CVM失败,无需CVM,签名加联机PIN,身份证件验证。[GET DATA & VERIFY]

7.      终端风险管理(M):终端通过数据进行最低限额检查,频度检查,新卡检查,异常文件检查,商户强制交易联机,随机选择联机等完成风险管理。

8.      终端行为分析(M):根据脱机数据认证,处理限制,持卡人验证,终端风险管理,的结果以及终端和卡片中设置的风险管理参数决定如何继续交易:脱机批准、脱机拒绝、联机授权。然后终端向卡片请求应用密文,TC为批准,ARQC为联机,AAC为拒绝。[GAC]

9.      卡片行为分析(M):卡片收到密文请求时,检查数据,决定是否要改变终端设定的交易处理并返回密文。

10.  联机处理(O):终端将卡片产生的ARQC密文发送至发卡行进行联机授权。报文包括ARQC密文和生成密文的数据以及脱机处理结果的指示器。发卡行的响应信息包括授权响应密文ARPC,也可以包括发卡行脚本。如果授权响应包括ARPC而且支持发卡行认证,卡片通过确认ARPC而执行发卡行认证校验响应是否来自真实的发卡行。[EXTERNAL AUTHENTICATE]

11.  发卡行脚本处理(O):终端直接发送脚本到IC卡,影响卡片后续功能。

12.  交易结束(O):除非交易前几个步骤因异常而终止,否则必须有此步骤。卡片和终端执行此处理完成交易,卡片生成TC或AAC。如果终端在授权信息后传送清算信息,则TC应包括在该清算信息里面,对于发卡行批准而卡片拒绝的交易,终端需发起冲正。[GAC]


下面是应用选择细节流程:

1.        应用选择的卡片数据:ADF,AEF,AID,FCI,PSE,PDOL,LOG ENTRY,SFI

2.        终端数据:AID,选择指示器(是否匹配)。

3.        使用SELECT和READ RECORD指令,获取卡片支持的应用信息,如果有PDOL,在应用初始化时处理PDOL。

4.        终端先建立应用列表,可以使用目录选择方法(卡片可以不支持)或者使用AID列表选择方法。得到共同支持的应用之后,如果支持,可以通过此案客人选择应用或者确认应用,通过最高优先级别确定选择的应用。终端可以支持持卡人对应用的选择和确定。

5.        总体流程描述:终端通过目录选择或者AID选择,得到共同支持的应用列表。终端如果支持持卡人选择应用,则根据优先级别显示并要求持卡人选择,如果持卡人不选择,则终止交易,否则选定应用。如果不支持选择应用,但支持确认应用,则根据优先级别供持卡人确认,根据共同列表直到确认成功。如果终端不支持持卡人选择也不支持确认,则判断该应用是否可以直接选定,如果可以,根据共同列表,直到选定成功。

6.        应用选择后,终端使用GPO命令响应中由卡片提供的AFL,确定从卡片读取哪些应用数据以及哪些应用数据要用到脱机数据认证中。通过AIP,确定卡片是否支持脱机数据认证、持卡人验证,发卡行认证。


下面是读应用数据细节流程:

1.        终端读取交易处理的必要的卡片数据,并决定静态数据认证或动态数据认证中使用的数据。

2.        终端读取卡片记录,并记录相关记录用于脱机数据认证,直到AFL的最后一条记录,并把所有AFL都读完。


脱机数据认证过程:(脱机数据认证是终端使用非对称公钥技术认证来自卡片数据的处理过程)

1.        脱机数据共有两种形式:SDA / DDA。

2.        支持脱机交易的终端应支持静态数据认证,和动态数据认证,复合数据认证可选。支持脱机交易的卡片应支持DDA,CDA可选支持。

3.        任何交易只执行一次脱机数据认证方法。优先权从CDA->DDA->SDA。

4.        静态数据认证使用的终端数据:CA,CA索引,RID,TVR。卡片数据:CA索引,CA证书,公钥指数,公钥余项,失败指示器,静态应用数据。

5.        静态数据认证中,卡片并不执行任何的处理。

6.        终端认证过程:终端从认证中心获取认证中心公钥和公钥索引以及相关信息。从卡片获取当前使用的公钥索引。使用认证中心公钥验证发卡行公钥证书,从证书中获取发卡行公钥。然后使用发卡行公钥验证签名静态应用数据,进行哈希值的比较,并设置终端验证结果中的指示器。

7.        脱机动态数据认证,终端先使用发卡行公钥和认证中心公钥验证卡片的静态数据,处理过程与SDA相似。验证了静态数据之后,终端向卡片申请动态签名,使用内部认证实现标准动态数据认证,以及使用第一个AC生成命令实现复合动态数据认证/应用密文的生成。

8.        卡片用IC卡私钥对终端随机数和来自卡片的动态数据进行签名,生成一个数据签名,叫签名动态数据认证。复合动态数据认证生成的签名数据包括应用密文。卡片把动态签名发给终端。

9.        动态数据认证中使用的终端数据除了静态数据认证中用到的数据以外,还包括DDOL,和随机数。IC卡的卡片数据除了动态数据认证以外,包括动态数据认证失败指示器,DDOL,IC卡动态数字,IC卡私钥,IC卡公钥证书,IC卡的指数和余项。对于复合动态数据认证,卡片的数据还包括应用密文(由GAC得到),和密文数据类型。

10.    在动态数据认证过程中,动态签名由卡片生成,其余由终端执行。

11.    具体的动态数据认证步骤:终端通过公钥索引以及卡片的RID获取从后台下发的相应的认证中心公钥以及相关信息。通过认证中心公钥验证发卡行公钥证书,并从发卡行公钥证书中获取发卡行公钥。通过发卡行公钥验证IC卡公钥证书,并取出IC卡公钥。终端发送包括随机数的INTERNAL AUTHENTICATE命令到卡片,卡片响应此命令,生成一个动态签名,传递到终端。终端使用IC卡公钥验证动态签名。对于复合动态数据认证而言,终端使用GAC命令生成动态密文,对密文的要求和认证包括动态签名的生成和动态签名的校验。

12.    如果复合动态数据认证失败而且卡片GAC返回的密文是ARQC,则终端发送第二个GAC请求AAC。如果复合动态数据认证失败且返回的应用密文是TC,则交易被脱机拒绝,而且不要求第二个GAC。


处理限制过程:

1.        终端对应用版本,生效日期和失效日期以及交易点条件进行检查。

2.        处理限制中卡片数据包括:应用版本号,应用用途控制,发卡行国家代码,应用生效日期,应用失效日期。终端处理限制的数据包括:应用版本号,终端性能,终端国家代码,交易日期,交易类型。

3.        处理限制的检查包括:应用版本号的检查,应用用途控制的检查,应用生效日期,失效日期的检查。处理限制的结果会在TVR中体现,不会直接影响交易结果。


持卡人验证描述:

1.        持卡人验证用于确保持卡人是合法的,卡片不是丢失或被盗。验证方法有:脱机明文PIN验证,联机PIN验证,签名,CVM失败,无需CVM,签名与脱机明文PIN组合,身份证件验证。

2.        持卡人验证方法列表相关的卡片数据:AIP,CVM列表。脱机PIN验证处理的卡片数据:应用缺省行为,卡片验证结果,PIN重试次数计数器,Pin重试次数上限,参考PIN.终端在持卡人验证处理的终端数据:加密个人PIN数据,密码键盘保密密钥,终端性能,终端验证结果,个人PIN.

3.        脱机PIN的处理:GET DATA & VERIFY.终端通过get data获取PIN从重试次数,如果获取失败,则认为可以继续进行脱机PIN验证。Verify用于脱机明文PIN验证,卡片验证PIN并返回下面三种情况之一:PIN匹配,PIN不匹配并目前剩下的尝试次数,先前的交易中PIN的输入次数已经超过了。

4.        持卡人验证处理分为:持卡人验证方法列表处理和执行持卡人验证。

5.        在列表处理中,卡片提供数据,终端进行处理。终端判断AIP和持卡人验证方法列表,决定是否执行持卡人验证。从CVM的第一个列表开始,终端检查持卡人验证条件是否复合,CVM代码是否可以识别,如果可以识别,则执行持卡人验证方法。如果执行成功,则终端进行终端风险管理。如果无法识别,或者执行验证识别,则检查是否可以继续处理下一个CVM,直到最后一个CVM条目。最后确定此案客人验证成功或失败。


终端风险管理描述:

1.        终端风险管理使大额交易联机授权,并确保芯片交易能周期性地联机。

2.        发卡行被强制要求在应用交互特征AIP中将改位设置成1以触发终端风险管理,但终端应执行终端风险管理而不必考虑卡片的设置情况。

3.        终端风险管理中的卡片数据:PAN,ATC,上次ATC寄存器,连续脱机交易下限,连续脱机交易上限。(PAN用于检查异常文件,ATC终端频度检查,上次联机ATC寄存器用于频度检查或者新卡检查,连续脱机交易下限用于检查交易必须联机之前所允许的最大连续脱机交易笔数,连续脱机交易上限用于脱机交易必须拒绝之前所允许的最大连续脱机交易笔数。

4.        终端风险管理中与终端相关的数据:授权金额:用于最低限额检查;偏置随机选择的最大目标百分数:用于随机选择交易联机处理;随机选择的目标百分比:随机选择交易联机的处理;终端最低限额:用于最低限额检查和随机选择交易联机处理;TVR:记录终端风险管理检查的结果;偏置随机选择与阈值:用于随机选择交易联机处理的数值;交易日志:用于终端最低限额检查;交易状态信息:标明是否已经执行终端风险管理。

5.        终端风险管理过程:如果先前没有,则通过GET DATA从卡片中获取上次联机交易ATC寄存器和应用交易计数器。终端异常文件检查-》商户是否强制交易联机-》最低限额检查(使超过终端最低限额的交易执行联机授权。如果终端包含交易日志,终端就检查同一张卡片之前的交易金额加上现在的交易金额是否超过了最低限额)-》随机交易选择(随机选择脱机和联机交易)-》终端频度检查(终端必须读取到连续脱机交易上限和连续脱机交易下限,通过GET DATA 获取上次联机ATC和交易计数器ATC,如果ATC减去上次联机ATC大于连续脱机交易下限,将”超过连续脱机交易下限”设置为1,如果ATC减去上次联机ATC大于连续脱机上限,将”超过连续脱机交易下限”设置为1.)-》新卡检查(终端检查上次联机ATC寄存器,如果为0,则置新卡位为1)


终端行为分析:

1.        终端把发卡行设置在卡片里及收单行设置在终端里的规则应用于脱机处理结果,决定交易应该是脱机批准或脱机拒绝或联机授权。

2.        行为分析牵涉到两个步骤:检查脱机处理结果、请求密文处理。

3.        检查脱机处理结果卡片的数据:发卡行行为代码IAC;要求密文处理的卡片数据:卡片风险管理数据对象列表1CDOL1.

4.        检查脱机处理结果终端的数据:终端行为代码TAC和终端验证结果TVR;要求密文处理的终端数据:终端数据元(在卡片风险管理数据对象列表1中得以详细说明的终端数据元包括在GAC命令中)。

5.        涉及的命令包括GAC。该命令指明了下列应用密文中的一种:TC、AAC和ARQC。

6.        使用发卡行行为代码和终端行为代码与终端验证结果共同使用决定交易处理过程。终端脱机处理的结果决定是否交易需要联机、脱机批准或脱机拒绝。该处理结果的步骤决定了将申请的密文类型:脱机批准、联机授权和脱机拒绝。


卡片行为分析:

1.        卡片收到终端发送的GAC,开始卡片行为分析,最终决定本次交易的结果。

2.        卡片风险管理行为包括:上次交易行为,新卡检查,频度检查。然后卡片响应交易结果:如果终端请求脱机,卡片可返回脱机,联机,拒绝;如果终端请求联机,卡片可返回联机,拒绝;如果终端请求拒绝,卡片必须返回拒绝。

3.        如果终端在GAC中表明执行CDA,而且卡片在GAC的响应中返回的密文类型是TC或者ARQC。则卡片用IC卡私钥将应用密文、密文信息数据以及其他数据签名在GAC的响应数据返回给终端。


联机交易:

1.        处理流程包括联机请求、联机响应。如果需要,可以执行发卡行认证,如果已经执行CDA,处理过程还包括动态数据的验证。

2.        涉及命令:外部认证External Authenticate。如果执行了发卡行认证,终端应使用从发卡行请求到的发卡行认证数据通过外部认证命令验证授权响应密文的正确性。

3.        如果在GAC中标识执行CDA,同时返回的密文类型是ARQC或TC。终端将使用IC卡公钥验证动态密文。如果验证不正确,CDA失败并转至完成处理;如果验证正确则进行标准联机处理。

4.        卡片在GAC返回ARQC,如果终端具备联机能力则终端发出联机授权报文,否则转至完成处理。

5.        收到后台的响应报文,如果包括ARQC,则完成外部认证,卡片与终端都需要记住外部认证的结果。


发卡行脚本处理:

1.        发卡行脚本处理使得发卡行不用二次发卡就可以改变卡片个人化数据。支持的脚本命令包括:更改卡片参数、应用锁定和解锁、卡片锁定、重置PIN计数和修改脱机PIN。

2.        MAC Key用到三个密钥:由发卡行确定的唯一双倍长对称密钥MAC主密钥;在个人化时由MAC主密钥分散后写入卡片的双倍长对称密钥MAC子密钥;在交易过程中通过MAC子密钥产生的MAC过程密钥。

3.        使用MAC过程密钥产生脚本命令的MAC码。

4.        如果脚本中包含敏感数据,还会使用到数据加密密钥。比如脱机PIN。与MAC Key一样包括有数据加密主密钥,子密钥,过程密钥。分散过程与MAC Key一样。

5.        脚本处理中,卡片使用的计数器和指示器:应用交易计数器,卡片验证结果,发卡行脚本命令计数器,发卡行脚本失败指示器.

6.        终端使用的数据元:发卡行脚本结果(此结果要包括在清算报文和下次联机授权中),终端验证结果(最后一次GAC之前和之后发卡行脚本是否成功),终端状态信息。

7.        发卡行的联机响应数据:发卡行脚本命令(按照BER-TLV格式,用86开始),发卡行脚本标识(发卡行用来标识发卡行脚本),发卡行脚本模板2(当前仅支持脚本模板2).

8.        处理流程包括:发卡行脚本、命令执行和安全报文。

9.        发卡行把脚本发到收单方,如果包括标志“72”,在最终GAC后才执行该脚本。卡片收到脚本后,检查安全报文。


交易结束

1.        如果要求联机,但终端不支持联机或者联机无法完成,则终端和卡片通过其他的分析决定加以是否可以脱机完成或拒绝。

2.        如果终端CDA失败,--如果卡片请求ARQC,则终端第二次GAC的时候请求AAC;--如果卡片请求TC,则终端拒绝并返回响应码。

3.        发卡行的联机确认结果可能因为发卡行认证结果和卡片的选项而变成拒绝交易。

4.        第二次GAC也可以标识成需要执行CDA.GAC指令包含在卡片的CDOL2中详细描述的终端数据元,CDOL2数据包含发卡行联机返回的授权响应码或在联机授权无法完成的情况下由终端返回的授权响应码。

5.        具体流程:卡片行为分析后,已经得出:脱机批准、拒绝交易或联机授权。联机处理时,联机授权已经成功完成或由于通讯原因未完成。

6.        当卡片行为分析执行第一个GAC命令返回TC或者AAC时,则交易脱机接受或者拒绝。第一次GAC返回TC,如果CDA成功或不执行,则脱机批准;如果第一次GAC返回TC而CDA失败,则拒绝交易。如果第一次GAC返回ARQC且CDA失败,则在第二次GAC中请求AAC。如果第一次GAC返回AAC,则终端直接拒绝交易。当卡片行为分析第一个GAC返回ARQC,如果由于终端不支持或者连接失败,终端向卡片请求产生AAC或者TC。如果联机授权完成,终端向卡片发送第二个GAC请求TC或者AAC。

7.        终端分析第一次GAC返回数据,如果是返回TC或者ARQC,则终端根据卡片返回结果以及CDA执行结果确定为脱机批准或拒绝。

8.        如果终端第一次GAC返回ARQC,如果联机失败,则通过缺省的IAC和TAC执行终端行为分析,设置授权响应码。如果联机完成,授权响应码源于后台。然后得到授权响应码,设置密文为TC或AAC,并发出最终GAC。根据卡片的响应,得到最终结果。如果有脚本,则执行脚本。


安全、密钥和数字证书

借记贷记安全相关:SDA/CDA/GAC/安全报文。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容