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命令格式及其分析 智能卡APDU命令格式是智能卡应用程序数据单元(APDU)的命令格式,它是智能卡应用程序与 cards 之间的通信协议。APDU命令格式包括CLA、INS、P1、P2、Lc、Data、Le七个部分,其中CLA为...
此APDU转为开发智能卡读写器测试使用! 能兼容市面上大多读卡器!
CPU卡,全称为CPU智能卡,是智能卡的一种,它内置了一个微型计算机系统,拥有处理能力和存储空间,常用于安全认证、...通过分析和学习这些错误码,我们可以更好地调试和优化智能卡应用,提高系统的稳定性和用户体验。
EMV(Europay, Mastercard, Visa)标准是一种国际通用的智能卡(IC卡)技术,用于确保银行卡交易的安全性。在这个标准下,IC卡使用了复杂的交互过程,其中包括APDU(Application Protocol Data Unit)命令,这些命令...
这个“APDU_apdu_源码”很可能是用于理解和操作智能卡APDU命令的一个执行程序或库。 在智能卡系统中,APDU是ISO 7816标准的一部分,它定义了卡片和读卡器之间交互的基本单位。一个APDU命令通常包括以下几部分: 1....
APDU(Application Protocol Data Unit)是ISO 7816标准定义的一种通信协议,用于智能卡和读卡器之间的交互。在NFC芯片的操作中,APDU指令扮演着关键角色,它们允许设备执行读取、写入、加密和解密等操作。 本项目...
本资源“EMV流程分析apdu命令.rar”包含了对EMV交易过程的详细日志,特别是针对EMV Offline Data Authentication (ODA) 的部分。ODA是EMV交易流程中的一个重要环节,用于验证卡片的合法性,而无需通过银行后台系统...
1、智能卡APDU测试工具,可以编写测试脚本,逐条连续运行脚本命令; 2、首次使用时请在“Reader--loader DLL”选项中添加“HB_PCSC.dll”文件; 3、脚本为.txt格式,“File--Open flie”即可,附工行IC卡读应用数据...
APDU是智能卡与读卡器之间交互的基本单元,它在ISO 7816标准中被定义。在SIM卡与手机(通常称为SIM卡主机或SIM卡接口设备)的通信中,APDU扮演着至关重要的角色。APDU由五部分组成:类代码(Class)、指令码...
APDU是智能卡与外部设备(如读卡器)之间通信的标准协议,它定义了智能卡命令的格式和响应规则,确保了数据交互的安全性和准确性。 #### 3. **加密技术** 加密技术是智能卡安全性的基石,通过使用对称或非对称...
发送APDU命令是向智能卡执行特定操作(如读取数据、写入数据、执行计算等)的关键步骤。通过编写和发送自定义的APDU命令,开发者可以实现对智能卡的高级控制。 6. **源码分析**:`TestReader`文件很可能是测试程序...
4. **APDU(应用协议数据单元)**:在PC/SC接口中,智能卡与读卡器之间通信的基本单位是APDU,它包含了命令和响应的信息。 5. **智能卡应用**:智能卡上可以有多个应用,每个应用有自己的应用标识符(AID),通过...
首先,需要通过APDU命令选择包含个人信息的应用,然后使用READ RECORD命令读取具体的记录。如果一切顺利,卡片将返回“9000”表示成功,同时附带读取的数据;若出现问题,则返回相应的错误代码,帮助定位问题所在。 ...
《Snooper 0.1.3.0:智能卡APDU传输工具详解》 Snooper 0.1.3.0是一款专为智能卡(Smart Card)设计的APDU(Application Protocol Data Unit)传输工具,其核心功能在于允许用户自定义指令,对智能卡进行灵活的数据...
4. **APDU指令**:APDU是智能卡与外部世界通信的数据包格式,由命令和响应两部分组成。通过APDU,应用程序可以向卡片发送操作命令,如读取数据、写入数据或执行特定功能。该工具能够发送自定义的APDU指令,并展示...
命令处理模块主要处理APDU命令帧的结构和执行流程,APDU命令分为不同的类别和指令编码,通过这一模块,COS可以理解并执行外部设备发送的指令。 文件系统模块设计是智能卡COS的关键,因为它管理卡片上的数据存储。...
- 使用`transmit`函数将构造好的APDU命令发送给智能卡,并接收响应。 - 如果传输失败(返回值不等于`SCARD_S_SUCCESS`),则直接返回错误代码。 4. **状态字处理**: - 从响应数据中提取状态字`bSw1`和`bSw2`。 ...
智能卡多路测试工具源码是一款专为智能卡测试设计的应用程序,其核心特性在于能够同时对8个PC/SC(个人计算机/智能卡)读卡器进行操作,支持最多8张智能卡的并发测试。这个工具对于智能卡开发者、系统集成商以及测试...
源码中可能包含一个函数,如`GetRandomNumber`,它会构造一个适当的APDU命令,发送给智能卡,然后解析返回的响应数据以提取随机数。 此外,源码可能还包含了错误处理机制,以应对通讯过程中可能出现的各种异常情况...
**B、APDU入口**:`process(APDU apdu)`是所有命令的入口点,通过分析APDU命令头来执行相应的功能。例如,当接收到SELECT命令时不做操作,其他命令则根据CLA和INS字段来调用对应的处理函数。 **C、存款模块**:在`...