基于智能卡的短消息端到端的安全通信機制
文章出處:http://56733.cn 作者:賈凡 楊義先 彭俊好 人氣: 發(fā)表時間:2011年09月26日
0 引言
短消息( Short Message Service, SMS) 是GSM網(wǎng)絡所提供的一種端到端的數(shù)據(jù)通信方式; 它可以是文本、語音或者是圖片等信息。SMS 采用了存儲轉(zhuǎn)發(fā)機制, 即當手機用戶發(fā)送一條SMS消息時, 這條消息并不是由接收者直接收到, 而是由用戶所在網(wǎng)絡的短消息中心先接收到, 然后短消息中心向接收者發(fā)送一條通知指令, 通知接收者從短消息中心下載消息。這種機制具有很好的方便性、靈活性, 使其很快成為手機用戶一個重要的交流方式。
盡管短消息設(shè)計初衷是作為語音E-mail 的提示, 但它很快成為了個人和商業(yè)人群之間非常流行的通信方式 。目前很多地方開展了通過短信辦理銀行業(yè)務的服務, 或者發(fā)送與商業(yè)相關(guān)的信息。當發(fā)送銀行賬號、密碼以及身份識別碼等這些敏感信息時, 人們最擔心的就是這些信息可能會被截獲或是誤發(fā)給一些詐騙此類信息的人?,F(xiàn)有的GSM短消息通信所采用的消息格式是開放可預知的, 其源地址具有可偽造性 , 而且在整個傳輸過程中是明文的, 因此目前短信通信并非總是可信的。針對這些敏感應用, GSM用戶應該能夠選擇一種保密通信來保證這些信息不被正確讀取和偽造, 因此在手機端提供一種加密通信方法是必要的。
目前對短消息加密的實現(xiàn)主要有兩種: ①基于終端和服務器之間的加密通信。它需要服務器配合實現(xiàn), 而且在核心網(wǎng)內(nèi)短信還是以明文傳輸, 仍存在被截獲的風險。②端到端的加密通信。它需要在手機終端或卡上進行相應的設(shè)計, 實施的代價相對較小, 而且安全強度更高。本文給出了一種基于智能卡實現(xiàn)加密短信通信的方案, 具有與手機終端無關(guān)的特性和更好的實用性。
1 短消息通信網(wǎng)絡結(jié)構(gòu)
GSM短消息通信是通過信令通道傳輸數(shù)據(jù)的, 根據(jù)其發(fā)送和接收短消息可以分為移動起始( MO) 和移動終止( MT) 兩種類型。其發(fā)送接收的過程可以描述為: 短消息發(fā)送方將MO短消息提交給短消息服務中心( SMSC) , 它負責在基站與SME間中繼、儲存或轉(zhuǎn)發(fā)短消息; 移動臺( MS) 到SMSC 的協(xié)議能傳輸MO 或MT的短消息, SMS 網(wǎng)關(guān)接收由SMSC 發(fā)送的短消息,向HLR 查詢路由信息, 并將短消息傳送給接收者所在基站的交換中心, 由其來完成短消息數(shù)據(jù)的交換建立。下面給出短消息通信的GSM網(wǎng)絡結(jié)構(gòu)。GSM標準中定義的點—點短消息服務使得短消息能在移動臺和短消息服務中心之間傳遞。這些服務中心是通過稱為SMC-GMSC 的特定的移動交換中心( MSC) 與GSM網(wǎng)絡聯(lián)系的, 如圖1 所示。
圖1 短消息通信體系結(jié)構(gòu)
其中, VLR( Visitor Location Register) 是訪問位置寄存器, 含有用戶臨時信息的數(shù)據(jù)庫; HLR( Home Location Register) 是歸屬位置寄存器, 用于永久儲存管理用戶和服務記錄的數(shù)據(jù)庫, 由SMSC 產(chǎn)生。
短消息在GSM網(wǎng)絡上傳輸, 網(wǎng)絡本身沒有提供相應的諸如互認證、端到端安全、不可否認性以及用戶匿名等安全機制。因此目前短消息網(wǎng)絡不滿足安全通信的三個基本要求, 即信息的完整性、機密性和有效性。
2 加密算法與其在智能卡上的實現(xiàn)
上述的通信安全問題可以借助于信息加密技術(shù)來解決。目前信息加密多采用基于密鑰的方法, 這類方法主要有對稱密鑰和非對密鑰兩種體制。
常見的對稱密鑰算法有AES、DES、3DES 和IDEA。對稱密鑰的特點是解密與加密密鑰相同。這類算法具有加/ 解密速度快、運行時占用空間小等優(yōu)點, 但是存在著密鑰交換和密鑰管理復雜等缺點。典型的非對稱方法是RSA, 它基于整數(shù)分解原理, 采用了模數(shù)運算的方法。非對稱方法的信息保密程度取決于求解指定數(shù)學問題的難度, 目前涉及有指數(shù)分解、離散對數(shù)問題等, 算法的破解難度與相應的所解數(shù)學問題難度成正比。與對稱方法不同, 非對稱方法同時采用私鑰和公鑰。公鑰可以對所有用戶公開, 發(fā)送方用公鑰加密, 接收方用私鑰解密。這種方法安全性高、密鑰管理方便, 在商業(yè)系統(tǒ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ù)進行加密以及相應的密鑰協(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ù)等信息, 應用程序按要求封裝并根據(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è)計的指導原則
由于智能卡設(shè)備自身的特點, 如計算能力低、存儲空間較小等, 在其上實現(xiàn)短信加密時必須要在安全強度、協(xié)議的安全性與效率之間有個折中。在選取加密算法和協(xié)議設(shè)計時需要考慮以下兩點:
( 1) 智能卡設(shè)備的計算能力和有限的內(nèi)存。公鑰算法和加密算法的慎重選擇是必要的。
( 2) 短消息的有效載荷。用戶可用部分, 一般為140Bytes。因此協(xié)議設(shè)計必須盡可能高效。盡管有以上限制因素, 但是設(shè)計不能以安全為代價換取效率。安全機制必須能滿足以下幾個要求:
( 1) 安全;
( 2) 計算的復雜度低;
( 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)絡下要大規(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)絡中布置PKI。所以在該方案中選擇DH算法作為密鑰的協(xié)商算法。
3. 2. 3 基于DH算法的密鑰協(xié)商協(xié)議及其安全性分析
密鑰交換協(xié)議如圖4 所示。
基于智能卡的DH 算法密鑰協(xié)商機制, 要求在卡內(nèi)預存一對公開的參數(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 響應回送一個隨機數(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)加/ 解密速度也非常快。在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卡解密。
圖4 DH密鑰協(xié)商協(xié)議
圖5 基于SIM卡的短消息處理流程
圖5 中細箭頭表示明文短消息, 粗箭頭表示加密后的短消息。為了解決上述問題, 需要設(shè)計基于SIM卡短消息的加密處理流程機制: 利用STK卡生成一個加密短消息菜單, 當用戶選中此菜單編寫短消息時, SIM卡利用主動式命令接收鍵盤編輯的文字信息, 然后可利用SIM卡的主動式命令Send Message來發(fā)送加密后的短信。當接收端手機接收到此信息時, 會從消息的TPDU中的PID位判斷出是交由SIM卡處理的消息還是手機終端處理的消息。若是SIM卡加密消息, 則自動轉(zhuǎn)由SIM中相應應用程序來解析、提取短信內(nèi)容, 然后利用主動式命令在手機終端顯示。消息處理流程如圖5 所示。整個短消息安全通信機制是在SIM卡上實現(xiàn)的, 只要該SIM支持OTA 功能, 就可以將該業(yè)務從服務器上下載。因此,很易于在現(xiàn)有的GSM網(wǎng)絡布置實施。
4 結(jié)束語
基于SIM卡的短消息加密通信方案, 采用了DH密鑰協(xié)商機制, 可以很好地解決現(xiàn)有GSM明文短消息傳輸所帶來的安全風險; 同時還無須在網(wǎng)絡側(cè)布置PKI 設(shè)施, 而且對用戶所使用的手機沒有特殊要求, 可以通過OTA 技術(shù)在現(xiàn)有的STK 卡上實施。因此, 具有簡單、易用、安全等特點。
作者簡介:
賈凡( 1976- ) , 男, 博士研究生, 主要研究方向為移動通信安全、電信智能卡安全及P2P 網(wǎng)絡、信任管理( fan. jia@ 126. com) ;
楊義先( 1961 - ) , 長江學者, 教授, 主要研究方向為現(xiàn)代密碼學、計算機網(wǎng)絡安全、信息處理;
彭俊好( 1973- ) , 男, 博士研究生, 主要研究方向為信任模型、網(wǎng)絡安全、現(xiàn)代密碼學.