1、SIM卡基础知识,入门级,什么是SIM卡,SIM卡是一种智能卡(ICC Card) SIM卡内含处理器、存储单元(静态、动态) SIM卡上跑着一个或者多个应用程序(Application) SIM卡和Modem通过串口通信 SIM卡不是内存卡 SIM卡不是磁条卡,基本概念,Application: set of security mechanisms, files, data and protocols (excluding transmission protocols) NOTE: An application can be a first level application and/or
2、a second level application. first level application: selectable application that is indicated in EFDIR under the MF EXAMPLE: A USIM application. second level application: application which can only be activated during the session of a first level application NOTE: A second level application may have
3、 an AID. This AID is not to be stored in EF(DIR) unless it is also a first level application. selectable application: application that is selectable by an AID according to the process described in ISO/IEC 7816-4 12 over the terminal-UICC interface,一些SIM相关的名词概念,ICC、UICC、SIM、USIM、UIM、RUIM CAT、SAT、STK、
4、SATK、UTK、UCAT、CCAT PDU、APDU、C-APDU、R-APDU PIN、PUK、CHV1、CHV2、ADM CLASS A、CLASS B、CLASS C MF、DF、EF,SIM卡的类型,SIM卡(GSM) USIM卡(GSM/UMTS) CSIM卡(CDMA) UIM卡/RUIM卡(CDMA/EVDO) Micro SIM卡/Mini UICC(GSM/UMTS) 双模卡/多模卡,SIM的安全,PIN = CHV1 PIN2 = CHV2 PIN Lock/Unlock(PIN码) PIN Block/Unblock(PUK码),PIN的种类,Universal PIN
5、 多个Application共用一个PIN Application PIN Application自己的PIN Local PIN 某个DF特有的PIN,SIM卡在通信系统中的作用,接入鉴权 身份标识 预置参数 信息存储 增值服务,SIM卡的作用鉴权,原理 SIM卡中内置加密算法和加密密钥,根据网络下发的公钥计算加密值,再由手机上报给网络,进行鉴权 目的 确认SIM卡的使用者是否为合法用户 识别SIM卡的使用者身份,并确定计费对象,SIM卡的作用身份标识,SIM卡的标识主要是ICCID和IMSI ICCID:是卡本身的标识 IMSI:是卡在运营商内的编号 两者理论上都是唯一的,SIM卡的作用预
6、置参数,运营商会根据自身的网络配置和业务需求设置一些参数,写到SIM卡中。用户的手机会读取这些参数。比如 运营商名字(SPN、OPL等等) 网络配置(HPLMN、EHPLMN、PRL等等) 其他,SIM卡的作用信息存储,用户的信息 Contacts SMS 运行时信息 通话时间统计 上次注册的PLMN 其他,SIM卡的作用增值业务,运营商内置在SIM卡中的一些应用,主要以STK的形式提供,SIM相关协议,ETSI TS 102 221 ETSI TS 102 223 3GPP TS 31.XXX 3GPP TS 51.011 3GPP2 C.S0023-D,SIM与Modem的通信,命令/应答
7、机制 通信的媒介APDU 命令为C-APDU 应答为R-APDU 通信的协议,SIM与Modem的通信 cont.,通信的协议 我们的分析从Transport Layer开始,Data Link Layer以下的部分不再关心,通信过程 Case 1,通信过程 Case 2,通信过程 Case 3,通信过程 Case 4,Command APDU structure,支持的Instruction Code,参见ESTI TS 102.221 Table 10.5: Coding of Instruction Byte of the Commands for a telecom applicati
8、on 常用的命令 SELECT FILE STATUS/GET RESPONSE READ/UPDATE BINARY/RECORD CHANGE/ENABLE/DISABLE/UNBLOCK PIN,Response APDU structure,Response Status的含义,参见ESTI TS 102.22110.2.1 Status conditions returned by the UICC 常见的返回码,Response Status的含义 Cont.,SIM文件访问,MF、DF、EF的概念 MF = Master File = 根目录 DF = Dedicated Fil
9、e = 子目录 ADF = Application Dedicated File = 应用专用目录 EF = Elementary File = 文件,SIM文件结构示意图,RUIM常见的文件结构,SIM文件操作,SELECT by File IDentifier referencing SELECT by path referencing Short File Identifier (SFI) READ BINARY UPDATE BINARY READ RECORD UPDATE RECORD INCREASE SEARCH RECORD RETRIEVE DATA SET DATA,SI
10、M文件其他操作,Get Response 获取Select的返回结果(文件信息) Status 获取文件的信息,常用的SIM文件,EFDIR EFICCID EFIMSI EFSST/EFUST/EFCST EFADN EFFDN EFSMS,关于STK,STK是SIM卡与Terminal交互的途径 STK是双向的(SIM Terminal) 相对于其他操作的单向(Terminal - SIM)而言 STK采用轮询机制来检查SIM卡是否有请求 轮询时间间隔28秒,针对QC平台,STK的基本流程,Profile Download/Terminal Profile Terminal通知SIM卡其Capability Proactive Command 等待SW = “91 XX”,然后FETCH一个Proactive Command Terminal执行该Command,并根据需要发送Terminal Response ENVELOPE Terminal也可以主动发起ENVELOPE,来向SIM卡发送命令 等待SIM卡的进一步动作(Proactive Command),特别话题,如何判断SIM卡的类型 Class 级别 特定File是否存在、内容为何? STK的流程释疑 哪些是Terminal可控的操作,哪些是不可控的 STK的常见问题,