PBOC借贷记学习(未完待续)

应用选择
应用选择主要目的就是在卡片插入终端的时候,由终端来选择哪些应用是由终端和卡片共同支持的。终端的AID列表是通过IC卡参数下载交易从服务端获取,卡片的AID是在做卡片个人化时写入的。

建立应用列表有两种方法,PSE目录选择方法和AID选择方法。

目录选择法流程:
终端先读取PSE,PSE也是一个目录称为支付系统环境。
通过READ RECORD命令读取PSE中的短文件标识(SFI)以及文件里的记录号。读取的记录号对应的记录就是卡片支持的AID。将卡片支持的AID列表和终端支持的AID列表比较,把共同支持的AID放入候选目录中。

AID选择法流程:
AID选择法,就是终端将自己所支持的全部AID通过SELECT命令发送给卡片,逐一尝试,看哪条AID是卡片所支持的。把卡片也支持的AID放入候选目录中。

建立完列表后,可以1)显示应用供用户选择,或2)自动选择优先级最高的一个应用,用于引导处理交易。

卡片会在终端发送SELECT命令响应中返回PDOL(处理选项数据对象列表)是卡片要求终端提供数据的标签和长度列表。终端之后在应用初始化时处理PDOL,通过GPO命令提供列表中所要求的数据给卡片。

应用初始化
在应用初始化的处理过程中,终端发出GET PROCESSING OPTIONS命令(获取处理选项)给卡片通知卡片交易处理开始。在GET PROCESSING OPTIONS命令中,包括了PDOL域,终端会提供给卡片任何在PDOL中请求的数据元素。(终端发数据给卡片)
卡片对于终端的GPO命令会返回给终端AIP+AFL。
AIP(应用交互特征):用于说明在此应用中卡片支持哪些认证方式(SDA、标准 DDA、CDA、终端风险管理、持卡人验证和发卡行认证),反应卡片是否支持脱机数据认证及类型、持卡人验证、发卡行认证。
AFL(应用文件定位器):AFL就是终端要从卡片里读取的记录文件,当前交易处理需要的卡片record。

读应用数据
终端用(READ RECORD)命令读出卡片中处理交易和执行SDA或DDA的必要数据。(终端从卡片读数据)

脱机数据认证
终端先通过IC卡公钥下载获得认证中心公钥
静态数据认证(SDA)防止卡片数据被非法修改
动态数据认证(DDA)防止卡片被复制,假卡

处理限制
检查卡片生效日期、失效日期、应用版本号、应用用途控制信息。
如果应用不满足条件,终端可以拒绝交易,在TVR中可以看到相关标志位。(被拒绝终端也会存TVR?在交易日志中(emv log)?)

持卡人验证
先看AIP中是否支持持卡人验证位,不设置可以跳过,文档上说(卡片必须设置为一,所以是强制的)
验证持卡人身份合法性。根据CVM列表选择一个方法验证:
* 脱机明文PIN 验证
* 联机加密PIN 验证
* 脱机明文PIN 验证加签名
* 签名
* 无需CVM(认为 CVM 通过)
* CVM处理失败(认为 CVM 失败)
* 出示证件

终端风险管理
先看AIP中是否是否支持终端风险管理位,文档上说(卡片强制设置为1,终端不必考虑卡片的设置,强制执行)
终端决定交易是否联机。
1)最低限额检查
是否超过终端最低限额(floor limit)
2)频度检查
是否超过连续脱机交易次数(上下限,卡片数据读出)
取tag 9F14下限,取tag 9F23上限,取当前ATC计数器,取上次联机时ATC,两个ATC相减得到连续脱机次数,超过上下限就要联机。
ATC(应用交易计数器):自卡片个人化以后处理的交易数量,做的交易笔数。
3)随机选择交易
随机决定交易是否联机授权。
4)商户要求联机
商户将终端设置为交易强制联机。
5)新卡检查
如果取到上次联机时ATC值为0,则判断卡片为新卡,新卡是不支持脱机消费。

终端行为分析
根据脱机数据认证,处理限制,持卡人验证,终端风险管理,的结果以及终端和卡片中设置的风险管理参数决定如何继续交易:脱机批准、脱机拒绝、联机授权。然后终端向卡片请求应用密文,TC为批准,ARQC为联机,AAC为拒绝。
使用到的数据:
IAC(发卡行行为代码):来自读记录文件,卡片返回。
有三种,都是5个字节
TAC(终端行为代码):来自emv参数下载交易。
有三种,都是5个字节
TAC-缺省DF11
TAC-联机DF12
TAC-拒绝DF13

IAC、TAC是预先定义好的规则