智能卡APDU的命令格式及其分析.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
智能卡APDU命令格式及其分析 智能卡APDU命令格式是智能卡应用程序数据单元(APDU)的命令格式,它是智能卡应用程序与 cards 之间的通信协议。APDU命令格式包括CLA、INS、P1、P2、Lc、Data、Le七个部分,其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数的最大可能长度。 APDU命令可以分为四种命令报文结构,分别是: 1. 情形1:CLA INS P1 P2 00 2. 情形2:CLA INS P1 P2 Le 3. 情形3:CLA INS P1 P2 Lc Data 4. 情形4:CLA INS P1 P2 Lc Data Le 响应报文包括响应结构、响应数据和响应状态码三个部分,分别是: 1. 响应结构:Data SW1 SW2 2. 响应数据:返回给用户的数据,即命令的执行结果。 3. 响应状态码:SW1 SW2 返回命令处理的状态。 智能卡APDU命令集包括: 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 D4 P1 记录号 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 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:取卡中返回的数据。 CLA 00 INS C0 T=0 协议情形4状态下,用来取卡中返回的P1 00 P2 00 Le 响应的期望数据最大长度 9. Internal Authenticate:为外部设备验证卡中的秘密模块的有效性提供数据。 INS 88 P1 00 P2 00 ~ 07 密钥号 Lc 04 Data 外部随机数(4字节) 10. External Authenticate:验证外部设备中的秘密模块的有效性。 CLA 00 INS 82 P1 00 P2 00 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 / INS F2 P1 00 / FTP 文件类型 P2 00 / FAC 文件访问控制条件 80 Lc 无 /07 Data 实例: 1. 应用选择: 选择MF(主文件):CLA INS 00 A4 00 P1 P2 00 Lc Data 选择应用:CLA INS P1 P2 P1=04 选择 Lc Data 07 A0 00 00 02 47 10 01 DF(专用文件) DF,包括EF(基本文件)和EF.Sod其他 DF 2. 使用SELECT命令选择基本文件: 选择机读取区:CLA INS P1 00 A4 3 读二进制:CLA INS P1 P2 Lc Data 02 0C 02 01 P2 Lc Data 000000 B0 05 // 读取文件前256Byte 如果P1的最高位b8为1时,b6和b7位必须为0,b5-b1位表示待读取的基本文件的SFI;这时P2表示要读取数据起始位置在文件中的偏移量。如果P1的最高位为0时,b6和b7位表示要读取的基本文件的SFI;P2表示要读取数据起始位置在文件中的偏移量。
- 粉丝: 72
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助