ISO7816协议开发板
智能卡ISO7816-4规范(中文版)

第二部分行业间交换命令目录1范围 (3)2参考文件 (3)3定义 (3)4缩略语和记号 (5)5基本组织结构 (5)5.2 卡的安全体系结构 (9)5.3 APDU报文结构 (11)5.4 命令首标、数据字段和响应尾标用的编码约定 (13)5.5 逻辑信道 (18)5.6 安全报文交换 (19)6基本的行业间命令 (23)6.1 READ BINARY命令 (23)6.2 WRITE BINARY命令 (24)6.3 UPDATE BINARY命令 (25)6.4 ERASE BINARY命令 (26)6.5 READ RECORD命令 (27)6.6 WRITE RECORD命令 (29)6.7 APPEND RECORD命令 (31)6.8 UPDATE RECORD命令 (32)6.9 GET DATA 命令 (33)6.10 PUT DATA 命令 (35)6.11 SELECT FILE 命令 (36)6.12 VERIFY 命令 (38)6.13 INTERNAL AUTHENTICATE 命令 (39)6.14 EXTERNAL AUTHENTICATE 命令 (40)6.15 GET CHALLENGE命令 (42)6.16 MANAGE CHANNEL命令 (42)7面向传输的行业间命令 (43)7.1 GET RESPONSE 命令 (43)7.2 ENVELOPE 命令 (44)8历史字节 (45)9与应用无关的卡服务 (49)通过T=0传输APDU报文 (52)通过T=1传输APDU报文 (57)1 范围本规范规定了:——由接口设备至卡以及相反方向所发送的报文、命令和响应的内容;——在复位应答期间卡所发送的历史字节的结构及内容;——当处理交换用的行业间命令时,在接口处所看到的文件和数据的结构;——访问卡内文件和数据的方法;——定义访问卡内文件和数据的权利的安全体系结构;——安全报文交换的方法;——访问卡所处理算法的方法。
RFID 7816协议

节上编码的私有密钥)
‘87’ 辅助因子
GQ2 的公共密钥数据对象集
‘81’ 模块(一个在 x 字节上编码的表示成 n 的数)
‘83’ 基本数的数量(一个在一个字节上编码表示成 m 的数。如果标签’8成 g,g2…gm 的基本数是前 m 个质数 2,3,5,7,11…) ‘84’ 验证参数(一个在 1 字节上编码表示成 k 的数)
安全消息是(部分)命令-响应对的加密保护的方法集合。
[ISO/IEC 7816-4] 4、缩略语和符号
本文件中用到以下的缩略语
CCT CRT
控制加密校验的参考模板 控制参考模板
CT
控制保密的参考模板
DSA
数字签名算法
DST
控制数字签名的参考模板
ECDSA
椭圆曲线数字签名算法
HT
控制 hash 码的参考模板
‘83’ 基本数(一个在 y 字节上编码表示成 g 的 q 阶的数)
‘84’ 公共密钥(一个在 y 字节编码的表示成 y 的数,它等于 g 的 x 次方模 p,其中 x 是
在 y 字节上编码的私有密钥)
ECDSA 的公共密钥数据对象集
‘81’ 质数(一个在 z 字节上编码表示成 p 的数)
‘82’ 第一系数(一个表示成在 z 字节上编码的数)
Le 域
编码 Ne=0 时缺失,编码 Ne>0 时存在
数据域
缺失或者规定在 P1 中的数据对象数值
SW1-SW2 见 ISO/IEC 7816-4,相关的表 5 和表 6,如 6985
执行安全操作命令使用了表 5 列出的输入模板。这些模板是用于安全消息的基本数据对象(见
ISO/IEC 7816-4)
x
ISO7816协议开发板

ISO7816协议学习开发板
交流QQ1900109344
1、常见的CPU卡外观形式,像现在的社保卡、银行卡(原来老的磁条卡除外)、SIM卡、PSAM 卡、SAM等都是采用7816接口模式,卡片有大卡、小卡(如SIM卡等),小卡放在卡托上就是大卡了,为了使用方便而已。
下面是卡片的常用形式,社保卡等只是打印了图片了而已
2、7816接口分为主接口(SCC)即读卡器和从接口(SCD)即卡片,读卡器读取卡片通过7816接口工作。
标准PC/SC读卡器插入卡片
3、7816开发板1
A、当开发板作为读卡器时,开发好读卡器程序,把卡片(如SIM卡)插入SCC接口,通过发
送7816 APDU指令给SIM卡即可读取卡片的数据。
B、当开发板作为卡片时,开发好智能卡程序,把开发板的SCD接口插入读卡器中,可通过
读卡器发送命令到开发板通信验证7816 APDU命令
4、7816开发板2(与1功能一样,开发板的软件有些区别)
开发板作为卡片插入读卡器。
7816开发板的目的:了解学习7816协议,通过实际例程了解整个工作流程,即读卡器是如果工作的,卡片是如果工作的,两者是如何通信的,这就是7616协议了。
开发套件提供:
1、开发板1或开发板2供学习者调试实验使用
2、读卡器(SCC接口)例程,通过串口打印观察读取卡片的数据
3、卡片(SCD接口)例程
4、7816协议资料
5、可提供PC/SC读卡器PC端发送APDU命令工具
开发板联系QQ:1900109344
备注:标准的PS/SC读卡器需要自行准备,如本图上是采用SCR3310读卡器。
ISO7816同步传送协议;

终端对结点编址的使用是可选的,但IC卡在使用T=1型协议时,必须支持按如下规则的结点编址:
l 若不使用节点地址,终端发往IC卡的第一个数据块的SAD和DAD值均应设为0。
l 若使用节点地址,由终端发给IC卡的第一数据块的SAD和DAD应设定为不同的值(其中之一可以是零)。
3、 T=0的错误检测和校正
当T=0时,这个过程是强制的,但在复位应答时不使用。 如果一个字符没有正确地接收到或接收正确但奇偶位错,则接收方必须在字符起始位的上升沿之后的(10.5±0.2)个etu内,向I/O线发送持续1-2个etu的低电平信号,以指示出了错误。
l 若使用了结点地址,在卡片操作过程中,IC卡收到的第一个有效I块和S块中的NAD,用于建立起整个卡片操作过程中的终端和IC卡的节点地址,在同一个过程中,终端发给IC卡的后续块应使用同一个NAD,如此建立的结点地址适用于所有类型的数据块。
l 在一个用卡过程中,任何由IC卡送向终端的字组,在此过程中必须使用由终端送向IC卡的第一字组确定的结点地址。(注意,从终端送向IC卡的源点和目标地址,在由IC卡送向终端时要分别变为目标和源点地址)。 l 在卡片操作过程中,若IC卡接收到的数据块的NAD和交易开始时所建立的NAD不同,则IC卡应向交易开始时建立的DAD回复一个R块。 协议控制字节(PCB-Protocol Control Byte) 协议控制字节对数据块的类型进行编码,有三种类型的数据块,规定如下: l 用于传送APDU的信息字组(I块) l 用于传达确认(ACK-Acknowlegement)或否认(NAK-Negative Acknowlegement)的接收就绪块(R块)
对于T=0,这些字节和随命令一起发送的数据就构成了命令传输协议数据单元(C-TP-DU)。命令应用协议数据单元C-APDU到C-TPDU的变换在后面讲述。 TTL传送这五个命令头字节给IC卡并等待着一个过程字节。
iso7816协议

ISO7816协议ISO7816是一种智能卡接口标准,定义了与智能卡进行通信的物理和电气特性,以及指令集和应答规则。
该协议被广泛应用于银行卡、身份证、门禁卡等智能卡领域,为智能卡的应用开发和系统集成提供了标准化的技术基础。
1. 背景智能卡作为一种集成电路卡片,具有存储和运算能力,以及与外部设备进行通信的能力。
为了实现智能卡与读卡设备之间的互操作性,ISO7816协议应运而生。
该协议的制定旨在确保不同厂商生产的智能卡和读卡设备可以互相兼容,从而保证智能卡应用的可移植性和可扩展性。
2. 协议结构ISO7816协议包括物理特性、电气特性、传输特性以及指令集等方面的规定,下面将分别介绍:2.1 物理特性ISO7816规定了智能卡的尺寸、接触式和非接触式两种类型的接口等物理特性。
其中,接触式接口通过卡片与读卡设备之间的接触实现数据传输,非接触式接口则利用无线射频技术进行通信。
2.2 电气特性ISO7816针对接触式和非接触式两种接口,定义了电气特性。
接触式接口使用金属接触点进行信号传递,而非接触式接口则通过无线射频进行通信。
电气特性规定了智能卡和读卡设备之间的电压、时序等参数,以确保可靠的数据传输。
2.3 传输特性ISO7816规定了智能卡和读卡设备之间的传输特性,包括传输速率、传输模式等。
根据传输速率的不同,可以将ISO7816协议分为T=0和T=1两种传输模式。
T=0模式是基于字符传输的协议,适用于低速传输环境;T=1模式是基于块传输的协议,适用于高速传输环境。
2.4 指令集ISO7816定义了与智能卡进行通信的指令集。
指令集包括了与智能卡进行数据交互的各种指令,例如读取卡片信息、写入数据、进行身份验证等。
通过遵循ISO7816定义的指令集,读卡设备可以与智能卡进行有效的通信。
3. 应用领域ISO7816协议作为智能卡领域的标准化协议,在各个应用领域都有广泛的应用。
以下是几个典型的应用领域:3.1 银行卡银行卡是ISO7816协议的主要应用之一。
IC卡7816协议

1
目
次 3 3 3
1 主要内容 2 参考资料 3 定义 4 缩略语和符号表示 5 物理特性 卡上信息记录方法和物理接口要求 6 电特性 7 卡的操作过程 8 复位应答
6
IFSI 整型信息域尺寸 INF 信息域 LEN 长度 LRC 纵向冗余检验 NAD 节点地址 OSI 开放系统互连 PCB 协议控制字节 R-block 接收准备块 R 接收准备 SAD 源节点地址 S-block 管理块 WTX 扩展等待时间 XOR 异或 APDU 应用协议数据单元 ATR 复位应答 CLA 类字节 DIR 目录 DF 专用文件 EF 基本文件 FCI 文件控制信息 FCP 文件控制参数 FMD 文件管理数据 INS 指令字节 MF 主文件 P1-P2 参数字节 PTS 协议类型选择 RFU 留待将来使用 SM 安全报文处理 SW1-SW2 状态字节 TLV 标记 长度 值
GB/T 16649.3 – 1996 识别卡- 带触点的集成电路卡- 第3部分: 电信号和传输 协议 ISO/IEC 7816 – 4 1995 识别卡- 带触点的集成电路卡- 第4部分: 交换用行业 间指令 ISO/IEC 7816 – 5 199 5 识别卡- 带触点的集成电路卡- 第5 部分: 应用标识符的编号体系和注册程序. 集成电路卡注册管理办法
3
3.10 状态A State A 空位( 如ISO 1177 中定义) 3.11 XY 十六进制记数法, 等于相对于基数16 的XY 3.12 块 block 由起始域 信息域和终止域组成的连续字符 其中起始域和终止域是必需的 信息域是可选的 3.13 目的节点地址 destination node address(DNA) 节点地址子域(DNA) 的一部分, 用于标识一个块的未来接收者 3.14 终止域 epilogue field 块的最后一个域 包括差错检测编码(EDC) 字节 3.15 差错检测编码 error detection code(EDC) 差错检测的方法之一, 检测起始域和信息域的所有字符 它在终止域中被传送 3.16 域 field 定义为起始域 信息域或终止域 3.17 信息块 information block(I-block) 主要用于传输应用层信息的块 3.18 信息域 information field(INF) 含有数据( 一般为应用数据) 的块中的一个域 3.19 长度 length(LEN) 起始域中的一个子域 它指出在块的信息域中被传输的字节个数 3.20 节点地址 node address (NAD) 起始域中的一个子域 它指明某个块的目的和源节点地址以及VPP状态控制 3.21 起始域 prologue field 块的第1 个域 它包含节点地址(NAD)子域 协议控制字节(PCB)和长度(LEN) 3.22 协议控制字节 protocol control byte(PCB) 起始域中的一个子域 它包含传输控制信息 3.23 接收准备块 receive ready block (R-block) 一个包含肯定或否定确认信息的块 它包含预期的信息块(I-block)的块数 3.24 源节点地址 source node address(SAD) 节点地址(NAD) 子域的一部分, 用于指定块的发送方 3.25 子域 subfield 一个域中的一种功能成分 3.26 管理块 supervisory block(S-block) 包含传输控制信息的块 3.27 传输控制 transmission control 控制接口设备(IFD) 和集成电路卡(ICC) 之间进行数据传输 它包含VPP状态控 制 块顺序传输控制 同步以及传输差错的校正 3.28 复位应答文件 Answer-to-Reset file 指示卡操作特性的基本文件 3.29 指令应答对 command- 响应 pair 两种信报的组合, 一个指令跟着一个响应
ISO 7816协议及智能卡驱动介绍

receive msg
processing…
Call Event Callback (STSMART_EV_CARD_INSERTED or STSMART_EV_CARD_REMOVED)
SMART_DetectHandler是在stsmart_init注册的PIO中断函数
Page 26
2021/5/6
Page 15 2021/5/6
公司名称全称或去掉此项皆可
第3部分—电气接口和传输协议
5)ATR结构和内容 协议类型 T=0—异步半双工字符传输协议 T=1—异步半双工块传输协议 T=14—Irdeto私有定义传输协议 其余为保留类型
Page 16 2021/5/6
公司名称全称或去掉此项皆可
第3部分—电气接口和传输协议
Page 7 2021/5/6
公司名称全称或去掉此项皆可
第3部分—电气接口和传输协议
3)IC卡操作过程
□ active: VCC、CLK的准备好,RST无效状态 □ 卡复位:RST 有效 40000 clk周期 □ 卡输出ATR:Answer to Reset,将卡和协议信息输出给主设备 □ 数据传输:与卡之间的数据交换 □ deactive: RST、CLK、VCC无效
Page 5 2021/5/6
公司名称全称或去掉此项皆可
第2部分—卡的尺寸和触电位置
最小触点尺寸 触点位置
RFU—Reserved for Futurn Use
Page 6 2021/5/6
公司名称全称或去掉此项皆可
第3部分—电气接口和传输协议
1)信号定义
I/O—串行输入输出
CLK—时钟信号(可选),当卡使用内部时钟时不需要
TCK – 校验字节, T0 to TCK的异或值
IC卡7816协议

在等类分类中,仅优先一个给定文件的专用文件 3.40 口令 password
一个应用可能需要的代表卡的用户的数据 3.41 路径 path 没有定界的文件标识符的连接 如果路径以主文件的识别符开始, 它就是一个 路径 3.42 提供者 provider
除文件控制参数(例如:终止数据,应用标签)以外的任何文件信息 3.36 内部基本文件 internal elementary file
用于存储由卡解释的数据的基本文件 3.37 主文件 master file
强制性和唯一被指定的文件,它代表了根目录下的文件结构 3.38 信报 message
COUT 输出电容
BGT 块保护时间
BWI 块等待时间整数值
BWT 块等待时间
CRC 循环冗余检验
CWI 字符等待时间整数值
CWT 字符等待时间
DAD 目的节点地址
以下缩略语适用于本部分
AAC
应用鉴定密码
AC
访问条件
AC
应用加密
ACK
确认
AID
应用标识
APDU
应用协议数据单元
ARQC
授权请求密码
ASC
应用专用指令集
ATC
应用交易序号
ATR
复位应答
BCD
二进制编码的十进制
VIH 高电平输入电压 来自VIL 低电平输入电压
7
5 物理特性 附加信息记录方法和接口要求
符合本规范的集成电路卡应遵守ISO/IEC 7816系列标准中的有关规定
2
1 主要内容 本规范的这一部分规定了 ID-1 型带触点集成电路卡的基本技术要求 主要包括以下
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISO7816协议学习开发板
交流QQ1900109344
1、常见的CPU卡外观形式,像现在的社保卡、银行卡(原来老的磁条卡除外)、SIM卡、PSAM 卡、SAM等都是采用7816接口模式,卡片有大卡、小卡(如SIM卡等),小卡放在卡托上就是大卡了,为了使用方便而已。
下面是卡片的常用形式,社保卡等只是打印了图片了而已
2、7816接口分为主接口(SCC)即读卡器和从接口(SCD)即卡片,读卡器读取卡片通过7816接口工作。
标准PC/SC读卡器插入卡片
3、7816开发板1
A、当开发板作为读卡器时,开发好读卡器程序,把卡片(如SIM卡)插入SCC接口,通过发
送7816 APDU指令给SIM卡即可读取卡片的数据。
B、当开发板作为卡片时,开发好智能卡程序,把开发板的SCD接口插入读卡器中,可通过
读卡器发送命令到开发板通信验证7816 APDU命令
4、7816开发板2(与1功能一样,开发板的软件有些区别)
开发板作为卡片插入读卡器。
7816开发板的目的:了解学习7816协议,通过实际例程了解整个工作流程,即读卡器是如果工作的,卡片是如果工作的,两者是如何通信的,这就是7616协议了。
开发套件提供:
1、开发板1或开发板2供学习者调试实验使用
2、读卡器(SCC接口)例程,通过串口打印观察读取卡片的数据
3、卡片(SCD接口)例程
4、7816协议资料
5、可提供PC/SC读卡器PC端发送APDU命令工具
开发板联系QQ:1900109344
备注:标准的PS/SC读卡器需要自行准备,如本图上是采用SCR3310读卡器。