NFC Bank card: 以移动浦发联名挂件卡解析qPBOC应用

news/2025/1/11 14:54:15/

原文这里:http://blog.sina.com.cn/s/blog_4df8400a0100xoof.html


qPBOC的规范让人看的有些头晕,做开发的人也不知道究竟这个规范该怎么运用到实际需求中。好在目前有很多qPBOC的项目已经在实施了,可以让我们从中分析一些实际的案例,在此仅以中国移动与上海浦东发展银行联名发行的挂件卡来做一次实际数据的案例分析。

 

一、挂件卡概述

挂件卡大约比普通信用卡尺寸的四分之一略大,内置天线,厚度约2毫米左右。其中包含了非接PBOC借贷记应用和qPBOC应用,不支持磁条数据MSD交易。支持PSEPPSE的选择,通过选择PSE可以得到的目录文件SFI入口,利用读记录可以获得非接PBOC借贷记的AID,而选择PPSE后直接给出了优先选则应用的AID,二者是一致的均为:A0 00 00 03 33 01 01 02。无论通过PSE还是PPSE选择该应用,其返回的FCI均包含Tag9F66的终端交易属性数据请求。根据GPO中给出的9F66数据,卡片会决定走qPBOC还是标准PBOC借贷记流程。

 

二、非接PBOC应用

GPO命令中送入的终端交易属性如果是60 00 00 00(表示支持qPBOC与非接触PBOC借贷记),则卡片直接返回的是标准借贷记的GPO响应。其中AIP = 7C 00(卡片支持SDADDA,持卡人验证,终端风险管理和发卡行认证;不支持CDA以及MSD。另外有AFL08 01 02 00  10 01 04 01 。。。。),可以读出卡片的公钥证书、公钥指数、公钥余数、DDOL等和交易相关的数据。

从卡中可以读出9F149F23这两个来自卡片的终端风险管理参数均配置为0,也就是连续脱机交易上限和下限都是0,说明对于有联机能力的终端,不允许进行脱机交易。

同样9F589F599F549F5C也都为0,说明发卡行已经把卡片配置成不可用作脱机交易了。

卡片的启用日期和失效日期分别为:110906160928

现在读出的9F13数据显示上次联机交易计数器ATC数据为0020

接下来我们可以读一下交易记录数据,共计四条记录:

 

记录1

FF FF FF FF FF FF 00 00 00 02 36 00 FF FF FF FF FF FF FF FF 01 56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 08

 

记录2

FF FF FF FF FF FF 00 00 00 00 05 00 FF FF FF FF FF FF FF FF 01 56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 04

 

记录3

11 09 29 13 47 26 00 00 00 10 00 00 00 00 00 00 00 00 01 56 01 56 B9 F1 C3 E6 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 00 03

 

记录4

11 09 29 13 26 58 00 00 00 00 00 00 00 00 00 00 00 00 01 56 01 56 B9 F1 C3 E6 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 99 00 02

 

可以看出卡片是在92913点多开户的,做了两笔柜面联机交易且充值1000元,另外还有两笔分别为5元和236元的脱机消费交易。这里有一点小问题,就是从上次联机交易计数器标签9F13中读出的数据是0020,和记录3中指出的0003不相符。这是因为在测试的时候尝试发送了导致必须联机的GPO所致。

再看看持卡人认证方式CVM列表标签8E的数据结构,8E 0E 00 00 00 00 00 00 00 00 42 03 5E 03 1F 00,第一个入口4203是联机加密PIN验证,且如果此验证失败应用下一个CVM验证,应用条件是如果终端支持;第二个入口5E03是纸上签名,且如果此验证失败应用下一个CVM验证,应用条件是如果终端支持;第三个入口是无需CVM,应用条件为“总是”。

总之,该卡的非接触标准PBOC借贷记应用只允许联机交易,不支持脱机。

 

三、qPBOC应用

如果送入的终端交易属性为20000000,则直接返回脱机qPBOC交易的GPO应答数据。

先看一下脱机交易GPO应答数据:

77 81 D4 82 02 7C 00 94 08 18 01 04 01 20 01 02 00 9F 36 02 00 29 9F 26 08 18 92 2B F2 0A 14 FC F3 9F 10 08 07 02 17 03 90 00 00 01 57 13 62 59 71 00 01 52 11 28 D1 60 92 06 00 00 05 10 00 00 1F 5F 34 01 00 9F 4B 81 80 A1 15 8D 4E 41 71 29 15 81 3F B6 20 BB B9 2B AB 10 20 6F  1B ED 11 29 12 FC F9 AC A7 90 6B 30 C0 6E C1 E9 44 2E 61 04 F9 A5 90 EF 7C F0 59 B1 F5 C9 FB 35 96 F5 E9 E4 A9 68 00 F3 8E 74 B6 E6 5D 63 4A 64 FB C1 44 FB B8 9A 37 D4 27 62 BE 94 22 15 32 7C 56 41 65 78 A3 43 C2 A9 CA D1 3D 7B B5 4F 0B 08 13 16 84 34 80 0A A0 2B 65 79 47 20 DA 2A C7 D0 14 5D 3F 37 EF 15 5A AA 8C CE 4F 99 AF 9F 6C 02 20 00 9F 5D 06 00 00 00 07 58 99

82标签指出的AIP和标准借贷记的一致都是7C00,标签94给出了AFL18 01 04 01 20 01 02 00,同时还包含有以下的数据标签:交易计数器9F36,应用密文9F26,发卡行应用数据9F10,第二磁道等价数据57PAN序列号5F34,签名的动态应用数据9F4B,卡片交易属性9F6C和可用脱机消费余额9F5D

读出卡片附加处理数据标签9F68的值为:91003000,说明:该卡片仅支持小额检查,不支持脱机可用余额的检查,也就是说该卡走的是qPBOC的小额交易流程。

另外通过读取9F779F78两个数据可知,该卡单笔交易金额最多为1000元,充值的上限也是1000元。目前该卡的余额是759元(GPO应答中给出的可用余额是758.99元,那是因为在发送GPO命令的时候送入的授权金额是1分钱),加上之前消费的5元和236元正好等于充值的1000元,而且电子现金重置阈值9F6D的数据是0

如果在GPO命令中送入的终端交易属性为:20800000,则卡片返回联机GPO应答:

77 58 82 02 7C 00 9F 36 02 00 35 57 13 62 59 71 00 01 52 11 28 D1 60 92 06 00 00 05 10 00 00 1F 9F 10 13 07 02 17 03 A0 00 00 01 0A 01 00 00 07 59 00 55 97 C3 52 9F 26 08 68 D5 7B 51 35 53 B6 78 5F 34 01 00 9F 6C 02 20 00 9F 5D 06 00 00 00 07 58 99 5F 20 04 XX XX XX XX

       和脱机qPBOCGPO响应数据相比,此处缺少了949F4B等信息,多了一项5F20(两个汉字的持卡人姓名)。

 

四、其他

(一)   兼容性问题及建议

挂件卡本身尺寸较小,用两款通用读卡器(HID Omnikey5321SCM SDI010)测试小卡的读写距离低于普通卡,并且只有当小卡全部进入读卡器的感应范围后才会正常读写。相比普通大卡而言,只要部分进入到读卡器的感应范围就能够正常读写。所以如果终端设备的感应范围较小的话,会出现寻找小卡困难的问题,对大卡则问题不明显。

建议CUP对于小卡同样制定相应的规范标准,并且加强小卡与机具的兼容性测试,以便于确保将来卡片和终端之间不会出现操作困难(据悉该卡在实际应用中已经出现类似问题,必须要对准某型号终端的某个固定位置才能勉强实现交易)。

(二)   交易流程中的安全风险及提示

安全的问题不仅包括数据保密和防止伪造篡改等方面,还有很重要的一点就是可用性。

       在可用性方面qPBOC存在一定的风险。比如只要给卡片发送格式相符的GPO数据,卡片的交易计数器ATC就会自动加1,而当ATC达到65535之后,卡片则永久锁定应用。所以如果卡片被恶意连续发送GPO命令后,则会被永久锁定应用,造成卡片不可用;另外,卡片在处理qPBOC的脱机交易流程时,当终端读出AFL指定的全部数据后即认为交易完成,所以即便是非授权的终端也可以从卡片上扣钱,当然所扣的钱不能提交给发卡行进行清算。虽然发卡行可以通过后台的策略规避该类风险,避免持卡人的损失,但是这同样会造成卡片一定时期的不可用(比如通过读卡器发送命令直接扣掉该卡的余额759元钱)。

为此特意通过普通读卡器发送命令用该卡做了1分钱的脱机消费交易,读取新增的交易记录可以看出脱机消费成功:FF FF FF FF FF FF 00 00 00 00 00 01 FF FF FF FF FF FF FF FF 01 56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 37。同时新的余额也变成了758.99元,交易计数器变为0037

其实如果保护好自己的卡片,这些问题是可以避免的。

现实的问题是卡片在合法的终端上进行交易后,因为终端的原因造成终端认证失败从而误判上笔交易不成功,但是这时卡上的钱已经被扣掉了,由此就会引起争议。

所以在目前的规范下要仔细了解发卡行在出现争议交易时的处理条款,可惜的是目前很多发卡行对于该风险了解不多,随着qPBOC卡片发行数量的增加,类似的争议交易会逐渐涌现。目前只能依靠卡片、终端、后台多方协作来仲裁争议交易,没有严格的规范约定。



http://www.ppmy.cn/news/498230.html

相关文章

中国联通计费侧H2协议接口实现

业务需求,前几天写了一个跟联通计费侧的接口,具体要求参见局方规范: 1 H2协议 遵循软件工程及制定协议标准的基本思想,本着接口易用、易理解、易交流的原则,为实现客服系统的规范性、开放性、扩展性、业务独立性…

移动开发素材大全

策划设计 icon下载 Easyicon:http://www.easyicon.net/ Findicons:http://findicons.com/ 淘宝icon库:http://www.iconfont.cn/ IconArchive:http://www.iconarchive.com/ Dryicons:http://dryicons.com/ Iconmonst…

BC26对接移动Andlink、电信AEP、联通Telit

01 — Andlink简介 AndLink是中国移动在2016年提出的一个用于智能硬件设备通信的协议,And体现了中国移动的“和”文化主题。Link则体现连接概念。 在万物互联的时代,无论是互联网巨头还是传统通信运营商都希望通过自身的行业地位和技术优势在未来的大时代…

移动飞信API接口

飞信报警 文章分类:操作系统 Linux飞信报警1.飞信linux程序下载 主程序: http://www.it-adv.net/fetion/downng/fetion20091117-linux.tar.gz2.安装 2.1. tar zxvf fetion20091117-linux.tar.gz 2.2. cd fx 2.3. cp fetion /usr/bin/ 2.4. 复制目录下其他文件…

移动边缘计算——MEC

摘自:https://www.sdnlab.com/19491.html 作者简介:李子姝,北京邮电大学未来网络理论与应用实验室 研一 CCN、NDN方向 在正式开始介绍移动边缘计算(Mobile Edge Computing,MEC)之前,先从我作为…

佩戴舒适的蓝牙耳机有哪些品牌?不伤耳的蓝牙耳机推荐

​真无线蓝牙耳机逐渐成为大家日常必不可少的数码产品,也随着耳机的发展,人们对蓝牙耳机的要求也越来越高,不仅音质要好,长时间佩戴也要舒适,更是能够应用于多种场景中使用,但挑选蓝牙耳机也是一门学问&…

A5站长网图王到访逐浪软件研发中心

原文来源: http://www.zoomla.cn/Article/news/2192.shtml 北京时间2014年2月20日消息:春风吐万绿、俊马飞腾达。新春伊始,逐浪CMS与华夏互联研发中心,迎来了以中国知名互联网精英、admin5站长网创始人图王先生等为代表诸多业界人…

HMS Core机器学习服务助力Zaful用户便捷购物

Zaful是近年来发展良好的出海电商平台,主打快时尚。在洞察其用户有购买街头海报、生活中同款衣物的需求后,Zaful联合HMS Core机器学习服务打造拍照购物服务。用户拍照后可在预设的商品图片库中搜索同款商品,在为用户提供了更加便捷的购物体验…