PBOC卡片应用分析(四)非接触式IC卡规范

感谢@JulyClyde同学友情提供的工商银行闪酷钥匙扣,支持银联的闪付功能。卡片内的电子现金余额已经被圈提干净,余额应该是0。现在使用PC/SC的读卡器配合麻工强大的Snooper进行测试。
首先选择PPSE.

1.SELECT
Command:00A404000E 325041592E5359532E444446 3031
Response:6F2E840E325041592E535953 2E4444463031A51CBF0C1961 174F08A00000033301010250 0B50424F4320437265646974
SW1SW2:9000

从响应的数据中可以得到AID是A000000333010102,后面的PIX:010102标明了是贷记应用。直接选择这个AID。

2.SELECT
Command:00A4040008 A000000333010102
Response:6F648408A000000333010102 A558500B50424F4320437265 6469748701015F2D047A6865 6E9F1101019F120D49434243 2050626F63436172649F3818 9F66049F02069F03069F1A02 95055F2A029A039C019F3704 BF0C0FD1023132C204494342 439F4D020B0A
SW1SW2:9000

从响应数据中可以看到应用名是50424F4320437265646974对应的可见字符就是“PBOC2.0Credit”和PIX相符合。应用优先指示器是01,好像只有这一个应用耶。。下面是9F38189F66049F02069F0306 9F1A0295055F2A029A039C01 9F3704,这个是卡片请求PDOL的格式,我开始没仔细看文档,把后面的数据当成TLV数据在解析,怎么都搞不对,还误导了@JulyClyde。
GPO指令的数据域需要说明的是跟接触卡规范里说明的一样应该是83+Len+Data,所以Lc就应该2+Len,上面的请求应该有0x21字节数据,Lc应该是0x23,可恶的文档在非接触规范中的GPO指令介绍就没有提到数据域的格式,郁闷了半天,总是6700的P3错误。
下面吧9F66中的终端交易属性配置成60 00 00 00,标明终端支持非接触借记/贷记应用和qPBOC应用(to@JulyClyde终端告诉卡片我同时支持非接触的借记/贷记应用,也支持qPBOC的应用,看下卡片有啥反应),下发一下指令。

3.GPO
Command:80A8000023832160000000000000000000 000000000000015600000000 000156130925000000000000
Response:80127C000801010010010400 1801010120010100
SW1SW2:9000

GPO响应是80开头的,标准的借记/贷记应用GPO响应。

4.READ RECORD
Command:00B2010C00
Response:704B5713****5F20144D ####9F1F 18 ~~~~~5F340101
SW1SW2:9000

响应的报文里是卡号,持卡人姓名还有磁条1数据。保护持卡人隐私就把这些敏感数据用*#~代替了,***是持卡人姓名的ASCII,翻译成可见字符是:MR.XXXXX

5.读余额
Command:80CA9F7900
Response:9F7906000000000000
SW1SW2:9000

电子现金余额为0。。。。

6.读ATC
Command:80CA9F1300
Response:9F1302000D
SW1SW2:9000

ATC是D。

7.交易日志的格式
Command:80CA9F4F00
Response:9F4F 19 9A 03 9F21 03 9F02 06 9F03 06 9F1A 02 5F2A 029F4E 14 9C01 9F36 02
SW1SW2:9000

8.读一条交易日志READ RECORD
Command:00B2015C00
Response:130921215942000000016000 000000000000015601564943 42432041544D000000000000 00000000000024000D
SW1SW2:9000

解析一下这个交易日志:日期:13年9月21日 时间:21点59分42秒 交易金额:160.00元 其他金额:0.00终端国家:中国 货币:人民币 交易终端:ICBC ATM ATC:D

9.再读一条交易日志
READ RECORD
Command:00B2025C2D
Response:130909000000000000015000 00000000000001560156D6D0 B9FAB9A4C9CCD2F8D0D02020 20202020202000000A
SW1SW2:9000

解析一下这个交易日志:日期:13年9月9日 时间:*点*分*秒交易金额:150.00元 其他金额:0.00 终端国家:中国 货币:人民币 交易终端:中国工商银行 ATC:A

下面修改一下GPO,让终端向卡片声明自己只能联机交易看看卡片什么反应。。。

稍后完成。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值