您的位置:首页 > 其它

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

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

1.SELECT
Command:00A404000E 325041592E5359532E4444463031
Response:6F2E840E325041592E5359532E4444463031A51CBF0C1961174F08A000000333010102500B50424F4320437265646974
SW1SW2:9000

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

2.SELECT
Command:00A4040008 A000000333010102
Response:6F648408A000000333010102A558500B50424F43204372656469748701015F2D047A68656E9F1101019F120D494342432050626F63436172649F38189F66049F02069F03069F1A0295055F2A029A039C019F3704BF0C0FD1023132C204494342439F4D020B0A
SW1SW2:9000

从响应数据中可以看到应用名是50424F4320437265646974对应的可见字符就是“PBOC2.0Credit”和PIX相符合。应用优先指示器是01,好像只有这一个应用耶。。下面是9F38189F66049F02069F03069F1A0295055F2A029A039C019F3704,这个是卡片请求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:80A8000023832160000000000000000000000000000000015600000000000156130925000000000000
Response:80127C0008010100100104001801010120010100
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:13092121594200000001600000000000000001560156494342432041544D00000000000000000000000024000D
SW1SW2:9000

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

9.再读一条交易日志

READ RECORD

Command:00B2025C2D
Response:13090900000000000001500000000000000001560156D6D0B9FAB9A4C9CCD2F8D0D0202020202020202000000A
SW1SW2:9000

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

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

稍后完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: