ISO7816协议:指令字节INS解析

需积分: 10 1 下载量 166 浏览量 更新于2024-08-21 收藏 196KB PPT 举报
"该文档介绍了ISO7816协议中的指令字节INS编码约定,包括各种命令的功能和用途,如擦除二进制数据、验证数据、管理逻辑通道、外部认证、获取挑战、内部认证、选择文件、读取二进制和记录等。同时提到了CLA类别字节的编码规则,用于定义命令和响应的结构以及安全性。" 在智能卡领域,ISO7816协议是广泛采用的标准,它规定了卡片与读卡器之间的通信协议。在这个协议中,指令字节INS是定义具体操作的关键部分。以下是一些主要的指令字节及其功能: 1. ERASE BINARY (0E): 这个指令用于将EEPROM(EF)中的指定偏移位置开始的数据逻辑擦除,将其置为逻辑上的擦除状态,通常意味着填充特定的默认值。 2. VERIFY (20): 此命令启动一个过程,对比从接口设备传入的数据与卡片内存储的参考数据,用于验证数据的正确性,如PIN码校验。 3. MANAGE CHANNEL (70): 该命令用于开启或关闭逻辑信道,允许在同一物理连接上并行执行多个独立的通信流程。 4. EXTERNAL AUTHENTICATE (82): 这个指令允许卡片根据计算结果更新安全状态,通常涉及使用卡片上的密钥与外部数据进行加密操作。 5. GET CHALLENGE (84): 卡片请求一个随机数或其他挑战数据,用于安全相关的操作,如建立会话密钥。 6. INTERNAL AUTHENTICATE (88): 使用从接口设备接收到的挑战数据和卡片上的密钥,卡片内部计算鉴别数据,用于内部安全验证。 7. SELECT FILE (A4): 命令用于根据文件标识符或应用标识符选择卡片上的数据文件(DF或EF),以进行后续操作。 8. READ BINARY (BO): 读取二进制文件的内容,通常用于获取卡片上的非结构化数据。 9. READ RECORD (B2): 读取记录文件中的特定记录,记录文件通常是结构化的数据存储。 10. GET RESPONSE (CO): 当标准协议无法传输完整的APDU(应用程序数据单元)时,这个命令用于从卡片获取剩余的响应数据。 11. ENVELOPE (C2): 发送那些不能通过有效协议直接发送的APDU或其部分,用于处理复杂的数据交换情况。 此外,CLA类别字节用于定义命令的结构和安全性,其中D3和D2位与安全报文(SM)交换和逻辑信道选择有关,D1和D0用于指定逻辑信道号。CLA的值还可以指示命令是否具有专有结构或遵循通用规范。 这些指令字节构成了ISO7816协议中与卡片交互的核心操作,它们使得读卡器能够执行各种任务,如身份验证、数据读写和文件管理,确保智能卡系统的安全和高效运行。