PBOC卡片应用分析(二)

编程入门 行业动态 更新时间:2024-10-09 17:30:22

PBOC<a href=https://www.elefans.com/category/jswz/34/1737234.html style=卡片应用分析(二)"/>

PBOC卡片应用分析(二)

接上一篇,上次基本上卡在了选择ADF之后的操作,选择完ADF之后根据Response的数据,需要做获取处理选项GPO,但是对PDOL这个东西一直搞不明白,GPO指令的数据域是PDOL,PBOC规范上对GPO的指令写的也是很模糊,只说了没有PDOL的发8300,有PDOL项的发PDOL,但是泛泛的浏览PBOC规范,对选择应用之后返回的数据中PDOL的内容也没有细说,折腾了半天才反应过来PDOL的格式,仔细对照规范对PDOL的解析如下。 +-----------+----------+-------------------+----+---------+----+--------------+-----+ | PDOL的Tag | PDOL长度 | 电子现金指示器Tag |    |授权金额 |    交易货币代码 |     | +-----------+----------+-------------------+----+---------+----+--------------+-----+ |   9F38    |   09     |     9F7A          | 01 |  9F02   | 06 |     5F2A     | 02  | +-----------+----------+-------------------+----+---------+----+--------------+-----+ 下面发送GPO指令,这个PBOC3.0规范上关于GPO的APDU的描述Lc固定值写为0,不知道这一部分是哪个单位的人写的,Lc明显不能写成0啊,开始我还老老实实的写0,仔细想,即使没有PDOL,Data域也要发8300,Lc也得为2的,如果符合了PBOC3.0的规范,那就跟7816规范矛盾了,必须是起草者写错了。下面对GPO命令报文按我自己的修正后的说明一下以防又有人跟我已经糊里糊涂的。
 APDU 取值说明 
 CLA 80 
 INS A8
 P1,P2 00
 Lc PBOC3.0规范上写的是0,实际应该是数据域长度 
 Data  83+PDOL的部分,直接把Tag 9F38之后的部分填充进来即可,如果没有PDOL那么就是83+00
 Le

下面发送GPO指令 7.GPO APDU:80A800000B 83099F7A019F02065F2A02 SW1SW2:6114
8.GET RESPONSE APDU:00C0000014 RETURN:80127C0008010100100103011007070018010400 SW1SW2:9000
规范中说GPO的Reaponse数据中应该是一个BER-TLV编码的数据对象,有两种格式一种是标签为‘80’,一种是标签为‘77’,这个明显是标签为‘80’的。数据对标表示了AIP和AFL。AIP列出了交易在处理过程中执行的功能;AFL列出交易需要读出的数据存放的短文件标识符、记录号、记录个数以及脱机数据认证需要的静态签名数据的存放位置。 下面对报文进行解析,在规范上没有看太明白,一边baidu一边看规范进行解析的。 80是Tag,12是长度,7C00是AIP. 7C00按照规范是
 bit  
 bit8=0  规范说1=RFU
 bit7=1 支持SDA 
 bit6=1 支持DDA 
 bit5=1 支持持卡人认证
 bit4=1 执行终端风险管理 
 bit3=1 支持发卡行认证 
 bit2=0 0=RFU 
 bit1=0 不支持CDA 
 第2字节 RFU=0 

后面4字节08010100应该就是AFL了。 08-短文件标示符,01-第一个要读出的记录号,01-最后一个要读出的记录号,00-存放用于脱机数据认证的数据的连续记录个数,字节2指出的是第1条要读的记录号。
下面要根据AFL的指示读取SFI指向的文件,文件号格式是SFI左移3位,右边补100,字节0x80中表示SFI的是bit8~bit4,所以0000 1000中只有0000 1是SFI,按前面的规则处理后文件号格式就是01100就是0x0C,所以构造APDU读一下记录。
9.READ RECORD APDU:00B2010C00 SW1SW2:6C3C
调整一下Le重新下发APDU
10.READ RECORD APDU:00B2010C3C RETURN:703A5 后面跟了58字节数据涉及我自己隐私就不发出来了 SW1SW2:9000
数据等价二磁道数据,包含了持卡人姓名,证件号码,证件类型等信息
继续往后读下一个文件
11.READ RECORD APDU:00B2011400 SW1SW2:6C44
调整一下Le重新发指令
12.READ RECORD APDU:00B2011444 RETURN:一堆私人数据 SW1SW2:9000
13.READ RECORD APDU:00B2021400 SW1SW2:6CBA
14.READ RECORD APDU:00B20214BA RETURN:一堆私人数据 稍后分析。 SW1SW2:9000

更多推荐

PBOC卡片应用分析(二)

本文发布于:2024-02-06 18:17:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750961.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:卡片   PBOC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!