接触式读卡器ISO7816协议T=1执行APDU指令
前段时间有客户购买了我们L2-U双界面智能卡读写器,它是集ISO7816接触式和ISO14443非接触式于一体的多功能智能卡读写器。既可以读写非接触式智能卡也可以读写接触式智能卡,满足客户对不同智能卡的读写操作。由于之前我们没有处理T=1这种智能卡的读写APDU指令,客户的卡恰恰就是T=1的。还好,我们读写器具有在线升级固件的功能,我们这边技术及时响应了客户的需求,完善了ISO7816接触式读卡器T=1的APDU指令封装,让客户自己对读写器进行了升级就扩展了这一项功能。
字符协议(T=0)和字组协议(T=1)。IC卡必须支持T=0协议或T=1协议中的一种,但不是同时支持这两种协议。终端则必须同时支持T=0和T=1的两种协议。在IC卡和终端间后续的通讯所用的协议在TD1中指明,必须是T=0或T=1,如果在ATR(复位应答)中无TD1,则设定为T=0。在复位应答后立即使用IC卡使用的协议,因为这里没有协议类型选择(PTS)过程。
B.1 情况1
命令APDU被映射到Ⅰ块的信息字段,而没有任何变化。
命令APDU | CLA INS P1 P2 |
信息字段 | CLA INS P1 P2 |
在响应中收到的Ⅰ块的信息字段被映射到响应APDU,而没有任何变化。
信息字段 | SW1 SW2 |
命令APDU | SW1 SW2 |
B.2 情况2(短的和扩充的)
命令APDU被映射到Ⅰ块的信息字段,而没有任何变化。
C-APDU | CLA INS P1 P2 | Le字段 |
信息字段 | CLA INS P1 P2 | Le字段 |
响应APDU由:
——在响应中收到的Ⅰ块的信息字段组成,
——或者在响应中收到的连续Ⅰ块的顺序连接的信息字段组成。这些块应予以链接。
信息字段 | 数据字段 | SW1-SW2 |
或者顺序连接的信息字段
字段数据 …… …… |
…… …… …… |
…… 字段 | SW1-SW2 |
R-APDU | 数据字段 | SW1-SW2 |
B.3 情况3(短的和扩充的)
命令APDU没有任何变化地被映射到:
——某一Ⅰ块的信息字段,
——或应链接的连续Ⅰ块的顺序连接的信息字段。
C-APDU | CLA INS P1 P2 | Lc字段 | 数据字段 |
信息字段 | CLA INS P1 P2 | Lc字段 | 数据字段 |
或者顺序连接的信息字段
CLA INS P1 P2 | Lc字段 | 数据… |
…… …… …… |
…… …… 字段 |
在响应中收到的Ⅰ块的信息字段被映射到响应APDU,而没有任何变化。
信息字段 | SW1 SW2 |
R-APDU | SW1 SW2 |
B.4 情况4(短的和扩充的)
命令APDU没有任何变化地被映射到:
——某一Ⅰ块的信息字段,
——或者应链接的连续Ⅰ块的顺序连接的信息字段。
C-APDU | CLA INS P1 P2 | Lc字段 | 数据字段 | Le字段 |
信息字段 | CLA INS P1 P2 | Lc字段 | 数据字段 | Le字段 |
或者顺序连接的并置的信息字段
CLA INS P1 P2 | Lc字段 | 数据 |
…… …… …… |
…… 字段 Le字段 |
响应APDU由
——在响应中收到的Ⅰ块的信息字段组成,
——或者在响应中收到的连续Ⅰ块的顺序连接的信息字段组成。这些块应予以链接。
信息字段 | 数据字段 | SW1-SW2 |
或者并置的信息字段
数据 …… …… |
…… …… …… |
…… 字段 | SW1-SW2 |
R-APDU | 数据字段 | SW1-SW2 |
T=1字组协议
协议包含IC卡和TTL间的字组传送,以传达命令和R-APDU及控制信息(例如,确认)。数据链路层的字组帧结构,协议的时序和INF,以及协议的运用规定如下。
1)字组帧结构
前面所规定的字符帧仍是适用的,字组的结构如下表所示:
强制性的组头字段
可选性的信息字段
强制性的组尾字段
字组的结构
组头字段 | 信息字段 | 组尾字段 | ||
结点地址 (NAD) | 协议控制字节 (PCB) | 长 度 (LEN) | APDU或控制信息(INF) | 错误检测 (EDC) |
1字节 | 1字节 | 1字节 | 0—254字节 | 1字节 |