摘要:提出了一種基于SIM卡的端到端短消息加密通信的機制。該機制利用智能卡的數據加密能力與主動式命令等特性,巧妙地在其上實現了短消息的編輯、加密和發送,很好地滿足了那些對敏感數據傳輸的安全要求;同時對于移動網絡和手機終端都沒有特別要求,通過OTA技術可以很方便地下載到用戶SIM卡中,易于在現有的移動網絡中實施。
關鍵詞:短消息;安全機制;端到端;迪菲—赫爾曼密鑰協商算法;主動式命令
中圖分類號:TN918.6文獻標志碼:A
文章編號:1001-3695(2007)05-0259-03
0引言
短消息(Short Message Service,SMS)是GSM網絡所提供的一種端到端的數據通信方式;它可以是文本、語音或者是圖片等信息。SMS采用了存儲轉發機制,即當手機用戶發送一條SMS消息時,這條消息并不是由接收者直接收到,而是由用戶所在網絡的短消息中心先接收到,然后短消息中心向接收者發送一條通知指令,通知接收者從短消息中心下載消息。這種機制具有很好的方便性、靈活性,使其很快成為手機用戶一個重要的交流方式。
盡管短消息設計初衷是作為語音E-mail 的提示,但它很快成為了個人和商業人群之間非常流行的通信方式[1]。目前很多地方開展了通過短信辦理銀行業務的服務,或者發送與商業相關的信息。當發送銀行賬號、密碼以及身份識別碼等這些敏感信息時,人們最擔心的就是這些信息可能會被截獲或是誤發給一些詐騙此類信息的人。現有的GSM短消息通信所采用的消息格式是開放可預知的,其源地址具有可偽造性[1],而且在整個傳輸過程中是明文的,因此目前短信通信并非總是可信的。針對這些敏感應用,GSM用戶應該能夠選擇一種保密通信來保證這些信息不被正確讀取和偽造,因此在手機端提供一種加密通信方法是必要的。
目前對短消息加密的實現主要有兩種:①基于終端和服務器之間的加密通信。它需要服務器配合實現,而且在核心網內短信還是以明文傳輸,仍存在被截獲的風險。②端到端的加密通信。它需要在手機終端或卡上進行相應的設計,實施的代價相對較小,而且安全強度更高。本文給出了一種基于智能卡實現加密短信通信的方案,具有與手機終端無關的特性和更好的實用性。
1短消息通信網絡結構
GSM短消息通信是通過信令通道傳輸數據的,根據其發送和接收短消息可以分為移動起始(MO)和移動終止(MT)兩種類型。其發送接收的過程可以描述為:短消息發送方將MO短消息提交給短消息服務中心(SMSC),它負責在基站與SME間中繼、儲存或轉發短消息;移動臺(MS)到SMSC的協議能傳輸MO或MT的短消息,SMS網關接收由SMSC發送的短消息,向HLR查詢路由信息,并將短消息傳送給接收者所在基站的交換中心,由其來完成短消息數據的交換建立。
下面給出短消息通信的GSM網絡結構。GSM標準中定義的點—點短消息服務使得短消息能在移動臺和短消息服務中心之間傳遞。這些服務中心是通過稱為SMC-GMSC的特定的移動交換中心(MSC)與GSM網絡聯系的,如圖1所示。
其中,VLR(Visitor Location Register)是訪問位置寄存器,含有用戶臨時信息的數據庫;HLR(Home Location Register)是歸屬位置寄存器,用于永久儲存管理用戶和服務記錄的數據庫,由SMSC產生。
短消息在GSM網絡上傳輸,網絡本身沒有提供相應的諸如互認證、端到端安全、不可否認性以及用戶匿名等安全機制[2]。因此目前短消息網絡不滿足安全通信的三個基本要求,即信息的完整性、機密性和有效性。
2加密算法與其在智能卡上的實現
上述的通信安全問題可以借助于信息加密技術來解決。目前信息加密多采用基于密鑰的方法,這類方法主要有對稱密鑰和非對密鑰兩種體制。
常見的對稱密鑰算法有AES、DES、3DES和IDEA。對稱密鑰的特點是解密與加密密鑰相同。這類算法具有加/解密速度快、運行時占用空間小等優點,但是存在著密鑰交換和密鑰管理復雜等缺點。典型的非對稱方法是RSA,它基于整數分解原理,采用了模數運算的方法。非對稱方法的信息保密程度取決于求解指定數學問題的難度,目前涉及有指數分解、離散對數問題等,算法的破解難度與相應的所解數學問題難度成正比。與對稱方法不同,非對稱方法同時采用私鑰和公鑰。公鑰可以對所有用戶公開,發送方用公鑰加密,接收方用私鑰解密。這種方法安全性高、密鑰管理方便,在商業系統中有廣泛的應用前景。
SIM卡是在GSM用做承載用戶識別信息的智能卡。智能卡是一種計算能力相對較弱的小設備,它通常采用DES、3DES、RSA等加/解密算法來提高系統安全性能。對于DES和3DES對稱密鑰算法其主要是做簡單的移位操作,因此用普通智能卡就可以很好地實現。而在實現RSA算法時要進行對運算速度要求很高的大指數模運算,8位CPU難以勝任。因此,在一些高安全性加密微控制器卡芯片中(如AT90SC1616C),均設置有專用加/解密運算的協處理器CAU。圖2給出了一種帶有協處理器的智能卡芯片結構圖[3]。隨著非對稱密鑰算法研究的深入和32位CPU卡的推出,在沒有協處理器的智能卡上也可以很好地實現ECC等公鑰算法[4]。
利用智能卡上這些可實現的加密算法,可以對智能卡的輸入/輸出數據進行加密以及相應的密鑰協商。以下將對智能卡上的加密算法進行分析,選擇出適合端到端短信加密的算法。
3基于智能卡的短消息安全機制設計
端到端的短消息安全通信機制要解決安全短消息的數據格式設計、基于智能卡的密鑰協商機制、消息加密算法的選擇以及通過智能卡對短消息編輯、加密、發送和接收的整個安全流程的設計。
3.1安全短消息數據包設計
短消息可以分為上行和下行短消息兩種。其數據格式主要包括協議數據單元參數和用戶數據兩部分。在協議數據參數部分主要定義了短消息的類型、源地址、目的地址、協議標志、編碼方式以及用戶數據頭等信息。其中TP-PID域可以區分該短消息是手機接收還是SIM卡接收, TP-MT標志可以區分上、下行短消息。用戶數據部分最大可用長度為140 Bytes。
由于短消息的傳輸協議數據單元的參數有其固定格式,要實現安全短消息,可以利用的空間只有用戶數據的有效載荷部分。在這部分,可以定義安全短消息的數據頭和加密信息以及可選的數字摘要。其中安全短消息數據頭定義了加密短消息的安全參數等信息,應用程序按要求封裝并根據數據頭解讀短消息。具體數據格式如圖3所示[5]。
其中,IEI為信息單元標志,用來標志命令包頭和長度以及是否有后續消息。在命令包頭中定義了一些安全相關的參數,即安全參數標志(SPI)、密鑰標志(KIC)、數字摘要等密鑰標志(KID)、防止重放攻擊的計數器(CNTR)等。安全數據部分為加密的短消息。其具體的格式如下:
3.2會話密鑰協商協議
3.2.1系統設計的指導原則
由于智能卡設備自身的特點,如計算能力低、存儲空間較小等,在其上實現短信加密時必須要在安全強度、協議的安全性與效率之間有個折中。在選取加密算法和協議設計時需要考慮以下兩點:
(1)智能卡設備的計算能力和有限的內存。公鑰算法和加密算法的慎重選擇是必要的。
(2)短消息的有效載荷。用戶可用部分,一般為140 Bytes。因此協議設計必須盡可能高效。
盡管有以上限制因素,但是設計不能以安全為代價換取效率。安全機制必須能滿足以下幾個要求:
(1)安全;
(2)計算的復雜度低;
(3)能夠實現密鑰兌換;
(4)易于實現和使用。
3.2.2密鑰協商機制的算法選擇
在文獻[4]中,給出了關于RSA和ECC等公鑰算法在8位智能卡上的加/解密性能分析,如表1所示。
可以看出,在沒有協處理卡上實現RSA算法還是比較困難的,但是ECC在同等安全強度下,在智能卡上的實現速度是很快的。可以利用橢圓加密算法來實現安全短消息的密鑰協商機制,但是在現有的網絡下要大規模使用公鑰算法來進行密鑰協商,必須布置移動PKI設施。因此這類算法不適合用于現有的GSM安全短消息的密鑰協商機制。
DH算法基于雙方產生一個隨機數作為自身的私鑰,將由該數生成的公鑰發送給對方;雙方根據自身的私鑰和對方發送的公鑰就可以產生公共的會話密鑰。其實現具有簡單性、方便性。它在智能卡上的實現難度也較RSA算法相對容易,而且無須在現有的GSM網絡中布置PKI。所以在該方案中選擇DH算法作為密鑰的協商算法。
3.2.3基于DH算法的密鑰協商協議及其安全性分析
密鑰交換協議如圖4所示。
密鑰x、y的大小取決于素數q的選取,待發送公鑰X、Y也是小于q的數。因此,q的選取對于算法的性能有較大影響,長度越大算法的安全強度越高,所占用戶信息長度也越長。
GSM用戶A與B之間要進行一次安全短消息通信,其密鑰協議過程可以描述如下:
(1)A 判斷是否已有與B通信的會話密鑰 Ks,是否有效。如果有且有效可以發送加密短消息;否則進行步驟(2)。
(2)A 通過普通短信發送一個隨機數給 B。
(3)B 響應回送一個隨機數,并附加此次產生密鑰的有效期,同時計算出會話密鑰。
(4)A 根據收到B的隨機數計算密鑰,設置有效期。
協議安全性分析如下:
(1) 密鑰的有效期
由于算法在協議實現中可以設置密鑰的有效期以及僅在需要密鑰時產生新的密鑰。這在很大程度上減小了對密鑰的分析攻擊。
(2)中間人攻擊
DH算法最大的風險就是容易受到中間人攻擊:一個主動的竊聽者可能截取A發給B的消息以及B發給A的消息,他用自己的消息替換這些消息,并分別與A和B完成一個DH密鑰交換,而且還維持了一種假相——A和B直接進行了通信。在協議末,A實際上是與C建立了一個秘密密鑰,B與C建立了一個秘密密鑰。當A加密一個消息發送給B時,C能解密它而B不能;類似地,當B加密一個消息發送給A時,C能解密它而A不能。如果A和B事前真的沒有聯系,并因此沒用別的方法相互驗證對方的身份,則很難防止各種假冒攻擊。這種情況在安全短消息中有所緩解。因為在短消息通信的機制中,在空口部分要做到消息源地址的假冒是非常難的。消息本身具有一定的認證和簽名能力,短消息的DH密鑰交換進行中間人攻擊是困難的。
3.3短消息內容的加密
采用AES算法作為短消息內容加密算法,在同樣的密鑰長度下它具有較DES、3DES算法更高的安全強度,而且在現有的各種硬件平臺(32位的x86、Alpha、PowerPC、8位的SmartCard、ASIC等)都有優秀的性能。它在具有協處理器的智能卡上實現加/解密速度也非常快。在9000門的協處理、1 000 Hz的條件下,其一次加密速度為32 ms,解密速度為36 ms[6]。因此,筆者推薦使用AES算法實現短信內容加密。
3.4安全短消息操作流程(圖5)
對于基于智能卡加密短消息的發送與接收要解決兩個問題:
(1)手機編寫的短信如何提交給SIM卡,SIM將短信內容加密后提交給手機發送。
(2)手機收到短消息后,如何判斷是否是由SIM卡加密過的并交由SIM卡解密。
圖5中細箭頭表示明文短消息,粗箭頭表示加密后的短消息。
為了解決上述問題,需要設計基于SIM卡短消息的加密處理流程機制:利用STK卡生成一個加密短消息菜單,當用戶選中此菜單編寫短消息時,SIM卡利用主動式命令接收鍵盤編輯的文字信息,然后可利用SIM卡的主動式命令Send Message來發送加密后的短信。當接收端手機接收到此信息時,會從消息的TPDU中的PID位判斷出是交由SIM卡處理的消息還是手機終端處理的消息。若是SIM卡加密消息,則自動轉由SIM中相應應用程序來解析、提取短信內容,然后利用主動式命令在手機終端顯示。消息處理流程如圖5所示。
整個短消息安全通信機制是在SIM卡上實現的,只要該SIM支持OTA功能,就可以將該業務從服務器上下載。因此,很易于在現有的GSM網絡布置實施。
4結束語
基于SIM卡的短消息加密通信方案,采用了DH密鑰協商機制,可以很好地解決現有GSM明文短消息傳輸所帶來的安全風險;同時還無須在網絡側布置PKI設施,而且對用戶所使用的手機沒有特殊要求,可以通過OTA技術在現有的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卡中的信息加密技術[J].微電子技術,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.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”