什么是SIM卡
SIM卡是(Subscriber Identification Module 客戶識別模塊)的縮寫,也稱為用戶身份識別卡,移動無線終端必須裝上此卡方能使用。SIM卡是整個GSM系統(tǒng)中唯一確認用戶身份的設備,它是向網絡表明用戶合法身份的重要工具。
SIM卡的意義
- SIM卡是完全由運營商掌握的用戶端設備,通過對SIM卡的控制,實現(xiàn)對終端功能的控制。
- SIM卡是手機終端功能的增強和補充,提升手機終端業(yè)務能力,降低在業(yè)務推廣上的終端設備投入成本;
- SIM卡可以通過預置或OTA方式部署應用,滿足日益增長的行業(yè)應用需求;
SIM卡的主要功能
- 存儲數(shù)據
SIM卡存儲的數(shù)據可分為四類:
- 固定數(shù)據。這類數(shù)據在ME(Mobile Equipment)被出售之前由SIM卡中心寫入,包括國際移動用戶識別號(IMSI)、鑒權密鑰(KI)等;
- 臨時數(shù)據。指的是網絡相關的的臨時數(shù)據,如位置區(qū)域識別碼(LAI)、移動用戶暫時識別碼(TMSI)、禁止接入的公共電話網代碼等;
- 業(yè)務代碼,如個人識別碼(PIN)、解鎖碼(PUK)、計費費率等;
- 電話號碼、短消息等用戶記錄。
PIN碼保護
SIM卡本身是通過PIN碼來保護的,PIN是一個4~8位的個人密碼,只有當用戶輸入正確的PIN碼時,SIM卡才能被啟用,移動終端才能對SIM卡進行存取,也只有PIN認證通過后,用戶才能上網通話。用戶身份鑒權
確認用戶身份是否合法,鑒權過程是在是在網絡和SIM卡之間進行的,而鑒權時間一般是在移動終端登記入網和呼叫時。鑒權開始時,網絡產生一個128比特的隨機數(shù)RAND,經無線電控制信道傳送到移動臺, SIM卡依據卡中的密鑰Ki和算法A3,對接收到的RAND計算出應答信號SRES,并將結果發(fā)回網絡端。而網絡端在鑒權中心查明該用戶的密鑰Ki,用同樣的RAND和算法A3算出SRES,并與收到的SRES進行比較,如一致,鑒權通過。SIM卡中的保密算法及密鑰
SIM卡中最敏感的數(shù)據是保密算法A3、A8、密鑰Ki、PIN、PUK和Kc。A3、A8算法是在生產SIM卡時寫入的,無法讀
SIM卡的類型
- mini SIM:25mm×15mm,有的文檔將這種卡稱為標準卡。
- micro SIM:15mm×12mm。
- nano SIM:12mm×9mm。
- 虛擬SIM:直接在手機或者其他移動設備中集成SIM卡功能,卡成為了手機芯片模塊的一部分。使用虛擬SIM的設備,必定是運營商定制設備,或者設備供應商和運營商簽訂了協(xié)議。
SIM卡的文件結構
SIM卡上的所有數(shù)據都是以文件的形式存放在卡片數(shù)據存儲區(qū)中的,如下圖,有3種文件類型:
- MF(Master File):主文件,理解為根目錄。MF文件的ID為3F00
- DF(Dedicated File):專用文件,理解為文件夾。常見的DF有:
- DF-GSM:ID為7F20
- DF-TELECOM:ID為7F10
- ADF:Application DF,ID為7FFF
- EF(Elementary File):基本文件,存儲數(shù)據用的文件?;疚募址譃?類
-
透明EF:透明結構的 EF 由一個字節(jié)序列組成。簡單理解為只有一條記錄的文件
這里寫圖片描述 -
線性固定EF:線性固定 EF 文件由一個記錄長度固定的記錄序列組成。第一個記錄記錄號是 1。 簡單理解為記錄多條記錄的文件。 這里寫圖片描述
-
循環(huán)EF:循環(huán)文件用于以時間順序存儲的記錄,當所有的記錄空間都占用時,新的存儲數(shù)據將覆蓋最舊的信息。 如果線型固定EF的記錄是一個數(shù)組的話,循環(huán)EF的記錄就是一個循環(huán)鏈表。
這里寫圖片描述注意:線性固定EF和循環(huán)EF最多只能存放255條記錄
根據上面的描述,可以看得出來,要精確的定位到一個EF文件,完整的文件路徑應該是:MFID + DFID + EFID。比方說在DF-TELECOM下面的EF-SMS(保存短消息的SIM卡文件,ID為6F3C),完整路徑就是“3F007F106F3C”。
常用的文件操作
在通信協(xié)議ETSI 11.11中定義了所有的操作類型,其中, 常用的有如下操作:
? SELECT:選擇文件
? STATUS:查詢當前目錄的信息
? READ BINARY:讀取透明EF內容
? UPDATE BINARY:更新透明EF內容
? READ RECORD:讀取線性固定EF或者循環(huán)EF的記錄
? UPDATE RECORD:更新線性固定EF或者循環(huán)EF的記錄
PIN/PUK系列的命令
? VERIFY CHV:驗證PIN碼
? CHANGE CHV:修改PIN碼
? DISABLE CHV:關閉PIN碼驗證
? ENABLE CHV:打開PIN碼驗證
? UNBLOCK CHV:解鎖
STK相關的命令
? TERMINAL PROFILE:告知SIM卡手機對STK的支持能力。初始化SIM卡的過程中發(fā)給SIM卡。
? FETCH:手機從SIM卡獲取命令
? TERMINAL RESPONSE:手機返回SIM卡執(zhí)行主動式命令的結果
? ENVELOPE:手機發(fā)送數(shù)據或者事件給SIM卡。