`
befairy
  • 浏览: 37411 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

智能卡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的命令格式及其分析.pdf

    智能卡APDU命令格式及其分析 智能卡APDU命令格式是智能卡应用程序数据单元(APDU)的命令格式,它是智能卡应用程序与 cards 之间的通信协议。APDU命令格式包括CLA、INS、P1、P2、Lc、Data、Le七个部分,其中CLA为...

    APDU智能卡读写器指令操作

    此APDU转为开发智能卡读写器测试使用! 能兼容市面上大多读卡器!

    CPU卡常用的APDU指令错误码_CPU卡常用的APDU指令错误码_

    CPU卡,全称为CPU智能卡,是智能卡的一种,它内置了一个微型计算机系统,拥有处理能力和存储空间,常用于安全认证、...通过分析和学习这些错误码,我们可以更好地调试和优化智能卡应用,提高系统的稳定性和用户体验。

    IC卡完整交易APDU命令附分析

    EMV(Europay, Mastercard, Visa)标准是一种国际通用的智能卡(IC卡)技术,用于确保银行卡交易的安全性。在这个标准下,IC卡使用了复杂的交互过程,其中包括APDU(Application Protocol Data Unit)命令,这些命令...

    APDU_apdu_源码

    这个“APDU_apdu_源码”很可能是用于理解和操作智能卡APDU命令的一个执行程序或库。 在智能卡系统中,APDU是ISO 7816标准的一部分,它定义了卡片和读卡器之间交互的基本单位。一个APDU命令通常包括以下几部分: 1....

    APDU操作NFC芯片

    APDU(Application Protocol Data Unit)是ISO 7816标准定义的一种通信协议,用于智能卡和读卡器之间的交互。在NFC芯片的操作中,APDU指令扮演着关键角色,它们允许设备执行读取、写入、加密和解密等操作。 本项目...

    EMV流程分析apdu命令.rar_EMV_EMV ODA 卡片交易流程日志_EMV数据流_apdu_apdu emv

    本资源“EMV流程分析apdu命令.rar”包含了对EMV交易过程的详细日志,特别是针对EMV Offline Data Authentication (ODA) 的部分。ODA是EMV交易流程中的一个重要环节,用于验证卡片的合法性,而无需通过银行后台系统...

    APDU测试工具

    1、智能卡APDU测试工具,可以编写测试脚本,逐条连续运行脚本命令; 2、首次使用时请在“Reader--loader DLL”选项中添加“HB_PCSC.dll”文件; 3、脚本为.txt格式,“File--Open flie”即可,附工行IC卡读应用数据...

    SIM_sim.zip_ahead9kz_apdu_apdu sim_sim_sim卡cpu卡apdu

    APDU是智能卡与读卡器之间交互的基本单元,它在ISO 7816标准中被定义。在SIM卡与手机(通常称为SIM卡主机或SIM卡接口设备)的通信中,APDU扮演着至关重要的角色。APDU由五部分组成:类代码(Class)、指令码...

    John.Wiley.and.Sons.Smart.Card智能卡大全——智能卡的结构·功能·应用

    APDU是智能卡与外部设备(如读卡器)之间通信的标准协议,它定义了智能卡命令的格式和响应规则,确保了数据交互的安全性和准确性。 #### 3. **加密技术** 加密技术是智能卡安全性的基石,通过使用对称或非对称...

    PC/SC智能卡的QT测试程序源码

    发送APDU命令是向智能卡执行特定操作(如读取数据、写入数据、执行计算等)的关键步骤。通过编写和发送自定义的APDU命令,开发者可以实现对智能卡的高级控制。 6. **源码分析**:`TestReader`文件很可能是测试程序...

    使用微软PC/SC接口操作智能卡的demo

    4. **APDU(应用协议数据单元)**:在PC/SC接口中,智能卡与读卡器之间通信的基本单位是APDU,它包含了命令和响应的信息。 5. **智能卡应用**:智能卡上可以有多个应用,每个应用有自己的应用标识符(AID),通过...

    非接触式CPU卡操作、命令和命令返回分析

    首先,需要通过APDU命令选择包含个人信息的应用,然后使用READ RECORD命令读取具体的记录。如果一切顺利,卡片将返回“9000”表示成功,同时附带读取的数据;若出现问题,则返回相应的错误代码,帮助定位问题所在。 ...

    Snooper 0.1.3.0

    《Snooper 0.1.3.0:智能卡APDU传输工具详解》 Snooper 0.1.3.0是一款专为智能卡(Smart Card)设计的APDU(Application Protocol Data Unit)传输工具,其核心功能在于允许用户自定义指令,对智能卡进行灵活的数据...

    Java写的PCSC+ATR解析工具

    4. **APDU指令**:APDU是智能卡与外部世界通信的数据包格式,由命令和响应两部分组成。通过APDU,应用程序可以向卡片发送操作命令,如读取数据、写入数据或执行特定功能。该工具能够发送自定义的APDU指令,并展示...

    人工智能-机器学习-智能卡COS的研究与设计.pdf

    命令处理模块主要处理APDU命令帧的结构和执行流程,APDU命令分为不同的类别和指令编码,通过这一模块,COS可以理解并执行外部设备发送的指令。 文件系统模块设计是智能卡COS的关键,因为它管理卡片上的数据存储。...

    基于PC/SC的USBKEY的PIN校验代码

    - 使用`transmit`函数将构造好的APDU命令发送给智能卡,并接收响应。 - 如果传输失败(返回值不等于`SCARD_S_SUCCESS`),则直接返回错误代码。 4. **状态字处理**: - 从响应数据中提取状态字`bSw1`和`bSw2`。 ...

    智能卡多路测试工具源码

    智能卡多路测试工具源码是一款专为智能卡测试设计的应用程序,其核心特性在于能够同时对8个PC/SC(个人计算机/智能卡)读卡器进行操作,支持最多8张智能卡的并发测试。这个工具对于智能卡开发者、系统集成商以及测试...

    SmartCardReader读卡器源码

    源码中可能包含一个函数,如`GetRandomNumber`,它会构造一个适当的APDU命令,发送给智能卡,然后解析返回的响应数据以提取随机数。 此外,源码可能还包含了错误处理机制,以应对通讯过程中可能出现的各种异常情况...

    北邮java智能卡实验报告实验三电子钱包(一).doc

    **B、APDU入口**:`process(APDU apdu)`是所有命令的入口点,通过分析APDU命令头来执行相应的功能。例如,当接收到SELECT命令时不做操作,其他命令则根据CLA和INS字段来调用对应的处理函数。 **C、存款模块**:在`...

Global site tag (gtag.js) - Google Analytics