基于智能卡的短消息端到端的安全通信機制
文章出處:http://srpd123.com 作者:賈凡 楊義先 彭俊好 人氣: 發(fā)表時間:2011年09月26日
0 引言
短消息( Short Message Service, SMS) 是GSM網(wǎng)絡(luò)所提供的一種端到端的數(shù)據(jù)通信方式; 它可以是文本、語音或者是圖片等信息。SMS 采用了存儲轉(zhuǎn)發(fā)機制, 即當手機用戶發(fā)送一條SMS消息時, 這條消息并不是由接收者直接收到, 而是由用戶所在網(wǎng)絡(luò)的短消息中心先接收到, 然后短消息中心向接收者發(fā)送一條通知指令, 通知接收者從短消息中心下載消息。這種機制具有很好的方便性、靈活性, 使其很快成為手機用戶一個重要的交流方式。
盡管短消息設(shè)計初衷是作為語音E-mail 的提示, 但它很快成為了個人和商業(yè)人群之間非常流行的通信方式 。目前很多地方開展了通過短信辦理銀行業(yè)務(wù)的服務(wù), 或者發(fā)送與商業(yè)相關(guān)的信息。當發(fā)送銀行賬號、密碼以及身份識別碼等這些敏感信息時, 人們最擔心的就是這些信息可能會被截獲或是誤發(fā)給一些詐騙此類信息的人?,F(xiàn)有的GSM短消息通信所采用的消息格式是開放可預(yù)知的, 其源地址具有可偽造性 , 而且在整個傳輸過程中是明文的, 因此目前短信通信并非總是可信的。針對這些敏感應(yīng)用, GSM用戶應(yīng)該能夠選擇一種保密通信來保證這些信息不被正確讀取和偽造, 因此在手機端提供一種加密通信方法是必要的。
目前對短消息加密的實現(xiàn)主要有兩種: ①基于終端和服務(wù)器之間的加密通信。它需要服務(wù)器配合實現(xiàn), 而且在核心網(wǎng)內(nèi)短信還是以明文傳輸, 仍存在被截獲的風險。②端到端的加密通信。它需要在手機終端或卡上進行相應(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) , 它負責在基站與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標準中定義的點—點短消息服務(wù)使得短消息能在移動臺和短消息服務(wù)中心之間傳遞。這些服務(wù)中心是通過稱為SMC-GMSC 的特定的移動交換中心( MSC) 與GSM網(wǎng)絡(luò)聯(lián)系的, 如圖1 所示。
圖1 短消息通信體系結(jié)構(gòu)
其中, 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)的諸如互認證、端到端安全、不可否認性以及用戶匿名等安全機制。因此目前短消息網(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] 。
圖2 具有協(xié)處理器的智能卡
利用智能卡上這些可實現(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é)議標志、編碼方式以及用戶數(shù)據(jù)頭等信息。其中TP-PID 域可以區(qū)分該短消息是手機接收還是SIM卡接收, TP-MT 標志可以區(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] 。
圖3 安全短消息數(shù)據(jù)格式
其中, IEI 為信息單元標志, 用來標志命令包頭和長度以及是否有后續(xù)消息。在命令包頭中定義了一些安全相關(guān)的參數(shù), 即安全參數(shù)標志( SPI) 、密鑰標志( KIC) 、數(shù)字摘要等密鑰標志( 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) 短消息的有效載荷。用戶可用部分, 一般為140Bytes。因此協(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 所示。
表1 RSA 和ECC 的性能比較
可以看出, 在沒有協(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 所示。
基于智能卡的DH 算法密鑰協(xié)商機制, 要求在卡內(nèi)預(yù)存一對公開的參數(shù)集T = { g, q} 。其中, q 是素數(shù), g 是生成元, 滿足: g mod q, g2 mod q, ....., gp-1 mod q 是各不相同的整數(shù), 并且以某種排列方式組成了1 ~p - 1 的所有整數(shù)[ 6] 。
密鑰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算法最大的風險就是容易受到中間人攻擊: 一個主動的竊聽者可能截取A 發(fā)給B 的消息以及B 發(fā)給A 的消息, 他用自己的消息替換這些消息, 并分別與A 和B 完成一個DH 密鑰交換, 而且還維持了一種假相———A 和B 直接進行了通信。在協(xié)議末, A 實際上是與C 建立了一個秘密密鑰, B 與C 建立了一個秘密密鑰。當A 加密一個消息發(fā)送給B 時, C 能解密它而B 不能; 類似地, 當B 加密一個消息發(fā)送給A 時, C 能解密它而A 不能。如果A 和B 事前真的沒有聯(lián)系, 并因此沒用別的方法相互驗證對方的身份, 則很難防止各種假冒攻擊。這種情況在安全短消息中有所緩解。因為在短消息通信的機制中, 在空口部分要做到消息源地址的假冒是非常難的。消息本身具有一定的認證和簽名能力, 短消息的DH 密鑰交換進行中間人攻擊是困難的。
3. 3 短消息內(nèi)容的加密
采用AES 算法作為短消息內(nèi)容加密算法, 在同樣的密鑰長度下它具有較DES、3DES 算法更高的安全強度, 而且在現(xiàn)有的各種硬件平臺( 32 位的x86、Alpha、PowerPC、8 位的Smart-Card、ASIC 等) 都有優(yōu)秀的性能。它在具有協(xié)處理器的智能卡上實現(xiàn)加/ 解密速度也非??臁T?000 門的協(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卡解密。
圖4 DH密鑰協(xié)商協(xié)議
圖5 基于SIM卡的短消息處理流程
圖5 中細箭頭表示明文短消息, 粗箭頭表示加密后的短消息。為了解決上述問題, 需要設(shè)計基于SIM卡短消息的加密處理流程機制: 利用STK卡生成一個加密短消息菜單, 當用戶選中此菜單編寫短消息時, SIM卡利用主動式命令接收鍵盤編輯的文字信息, 然后可利用SIM卡的主動式命令Send Message來發(fā)送加密后的短信。當接收端手機接收到此信息時, 會從消息的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明文短消息傳輸所帶來的安全風險; 同時還無須在網(wǎng)絡(luò)側(cè)布置PKI 設(shè)施, 而且對用戶所使用的手機沒有特殊要求, 可以通過OTA 技術(shù)在現(xiàn)有的STK 卡上實施。因此, 具有簡單、易用、安全等特點。
作者簡介:
賈凡( 1976- ) , 男, 博士研究生, 主要研究方向為移動通信安全、電信智能卡安全及P2P 網(wǎng)絡(luò)、信任管理( fan. jia@ 126. com) ;
楊義先( 1961 - ) , 長江學(xué)者, 教授, 主要研究方向為現(xiàn)代密碼學(xué)、計算機網(wǎng)絡(luò)安全、信息處理;
彭俊好( 1973- ) , 男, 博士研究生, 主要研究方向為信任模型、網(wǎng)絡(luò)安全、現(xiàn)代密碼學(xué).