摘要:提出了一種基于SIM卡的端到端短消息加密通信的機制。該機制利用智能卡的數(shù)據(jù)加密能力與主動式命令等特性,巧妙地在其上實現(xiàn)了短消息的編輯、加密和發(fā)送,很好地滿足了那些對敏感數(shù)據(jù)傳輸?shù)陌踩螅煌瑫r對于移動網(wǎng)絡(luò)和手機終端都沒有特別要求,通過OTA技術(shù)可以很方便地下載到用戶SIM卡中,易于在現(xiàn)有的移動網(wǎng)絡(luò)中實施。
關(guān)鍵詞:短消息;安全機制;端到端;迪菲—赫爾曼密鑰協(xié)商算法;主動式命令
中圖分類號:TN918.6文獻標(biāo)志碼:A
文章編號:1001-3695(2007)05-0259-03
0引言
短消息(Short Message Service,SMS)是GSM網(wǎng)絡(luò)所提供的一種端到端的數(shù)據(jù)通信方式;它可以是文本、語音或者是圖片等信息。SMS采用了存儲轉(zhuǎn)發(fā)機制,即當(dāng)手機用戶發(fā)送一條SMS消息時,這條消息并不是由接收者直接收到,而是由用戶所在網(wǎng)絡(luò)的短消息中心先接收到,然后短消息中心向接收者發(fā)送一條通知指令,通知接收者從短消息中心下載消息。這種機制具有很好的方便性、靈活性,使其很快成為手機用戶一個重要的交流方式。
盡管短消息設(shè)計初衷是作為語音E-mail 的提示,但它很快成為了個人和商業(yè)人群之間非常流行的通信方式[1]。目前很多地方開展了通過短信辦理銀行業(yè)務(wù)的服務(wù),或者發(fā)送與商業(yè)相關(guān)的信息。當(dāng)發(fā)送銀行賬號、密碼以及身份識別碼等這些敏感信息時,人們最擔(dān)心的就是這些信息可能會被截獲或是誤發(fā)給一些詐騙此類信息的人。現(xiàn)有的GSM短消息通信所采用的消息格式是開放可預(yù)知的,其源地址具有可偽造性[1],而且在整個傳輸過程中是明文的,因此目前短信通信并非總是可信的。針對這些敏感應(yīng)用,GSM用戶應(yīng)該能夠選擇一種保密通信來保證這些信息不被正確讀取和偽造,因此在手機端提供一種加密通信方法是必要的。
目前對短消息加密的實現(xiàn)主要有兩種:①基于終端和服務(wù)器之間的加密通信。它需要服務(wù)器配合實現(xiàn),而且在核心網(wǎng)內(nèi)短信還是以明文傳輸,仍存在被截獲的風(fēng)險。②端到端的加密通信。它需要在手機終端或卡上進行相應(yīng)的設(shè)計,實施的代價相對較小,而且安全強度更高。本文給出了一種基于智能卡實現(xiàn)加密短信通信的方案,具有與手機終端無關(guān)的特性和更好的實用性。
1短消息通信網(wǎng)絡(luò)結(jié)構(gòu)
GSM短消息通信是通過信令通道傳輸數(shù)據(jù)的,根據(jù)其發(fā)送和接收短消息可以分為移動起始(MO)和移動終止(MT)兩種類型。其發(fā)送接收的過程可以描述為:短消息發(fā)送方將MO短消息提交給短消息服務(wù)中心(SMSC),它負(fù)責(zé)在基站與SME間中繼、儲存或轉(zhuǎn)發(fā)短消息;移動臺(MS)到SMSC的協(xié)議能傳輸MO或MT的短消息,SMS網(wǎng)關(guān)接收由SMSC發(fā)送的短消息,向HLR查詢路由信息,并將短消息傳送給接收者所在基站的交換中心,由其來完成短消息數(shù)據(jù)的交換建立。
下面給出短消息通信的GSM網(wǎng)絡(luò)結(jié)構(gòu)。GSM標(biāo)準(zhǔn)中定義的點—點短消息服務(wù)使得短消息能在移動臺和短消息服務(wù)中心之間傳遞。這些服務(wù)中心是通過稱為SMC-GMSC的特定的移動交換中心(MSC)與GSM網(wǎng)絡(luò)聯(lián)系的,如圖1所示。
其中,VLR(Visitor Location Register)是訪問位置寄存器,含有用戶臨時信息的數(shù)據(jù)庫;HLR(Home Location Register)是歸屬位置寄存器,用于永久儲存管理用戶和服務(wù)記錄的數(shù)據(jù)庫,由SMSC產(chǎn)生。
短消息在GSM網(wǎng)絡(luò)上傳輸,網(wǎng)絡(luò)本身沒有提供相應(yīng)的諸如互認(rèn)證、端到端安全、不可否認(rèn)性以及用戶匿名等安全機制[2]。因此目前短消息網(wǎng)絡(luò)不滿足安全通信的三個基本要求,即信息的完整性、機密性和有效性。
2加密算法與其在智能卡上的實現(xiàn)
上述的通信安全問題可以借助于信息加密技術(shù)來解決。目前信息加密多采用基于密鑰的方法,這類方法主要有對稱密鑰和非對密鑰兩種體制。
常見的對稱密鑰算法有AES、DES、3DES和IDEA。對稱密鑰的特點是解密與加密密鑰相同。這類算法具有加/解密速度快、運行時占用空間小等優(yōu)點,但是存在著密鑰交換和密鑰管理復(fù)雜等缺點。典型的非對稱方法是RSA,它基于整數(shù)分解原理,采用了模數(shù)運算的方法。非對稱方法的信息保密程度取決于求解指定數(shù)學(xué)問題的難度,目前涉及有指數(shù)分解、離散對數(shù)問題等,算法的破解難度與相應(yīng)的所解數(shù)學(xué)問題難度成正比。與對稱方法不同,非對稱方法同時采用私鑰和公鑰。公鑰可以對所有用戶公開,發(fā)送方用公鑰加密,接收方用私鑰解密。這種方法安全性高、密鑰管理方便,在商業(yè)系統(tǒng)中有廣泛的應(yīng)用前景。
SIM卡是在GSM用做承載用戶識別信息的智能卡。智能卡是一種計算能力相對較弱的小設(shè)備,它通常采用DES、3DES、RSA等加/解密算法來提高系統(tǒng)安全性能。對于DES和3DES對稱密鑰算法其主要是做簡單的移位操作,因此用普通智能卡就可以很好地實現(xiàn)。而在實現(xiàn)RSA算法時要進行對運算速度要求很高的大指數(shù)模運算,8位CPU難以勝任。因此,在一些高安全性加密微控制器卡芯片中(如AT90SC1616C),均設(shè)置有專用加/解密運算的協(xié)處理器CAU。圖2給出了一種帶有協(xié)處理器的智能卡芯片結(jié)構(gòu)圖[3]。隨著非對稱密鑰算法研究的深入和32位CPU卡的推出,在沒有協(xié)處理器的智能卡上也可以很好地實現(xiàn)ECC等公鑰算法[4]。
利用智能卡上這些可實現(xiàn)的加密算法,可以對智能卡的輸入/輸出數(shù)據(jù)進行加密以及相應(yīng)的密鑰協(xié)商。以下將對智能卡上的加密算法進行分析,選擇出適合端到端短信加密的算法。
3基于智能卡的短消息安全機制設(shè)計
端到端的短消息安全通信機制要解決安全短消息的數(shù)據(jù)格式設(shè)計、基于智能卡的密鑰協(xié)商機制、消息加密算法的選擇以及通過智能卡對短消息編輯、加密、發(fā)送和接收的整個安全流程的設(shè)計。
3.1安全短消息數(shù)據(jù)包設(shè)計
短消息可以分為上行和下行短消息兩種。其數(shù)據(jù)格式主要包括協(xié)議數(shù)據(jù)單元參數(shù)和用戶數(shù)據(jù)兩部分。在協(xié)議數(shù)據(jù)參數(shù)部分主要定義了短消息的類型、源地址、目的地址、協(xié)議標(biāo)志、編碼方式以及用戶數(shù)據(jù)頭等信息。其中TP-PID域可以區(qū)分該短消息是手機接收還是SIM卡接收, TP-MT標(biāo)志可以區(qū)分上、下行短消息。用戶數(shù)據(jù)部分最大可用長度為140 Bytes。
由于短消息的傳輸協(xié)議數(shù)據(jù)單元的參數(shù)有其固定格式,要實現(xiàn)安全短消息,可以利用的空間只有用戶數(shù)據(jù)的有效載荷部分。在這部分,可以定義安全短消息的數(shù)據(jù)頭和加密信息以及可選的數(shù)字摘要。其中安全短消息數(shù)據(jù)頭定義了加密短消息的安全參數(shù)等信息,應(yīng)用程序按要求封裝并根據(jù)數(shù)據(jù)頭解讀短消息。具體數(shù)據(jù)格式如圖3所示[5]。
其中,IEI為信息單元標(biāo)志,用來標(biāo)志命令包頭和長度以及是否有后續(xù)消息。在命令包頭中定義了一些安全相關(guān)的參數(shù),即安全參數(shù)標(biāo)志(SPI)、密鑰標(biāo)志(KIC)、數(shù)字摘要等密鑰標(biāo)志(KID)、防止重放攻擊的計數(shù)器(CNTR)等。安全數(shù)據(jù)部分為加密的短消息。其具體的格式如下:
3.2會話密鑰協(xié)商協(xié)議
3.2.1系統(tǒng)設(shè)計的指導(dǎo)原則
由于智能卡設(shè)備自身的特點,如計算能力低、存儲空間較小等,在其上實現(xiàn)短信加密時必須要在安全強度、協(xié)議的安全性與效率之間有個折中。在選取加密算法和協(xié)議設(shè)計時需要考慮以下兩點:
(1)智能卡設(shè)備的計算能力和有限的內(nèi)存。公鑰算法和加密算法的慎重選擇是必要的。
(2)短消息的有效載荷。用戶可用部分,一般為140 Bytes。因此協(xié)議設(shè)計必須盡可能高效。
盡管有以上限制因素,但是設(shè)計不能以安全為代價換取效率。安全機制必須能滿足以下幾個要求:
(1)安全;
(2)計算的復(fù)雜度低;
(3)能夠?qū)崿F(xiàn)密鑰兌換;
(4)易于實現(xiàn)和使用。
3.2.2密鑰協(xié)商機制的算法選擇
在文獻[4]中,給出了關(guān)于RSA和ECC等公鑰算法在8位智能卡上的加/解密性能分析,如表1所示。
可以看出,在沒有協(xié)處理卡上實現(xiàn)RSA算法還是比較困難的,但是ECC在同等安全強度下,在智能卡上的實現(xiàn)速度是很快的。可以利用橢圓加密算法來實現(xiàn)安全短消息的密鑰協(xié)商機制,但是在現(xiàn)有的網(wǎng)絡(luò)下要大規(guī)模使用公鑰算法來進行密鑰協(xié)商,必須布置移動PKI設(shè)施。因此這類算法不適合用于現(xiàn)有的GSM安全短消息的密鑰協(xié)商機制。
DH算法基于雙方產(chǎn)生一個隨機數(shù)作為自身的私鑰,將由該數(shù)生成的公鑰發(fā)送給對方;雙方根據(jù)自身的私鑰和對方發(fā)送的公鑰就可以產(chǎn)生公共的會話密鑰。其實現(xiàn)具有簡單性、方便性。它在智能卡上的實現(xiàn)難度也較RSA算法相對容易,而且無須在現(xiàn)有的GSM網(wǎng)絡(luò)中布置PKI。所以在該方案中選擇DH算法作為密鑰的協(xié)商算法。
3.2.3基于DH算法的密鑰協(xié)商協(xié)議及其安全性分析
密鑰交換協(xié)議如圖4所示。
密鑰x、y的大小取決于素數(shù)q的選取,待發(fā)送公鑰X、Y也是小于q的數(shù)。因此,q的選取對于算法的性能有較大影響,長度越大算法的安全強度越高,所占用戶信息長度也越長。
GSM用戶A與B之間要進行一次安全短消息通信,其密鑰協(xié)議過程可以描述如下:
(1)A 判斷是否已有與B通信的會話密鑰 Ks,是否有效。如果有且有效可以發(fā)送加密短消息;否則進行步驟(2)。
(2)A 通過普通短信發(fā)送一個隨機數(shù)給 B。
(3)B 響應(yīng)回送一個隨機數(shù),并附加此次產(chǎn)生密鑰的有效期,同時計算出會話密鑰。
(4)A 根據(jù)收到B的隨機數(shù)計算密鑰,設(shè)置有效期。
協(xié)議安全性分析如下:
(1) 密鑰的有效期
由于算法在協(xié)議實現(xiàn)中可以設(shè)置密鑰的有效期以及僅在需要密鑰時產(chǎn)生新的密鑰。這在很大程度上減小了對密鑰的分析攻擊。
(2)中間人攻擊
DH算法最大的風(fēng)險就是容易受到中間人攻擊:一個主動的竊聽者可能截取A發(fā)給B的消息以及B發(fā)給A的消息,他用自己的消息替換這些消息,并分別與A和B完成一個DH密鑰交換,而且還維持了一種假相——A和B直接進行了通信。在協(xié)議末,A實際上是與C建立了一個秘密密鑰,B與C建立了一個秘密密鑰。當(dāng)A加密一個消息發(fā)送給B時,C能解密它而B不能;類似地,當(dāng)B加密一個消息發(fā)送給A時,C能解密它而A不能。如果A和B事前真的沒有聯(lián)系,并因此沒用別的方法相互驗證對方的身份,則很難防止各種假冒攻擊。這種情況在安全短消息中有所緩解。因為在短消息通信的機制中,在空口部分要做到消息源地址的假冒是非常難的。消息本身具有一定的認(rèn)證和簽名能力,短消息的DH密鑰交換進行中間人攻擊是困難的。
3.3短消息內(nèi)容的加密
采用AES算法作為短消息內(nèi)容加密算法,在同樣的密鑰長度下它具有較DES、3DES算法更高的安全強度,而且在現(xiàn)有的各種硬件平臺(32位的x86、Alpha、PowerPC、8位的SmartCard、ASIC等)都有優(yōu)秀的性能。它在具有協(xié)處理器的智能卡上實現(xiàn)加/解密速度也非常快。在9000門的協(xié)處理、1 000 Hz的條件下,其一次加密速度為32 ms,解密速度為36 ms[6]。因此,筆者推薦使用AES算法實現(xiàn)短信內(nèi)容加密。
3.4安全短消息操作流程(圖5)
對于基于智能卡加密短消息的發(fā)送與接收要解決兩個問題:
(1)手機編寫的短信如何提交給SIM卡,SIM將短信內(nèi)容加密后提交給手機發(fā)送。
(2)手機收到短消息后,如何判斷是否是由SIM卡加密過的并交由SIM卡解密。
圖5中細(xì)箭頭表示明文短消息,粗箭頭表示加密后的短消息。
為了解決上述問題,需要設(shè)計基于SIM卡短消息的加密處理流程機制:利用STK卡生成一個加密短消息菜單,當(dāng)用戶選中此菜單編寫短消息時,SIM卡利用主動式命令接收鍵盤編輯的文字信息,然后可利用SIM卡的主動式命令Send Message來發(fā)送加密后的短信。當(dāng)接收端手機接收到此信息時,會從消息的TPDU中的PID位判斷出是交由SIM卡處理的消息還是手機終端處理的消息。若是SIM卡加密消息,則自動轉(zhuǎn)由SIM中相應(yīng)應(yīng)用程序來解析、提取短信內(nèi)容,然后利用主動式命令在手機終端顯示。消息處理流程如圖5所示。
整個短消息安全通信機制是在SIM卡上實現(xiàn)的,只要該SIM支持OTA功能,就可以將該業(yè)務(wù)從服務(wù)器上下載。因此,很易于在現(xiàn)有的GSM網(wǎng)絡(luò)布置實施。
4結(jié)束語
基于SIM卡的短消息加密通信方案,采用了DH密鑰協(xié)商機制,可以很好地解決現(xiàn)有GSM明文短消息傳輸所帶來的安全風(fēng)險;同時還無須在網(wǎng)絡(luò)側(cè)布置PKI設(shè)施,而且對用戶所使用的手機沒有特殊要求,可以通過OTA技術(shù)在現(xiàn)有的STK卡上實施。因此,具有簡單、易用、安全等特點。
參考文獻:
[1]RATSHINANGA H,LO J,BISHOP J.A security mechanism for secure SMS communication: proceedings of SAICSIT[C].[S.l.]:[s.n.],2004.
[2]KOLSI O. MIDP 2.0 security enhancements:proceedings of the 37th IEEE International Conference on System Sciences[C].Hawaii:[s.n.],2004:287-294.
[3]孫克輝,盛利元,楊宏. 智能IC卡中的信息加密技術(shù)[J].微電子技術(shù),2003,31(3):11-14.
[4]GURA N, PATEL A, WANDER A, et al. Comparing elliptic curve cryptography and RSA on 8-bit CPUs:proceedings of the Workshop on Cryptography Hardwere and Embedded Systems[C].Boston:Springer-Verlag,2004:119-132.
[5]GSM 03.48 (ETSI TS 101 181) Digital cellular telecommunications system (phase 2+): security mechanisms for SIM application toolkit stage 2[S].[S.l.]:[s.n.],2001.
[6]DIFFIE W, HELLMAN M E. New directions in cryptography[J]. IEEE Trans. on Information Theory, 1976,22(6):644-654.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”