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