PBOC流程解析(五) 持卡人认证

POS规范 -- IC卡操作流程 2016/09/11

POS规范 – IC卡操作流程

(一)文档说明

持卡人验证方法

脱机PIN处理中使用下列命令(暂时我也没有处理过):

——取数据(GET DATA)—终端用来从卡片中取得PIN尝试计数器的值,可选。

如果卡片不支持用取数据(GET DATA)命令返回PIN尝试计数器,卡片返回“6A88”;

——验证(VERIFY)——用于脱机明文PIN校验。

如果卡片支持脱机PIN处理就要支持验证(VERIFY)命令;

命令的响应状态字SW1 SW2可能有如下返回值:

“9000”验证成功;

“63Cx”PIN不匹配,“x”表明剩余的次数;

“6984”当在上次交易中尝试次数限制数已经超过,本次交易第1次处理验证(VERIFY)命令时返回;

“6983”当在本次交易中尝试次数限制数超过,卡片再次收到验证(VERIFY)命令时返回。

可以参阅文档第5部分获取脱机PIN认证的方法

(二)资料解析

应用交互特征(AIP) 标明卡片是否支持持卡人验证

8E - 持卡人验证方法(CVM)列表
Length = 12
Value = 
00 00 00 00
00 00 00 00 
02 03 
1F 00 	
分析 :一个CVM包括以下几项内容:
金额X
金额Y
CVM 代码 指出如果这个CVM 失败,是执行下一CVM 还是认为CVM 失败(0为认为CVM失败,1执行下一个CVM)
CVM 类型 (就是上面列出的那些方法)
CVM 条件 表示在什么条件是才用该方法,有以下几个:
		0 总是执行   
		1 如果是现金或返现交易    
		2 如果不是现金或返现交易    
		3 如果终端支持此CVM   
		4 如果交易金额小于金额X    
		5 如果交易金额大于金额X   
		6 如果交易金额小于金额Y  
		7 如果交易金额大于金额Y
		
现在的cvm是 0203 (第一组)
	02   00(拆分成两串  前两位是 CVM代码 00 表示这个cvm失败就失败退出,01表示这个失败就走下个) 000010 
	其中 000010  表示联机pin
		 011110  表示签名
		 000001  表示脱机明文pin
		 011111  无需CVM(如果终端不支持脱机明文 PIN 核对和签名,执行此入口 CVM 不可能失败 )
	03   (查上表得到)如果终端支持此CVM 此时需要根据终端性能的判断(终端是否支持前面指定的验证方法).
再举例 cvm为 4203 1E03 2组
4203: 0100 0010(联机PIN验证失败 再走下个) (0000 0011CVM条件同上)
1E03:  签名)

(三)源码片段分析

(四)常见问题及分析

1.持卡人认证部分,EMV和PBOC是有区别的,EMV有脱机加密PIN认证,PBOC没有; PBOC有持卡人身份证件验证,但是EMV没有。

2.脱机加密PIN (转自小马哥博客)

1 终端把用户输入的明文PIN按照一定的格式补位对齐, 然后用get challenge命令从卡片中取一个8字节的随机数.
2 终端自己产生一组长度为N-17的随机数(N为PIN加密公钥的长度), 然后把补位后的PIN,卡片中取的随机数以及终端产生的随机数拼接在一起, 与PIN加密公钥做RSA运算. 
3 把上一步运算的结果通过verify命令发给IC卡.
4 卡片用PIN加密私钥解密数据, 首先检查解出来的8字节随机数是否与自己产生的一致,然后卡片检查恢复的数据头字节是否有效, 最后一步是验证PIN是否合法. 只有所有的条件都满足,脱机加密PIN才算成功.


扫描关注我

(转载本站文章请注明作者和出处 Undefined

Post Directory