转载请注明出处

作者:小旭

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

持卡人验证主要基于两个数据要素,AIP和CVM。

AIP已经讨论过很多次,现在主要看一下CVM。

一个CVM含有2个主要要素:

1.两个金额,X金额和Y金额。

2.持卡人验证方法条目(可能含有多个)

2部分又细化为下列三个部分

1.持卡人验证方法代码,即第9字节的bit7,用来表明持卡人验证失败后的操作。

2.持卡人验证方法类型,即第9字节的bit6--bit1,用来表明采用什么样的方法做持卡人验证。

1.持卡人验证方法条件,即第10字节的bit7,用来表明在什么情况下做持卡人验证。

这样看比较抽象,拿个实例来看一下:

8E 0C
00 00 00 00
00 00 00 00
5E 03
1F 00

这是一个标准的cvm列表,X金额为0,Y金额为0,后续每两个字节表示一个持卡人验证方法条目,5E的二进制位01 011110这表明如果持卡人验证失败则使用后续的CVM,CVM验证方法为签名,03表示“如果终端支持这个CVM”。

这样估计还是比较抽象,我用语言再描述一下。

首先5E的bit8 bit7为01,这表明如果这个cvm失败,那就要用到后面的1F 00作为持卡人验证方法。

再看5E的bit6到bit1,这个规范上说的很明确,现在的6个数字就是代表使用签名。

再看03,03的含义是“如果终端支持这个CVM”,这个怎么理解呢?终端有一个很重要的数据,终端性能,终端性能中明确指出了终端所支持的验证方法,所以03的意思就是如果终端支持持卡人签名验证,那么这个交易就使用签名作为验证方法。当持卡人验证条件为03时,内核对于终端性能的判断也是直接影响持卡人验证成功与失败的关键要素。

后面的1F00就不做分析了,分析方法同理。

程序分析完CVM列表后,再根据分析结果提示持卡人进行操作,然后就相当于持卡人认证已经完成。

最后再看看,脱机加密PIN,简单来说, 原理如下(转子小马哥博客):

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

详细的步骤如下:

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

EMV技术学习和研究(七)持卡人验证相关推荐

  1. EMV技术学习和研究

    今天在工作中碰到一些问题,就找到了这篇文章,个人感觉很好,保存下来,以供随时学习. 转载地址:EMV技术学习和研究 作者:小旭 目的: 应用选择主要目的就是在卡片插入终端的时候,由终端来选择哪些应用是 ...

  2. EMV技术学习和研究(一)开篇

    在这个行业也3年多了,一直想写写关于EMV和PBOC的内容,但是总觉得自己懂得还不够,对EMV和PBOC的理解还不够深入. 但是后来想想,如果还不开始自己写一点东西的话,可能这个事情也就永远的搁浅了, ...

  3. EMV技术学习和研究(十一)QPBOC

    转载请注明出处 作者:小旭 Q在选择完应用之后,是有一步交易预处理,交易预处理是对交易限额的处理,在交易开始之前首先对交易金额做出计算和判断.有点类似于借贷记交易中终端风险管理中所完成的步骤.关于交易 ...

  4. EMV技术学习和研究(十二)交易限额

    转载请注明出处 作者:小旭 EMV参数里面有几个限额,但是感觉这几个限额都比较容易混淆和模糊,下面一个一个的来讨论一下. 终端最低限额(9F1B).终端电子现金交易限额(9F7B).非解最低限额(DF ...

  5. EMV技术学习和研究(九)终端行为分析

    转载请注明出处 作者:小旭 这一块的内容,我觉得文档上讲的比较清晰,而且举例也很好,所以大部分都是拷贝文档的内容过来,一边看一边分析文档的含义. 这一部分用到2类比较重要的数据,分别是 发卡行行为代码 ...

  6. EMV技术学习和研究(三)应用初始化读应用数据

    转载请注明出处 作者:小旭 借贷记和Qpboc在应用初始化和读应用数据方面的流程还是比较相似. 先看借贷记和电子现金的处理流程 应用选择完成后,终端获取到了PDOL数据(特别说明:这个不是必须的,卡片 ...

  7. EMV技术学习和研究(五)脱机数据认证之DDA

    转载请注明出处 作者:小旭 有了前面对SDA的熟悉,接下来再研究DDA就会感觉比较轻松一点了. 用于动态数据认证的数据和SDA部分所描述的一样,也是基于SFI的来组织的. 特别说明一下:之前有一个地方 ...

  8. EMV技术学习和研究(二)应用选择

    转载请注明出处 作者:小旭 目的: 应用选择主要目的就是在卡片插入终端的时候,由终端来选择哪些应用是由终端和卡片共同支持的.终端的AID列表是通过AID下载交易从服务端获取,卡片的AID是在做卡片个人 ...

  9. EMV规范学习与研究(三)——应用初始化

    应用初始化目的: ①通知卡片新交易开始: ②将交易所需的数据发送给卡片: ③从卡片上返回AIP和AFL: ④决定交易是否被允许执行: 应用初始化步骤:(GPO命令的格式) 设置TVR和TSI中所有位为 ...

最新文章

  1. iOS访问系统日历 添加提醒事件
  2. freeBSD挂载光驱
  3. 《LeetCode力扣练习》第2题 C语言版 (做出来就行,别问我效率。。。。)
  4. 88. Leetcode 剑指 Offer 14- I. 剪绳子 (动态规划-基础题)
  5. 2021略阳天津高级中学高考成绩查询,2021年天津高考成绩查询网站查分网址:http://www.zhaokao.net/...
  6. 云南大学网络课程作业计算机,云南大学842计算机程序设计考研复习经验
  7. Rokid发布YodaOS 并宣布代码开源
  8. 更改Tomcat虚拟内存大小
  9. Linux 内存管理 | 物理内存管理:物理内存、内存碎片、伙伴系统、slab分配器
  10. UML分析AsyncDisplayKit框架-ASMuplexImageNode异步下载时序图。
  11. Linux杂碎2/SHELL
  12. 本周Asp.net源码更新(6.25-6.29)
  13. docker进阶与实战 3 理解docker镜像
  14. (5)机器学习_K折交叉验证(iris数据集实例)
  15. 肿瘤浸润淋巴细胞的扩增方法学评估
  16. When Does Self-Supervision Help Graph Convolutional Networks?
  17. 赖美云的认证照_赖美云的“瓜子牙”辣眼睛?原来牙齿美容这么重要
  18. IAM之Tivoli Identity Manager(二)
  19. Kafka学习之Replication tools之Reassign Partitions Tool
  20. 基于加密的即时通信系统设计

热门文章

  1. 我理解的企业技术管理(三)——如何做好技术管理
  2. 营销系列(1)数字营销通识——广告人应掌握的营销、广告概念
  3. 使用MATLAB计算一幅图像的熵
  4. 《曹云社》走进东软:奇妙的HR数字化
  5. java定时任务原理,东软集团java面试题
  6. Django - ContentType
  7. 群晖Docker 安装Jellyfin提示“操作超时解决方法
  8. linux怎么打开chrome_Linux怎么下载应用并安装应用
  9. 利用kmplayer查看wav声音文件的采样率
  10. Squirrel脚本语言..游戏开发.