摘 要: 闡述了SIM卡提供的基本安全策略,分析了在OTA模式下可能存在的針對SIM卡的攻擊,以及SIM卡防御這些攻擊所提供的安全機制,,最后給出了SIM卡在" title="卡在">卡在OTA下載模式下的安全處理模型,。
關鍵詞: SIM卡? OTA? 安全
?
近年來,OTA(Over The Air)空中下載技術走向大規(guī)模商用的原因是,相對于固化在SIM卡中的菜單業(yè)務,OTA技術使得用戶可以通過短消息隨時了解新業(yè)務" title="新業(yè)務">新業(yè)務的動態(tài)并下載自己感興趣的新業(yè)務,運營商也可以使用該技術向用戶推廣新的業(yè)務。然而,由于移動通信系統(tǒng)的開放性,攻擊者可能通過重傳,、竄改等攻擊手段破壞一個下載過程,甚至可以向SIM卡中注入惡意的代碼,而且各種針對SIM卡的攻擊層出不窮。因此,要求SIM卡有一套完備的處理機制,以應對各種潛在的攻擊,。本文旨在分析針對SIM卡的潛在攻擊以及SIM卡在OTA模式下存在的潛在安全威脅,并為SIM卡提供安全應對措施,。
1 SIM卡的基本安全特性
移動臺 (MS)是用戶使用的終端設備,是GSM系統(tǒng)中的一個重要組成部分,。它由移動終端設備(ME)和用戶身份模塊(SIM) 兩個主要部分組成。MS采用分離設計,它的安全功能集中于SIM中,便于控制管理,。
1.1 訪問SIM卡的安全性
SIM卡使用PIN碼設定第一道防線,以保證合法用戶的安全使用,。PIN碼是一個四位到八位的個人密碼,用來保護SIM卡不被未授權的用戶使用。對于嵌入的已設定PIN碼的SIM卡的手機,每次開機時都會要求用戶輸入PIN碼進行校驗,只有校驗成功SIM卡才會被啟用,。
另外,SIM卡是以文件結構的形式保存信息的,。用戶的一些重要的信息,如國際移動用戶號(IMSI)、鑒權密鑰Ki等,都保存在相應的文件中,。SIM卡應嚴格控制用戶對這些文件進行訪問,以保證SIM卡的完整性和可用性,防止非法破壞和復制SIM卡,。SIM卡具有16種不同的安全狀態(tài),又稱為狀態(tài)機。只有當卡片滿足了一定的狀態(tài)機,才能訪問指定的文件,。SIM卡文件的訪問權限一般分為八級,分別為:ALWAYS,、CHV1、CHV2,、RFU,、ADM1、ADM2,、ADM3,、ADM4,以及NEVER。SIM卡一般只建立一個密鑰文件,在卡的個人化階段以明文形式寫入密鑰,該文件的讀寫權限都為NEVER,即任何時候都不能讀寫密鑰文件,。每個密鑰對應一個錯誤計數(shù)器,記錄密碼校驗失敗的次數(shù),當失敗次數(shù)大于初始閾值時SIM卡就會被鎖定,。
1.2 安全備份與數(shù)據(jù)恢復" title="數(shù)據(jù)恢復">數(shù)據(jù)恢復機制
SIM卡即CPU卡,需要外界電源供電才能進行工作,該外界電源就是手機電池。但是,在實際工作中,手機會因為電池電量不足或者用戶突然拔掉電池而導致SIM卡意外失電,。如果SIM卡此時正在處理一些程序或者對某些敏感數(shù)據(jù)進行操作,則突然的失電勢必會影響SIM卡內(nèi)部的程序和存儲邏輯,導致SIM不可用,。
安全備份與數(shù)據(jù)恢復機制主要是保障卡在任何運行情況下(如發(fā)生卡失電或意外被拔插操作)失去正常工作后,而當卡再次上電時卡內(nèi)敏感數(shù)據(jù)能返回初始狀態(tài),保證其完整性與合法性,即卡的操作系統(tǒng)COS(Card Operating System)不受這些外界因素影響仍能保持正常運作。該機制的原理是:每次對卡內(nèi)FLASH/EEPROM進行擦寫操作時,COS先要將被更新的存儲區(qū)中的原有數(shù)據(jù)備份到備份棧(專門為安全備份與數(shù)據(jù)恢復開辟的一段存儲區(qū)),并設置相應的恢復標志;之后對要被更新的存儲區(qū)進行正常的擦寫操作(此時如果卡意外斷電或者被插拔,卡在復位時會檢測恢復標志,若復位標志有效則將原有數(shù)據(jù)重新寫入,而新寫入的數(shù)據(jù)將被拋棄,這一步稱為回滾數(shù)據(jù));數(shù)據(jù)區(qū)被正常更新后,COS就設置恢復標志無效,這樣在卡下次復位時就會忽略備份棧的數(shù)據(jù),。
1.3 網(wǎng)絡鑒權方面的" title="面的">面的安全保護
合法SIM卡的一個重要的任務就是與網(wǎng)絡一起完成網(wǎng)絡對SIM卡的鑒權,。
網(wǎng)絡鑒權也就是確認用戶身份是否合法,鑒權過程是在網(wǎng)絡和SIM卡之間進行的,鑒權時間一般選在移動終端登記入網(wǎng)和呼叫之時。鑒權開始時,網(wǎng)絡產(chǎn)生一個128位的隨機數(shù)RAND,經(jīng)無線電控制信道傳送到ME,ME采用RUN GSM ALGORITHM命令把RAND傳送給SIM卡,SIM卡依據(jù)卡中的用戶密鑰Ki和算法A3,、A8或A38,根據(jù)接收到的RAND計算出應答信號SRES和加密密鑰Kc,并將結果回送給ME,。然后ME將SRES向網(wǎng)絡發(fā)送,用Kc值對網(wǎng)絡的通信信息進行加密,直到下一次再進行鑒權。網(wǎng)絡在鑒權中心查明該用戶的密鑰Ki后,用同樣的RAND和算法A3計算出SRES,并與收到的SRES進行比較,如一致,則鑒權通過,否則中止兩者之間的通信,。
由于A3算法具有單向函數(shù)的功能,由Ki和RAND經(jīng)A3計算出SRES很容易,但由SRES和RAND反向推導Ki卻非常困難,所以SRES即使在傳輸過程中被偵聽到,也不會危及Ki的安全,。
在這個過程中,采用一個用戶鑒權密鑰Ki。Ki長度為128bit,存儲在SIM卡之中,。Ki的傳輸必須采用DES或3DES算法進行加密傳輸,以防被非法竊聽或者篡改,。同時,SIM卡也必須提供對A3、A8算法的保護,A3、A8算法的存儲必須使用電可擦除非易失性存儲器,以防止對集成電路進行解剖而得到A3,、A8算法,。
2 OTA模式下SIM卡的安全特性
在OTA模式下,SIM卡需要與OTA服務器進行大量的交互,在網(wǎng)絡環(huán)境不是很理想的情況下,SIM卡接收到的數(shù)據(jù)中,除了OTA服務器下發(fā)的完整、有效的數(shù)據(jù)外,還可能存在不完整或者無效的數(shù)據(jù)以及來自非法服務器的攻擊SIM卡的數(shù)據(jù),。
2.1 SIM卡與OTA服務器之間的相互身份認證" title="身份認證">身份認證
合法的OTA用戶使用OTA下載業(yè)務前要先向OTA服務器注冊,。注冊信息一般包括卡片的一些版本信息、卡片可供下載的空間等,注冊成功后才能進行后續(xù)的操作,。
OTA空中下載的過程如下:首先,用戶使用手機通過STK提供的菜單界面向OTA服務器發(fā)送一個菜單下載請求,該請求經(jīng)由短消息中心和短信網(wǎng)關,最終通過Internet發(fā)送至OTA服務器;然后,OTA服務器根據(jù)請求的內(nèi)容將相應的菜單數(shù)據(jù)打包并經(jīng)由反向的路徑發(fā)送至手機;再后,手機SIM卡將菜單數(shù)據(jù)譯碼并組合成菜單;最后,向用戶顯示菜單內(nèi)容,。
整個下載過程中涉及到幾個方面的身份認證問題:服務器對SIM卡的身份認證、SIM卡對OTA下載服務器的身份認證,、OTA下載服務器對請求數(shù)據(jù)合法性的認證,、SIM卡對菜單數(shù)據(jù)合法性的認證。這幾個方面的認證問題不是孤立的,而是相互關聯(lián),、相互作用的,因此需要提供一種機制來妥善解決這些認證問題,。
OTA下載服務器應對發(fā)送下載請求的用戶身份進行嚴格的認證,以避免假冒下載者或者惡意攻擊者的竄改和重傳攻擊;SIM卡應該對接收到的菜單數(shù)據(jù)進行嚴格的認證,以防止假OTA服務器攻擊和惡意攻擊者竄改菜單數(shù)據(jù)進行攻擊。因此,需要設計一種嚴密高效的認證方案來防御各種攻擊,。目前常用的身份認證機制有:基于對稱密碼體制的挑戰(zhàn)應答方式,、MAC校驗方式、無線PKI通過數(shù)字證書等,。
2.2 OTA下行數(shù)據(jù)的安全處理
對OTA下行數(shù)據(jù)的完整性,、有效性和邏輯性應進行檢查,以防止由于網(wǎng)絡傳輸錯誤或者惡意攻擊者發(fā)出的非法數(shù)據(jù)破壞SIM卡的可用性。目前OTA下行數(shù)據(jù)均采用GSM03.48協(xié)議規(guī)定的格式,。GSM03.48定義了數(shù)字蜂窩通信系統(tǒng)中GSM PLMNME(公共陸地移動網(wǎng)絡實體)與STK卡之間的安全接口標準,。GSM03.48協(xié)議嚴格定義了GSM網(wǎng)絡中兩個通信實體之間采用安全數(shù)據(jù)傳輸時的應用數(shù)據(jù)協(xié)議格式、消息認證方式,、數(shù)據(jù)加密算法,、密鑰管理方式以及計數(shù)器機制等諸多安全內(nèi)容。
數(shù)據(jù)的完整性檢測主要使用MAC校驗機制,。其主要作用是保證消息的接收者能夠判斷消息在傳輸過程中是否被修改,防止不法入侵者用虛假消息代替合法消息或者篡改消息,。OTA服務器將下行數(shù)據(jù)中的一部分重要的信息利用算法DES CBC進行加密,并作為下行數(shù)據(jù)的一部分傳輸給SIM卡。SIM卡收到該數(shù)據(jù)后,不是直接處理用戶數(shù)據(jù),而是對安全數(shù)據(jù)進行MAC校驗,。只有本地計算的MAC值和下行數(shù)據(jù)中的MAC值一致的情況下才接收數(shù)據(jù),否則會拋棄數(shù)據(jù),。同樣,OTA服務器對SIM卡上行的申請數(shù)據(jù)也使用MAC校驗。這樣,雙方就保證了對方的數(shù)據(jù)的完整性,。計算MAC時所需要的會話密鑰Kc,一般是用SIM卡的國際移動識別號對SIM卡和OTA服務器共享的主密鑰進行分散,有時為了保持會話密鑰Kc的動態(tài)性和隨機性,需要加入隨機數(shù)進行分散,。這要根據(jù)不同的應用對安全性的不同要求而靈活運用,。
數(shù)據(jù)的有效性檢測主要使用同步計數(shù)器機制,。其主要作用是保證SIM卡接收到的消息是最新消息,而不是由于網(wǎng)絡存儲轉發(fā)機制的缺陷所造成的延遲消息或者惡意攻擊者故意發(fā)送的重傳消息。對于OTA服務器和SIM卡之間的每個會話密鑰,都有一個計數(shù)器與之對應。服務器在組織下行數(shù)據(jù)時會依次增加所用會話密鑰的計數(shù)器值;SIM卡接收到該數(shù)據(jù)后會與卡內(nèi)保存的相應的計數(shù)器值進行比較,只有計數(shù)器值比自身保存的計數(shù)器值大數(shù)據(jù)才被接收,然后SIM卡就用新的計數(shù)器值更新本地的計數(shù)器值,以備下一次比較使用,。
數(shù)據(jù)的邏輯性檢測也可以稱之為異常處理,。下行數(shù)據(jù)中有一些重要的字節(jié)信息是需要SIM卡進行檢測的。如果SIM卡檢測出下行數(shù)據(jù)有邏輯上的錯誤,就要拋棄該數(shù)據(jù);否則,如果將該數(shù)據(jù)寫到卡中,就會出現(xiàn)意想不到的錯誤,從而導致SIM卡的不可用,。在實踐過程中,只有多考慮一些可能出現(xiàn)的異常,并對此作出適當?shù)奶幚?才能盡可能地避免異常數(shù)據(jù)帶來的錯誤,。
另外,GSM03.48協(xié)議中還規(guī)定使用保密數(shù)據(jù)指示符來表示數(shù)據(jù)是否使用校驗或者加密,這樣就提供了加密機制的可見性,給OTA機制帶來了很大的靈活性。
2.3 SIM卡與OTA服務器的同步問題
OTA下載服務器需要對用戶大量的空中下載業(yè)務進行管理,同時運營商也需要得到用戶使用OTA業(yè)務的習慣,以便更好地開展業(yè)務,這就需要用戶端SIM卡的業(yè)務信息與服務器端的信息保持一致,。為了保證卡端和服務器端的信息保持一致,需要卡端能及時地將本地的信息通過短信通道傳輸給服務器,以便服務器能更新數(shù)據(jù)庫,。目前保持同步的方法主要有:(1)服務器主動下發(fā)執(zhí)行信息的同步命令,并請求卡端返回同步信息。(2)卡在滿足一定的條件時,主動將統(tǒng)計信息傳輸給服務器,。保持SIM卡和OTA下載服務器的同步,有利于服務器能更好地提供業(yè)務服務,減少錯誤的發(fā)生,。
另外,在下行數(shù)據(jù)中可以用一位信息表示是否要求SIM卡回送處理數(shù)據(jù)的狀態(tài)信息。如有要求,根據(jù)該信息,服務器可以確切地知道SIM卡對下行數(shù)據(jù)的處理結果,從而確定是否重傳該指令,。
3 SIM卡處理OTA下行數(shù)據(jù)的安全模型
綜合以上的論述,一個典型的如圖1所示的OTA處理模型應包含以下幾個部分:OTA應用模塊 ,、邏輯處理模塊、GSM03.48模塊和傳輸層,。
各個部分的功能描述如下:
(1)OTA應用模塊:將從服務器上下載的菜單數(shù)據(jù)組織成用戶可見的應用形式,供用戶使用,。同時,提供用戶和服務器之間的互動界面,以方便OTA的業(yè)務開展。
(2)邏輯處理模塊:對通過GSM03.48模塊檢測的數(shù)據(jù),進行邏輯判斷,例如檢測關鍵字段的長度是否一致,、所下載業(yè)務是否是用戶申請的業(yè)務,、多條短信是否完成、是否需要回應服務器等,。
(3)GSM03.48模塊:對下行數(shù)據(jù)進行MAC校驗和同步計數(shù)器檢驗,以保證數(shù)據(jù)的完整性和有效性,。即保證消息在傳輸過程中沒有被修改或者被重傳。
(4)傳輸層:對GSM網(wǎng)絡來說,主要負責短信的收發(fā);對3G網(wǎng)絡而言,3G網(wǎng)絡上進行的OTA業(yè)務除了通過傳統(tǒng)的短信通道傳輸外,還可以通過符合BIP協(xié)議的高速通道傳輸,。BIP(Bearer Independent Protocol)協(xié)議,即承載不相關協(xié)議,它支持5個主動式命令和2個事件,。該協(xié)議使SIM/USIM卡能夠利用手機的承載能力建立與服務器之間的數(shù)據(jù)通道,實現(xiàn)可靠連接與高速傳輸。其傳輸速率遠遠大于短信通道的傳輸速率,。它提供了良好的雙向交互式通信能力以及可靠的面向連接的通訊方式,。
OTA技術解決了運營商推行新業(yè)務所面臨的困難,因此該技術得到了運營商的一致認可。各家運營商都制定出了具有自己特色的OTA技術規(guī)范,OTA技術也因此得到了不斷完善和發(fā)展,。例如,最近提出的在不支持OTA模式的手機上,SIM卡仍然能夠進行OTA下載的技術,完善了OTA技術的一項不足,。同時,擔任此重擔的SIM卡也面臨著種種的考驗,不僅要滿足OTA技術規(guī)范中規(guī)定的功能,更要完善在安全性方面的特性。
3G網(wǎng)絡下的OTA空中下載技術擁有更多的優(yōu)點,。除了在鑒權方面采用了雙向鑒權并增加了SIM對網(wǎng)絡的鑒權外,又增加了符合BIP協(xié)議的高速通道,。隨著3G時代的到來,OTA這項在2G網(wǎng)絡和2.5G網(wǎng)絡中都成功應用的技術,必將在3G網(wǎng)絡中扮演重要的角色。
參考文獻
[1] ETSI. GSM 11.11: Digital cellular telecommunications system(Phase 2+):Specification of the Subscriber Identity Module-Mobile Equipment (SIM-ME) Interface V8.3.0,,1999:29-30.
[2] ?ETSI. GSM 11.14: Digital cellular telecommunications system (Phase 2+);Specification of the SIM Application Toolkit for theSubscriber Identity Module-Mobile Equip-ment(SIM - ME) Interface V7.3.1,,1998:52-54.
[3] ?ETSI. GSM 03.48: Digital cellular telecommunications system (Phase 2+):Security Mechanisms for the SIM Application Toolkit V8.8.0,2001:8-18.
[4] ?ETSI. TS 102 223: Smart cards: card application toolkit (CAT) V7.1.0, 2005:18.