1什么是UICC卡UICC-- Universal Integrated Circuit Card通用集成电路卡是定义了物理特性的智能卡的总称。
作为3G用户终端的一个重要的、可移动的组成部分,UICC主要用于存储用户信息、鉴权密钥、短消、付费方式等信息,还可以包括多种逻辑应用,例如用户标识模块(SIM)、通用用户标识模块(USIM)、IP多媒体业务标识模块(ISIM),以及其他如电子签名认证、电子钱包等非电信应用模块。
UICC 中的逻辑模块可以单独存在,也可以多个同时存在。
不同的3G用户终端可以根据无线接入网络的类型,来选择使用相应的逻辑模块。
在3G用户终端的入网测试中,要求满足UICC的一致性测试要求。
UICC的一致性测试包括物理特性、电气特性和传输协议测试等几个方面,其中传输协议测试涉及到对UICC 的文件访问和安全操作。
ISO/IEC国际化标准组织制定了一系列的智能卡安全特性协议,以确保3G用户终端对UICC文件的安全访问。
2USIM卡与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相同,判定用户合法。
可以进行后续操作。
3CPU卡智能卡按照卡内镶嵌芯片的不同,可分为存储器卡、逻辑加密卡、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 )HL 开始奇偶校验 开始 字符宽度 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传输协议是异步半双工的块传输协议,当以下情况发生时,协议被初始化: 由冷复位引起的A TR 之后由热复位引起的A TR 之后成功的PPS 交换后通讯从终端向UICC 发送一个块开始,UICC 和终端轮流发送块。
一个块是最小的数据单元,它可以被发送也可包含应用数据或传输控制数据,在进一步处理已接收数据之前应该先对其做检测。
在终端和UICC 中传送的块传输协议,每个块都有如下表中的结构:起始域和结束域必选,信息域可选。
起始域起始域分为下列三个必选区域- 节点地址字节(NAD ),1字节- 协议控制字节(PCB),1字节- 长度(LEN), 1 字节。
信息域——INF ,可选,且依赖于使用该域的信息块的类型。
结束域结束域包含了错误检测编码字节(EDC),该字节传送所传输的块的错误检测码。
结束域应使用ISO/IEC 7816-3 [12]定义的LRC3.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 中的命令没有完成。
若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,INS和过程字节‘60’的详细用法不描述。
UICC返回的状态与最近接收到的命令有关。
在使用GET RESPONSE命令来完成方式2和方式4命令处理时,在接收到GET RESPONSE命令后,UICC返回的任何状态应与GET RESPONSE 命令有关,而与完成的方式2和方式4命令无关。
使用T=1的APDU传输C-APDU是从终端传输层发送到终端应用层的。
传输层将C-APDU不变地映射到I-block 的INF。
I-block被发送到UICC。
响应数据(若存在)和状态将在I-block的INF中从UICC 返回终端传输层。
若UICC返回状态,该状态指示:-正常处理(‘61XX’);-警告(‘62XX’或‘63XX’);-应用程序方式(‘9XXX’);-成功执行命令(‘9000’);那么它将返回与命令处理相关的数据(若可得)。
在别的状态下不返回任何数据。
I-block的INF内容被不变地映射到R-APDU并返回给终端传输层。