手机MODEM 开发(33)---SIM卡基础知识

SIM卡基础知识

什么是SIM卡

SIM卡是(Subscriber Identification Module 客户识别模块)的缩写,也称为用户身份识别卡,移动无线终端必须装上此卡方能使用。SIM卡是整个GSM系统中唯一确认用户身份的设备,它是向网络表明用户合法身份的重要工具。

SIM卡的意义

• SIM卡是完全由运营商掌握的用户端设备,通过对SIM卡的控制,实现对终端功能的控制。
• SIM卡是手机终端功能的增强和补充,提升手机终端业务能力,降低在业务推广上的终端设备投入成本;
• SIM卡可以通过预置或OTA方式部署应用,满足日益增长的行业应用需求;

SIM卡的主要功能

1. 存储数据

SIM卡存储的数据可分为四类:
    ○ 固定数据。这类数据在ME(Mobile Equipment)被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI)、鉴权密钥(KI)等;
    ○ 临时数据。指的是网络相关的的临时数据,如位置区域识别码(LAI)、移动用户暂时识别码(TMSI)、禁止接入的公共电话网代码等;
    ○ 业务代码,如个人识别码(PIN)、解锁码(PUK)、计费费率等;
    ○ 电话号码、短消息等用户记录。

2. PIN码保护

SIM卡本身是通过PIN码来保护的,PIN是一个4~8位的个人密码,只有当用户输入正确的PIN码时,SIM卡才能被启用,移动终端才能对SIM卡进行存取,也只有PIN认证通过后,用户才能上网通话。

3. 用户身份鉴权

确认用户身份是否合法,鉴权过程是在是在网络和SIM卡之间进行的,而鉴权时间一般是在移动终端登记入网和呼叫时。鉴权开始时,网络产生一个128比特的随机数RAND,经无线电控制信道传送到移动台, SIM卡依据卡中的密钥Ki和算法A3,对接收到的RAND计算出应答信号SRES,并将结果发回网络端。而网络端在鉴权中心查明该用户的密钥Ki,用同样的RAND和算法A3算出SRES,并与收到的SRES进行比较,如一致,鉴权通过。

4. SIM卡中的保密算法及密钥

SIM卡中最敏感的数据是保密算法A3、A8、密钥Ki、PIN、PUK和Kc。A3、A8算法是在生产SIM卡时写入的,无法读出。PIN码可由用户在手机上自己设定,PUK码由运营者持有,Kc是在加密过程中由Ki导出的。

SIM卡的类型

这里写图片描述

• mini SIM:25mm×15mm,有的文档将这种卡称为标准卡。
• micro SIM:15mm×12mm。
• nano SIM:12mm×9mm。
• 虚拟SIM:直接在手机或者其他移动设备中集成SIM卡功能,卡成为了手机芯片模块的一部分。使用虚拟SIM的设备,必定是运营商定制设备,或者设备供应商和运营商签订了协议。

SIM卡的物理接口

这里写图片描述

• Vcc:电源输入
• RESET:复位信号
• CLK:时钟输入信号
• GND:接地
• VPP:编程电压,现在已经基本不用
• I/O:数据输入输出

SIM卡的内部结构

这里写图片描述

• CPU:处理器单元
• RAM:用于存放临时数据
• ROM:用于存放系统程序,用户不可修改
• EEPROM:用于号码、短信等数据,可擦写的程序等

SIM卡的文件结构

SIM卡上的所有数据都是以文件的形式存放在卡片数据存储区中的,如下图,有3种文件类型: 
这里写图片描述

  1. MF(Master File):主文件,理解为根目录。MF文件的ID为3F00
  2. DF(Dedicated File):专用文件,理解为文件夹。常见的DF有: 
    ○ DF-GSM:ID为7F20 
    ○ DF-TELECOM:ID为7F10 
    ○ ADF:Application DF,ID为7FFF
  3. EF(Elementary File):基本文件,存储数据用的文件。基本文件又分为3类 
    ○ 透明EF:透明结构的 EF 由一个字节序列组成。简单理解为只有一条记录的文件 
    这里写图片描述 
    ○ 线性固定EF:线性固定 EF 文件由一个记录长度固定的记录序列组成。第一个记录记录号是 1。 简单理解为记录多条记录的文件。 
    这里写图片描述 
    ○ 循环EF:循环文件用于以时间顺序存储的记录,当所有的记录空间都占用时,新的存储数据将覆盖最旧的信息。 如果线型固定EF的记录是一个数组的话,循环EF的记录就是一个循环链表。 
    这里写图片描述 
    注意:线性固定EF和循环EF最多只能存放255条记录

    根据上面的描述,可以看得出来,要精确的定位到一个EF文件,完整的文件路径应该是:MFID + DFID + EFID。比方说在DF-TELECOM下面的EF-SMS(保存短消息的SIM卡文件,ID为6F3C),完整路径就是“3F007F106F3C”。

常用的文件操作

在通信协议ETSI 11.11中定义了所有的操作类型,其中, 
常用的有如下操作

• SELECT:选择文件
• STATUS:查询当前目录的信息 
• READ BINARY:读取透明EF内容
• UPDATE BINARY:更新透明EF内容
• READ RECORD:读取线性固定EF或者循环EF的记录
• UPDATE RECORD:更新线性固定EF或者循环EF的记录

PIN/PUK系列的命令:详细描述见PIN码主题文章

• VERIFY CHV:验证PIN码
• CHANGE CHV:修改PIN码
• DISABLE CHV:关闭PIN码验证
• ENABLE CHV:打开PIN码验证
• UNBLOCK CHV:解锁

STK相关的命令:详细描述见STK主题文章

• TERMINAL PROFILE:告知SIM卡手机对STK的支持能力。初始化SIM卡的过程中发给SIM卡。
• FETCH:手机从SIM卡获取命令
• TERMINAL RESPONSE:手机返回SIM卡执行主动式命令的结果
• ENVELOPE:手机发送数据或者事件给SIM卡。

初始化流程(GSM,由3GPP 11.11协议定义)

这里写图片描述

如上图所示,SIM 卡激活后(用指定的高低电平顺序给SIM卡的几个管脚上电,在ISO/IEC7816-3定义), ME 选择专有文件 DF-GSM,并查询语种文件EF-LP(language preferred)。 
如果语种文件不可得,或者 EF 中的语言不被支持,那么 ME 选择一种缺省语言。 
然后 ME 进行 CHV1 验证过程。如果 CHV1 验证过程执行成功, ME 接着执行 SIM 卡 PHASE 请求过程。 
如果 ME 检测到一个 PHASE 1 SIM 卡,它将忽略接与 FDN(Fixed Dialing Number,固定拨号) 有关的过程,并进入GSM启动操作。 
注:现在的SIM卡基本上都是Phase 2的 
对于 PHASE 2 SIM 卡,只有在以下二个条件之一满足时,才能启动 GSM 操作:

• 如果 EFIMSI 和 EFLOCI 未失效, GSM 操作立即启动;
• 如果 EFIMSI 和 EFLOCI 已失效, ME 激活这二个 EF。

如果 FDN 功能满足以下3种情况,则GSM流程启动,否则GSM操作不应该启动

• FDN 在 SIM 卡中被分配并激活,并且FDN 被置为“ ENABLED”;
• FDN 在 SIM 卡中被分配并激活,并且 FDN 被置为“ DISABLED”;
• FDN 未被分配或未被激活;

然后, ME 执行下述GSM启动操作,包括:

• ADMINISTRATIVE 信息请求
• SIM 卡服务表请求
• IMSI 请求
• 存取控制请求
• HPLMN 搜索周期请求
• PLMN 选择请求
• 位置信息请求
• 密钥请求Draft prETS 300 608:1996.08 HCCL GSM 11.11 Version4.18.0
• BCCH 信息请求
• 禁止 PLMN 请求

SIM 卡初始化成功完成以后, MS 准备 GSM 会话。

SIM卡相关3GPP通信协议

SIM卡相关协议都在以下3个协议系列中

• 11系列:GSM only (before Rel-4)
• 51系列:GSM only (Rel-4 and later)
• 31系列:3G and beyond / GSM (R99 and later)

日常工作中经常用到的有:

• SIM/USIM:11.11 / 51.011 / 31.102
• STK:11.14 / 51.015 / 31.111
• SIM/USIM测试协议:51.010 / 31.121 
• STK测试协议:51.010-4 / 31.124

猜你喜欢

转载自blog.csdn.net/zhangbijun1230/article/details/81427754