
学习笔记-USIM卡规范..doc
21页1 什么是什么是 UICC 卡卡 UICC-- Universal Integrated Circuit Card 通用集成电路卡是定义了物理特性的智能卡的总称作为 3G 用户终端的一个重要的、 可移动的组成部分,UICC 主要用于存储用户信息、鉴权密钥、短消、付费方式等信息, 还可以包括多种逻辑应用,例如用户标识模块(SIM) 、通用用户标识模块(USIM) 、IP 多 媒体业务标识模块(ISIM) ,以及其他如电子签名认证、电子钱包等非电信应用模块 UICC 中的逻辑模块可以单独存在,也可以多个同时存在不同的 3G 用户终端可以根据无 线接入网络的类型,来选择使用相应的逻辑模块 在 3G 用户终端的入网测试中,要求满足 UICC 的一致性测试要求UICC 的一致性测 试包括物理特性、电气特性和传输协议测试等几个方面,其中传输协议测试涉及到对 UICC 的文件访问和安全操作ISO/IEC 国际化标准组织制定了一系列的智能卡安全特性协 议,以确保 3G 用户终端对 UICC 文件的安全访问 2 USIM 卡与卡与 SIM 卡的比较卡的比较 USIM 卡和卡和 SIM 卡相比有如下特点:卡相比有如下特点: ◆相对于 SIM 卡的单向鉴权(网络鉴权用户) ,USIM 卡鉴权机制采用双向鉴权(除了 网络鉴权用户外,用户也鉴权网络) ,有很高的安全性。
◆于 SIM 卡薄相比,USIM 卡薄中每个联系人可以对应多个号码或者昵称 ◆相对 SIM 卡机卡接口速率,USIM 卡机卡接口速率大大提高(230kbps) ◆相对 SIM 卡对逻辑应用的支持,USIM 可以同时支持 4 个并发逻辑应用 SIM 卡的上下电过程卡的上下电过程 上电过程: RST 低电平状态-Vcc 加电-I/O 口处于接收状态-Vpp 加电-提供稳定的时钟信号 关闭过程: RST 低电平状态-CLK 低电平状态-Vpp 去电-I/O 口低电平状态-Vcc 去电 GSM 网络注册过程中用到的对网络注册过程中用到的对 SIM 卡的操作:卡的操作: 1. 开机后,从 SIM 卡中读取 IMSI(15Digits)和 TMSI(4byte); 2. 把 IMSI 或 TMSI 发送给网络; 3. 网络检验 IMSI 或 TMSI 有效,生成一个 128bit 的 RAND 发送给 4. 收到 RAND 后,将 RAND 发给 SIM 卡; 5. SIM 以里面的 Ki 为密钥对 RAND 进行 A3 A8 算法运算,生成(SRES+Kc); 6. 从 SIM 卡读取(SRES+Kc)(32bit+64bit),并将 SRES 发给网络; 7. 网络自己进行一次 A3 A8 运算,如果结果与返回的 SRES 相同,判定用户合法。
可以进行后续操作 3 CPU 卡卡 智能卡按照卡内镶嵌芯片的不同,可分为存储器卡、逻辑加密卡、CPU 卡 CPU 卡的结构卡的结构:: 首先,非 CPU 卡,你必须熟悉卡的存储结构,哪里是制造商区,哪里是密码区,哪里 是数据控制区,哪里是数据区(应用区)…… 而 CPU 卡,你不必关心数据的地址,却要关注文件系统的结构:主文件(MF,相当 于 DOS 文件系统的根目录) 、专用文件(DF,相当于 DOS 文件系统的目录,可以有多层) 、 基本文件(EF,相当于 DOS 文件系统的文件) CPU 卡的基本文件类型虽然只有透明(二进制)文件、 (定长与不定长)线性记录文 件和循环记录文件三类,但由于 COS 内部控制的需要,派生出一些特定的“变种”——复 位应答文件、口令文件、密钥文件、DIR 文件、SFI 文件…… COS 中的各文件在智能卡的个人化过程中由发行商(Issuer)根据卡的应用而创建, 对卡的用户而言通常是不能对文件进行创建和删除的但是用户可以根据情况对文件内容 进行修改,可以对文件中的记录或数据单元进行增加、删除等操作 T=0 协议以单字节的字符为基本单位,T=1 协议则以有一定长度的数据块为传输的基 本单位。
智能卡的数据端口只有一个,异步半双工,任一时刻,数据端口上最多只能有一 方(智能卡或者读写设备)在发送数据 4.传输协议传输协议 目前智能卡采用的信息传输协议一般是 T=0 协议和 T=1 协议 如果说这两类协议的 COS 在实现功能上有什么不同的话,主要就是在传送管理器的实 现上有不同不过,无论是采用 T=0 协议还是 T=1 协议,智能卡在信息交换时使用的都是 异步通信模式;而且由于智能卡的数据端口只有一个,此信息交换也只能采用半双工的方 式,即在任一时刻,数据端口上最多只能有一方(智能卡或者读写设备)在发送数据 T=0、T=1 协议的不同之处在于它们数据传输的单位和格式不一样,T=0 协议以单字节的字 符为基本单位,T=1 协议则以有一定长度的数据块为传输的基本单位 3.1 物理层物理层 T=0 和 T=1 传输协议都应使用物理层和字符帧 3.2 数据链路层数据链路层 通过 I/O 线传输的字符应被植入字符帧,在传输字符帧之前I/O 线被置为状态 H按 惯例,字符中的逻辑“1”在 I/O 线上用状态 H 表示, “0”在 I/O 线上用状态 L 表示 一个 字符帧含有 10 个连续的比特: a) 一个比特的起始字位,低电平; b) 八个比特的数据位; c) 一个比特的奇偶校验位。
当包含字符帧的校验位在内有偶数个比特被置“1”时,校验位被置位 时间原点固定在最后一个状态 H 和第一个状态 L 的中间起始位存在的核实必须在 0.7 个 etu 之内进行,相继的各位必须在(n+0.5±0.2)etu 区间内被接收起始位是第 1 位 在一个字符帧内,从它的起始位前沿起到第 n 位的后沿间的时间是(n±0.2)etu 相连两个字符帧的起始位前沿之间的区间,包括了字符宽度(10±0.2)etu,加上保 护时间在保护时间内,UICC 卡和终端二者都处于接收方式(I/O 线处于状态 H) H L 开始 奇偶校验 开始 8 数据位 保护时间 字符宽度 10 0,2 etu I/O 图 : 字符帧 数据传送时最高位的字节总是最先通过 I/O 线复位应答返回的 TS 字节(参见 ISO/IEC 7816-3[12])规定了一个字节里比特的顺序(也就是指明该字节是最高位先传输 还是最低位先传输) T==0 传输协议传输协议 一种基于半双工异步字符的传输协议 所有使用 T=0 协议的命令均由 ME 发起,通知 UICC 如何做 所有使用 T=0 协议的命令都由终端通过发送 5 个字节的命令头标发起,命令头标告知 UICC 该做什么。
终端总是处于主导位置而 UICC 处于从属位置并且假定终端和 UICC 都知 道传输的方向, 所有使用 T=0 协议的命令都由终端通过发送 5 个字节的命令头标发起,命令头标告知 UICC 该做什么 命令总是由终端发给 UICC,通过由 5 个字节组成的命令头标的形式发送一条指令, 命令头标由 5 个连续的字节组成,分别是 CLA, INS, P1, P2, 和 P3. 命令头标和随命令一 起发送的所有数据一起构成了 T=0 协议的命令传输协议数据单元(C-TPDU) 终端向 UICC 发送命令头标以后就等待一个回送的过程字节 UICC 接收到命令头后,应该向终端发送一个包含了过程字节的响应 过程字节用于指示终端下一步的动作 过程字节用于保持终端和 UICC 间的通讯,不 应传送到应用层 这些动作以后,终端应等待进一步的过程字节或状态字 状态字 SW1 SW2 在命令结束时指示 UICC 的状态,一个正常的命令结束时,SW1 SW2 = '90 00'. T==1 传输协议传输协议 通信由 ME 向 UICC 发送一个块开始 发送块的权利在 ME 和 UICC 间交替 T=1 传输协议是异步半双工的块传输协议,当以下情况发生时,协议被初始化: 由冷复位引起的 ATR 之后 由热复位引起的 ATR 之后 成功的 PPS 交换后 通讯从终端向 UICC 发送一个块开始,UICC 和终端轮流发送块。
一个块是最小的数据 单元,它可以被发送也可包含应用数据或传输控制数据,在进一步处理已接收数据之前应 该先对其做检测 在终端和 UICC 中传送的块传输协议,每个块都有如下表中的结构: 起始域信息域信息域结束域结束域 NADPCBLENINFEDC 1 byte1 byte1 byte0-254 bytes1 byte 起始域和结束域必选,信息域可选 起始域起始域 起始域分为下列三个必选区域 -节点地址字节(NAD) ,1 字节 -协议控制字节(PCB),1 字节 -长度(LEN), 1 字节 信息域信息域——INF,可选,且依赖于使用该域的信息块的类型 结束域结束域 结束域包含了错误检测编码字节(EDC),该字节传送所传输的块的错误检测码 结束域应使用 ISO/IEC 7816-3 [12]定义的 LRC 3.3 传输层传输层 本节描述 APDU 如何在终端和 UICC 之间传输APDU 中的数据定义参见 7.4 节 使用使用 T=0 的的 APDU 传输传输 本节描述在 T=0 协议中 C-APDU 和 R-APDU 的映射、APDU 交换以及在方式 2 和方式 4 中 GET RESPONSE 命令的使用。
APDU 映射为映射为 TPDU 将 C-APDU 映射到 T=0 命令头与命令方式有关将 UICC 返回的数据(若存在)和状态 映射到 R-APDU 与返回的数据长度有关 UICC 返回过程字节‘61XX’和‘6CXX’用于控制终端和 UICC 传输层之间进行的交换, 过程字节不能返回给终端的应用层若返回过程字节‘61XX’或‘6CXX’ ,那么表明 UICC 中的命令没有完成 块的类型INF 用途 信息块 I-block传送命令和 APDU 的响应. 接收准备块 R-block未用 管理块 S-block 传送非应用相关信息 INF 应存在(单字节)以按 WTX 调整 IFS VPP 信号错误、管理链中止或重同步时 INF 不存 在 若 UICC 返回状态字‘9000’给终端传输层,它表示处理命令完成的正常状态终端传 输层在从 UICC 处接收到任何状态字时(除接收到过程字节‘61XX’和‘6CXX’ ) ,它将停止 命令处理(如:将 R-APDU 传送给应用层并等待应用层将来的 C-APDU) 仅对于方式 4 中的 命令,若接收到警告状态字节(‘62XX’和‘63XX’ )或者与应用相关的状态字节 (‘9XXX’ , ‘9000’除外) ,在成功地传输命令数据给 UICC 后,终端传输层将立即继续处 理命令。
下面对于 UICC 返回数据和状态到 R_APDU 的映射的描述是提供信息,同时仅应用在 UICC 已经(成功或其它)处理完命令,在’61 XX’和’6C XX’过程字节的控制下 UICC 已 经返回所有数据(如果存在)的情况对于 INS,和过程字节‘60’的详细用法不描INS 述 UICC 返回的状态与最近接收到的命令有关在使用 GET RESPONSE 命令来完成方式 2 和方式 4 命令处理时,在接收到 GET RESPONSE 命令后,UICC 返回的任何状态应与 GET RESPONSE 命令有关,而与完成的方式 2 和方式 4 命令无关 使用使用 T=1 的的 APDU 传输传输 C-APDU 是从终端传输层发送到终端应用层的传输层将 C-APDU 不变地映射到 I-block 的 INFI-block 被发送到 UICC响应数据(若存在)和状态将在 I-block 的 INF 中从 UICC 返回终端传输层若 UICC 返回状态,该状态指示: -正常处理(‘61XX’ ) ; -警告(‘62XX’或‘6。
