EMV规范(七)——持卡人验证(CVM)一

此部分笔记是来源EMV Book3中的10.5 Cardholder Verification节,可以结合此篇笔记来阅读。

终于到CVM这章了,持卡人验证是非常非常重要的章节,反正我的leader是这么跟我说的。然后花了很多时间看这节,最后因为我没怎么做EMV这块接触的kernel,所以很多种CVM还没接触过。不过,EMV规范是基础,国内的PBOC就不说了,说下非接的吧,Paypass,Paywave的基本流程就跟EMV很相似,当然也是有不同之处的,毕竟非接嘛,讲究速度快。额,好像扯远了,总之一句话,EMV很重要,很重要,重要。

好吧,CVM,是 cardholder verification method 的简写,中文,就是持卡人验证方式。它的目的是验证当前使用者是否是卡片的持卡人,就比如,我们使用银行卡,绝大部分时候是需要输入密码的,这个又多半是联机的,所以这个密码呢就是验证你是不是持卡人本身的一种方式,叫做联机PIN。而联机PIN,只有联机密文PIN,考虑到安全性,是没有联机明文PIN的,当然我们的讨论范围是在EMV规范。

在EMV规范里,持卡人验证的方式,一共有5种,分别是联机密文PIN验证,脱机PIN验证(脱机PIN又有两种,脱机密文PIN和脱机明文PIN),签名,复合CVM和NO CVM。

持卡人验证,首先需要看卡片返回的CVM List(tag为"8E"),然后根据CVM List的规则选择持卡人验证使用哪一种方式,该方式失败是否使用下一种方式;验证完了,就去设置CVR(持卡人验证结果)和TVR的相应位。

所以,首先介绍下tag‘8E’,即CVM List。该tag值的格式:4个字节的金额X+4个字节的金额Y+2个字节倍数的CV Rules。

CV Rule如下表:

EMV规范(七)——持卡人验证(CVM)一_第1张图片

EMV规范(七)——持卡人验证(CVM)一_第2张图片

CV Rule在终端满足第二个字节的条件时,去执行第一个字节表示的持卡人认证方式。

根据上表可知金额X在CV Rule第2个字节对应为06时,需要查看该金额X。此时,若交易货币码是应用货币码(即Transaction Currency Code[tag'5F2A',数据来源于终端] = Application Currency Code[tag'9F42',数据来源于卡片]),并且交易金额小于金额X时,则表示可以执行该CV Rule第1个字节对应的持卡人认证方式。

金额X在CV Rule第2个字节对应为07时,也需要查看该金额X。此时,若交易货币码是应用货币码,且交易金额大于金额X时,则表示可以执行该CV Rule第1个字节对应的持卡人认证方式。

同样由上表可知金额Y的作用与金额X类似,请自行理解。

现在说下CV Rule的第1个字节的第7位的意义,当该位为0时,表示该种持卡人认证方式失败时,整个CVM失败,需要设置对应的CVR对应的位。而当该位为1时,表示该种持卡人认证方式失败后,仍可以进行下一种持卡人认证方式。

说了这么多,不如举个栗子:

假设tag ‘8E’从读记录中卡片返回的值为:00 00 00 7B 00 00 00 00 04 03 42 06 1E 03(绿色为金额X,蓝色为金额Y,黑色位第一个CV Rule,黄色是第二个CV Rule,红色是第三个CV Rule)

金额X:7B 是十六进制,换成十进制是123,所以表示金额X为1.23

第一个CV Rule:04 03:根据上表可知该持卡人认证方式为脱机密文PIN认证,条件是当终端支持该持卡人认证方式时。若终端支持脱机密文PIN验证,内核应该进行该认证,当该种认证方式成功时,表示持卡人认证成功了,持卡人验证CVM结束,然后需要对CVR 和TVR置位;若该种认证方式失败了,表示持卡人认证失败了,持卡人验证CVM结束,然后需要对CVR 和TVR置位。若终端不支持脱机密文PIN验证,则进行第二个CV Rule认证。

第二个CV Rule:42 06:根据上表可知第一个字节42,第6至第1位所以表示该持卡人认证方式为联机密文PIN认证;第7位为1,表示当该方式认证失败时,使用下一组CV Rule。第2个字节位06,根据上表可知执行此联机密文PIN验证的条件为交易货币码是应用货币码,且交易金额小于金额X1.23时。

若联机密文PIN认证执行成功,则表示持卡人认证成功,需要去设置CVR和TVR对应的位;若联机密文PIN认证失败,执行下一组CV Rule。

第三个CV Rule留给各位自己分析啦。

 

下一节继续持卡人认证。主要说说TVR和CVM Results。

NOTE: CVR不是CVM Results。CVR是卡片验证结果,与TVR(终端验证结果)对应,所以CVR来源于卡片,无tag表示,我们不关心。而CVM Results则是持卡人验证结果,我们很关心的,这个是终端数据。

你可能感兴趣的:(EMV,银行知识,EMV,L2行业规范学习)