Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7687524
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: 嵌入式

2012-12-26 10:47:35

尽管PBOC基本是中文版的EMV, 但还是需要根据国情做一些适当的差异化处理. 这一点在持卡人认证方面有很明显的体现.EMV支持脱机密文PIN,PBOC不支持. 但PBOC支持身份证件验证,EMV不支持. 身份证件验证是根据国情增加的,谁让咱们国家证多呀.
 
持卡人认证并不是必备的EMV流程, 终端是否应该执行持卡人认证, 决定因素在两点. 一是AIP表明是否支持, 二是在读数据阶段,卡片是否返回CVM list.
PBOC 支持的CVM如下:

点击(此处)折叠或打开

  1. 脱机明文PIN验证;
  2. 联机PIN验证;
  3. 签名;
  4. CVM失败;
  5. 无需CVM;
  6. 签名与脱机明文PIN验证组合;
  7. 身份证件验证。
EMV 支持的CVM如下:

点击(此处)折叠或打开

  1. 脱机明文PIN验证;
  2. 联机PIN验证;
  3. 签名;
  4. CVM失败;
  5. 无需CVM;
  6. 签名与脱机明文PIN验证组合;
  7. 脱机密文PIN验证。
持卡人认证在EMV中叫CVM(cardholder verification method), 在一笔交易中,CVM可以有多个, 所以就有了CVM List的概念.
 
一个CVM包括以下几项内容:
金额X
金额Y
CVM 代码 指出如果这个CVM 失败,是执行下一CVM 还是认为CVM 失败
CVM 类型 (就是上面列出的那些方法)
CVM 条件 表示在什么条件是才用该方法,有以下几个:

点击(此处)折叠或打开

  1. 0 总是执行
  2. 1 如果是现金或返现交易
  3. 2 如果不是现金或返现交易
  4. 3 如果终端支持此CVM
  5. 4 如果交易金额小于金额X
  6. 5 如果交易金额大于金额X
  7. 6 如果交易金额小于金额Y
  8. 7 如果交易金额大于金额Y

说着太抽象,、看这遍http://blog.chinaunix.net/uid-24219701-id-3445506.html 

 

 在所有的持卡人验证方法中脱机加密PIN应该是最复杂的一个这里详细介绍一下它的原理及流程.

 

脱机加密PIN,简单来说原理如下:

终端从卡片中获取PIN加密公钥证书(可在read data阶段读取),从证书中恢复PIN加密公钥当用户输完PIN终端用此公钥加密该PIN,然后能过指令把加密数据传给卡片,卡片收到数据后,先用存在自身的PIN加密私钥解密,然后再验证该PIN的正确性

详细的步骤如下:

终端把用户输入的明文PIN按照一定的格式补位对齐然后用get challenge命令从卡片中取一个8字节的随机数.     

  

终端自己产生一组长度为N-17的随机数(NPIN加密公钥的长度), 然后把补位后的PIN,卡片中取的随机数以及终端产生的随机数拼接在一起PIN加密公钥做RSA运算.  

      

把上一步运算的结果通过verify命令发给IC.      

  

卡片用PIN加密私钥解密数据首先检查解出来的8字节随机数是否与自己产生的一致,然后卡片检查恢复的数据头字节是否有效最后一步是验证PIN是否合法只有所有的条件都满足,脱机加密PIN才算成功.  

阅读(5367) | 评论(1) | 转发(3) |
给主人留下些什么吧!~~

pony_maggie2015-02-11 11:12:23

转载别人的文章,是不是应该加上原文链接地址呢?pboc的文章你基本都是从这个博客转的,我已经注明转载要加出处。

http://blog.csdn.net/pony_maggie