SIM卡在手機中的主要作用
文章出處:http://hz-huyue.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卡文件內容簡圖