880 likes | 997 Views
第 4 章 接触式集成电路 (IC) 卡 国际标准(二). 第 4 章 接触式集成电路 (IC) 卡国际标准. 4.1 概 述 4.2 ISO7816-4 行业间交换命令规定的范围 4.3 数据结构 4.4 卡的安全结构 4.5 应用协议数据单元( APDU )信息结构 4.6 基本行业间命令 4.7 面向传输的行业间命令 4.8 历史字节 4.9 与应用无关的卡服务 4.10 ISO/IEC 7816-5 应用标识符的编号系统和注册 过程. ISO/IEC 7816-4 ,行业间交换用命令。
E N D
第4章 接触式集成电路(IC)卡国际标准 4.1 概 述 4.2 ISO7816-4 行业间交换命令规定的范围 4.3 数据结构 4.4 卡的安全结构 4.5 应用协议数据单元(APDU)信息结构 4.6 基本行业间命令 4.7 面向传输的行业间命令 4.8 历史字节 4.9 与应用无关的卡服务 4.10 ISO/IEC 7816-5应用标识符的编号系统和注册 过程
ISO/IEC 7816-4,行业间交换用命令。 ISO/IEC 7816-5,应用标识符号系统和 注册过程。 4.1 概 述 接触式IC卡的国际标准为ISO/IEC 7816。 ISO/IEC 7816-1~3 在第3章中已介绍,本章主要介绍7816-4~5。 return
ISO/IEC 7816-6, 行业间数据元。 • ISO/IEC 7816-7, 关于结构化卡询问语 言的行业间命令。 • ISO/IEC 7816-8, 与安全有关的行业间 命令。 • ISO/IEC 7816-9, 附加的行业间命令和 复位应答。 • ISO/IEC 7816-10,用于同步卡的电信号 和复位应答。 return
4.2 ISO7816-4 行业间交换命令规定的范围 • 在接口设备与IC卡之间传送的命令和应答信息的内容。 • 在复位应答期间由IC卡发送的历史字节内容。 • 当处理交换用行业间命令时,在接口见到的文件结构和数据。 • 在卡中的文件和数据的访问方法。 • 定义在卡中的文件和数据访问权限的安全结构。 • 安全报文的交换方法。 • 对由卡处理的算法的访问方法。 return
4.3 数据结构 4.3.1 文件的组织结构(P70图) 主文件MF(master file)根文件,必有的。 专用文件 DF (dedicated file),可选的。 基本文件 EF (elementary file) ,可选的。 return
MF DF DF EF EF EF EF EF EF EF 主文件 基本文件 DF DF 专用文件 逻辑文件组织 return
1. 基本文件的分类 内部基本文件 工作基本文件 基本文件 2. 基本文件的结构(P70图) 透明结构 具有固定长度记录的线性文件 具有可变长度记录的线性文件 具有固定长度记录的环形文件 四种 return
4.3.2 数据访问(存取)方式 1. 文件访问方式 当文件不能被默认选择时,可采用: • 利用文件标识符 MF标识符=3F00 • 依靠路径链接 当前文件标识符→被选文件标识符 • 利用短EF标识符 短EF标识符5位代码 • 利用DF名字 DF名字长度(1-16字节) return
2. 数据访问方式 记录访问 数据对象访问 数据单元访问 数据访问 (1) 对记录结构的EF访问 • 用记录标识符或记录编号访问,(无符号8位整数,值01-FE,00、FF保留)。 • 记录标识符由应用提供,记录是 Simple-TLV数据对象,则数据对象的第一个字节为记录标识符。 return
(2)对数据对象的访问 按数据对象的头(标志tag)进行访问 ISO/IEC 7816-4协议支持两种数据对象: BER-TLV Simple-TLV BER(basic encoding rules)-TLV(tag length value) 包括2个或3个字段,其中T字段由1个或几个字节组成,L字段由1个或几个字节组成;V字段由L字段决定,L字段不空,则V字段的长度为L个字节,若L字段为空,则无V字段。 return
T字段 T字段的第一个字节是数据对象的类别(class)、类型(type)和编号(number)。 类别由b8~b7表示: b8~b7=00,为通用类; b8~b7=01,为应用类; b8~b7=10,为上下文-特定类; b8~b7=11,为私用b8~b7类。 return
类型由b6表示: b6=0 ,为原型数据类; b6=1,为结构数据类; 编号由b5~b1决定,但与长度有关。 如长度为1个字节,b5~b1为标志的编号; 如长度大于1个字节,则b5~b1为全“1”,下一字节的b8位为1, b7~b1为编号,而最后一个编号字节的b8位为0。 return
L字段 L字段为单字节时,b8=0,b7~b1的数据是V字段的字节数。 L字段为多字节时,b8=1,b7~b1的数值表示本字段后跟的字节数,这些字节的数值是V字段的字节数。 • V字段 原型BER-TLV数据对象的V字段由0个,1个或多个simple-TLV数据对象组成。 结构数据对象的V字段由0个、1个或3个字段组成。 return
Simple-TLV数据对象 • 由2个或3个字段组成。 • T字段为单字节,值从1到254,可用作标识符。 • L字段由1个字节或3个字节组成。 • 如L字段的第一个字节的内容从00到FE,则表示L字段由1个字节组成。 • 如为FF,则表示第2,3两个字节为L的值。 • 如L字段为空,则无V字段。 return
(3) 对数据单元的访问 • 数据单元的访问由命令的偏移值给出。 • 其下一个数据单元的位置由命令的偏移值加1后产生。 • 默认数据单元长度为1个字节。 return
4.3.3 文件控制信息(FCI) 文件控制信息为数据字节串,在选择文件命令的应答信息中。 三种模式(p72 表4.1) 文件控制参数(FCP) 文件管理数据(FMD) 文件控制信息(FCI) return
文件控制参数(FCP):传送文件控制参数,其数据对象有:文件控制参数(FCP):传送文件控制参数,其数据对象有: return
文件管理数据(FMD)模式:传送文件管理数据,在本协议、ISO/IEC7816-5或7816-6中指定的BER-TLV数据对象。文件管理数据(FMD)模式:传送文件管理数据,在本协议、ISO/IEC7816-5或7816-6中指定的BER-TLV数据对象。 文件控制信息(FCI)模式:传送FCP和FMD。 文件描述字节的含意见表4.3。 Question: eg:文件描述字节的内容:01001010 Question: 线性固定的共享内部EF,只对EF、DF进行描述 return
4.4.1 安全状态(完成操作后的当前状态) 4.4 卡的安全结构 当前状态: • ATR与PPS后 • 完成认证过程的命令后 • 通过password认证后 • 通过密钥认证后 • 通过安全信息后 三种安全状态: 全局安全状态、 特定文件安全状态、 特定命令安全状态 return
4.4.2 安全属性 定义了允许执行的操作及操作过程。 每一文件都有安全属性,应满足一定的安全条件, 才允许对文件进行操作。文件的安全属性依赖于: 文件的种类(DF或EF); 在文件中和/或其父文件中控制信息的可选参数 return
4.4.3 安全机制 • password鉴别 • 密钥鉴别 • 数据鉴别(数字签名) • 数据加密 鉴别的结果登录在EF中。 return
4.5 应用协议数据单元(APDU)信息结构(Application Protocol Data Unit) • 应用协议的操作步骤: • 发送一个命令(command)、 • 在接收此命令的实体中进行处理、 • 回送一个应答。 特点:命令-应答 成对 接口设备—卡间的互传 return
命令信息和应答信息可包含数据,也可不包含数据,有4种数据组合:命令信息和应答信息可包含数据,也可不包含数据,有4种数据组合: 命令无数据,应答无数据; 命令无数据,应答有数据; 命令有数据,应答无数据; 命令有数据,应答有数据。 return
4.5.1 命令APDU (Application Protocol Data Unit) 1. 命令APDU 命令APDU包含一个必备的命令头(4字节)和一个可选的可变长度的命令体。 命令头(4字节) 命令体 return
命令头(4字节) 命令体 命令头为命令的编码,包含: CLA- 类别字节 INS - 指令字节 P1 - 参数字节 P2 - 参数字节 命令体: Lc为体内数据长度, Data 为发送的数据, Le为期望应答数据字段的长度。 return
命令APDU的四种结构 (1) (2) (3) (4) 其中Lc和Le有短型(S)和扩展型(E),长度分别为1字节和3字节。 return
2. 命令体的编码 return
4.5.2 应答APDU 应答APDU由可变长度的体(可选的)和2字节尾部(必备的)组成: 可变长度的体 2字节尾部 其中,体的字节数由命令APDU的Le指出。 Data是接收设备接收命令APDU并进行处理后送回发送设备的数据。 SW1和SW2为状态代码。 return
4.5.3 命令头部、数据字段、应答尾部的规定 表 4.5 命令APDU内容
1. 类别字节CLA CLA的编码和意义,见表4.6。 2. 指令字节INS 指令码为6×或9×的指令是无效的。 return
3. 参数字节P1、P2 P1、P2可为任意值,如不用该参数则将它置成“00”。 4. 应答状态字节SW1-SW2 SW1-SW2是在卡接收到命令并经过处理后送出的应答信号,指出卡的处理状况。 return
SW1 - SW2 处理完成 处理夭折 正常处理 警告 执行错误 检查错误 9000 61× × 67 × × ~6F× × 62× × 63× × 64× × 65× × 内容见表4.10(P79) 状态字节的结构图 return
4.6 基本行业间命令 这些命令是在接口设备和IC卡之间传送的,IC卡执行异步传输协议(T=0或T=1)。 一个命令的功能由若干条CPU指令完成。 1. 读二进制命令 (Read Binary Command) • 功能:读出基本文件(EF)内容 • 使用条件与安全: • 当命令包含一个有效的短EF标识符时,则将此文件作为当前EF。 • 本命令对当前EF进行处理。 • 仅当安全状态与此EF的安全属性相适应,才执行。 return
命令信息与应答信息 表 4.17 读二进制命令APDU return
表 4.18 读二进制应答APDU 警告条件 结合图4.4 SW1=62,且SW2= • 81 部分返回数据可能是错的; • 82 在读出Le字节之前,文件已结束。 return
出错条件 (1)SW1=67,且SW2= • 00 长度错误(错误Le域); (2)SW1=69,且SW2= • 81 命令与文件组织不适配; • 82 安全状态不满足; • 86 命令不允许(没有当前EF)。 (3)SW1=6A,且SW2= • 81 功能不支持; • 82 没有找到文件。 return
(4)SW1=6B,且SW2= • 00 参数错误(偏移值超出EF)。 (5)SW1=6C,且SW2= • ××长度错误(Le有错, ××指出合适的长度)。 2. 写二进制命令 (Write Binary Command) • 功能:将二进制数据写入基本文件(EF) • 本命令完成以下某一操作: • 命令APDU中的数据与已存在于文件中的数据进行逻辑或; return
命令APDU中的数据与已存在于文件中的数据进行逻辑乘;命令APDU中的数据与已存在于文件中的数据进行逻辑乘; • 命令APDU中给出的数据一次性写入卡中。 • 使用条件与安全:P83 • 命令信息与应答信息 • 警告条件 • 出错条件
功能:修改已存在于EF中的某些数据,修改内容由命令APDU给出。功能:修改已存在于EF中的某些数据,修改内容由命令APDU给出。 使用条件与安全 命令信息与应答信息 警告条件 出错条件 3 . 修改二进制命令 (Update Binary Command) return
4 . 擦除二进制命令 (Erase Binary Command) • 功能:EF内容置于逻辑擦除状态,从给定的偏移位置开始顺序执行 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件
5 . 读记录命令 (Read Records Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 6 . 写记录命令 (Write Records Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 return
7 . 增加记录命令 (Append Record Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 8 . 修改记录命令 (Update Record Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 return
9 . 取数据命令 (Get Data Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 10 . 存数据命令 (Put Data Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 return
11 . 选择文件命令 (Select File Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 12 . 验证命令 (Verify Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 return
13 . 内部鉴别命令 (Internal Authenticate Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 14 . 外部鉴别命令 (External Authenticate Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 return
15 . 取口令命令 (Get challenge Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 16 . 管理通道命令 (Manage channel Command) • 功能 • 使用条件与安全 • 命令信息与应答信息 • 警告条件 • 出错条件 return
4.7 面向传输的行业间命令 1. 取应答命令 (Get Response Command) • 功能:卡向接口设备发送APDU。 • (用其他命令不能发送的部分) • 使用条件和安全:无 • 命令信息和应答信息: 表4.62 取应答Get Response 命令APDU return
表 4.63 取应答(Get Response) 应答APDU 表 4.64 应答APDU 的状态字节 return
2. 信封命令 (Envelope Command) • 功能:用于发送APDU,或部分APDU,或数据串。 • (用其他命令不能发送的部分) • 使用条件和安全:无 • 命令信息和应答信息: 表4.65 信封Envelope 命令APDU return