ISO7816协议:指令字节INS解析
需积分: 10 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协议中与卡片交互的核心操作,它们使得读卡器能够执行各种任务,如身份验证、数据读写和文件管理,确保智能卡系统的安全和高效运行。
2016-08-04 上传
2021-10-03 上传
2022-07-03 上传
点击了解资源详情
点击了解资源详情
2021-05-09 上传
274 浏览量
2020-03-02 上传
点击了解资源详情
四方怪
- 粉丝: 28
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫