【天堂论坛】玩机到天堂 买机找海洋西门子 6688……黑白经典.MP3机王 → 转贴:SIM卡应用与安全缺陷分析。兄弟们来学一下!
查看完整版本:转贴:SIM卡应用与安全缺陷分析。兄弟们来学一下!
2006/5/31 8:51:12
SIM卡应用与安全缺陷分析,大家来学一下!

SIM卡应用与安全缺陷分析

一、概述

移动电话机与SIM卡共同构成移动通信终端设备。无论是GSM系统还是CDMA系统,数字移动电话机用户在“入网”时会得到一张SIM卡(SubscriberIdentityModule)或UIM卡(UserIdentity Module)。SIM卡是一张符合GSM规范的“智慧卡”,可以插入任何一部符合GSM规范的移动电话中,实现“电话号码随卡不随机的功能”,而且通话费用自动计入持卡用户的账单上,与手机无关。

二、SIM卡硬件特性

1、外部特征

在实际使用中有两种功能相同而形式不同的SIM卡:

卡片式(俗称大卡)SIM卡,这种形式的SIM卡符合有关IC卡的ISO7816标准,类似IC卡。

嵌入式(俗称小卡)SIM卡,其大小只有25mm×15mm,是半永久性地装入到移动台设备中的卡。

“大卡”上真正起作用的是它上面的那张“小卡”,而“小卡”上起作用的部分则是卡面上的铜制接口及其内部胶封的卡内逻辑电路。目前国内流行样式是“小卡”,小卡也可以换成“大卡”(需加装一卡托)。“大卡”和“小卡”分别适用于不同类型的GSM移动电话,早期机型如摩托罗拉GC87C、308C等手机用的是“大卡”,而目前新出的机型基本上都使用“小卡”。

2、 SIM卡接口

SIM卡是通过卡面上铜制接口来连接卡内逻辑电路与移动终端的,SIM卡芯片有八个触点,通常与移动设备连接需要六个触点,具体接口定义如下图所示:

3、内部结构

SIM卡是一个装有微处理器的芯片卡,它的内部有5个模块,并且每个模块都对应一个功能:微处理器CPU(8位)、程序存储器ROM(3--8kbit)、工作存储器RAM(6--16kbit)数据存储器EEPROM(128--256kbit)和串行通信单元。这5个模块被胶封在SIM卡铜制接口后与普通IC卡封装方式相同。这五个模块必须集成在一块集成电路中,否则其安全性会受到威胁。因为,芯片间的连线可能成为非法存取和盗用SIM卡的重要线索。

SIM卡同手机连接时至少需要5条连接线(通常编程口未定义)

数据I/O口(Data)

复位(RST)

接地端(GND)

电源(Vcc)

时钟(CLK)如上图所示。

SIM卡的供电分为5V(1998年前发行)、5V与3V兼容、3V、1.8V等,当然这些卡必须与相应的移动电话机配合使用,即移动电话机产生的SIM卡供电电压与该SIM卡所需的电压相匹配。卡电路中的电源VCC、地GND是卡电路工作的必要条件。卡电源用万用表就可以检测到。SIM卡插入移动电话机后,电源端口提供电源给SIM卡内各模块。

检测SIM卡存在与否的信号只在开机瞬时产生,当开机检测不到SIM卡存在时,将提示“InsertCard(插入卡)”;如果检测SIM卡已存在,但机卡之间的通信不能实现,会显示“CheckCard(检查卡)”;当SIM卡对开机检测信号没有响应时,移动电话也会提示“InsertCard(插入卡)”;当SIM卡在开机使用过程中掉电、由于松动接触不良或使用报废卡时,移动电话会提示“Bad Card/SIM Error”。

对于卡电路中的SIM­_I/O、SIM_CLK、SIM_RST,全部是由CPU的控制来实现的。虽然基站与网络之间的数据沟通随时随地进行着,但确定哪个时刻数据沟通往往很难。有一点可以肯定,当移动电话机开机时刻与网络进行鉴权时必有数据沟通,这时尽管时间很短,但测量一定有数据,所以我们在判定卡电路故障时,在这个时隙上进行监测为最佳监测时间。正常开机的移动电话机,在SIM卡座上用示波器可以测量到SIM_I/O、SIM_CLK、SIM_RST信号,它们一般是一个3V左右的脉冲。若检测不到,说明SIM卡座供电开关管周边电阻、电容元件脱焊、SIM卡卡座脱焊,也有可能是卡座接触不良,SIM卡表面氧化或是报废卡。

当手机开机时,手机需要与SIM卡进行数据交换,用示波器可以在SIM卡卡座上检测到一些数据信号,没插卡时,这些信号不会送出。可谓“瞬间即逝”,但可以用示波器捕捉到,以此判别SIM卡电路有无故障。SIM卡触点电性能表示触点低电平高电平Vcc-U=+5V±10%,I=10mA RST -0.3≤U≤+0.6V,I=200uA 4V≤U≤Vcc,I=20uA CLK -0.3≤U≤+0.6V,I=200uA -2.4V≤U≤Vcc,I=200uA GND - - Vpp - +5V±10% I/O输入 0V≤U≤0.4V,I=1mA 0.7V≤U≤Vcc,I=20uA I/O输出 0V≤U≤0.8V,I=1mA 3.8V≤U≤Vcc,I=20uA

电源开关时,SIM卡电气性能为:当开启电源期间,按以下次序激活各触点:RST低电平状态;Vcc加电;I/O口处于接收状态;Vpp加电;提供稳定的时钟信号。当关闭电源时,按如下次序工作:RST低电平状态;CLK低电平状态;Vpp去电;I/O口低电平状态;Vcc去电。

SIM卡的存储容量有3kB、8kB、16kB、32kB、64kB等。目前多为16KB和32KB,STK卡(SIM application Tool Kit)是SIM卡的一种,它能为移动电话机提供增值服务,如移动梦网业务等。(将在后章节具体介绍)SIM卡能够储存多少电话号码取决于卡内数据存储器EEPROM的容量(有2K、3K、8K容量),若有8KB的存储容量,可供储存以下信息:

 *100组电话号码及其对应的性名文字;

 *15组短信息(ShortMessage);

 *25组以上最近拨出的号码;

 *4位SIM卡密码(PIN)。

几种主要的SIM卡的结构数据

三、SIM卡软件特性

SIM卡采用新的单片机及存储器管理结构,因此处理功能大大增强。其智能特性的逻辑结构是树型结构。全部特性参数信息都是用数据字段方式表达,SIM卡中存有三类数据信息:

(1)与持卡者相关的信息以及SIM卡将来准备提供的所有业务信息,这种类型的数据存储在根目录下。

(2)GSM应用中特有的信息,这种类型的数据存储在GSM目录下。

(3)GSM应用所使用的信息,此信息可与其它电信应用或业务共享,位于电信目录下。

即在根目录下有三个应用目录,一个属于行政主管部门应用目录,两个属于技术管理的应用目录,分别是GSM应用目录和电信应用目录。所有的目录下均为数据字段,有二进制的和格式化的数据字段。数据字段中的信息有的是永存性的即不能更新的,有的是暂存的,需要更新的。每个数据字段都要表达出它的用途、更新程度、数据字段的特性(如识别符)、类型是二进制的还是格式化的等。

下面按GSM的Phasel(阶段1)和Phase2(阶段2)两种情况对SIM卡的数据格式进行说明:

(1) Phasel

<1> GSM系统参数

在阶段l时,所选GSM系统参数数据项目如图所示。其中6F38业务表中选有五项开放业务:

GSM阶段1系统参数数据所选项

标识符
名称
长度

6FAD
管理(Administrative)
3

6F38
业务表(Service Table)
4

6F07
IMSI
9

6F7B
禁止PLMN(Forbidden PLMN)
12

6F7E
TMSI LAI
11

6F20
Kc, n
9

6F30
PLMN选择(PLMN Selector)
24

6F74
BCCH信息(BCCH Information)
16

6F78
接入控制(Access Control)
2


业务1(Servicel):PIN码取消(PINDisabling)

业务2(Service 2):缩位拨号(Abbreviated Dialing Numbers)

业务4(Service 4):短消息存储(Short Message Storage)

业务6(Service 6):容量配置参数(Capability Configuration Parameters)

业务7(Service 7):PLMN选择(PLMN Selector)

业务3、业务5和业务8在Phase 1中不开放,6F78接入控制采用低级等级。

<2> 电信业务参数

GSM阶段1电信业务所选项

标识符
名称
长度

6F3A
缩位拨号(Abbreviated Dialing Numbers)
50 × 22

6F3D
容量配置参数(Capability Config Parameters)
1 × 14

6F3C
短消息存储(Short Message Storage)
5 ×176

6F39
话费计数(Charging Counter)
2


(2) Phase 2

<1> GSM系统参数

在阶段2时,GSM系统参数数据所选项目如图所示。其中6F38业务表在Phasel的基础上增加的业务有:

GSM阶段2系统参数数据所选项


标识符
名称
长度

6F05
语种选择(Language Preference)
4

6F07
IMSI
9

6F20
Kc, n
9

6F30
PLMN选择(PLMN Selector)
42

6F31
HPLMN搜索(HPLMN Search)
1

6F38
业务表(Service Table)
4

6F45
小区广播消息标识(Cell Broad Message ID)
8

6F74
BCCH消息(BCCH Information)
16

6F78
接入控制(Access Control)
2

6F7B
禁止PLMN(Forbidden PLMN)
12

6F7E
TMSI LAI
11

6FAD
管理数据(Admin Data)
3

6FAE
Phase 识别(Phase Identify)
2


业务9 (Service 9):MSISDN

业务10 (Service l0):扩展1文件(Extension l file)

业务12 (service l2):短消息参数(short Message Parameters)

业务13 (Service l3):最后拨号存储(Last Number Dialed)

业务14 (service l4):小区广播消息识别(cell Broadcasting Message Identifier fi1e)

业务3、业务5、业务8和业务11在Phase2中不开放,6F78接入控制采用低级等级。

<2> 电信业务参数

GSM阶段2电信业务所选项

标识符
名称

6F3A
缩位拨号(Abbreviated Dialing)

6F3C
短消息存储(Short Message Storage)

6F3D
容量配置参数(Capability Config)

6D40
MSISDN

6F42
短消息存储参数(SMS Parameters)

6F43
短消息存储状态(SMS Status)

6F44
最后拨号存储(Last Number Dialed)

6F4A
扩展1文件(Extension 1 file)


四、SIM卡应用

1、SIM卡编号

SIM卡背面的20位数字所代表的含义如下:

前6位(898600):中国的代号;

第7位:业务接入号,对应于135、136、137、138、139中的5、6、7、8、9;

第8位:SIM卡的功能位:暂定为0;

第9、10位:各省的编码;

第11、12位:年号;

第13位:供应商代码;

第14—19位:用户识别码;

第20位:校验位。

2、 SIM卡密码

(1)、PIN码

PIN码(PersonalIdentityNumber):个人识别码,也叫PIN1码,长4位,由用户自己设定(初始值为1234或0000),属于SIM卡的密码,用来保护SIM卡的安全,防止SIM卡未经授权而被使用。初始状态是不激活的。启动该功能后,每次用户重新开机,GSM系统就要和手机之间进行自动鉴权,判断SIM卡的合法性,只有在系统认可后,才为该用户提供服务。

用户在启动PIN码保护功能后不慎将PIN码忘记,在错误的输入三次PIN码后SIM自动上锁,手机无法接入网络,提示要求输入PUK码。此时若您不知道PUK码,那么请不要再尝试输入PIN码了,请携带有关凭证和手机到当地运营商的营业厅去解开,也可拨打服务电话获得。若您输入10次错误的PIN码,那么SIM卡的自毁程序将自动启动,将SIM烧毁,使用户得不偿失。

(2)、PIN2码

PIN2码:PIN2码也是SIM卡的密码,它跟网络计费和SIM卡内部资料的修改有关。手机上的“计费”功能需要PIN2码支持。GSM协议支持手机随时查询已通话的支出,目前国内运营商在部分地区开通此项业务,用户可以得到自己的PIN2码。

(3)、PUK码

PUK码(PINUnblockingKey):PUK码是解PIN码的万能锁,每张SIM卡有各自对应的PUK码,长8位,可以交由用户自己管理,也可以由网络运营商控制。目前国内运营商基本都已开通查询PUK码的业务,用户可以自己管理PUK码。

(4)、PUK2码

PUK2码(PIN2 Unblocking key):PUK码是解PIN2码的万能锁,每张SIM卡有各自对应的PUK2码,长8位,可以交由用户自己管理,也可以由网络运营商控制。目前国内部分地区的运营商开通了PUK2码的业务,用户可以自己管理PUK2码。

3、SIM卡使用

SIM卡在日常使用中一是请勿将卡弯曲,卡上的金属芯片更应小心保护,保持金属芯片清洁(可用酒精棉球轻擦),避免沾染尘埃及化学物品;二是为保护金属芯片,请避免经常将SIM卡从手机中抽出;请勿将SIM卡置于超过85度或低于-35度的环境中;在取出或放入SIM卡前,请先关闭手机电源;三是最好不要用手去触摸那些触点,以防止静电损坏。

SIM卡的使用是有一定年限的。一般来说,它的物理寿命是取决于客户的插拔次数,约在1万次左右;而集成电路芯片的寿命取决于数据存储器的写入次数,不同厂家其指标有所不同,就Motorola生产的SIM卡经试验室试验约为5万次。SIM卡的平均寿命约为4年。

4、SIM卡知识进阶

(1)、SIM卡内保存的数据可以归纳为以下四种类型:

<1>由SIM卡生产厂商存入的系统原始数据。

<2>由GSM网络运营部门或者其他经营部门在将卡发放给用户时注入的网络参数和用户数据。包括: 

*鉴权和加密信息Ki(Kc算法输入参数之一密匙号); 

*国际移动用户识别码(IMSI); 

*A3:IMSI认证算法; 

*A5:加密密匙生成算法; 

*A8:密匙(Kc)生成前,用户密匙(Kc)生成算法;(这三种算法均为128位)

<3>用户自己存入的数据。如短消息、固定拨号、缩位拨号、性能参数、话费记数等。

<4>用户在用卡过程中自动存入和更新的网络接续和用户信息类数据。包括最近一次位置登记时的手机所在位置区识别号(LAI),设置的周期性位置更新间隔时间,临时移动用户号(TMSI)等。

这些数据都存放在各自的目录项内,第一类数据放在根目录,当电源开启后首先进入根目录,再根据指令进入相关的子目录,每种目录极其内部的数据域均有各自的识别码保护,只有经过核对判别以后才能对数据域中的数据进行查询,读出和更新。上面第一类数据通常属永久性的数据,由SIM卡生产厂商注入以后无法更改,第二类数据只有网络运行部门的专门机构才允许查阅和更新,再第三、四类数据中的大部分允许用户利用任何手机对其进行读/写操作。

(2)、在下一章节中需要用到国际移动设备识别码IMEI和国际移动用户识别码IMSI,这里先做一简单介绍。

国际移动设备识别码IMEI(InternationalMobileEquipment Identification Number)是区别移动台设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。IMEI组成如图所示,移动终端通过键入*#06#可以查得。其总长为15位,每位数字仅使用0—9的数字。

TAC:型号装配码,由欧洲型号标准中心分配。

FAC:装配厂家号码。

SNR:产品序号,用于区别同一个TAC和FAC中的每台移动设备。

SP:备用。

国际移动用户识别码IMSI(InternationalMobileSubscriberIdentification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。IMSI组成如图所示,其总长度不超过15位,每位数字仅使用0—9的数字。

MCC:移动用户所属国家代号,占3位数字,中国的MCC规定为460。

MNC:移动网号码,最多由两位数字组成。用于识别移动用户所归属的移动通信网。

MSIN:移动用户识别码,用以识别某一移动通信网中的移动用户。

四、安全缺陷分析

1、安全分析

(1)、SIM卡

SIM卡中最敏感的数据是保密算法A3、A8算法、密钥Ki、PIN、PUK和Kc。A3、A8算法是在生产SIM卡的同时写入的,一般人无法读取A3、A8算法;HN码可由客户在手机上自行设定;PUK码由运营者持有;Kc是在加密过程中由Ki导出;Ki需要根据客户的IMSI和写卡时用的母钥(Kki),由运营部门提供的一种高级算法DES,即Ki=DES(IMSI,Kki),经写卡机产生并写入SIM卡中,同时要将IMSI、Ki这一对数据送入GSM网路单元AUC鉴权中心。

如何保证Ki在传送过程中安全保密是一件非常重要的事情。Ki在写卡时生成,同时加密,然后进入HLR/AUC后再解密,那么连写卡和HLR/AUC的操作人员也不知道Ki的真实数据。

一般流行的做法是用一高级方程DES对Ki进行加密,DES方程需要一把密钥Kdes,加密和解密都用同一把密钥。由运营部门提供DES方程给HLR/AUC设备供应商,运营部门制定严格的保密制度,管理好密钥Kdes就能保证Ki传递的安全性,此过程如图所示。

SIM卡写卡流程

由此可见,SIM卡自身的加密措施是十分完备的。

(2)、空中接口

GSM系统为了保证通信安全,尤其是空中接口不受侵犯,采取了特别的鉴权与加密措施,来确保移动台的合法性以及防止第三者对通话进行窃听。所使用的加解密算法以及安全措施从理论上来说是不可逆的。这里主要介绍SIM卡,对GSM系统对于空中接口的控制与管理就不详细叙述了。

2、 SIM卡整体复制

目前出现了许多MAGICSIM、SUPERSIM等手机智能卡,配合专用的SIM卡读写卡起便可实现在1张空白的卡上同时“烧”进不同地区的16个手机卡号,可供用户使用手机STK功能*随时切换使用其中任何一个号码使用,也可将一个号码“烧”进多张手机SIM卡。设备如图所示

上图是这类SIM卡内部简单电路,是使用单片机PIC16F84和一片扩展存储器24LC16(2K)构成的。

下面,从理论层来进行分析:

下图为GSM系统设备识别程序,通过IMEI对用户设备的合法性进行验证。

在EIR中只用三种设备清单:

白名单:合法的移动设备号;

灰名单:是否允许使用由运营商决定;

黑名单:禁止使用的移动设备号;

目前,移动运营商在用户入网时并没有对移动电话机的国际移动设备识别码(IMEI码)实行验证,其次,GSM系统为了防止非法监听进而盗用IMSI,在无线链路上需要传送IMSI时,均使用临时移动用户识别码TMSI来代替IMSI。仅在位置更新失败或MS得不到TMSI时才使用IMSI。因此,这就对SIM卡整体复制以及SIM卡的非法盗用提供了先决条件。同时,也使得GSM系统对移动台的鉴权形同虚设。

实验证明:使用两部手机,一部使用原SIM卡,另一部使用superSIM16复制卡,在一部机拔出的时候,另一部无法工作;一部机在发短息的时候,另一部无法同时发信息;两机同时待机,短信息和电话一般会到后开机的那一部手机上;如果关闭掉其中一部手机,有可能会出现暂时收不到短信息(信息延时)的情况,或者网络出现机主关机的情况;如两机均设置了自动选网,同号待机时等同于轮流待机(感觉为随机)。

*STK

STK(SIMTOOLKIT),简称“用户识别应用发展工具”,可以理解为一组开发增值业务的命令,一种小型编程语言,它允许基于智能卡的用户身份识别模块SIM运行自己的应用件。

STK卡不是一般的通常使用的SIM卡,而是基于Java语言平台的Simera32K卡片。STK是一种小型编程语言的软件,可以固化在SIM卡中。它能够接收和发送GSM的短消息数据,起到SIM卡与短消息之间的接口的作用,同时它还允许SIM卡运行自己的应用软件。这些功能经常被用于在可通过软件激活的电话显示屏上,用友好的文本菜单代替机械的“拨号-收听-应答”方式,从而允许用户通过按键轻松进行复杂的信息检索操作或交易。

“移动梦网卡”就是是在普通STK功能上联合ICP应用服务的多功能STK应用SIM卡。该产品将ICP短信应用服务以菜单的形式移植到STK卡中,增强了手机的通信能力,使手机不仅仅是一个孤立的通信工具,而且成为了一种综合的信息终端,让用户可以在手机上方便地使用移动互联网业务。目前,“移动梦网卡”提供的功能有传情服务、IP电话、股票助理、新闻信息、定位服务、娱乐休闲、实用工具、生活服务、全球通话费查询等,并根据需要不断在开发新的服务项目。

3、SIM卡模拟器

由于SIM卡内部属于单片机范畴,早在1998年,国外就出现了使用TurboPascal编写的SIM卡模拟程序以及相应的外部接口电路。它跳过了SIM卡,将手机与计算机结合到了一起。通过外部电路将手机与计算机RS-232接口相连,在计算机上运行SIM卡模拟程序,模拟SIM卡处理的全过程。

SIM卡模拟器不同于SIM卡整体复制,它将卡内数据读出,并以数据格式保存在计算机上。运行模拟程序时,这些以数据格式保存的卡内数据就相当与一张张实实在在的SIM卡。所不同的是,对照SIM卡内部的数据格式说明,能实现对SIM卡内部数据的修改和SIM卡复制等功能。这样一来,就使得SIM卡的安全性完全丧失,并对GSM系统的安全性造成一定的威胁。

五、总结

虽然SIM卡同样存在安全隐患,但比起早期模拟通信系统来说已经有了长足的发展。SIM卡技术的引入,使得GSM系统在安全方面得到了极大改进。并使得无线电通信从不保密的禁区中解放出来。
2006/5/31 10:06:46
好贴。。可惜没能看到图片。 其中:“四、SIM卡应用 1、SIM卡编号 SIM卡背面的20位数字所代表的含义” 好像不是那样哦。。不只对否? 
2006/5/31 12:17:53
引用
原文由 傲然 发表于 2006-5-31 10:06:46 :
好贴。。可惜没能看到图片。 其中:“四、SIM卡应用 1、SIM卡编号 SIM卡背面的20位数字所代表的含义” 好像不是那样哦。。不只对否? 

在手机sim卡上,通常印有字码或条形数码.标准的字码和数码由20位数字组成。这20位数字大多印刷在芯片的背面,也有的印刷在卡基的一方。这20位数据全面的反映了该卡的发行国别、网号、发行的地区、发行时间、卡品供应商、以及印刷流水号等内容。

前六位:中国移动的sim卡为898600,是中国移动在国际上的受话代码。中国联通在国际上的受话代码为898601。

第七位:是移动电话业务接入号的最后一位(即网号)。现中国移动的网号主要有:139、138、137、136、135。中国联通的网号目前主要有:130、131。

第八位:sim卡的功能位,一般sim卡为0,预付费sim卡为1。

第九、十位:为全国各省的代码。具体代码如下:

01:北京 02:天津 03:河北 04:山西

05:内蒙古 06:辽宁 07:吉林 08:黑龙江

09:上海 l0:江苏 11:浙江 12:安徽

13:福建 14:江西 15:山东 16:河南

17:湖北 18:湖南 l9:广东 20:广西

21:海南 22:四川 23:贵州 24:云南

25:西藏 26:陕西 27:甘肃 28:青海

29:宁夏 30:新疆 31:重庆

第十一、十二位:是年号。

第十二位:是手机sim卡制造供应商的编号。目前我国手机sim卡的生产厂家主要有:法国的gemplus(译为宝嘉公司)、法国的schlumberger(译为斯伦贝谢公司)、德国orga(译为欧嘉公司),以及国产ig芯片生产厂家等近十家。不同的生产厂家为了区分不同的产品,故在该位上分别冠以1、2、3、4等代号以示区别。如:“1”就表示此卡为法国的宝嘉公司的产品。

第十四位—十九位:用户识别码。

第二十位:校验位。

中国联通公司的手机sim卡20位编号内容与中国移动的手机sim卡20位编号内容大体一样。

除了标准的20位数字以外.还有一些省、市发行的手机sim卡只印有14位数字或12位数字。这主要是省略了前六位中国移动在国际上的受话代码和网号所致。

Powered by BBSXP 2007 ACCESS © 1998-2024
Processed in 0.00 second(s)