智能卡APDU命令格式及分析

APDU命令

CLA INS P1 P2 Lc Data Le

其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数的最大可能长度。

一 命令分类:

COS命令由具体应用分为4种命令报文结构如下:

① 情形1

CLA INS P1 P2 00

② 情形2

CLA INS P1 P2 Le

③ 情形3

CLA INS P1 P2 Lc Data

④ 情形4

CLA INS P1 P2 Lc Data Le

二 响应报文

1) 响应结构

响应数据 响应状态码

Data SW1 SW1

DATA: 返回给用户的数据,即命令的执行结果。

SW1、SW2: 返回命令处理的状态。

三 命令集

1) Read Binary

功能:此命令用于读取二进制文件部分或全部的内容。

CLA 00

INS B0

P1 见参数说明

P2 从文件中读取的第一字节的偏移地址

Le 期望读出数据的长度

2) Update Binary

功能:此命令使用给定的数据来更新二进制文件部分或全部的内容。

CLA 00

INS D6

P1 见参数说明

P2 要修改的第一字节的偏移地址

Lc 后续数据域的长度

Data 修改用的数据

3) Read Record

功能:此命令用于读取记录文件中指定记录的内容。

CLA 00

INS B2

P1 记录号

P2 见参数说明

Le 期望读出数据的长度

4) Update record

功能:此命令使用给定的数据来更新记录文件中指定记录的内容。当所指定的文件非记录文件时,命令将终止。

CLA 00

INS DC

P1 P1= 00 表示当前记录

P1≠ 00 表示指定的记录号

P2 见参数说明

Lc 后续数据域的长度

Data 更新原有记录的新记录

5) Verify PIN

功能:此命令将校验给定的密码的正确性,根据比较的结果修改安全状态,若校验失败次数达到PIN尝试上限,则PIN自动锁定。

CLA 00

INS 20

P1 00

P2

Lc 02 ~ 10

Data 外部输入的个人密码

6) Select File

功能:此命令使用文件名或应用标示符来选择IC卡内DF或EF。

CLA 00

INS A4

P1 00

P2 00

Lc 00 (选择MF文件)/ 02

Data 无 / FID

7) Get Challenge

功能:此命令请求IC卡返回一个用于安全相关过程的随机数。

CLA 00

INS 84

P1 00

P2 00

Le 04

8) Get Response

功能:此命令为T=0协议情形4状态下,用来取卡中返回的数据。

格式:

CLA 00

INS C0

P1 00

P2 00

Le 响应的期望数据最大长度

9) Internal Authenticate

功能:此命令将为外部设备验证卡中的秘密模块的有效性提供数据。

CLA 00

INS 88

P1 00

P2 00 ~ 07 密钥号

Lc 04

Data 外部随机数(4字节)

10) External Authenticate

功能:此命令将验证外部设备中的秘密模块的有效性。

CLA 00

INS 82

P1 00

P2 00 ~ 07 密钥号

Lc 0C

Data 发卡方认证数据

11) Change / Unlock PIN

功能:修改、解锁、安装卡片个人密码。

CLA 00

INS 5E

P1 00 修改卡片个人密码

01 解锁卡片个人密码

02 安(重)装卡片个人密码

P2 密码号

Lc

Data

12) Unlock Key

功能:解锁卡片应用密钥。

CLA 00

INS 5C

P1 01 解锁应用密钥

02 安装卡片应用密钥

P2 密钥号

Lc 无 / 密钥长度

Data 无 / 加密的密钥

13) Create File

功能:此命令创建卡片文件系统。

CLA 00 / 80

INS F2

P1 00 / FTP 文件类型

P2 00 / FAC 文件访问控制条件

Lc 无 / 07

Data



示例:

1 应用选择

(1)选择MF(主文件)

CLA INS P1 P2 Lc Data

00 A4 00 00

P1=00选择主文件

(2)根据应用标识符选择应用

CLA INS P1 P2 Lc Data

00 A4 04 0C 07 A0 00 00 02 47 10 01

P1=04 选择DF(专用文件),此时数据域为DF的文件名(AID应用标识符)

  

DF包括EF(基本文件)和其他DF

DF1:EF.COM、EF.DG1........................EF.DG16、EF.Sod

2 使用SELECT命令选择基本文件

例:选择机读取区

CLA INS P1 P2 Lc Data

00 A4 02 0C 02 01 01

3读二进制

CLA INS P1 P2 Lc Data

00 B0 05 00 00 //读取文件前256Byte

如果P1的最高位b8为1时,b6和b7位必须为0,b5-b1位表示待读取的基本文件的SFI;这时P2表示要读取数据起始位置在文件中的偏移量。
如果P1的最高位为0时,P1的后7位和P2相连共同组成了一个超过256的整数,表示待读取数据块的起始位置在文件中的偏移量,可以用于超过256Byte文件的读取。



读取数据组1(机读取)的数据

读取数据组2(编码人脸)的数据

你可能感兴趣的:(智能卡APDU命令格式及分析)