SIM卡在手机中的主要作用
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2012年02月23日
SIM卡作为智能卡的一种,其作用依旧被限定在数据存储和加解密处理方面。
在移动通讯初期没有SIM卡的概念,当时采用的是机号一体的方式(后来对于CDMA技术而言出现了机卡分离和机卡一体的说法,早期还没有SIM卡的概念,也就无从谈起机卡一体),需要通过烧号(从某种意义上讲,就是把手机的某个存储区写入指定的数据内容)才能把号码和手机匹配起来。国内早期的大哥大就是这种方式,后来的小灵通也曾经采用这样的方式。其缺点就是更换手机比较繁琐,而且因为有烧号操作,所以孖机现象普及,手机被盗打猖獗。
所以就需要寻找一种能够更安全的存储载体,来储存这些敏感信息,并且完成一定的加解密功能。
刚好在这个时候,智能卡技术开始成熟。所以人们很自然地希望能够凭借智能卡来改进原来移动通讯中的安全缺陷。于是欧洲电信标准化委员会ETSI,就制定了一系列的关于SIM卡的标准。详细描述了SIM卡中需要存储的数据内容和格式,以及SIM卡在用户使用移动网络服务过程中应该发挥的作用。
在移动网络中SIM卡主要有三方面的作用:用户身份鉴权、数据信息存储、利用STK提供增值服务。
从外形看SIM卡分为大卡(ID-1卡,大小和信用卡一致),以及小卡(Plug-in卡,SIM卡上被冲孔切割下来的部分)。除了早期的手机支持大卡外,目前几乎所有的手机只支持小卡。
GSM网络的鉴权采用的是Comp128-1/2/3算法,也就是所谓的A3A8算法。而CDMA采用的是CAVE算法,3G网络采用的是MILENAGE算法。虽然具体算法存在差异,但是鉴权过程大同小异,以Comp128为例主要的鉴权流程如下:
SIM卡鉴权流程
其中的国际移动用户唯一识别码IMSI(International Mobile Subscriber Indentity)和密钥Ki是需要安全存储的保密数据,如果IMSI和Ki泄漏,那么这张SIM卡就算被破译了,通常对于采用Comp128-1算法的SIM卡大约需要3-10个小时就可以通过碰撞攻击的方式破译,而对于Comp128-2/3算法目前还没有什么有效的破译手段。
鉴权时从网络端生成一个随机数RAND,利用SIM卡中存储的IMSI和Ki计算出鉴权结果SRES以及通话加密密钥Kc,如果SIM卡计算的SRES和网络计算的SRES相同,则鉴权成功。因为手机用户可以漫游,所以参与鉴权的主要网络单元包括访问地注册中心VLR(Visited Location Register)、移动交换中心MSC(Mobile Switching Center)、归属地注册中心HLR(Home Location Register)、鉴权中心AuC(Authentication Center)。
在手机开机的时候,首先要读取SIM卡中存储的一系列服务信息,然后进行登网鉴权,如果鉴权成功则会显示当前运营商的名称,这时用户就可以进行正常的操作了。为了防止用户在登网之后拔掉SIM卡,手机在一定时间间隔内会发送一条查询指令,察看目前SIM卡的状态,一旦发现SIM卡没有回送正确的应答,那么就切断和网络之间的联系,提示插入SIM卡。有些SIM卡和手机之间因为匹配的问题,明明SIM卡在手机中插的好好的也会提示“插入SIM卡”,就是因为手机在查询期间没有得到正确的SIM卡应答。
下图描述了SIM卡中存储的主要文件内容,其中SMS是短信息文件,ADN是电话簿文件。其他文件含义在ETSI 11.11规范中都有详细的定义。
SIM卡文件内容简图