基于智能卡的短消息端到端的安全通信機(jī)制
文章出處:http://www.sgrivertours.com 作者:賈凡 楊義先 彭俊好 人氣: 發(fā)表時(shí)間:2011年09月26日
0 引言
短消息( Short Message Service, SMS) 是GSM網(wǎng)絡(luò)所提供的一種端到端的數(shù)據(jù)通信方式; 它可以是文本、語音或者是圖片等信息。SMS 采用了存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制, 即當(dāng)手機(jī)用戶發(fā)送一條SMS消息時(shí), 這條消息并不是由接收者直接收到, 而是由用戶所在網(wǎng)絡(luò)的短消息中心先接收到, 然后短消息中心向接收者發(fā)送一條通知指令, 通知接收者從短消息中心下載消息。這種機(jī)制具有很好的方便性、靈活性, 使其很快成為手機(jī)用戶一個(gè)重要的交流方式。
盡管短消息設(shè)計(jì)初衷是作為語音E-mail 的提示, 但它很快成為了個(gè)人和商業(yè)人群之間非常流行的通信方式 。目前很多地方開展了通過短信辦理銀行業(yè)務(wù)的服務(wù), 或者發(fā)送與商業(yè)相關(guān)的信息。當(dāng)發(fā)送銀行賬號(hào)、密碼以及身份識(shí)別碼等這些敏感信息時(shí), 人們最擔(dān)心的就是這些信息可能會(huì)被截獲或是誤發(fā)給一些詐騙此類信息的人?,F(xiàn)有的GSM短消息通信所采用的消息格式是開放可預(yù)知的, 其源地址具有可偽造性 , 而且在整個(gè)傳輸過程中是明文的, 因此目前短信通信并非總是可信的。針對這些敏感應(yīng)用, GSM用戶應(yīng)該能夠選擇一種保密通信來保證這些信息不被正確讀取和偽造, 因此在手機(jī)端提供一種加密通信方法是必要的。
目前對短消息加密的實(shí)現(xiàn)主要有兩種: ①基于終端和服務(wù)器之間的加密通信。它需要服務(wù)器配合實(shí)現(xiàn), 而且在核心網(wǎng)內(nèi)短信還是以明文傳輸, 仍存在被截獲的風(fēng)險(xiǎn)。②端到端的加密通信。它需要在手機(jī)終端或卡上進(jìn)行相應(yīng)的設(shè)計(jì), 實(shí)施的代價(jià)相對較小, 而且安全強(qiáng)度更高。本文給出了一種基于智能卡實(shí)現(xiàn)加密短信通信的方案, 具有與手機(jī)終端無關(guān)的特性和更好的實(shí)用性。
1 短消息通信網(wǎng)絡(luò)結(jié)構(gòu)
GSM短消息通信是通過信令通道傳輸數(shù)據(jù)的, 根據(jù)其發(fā)送和接收短消息可以分為移動(dòng)起始( MO) 和移動(dòng)終止( MT) 兩種類型。其發(fā)送接收的過程可以描述為: 短消息發(fā)送方將MO短消息提交給短消息服務(wù)中心( SMSC) , 它負(fù)責(zé)在基站與SME間中繼、儲(chǔ)存或轉(zhuǎn)發(fā)短消息; 移動(dòng)臺(tái)( 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)中定義的點(diǎn)—點(diǎn)短消息服務(wù)使得短消息能在移動(dòng)臺(tái)和短消息服務(wù)中心之間傳遞。這些服務(wù)中心是通過稱為SMC-GMSC 的特定的移動(dòng)交換中心( MSC) 與GSM網(wǎng)絡(luò)聯(lián)系的, 如圖1 所示。
圖1 短消息通信體系結(jié)構(gòu)
其中, VLR( Visitor Location Register) 是訪問位置寄存器, 含有用戶臨時(shí)信息的數(shù)據(jù)庫; HLR( Home Location Register) 是歸屬位置寄存器, 用于永久儲(chǔ)存管理用戶和服務(wù)記錄的數(shù)據(jù)庫, 由SMSC 產(chǎn)生。
短消息在GSM網(wǎng)絡(luò)上傳輸, 網(wǎng)絡(luò)本身沒有提供相應(yīng)的諸如互認(rèn)證、端到端安全、不可否認(rèn)性以及用戶匿名等安全機(jī)制。因此目前短消息網(wǎng)絡(luò)不滿足安全通信的三個(gè)基本要求, 即信息的完整性、機(jī)密性和有效性。
2 加密算法與其在智能卡上的實(shí)現(xiàn)
上述的通信安全問題可以借助于信息加密技術(shù)來解決。目前信息加密多采用基于密鑰的方法, 這類方法主要有對稱密鑰和非對密鑰兩種體制。
常見的對稱密鑰算法有AES、DES、3DES 和IDEA。對稱密鑰的特點(diǎn)是解密與加密密鑰相同。這類算法具有加/ 解密速度快、運(yùn)行時(shí)占用空間小等優(yōu)點(diǎn), 但是存在著密鑰交換和密鑰管理復(fù)雜等缺點(diǎn)。典型的非對稱方法是RSA, 它基于整數(shù)分解原理, 采用了模數(shù)運(yùn)算的方法。非對稱方法的信息保密程度取決于求解指定數(shù)學(xué)問題的難度, 目前涉及有指數(shù)分解、離散對數(shù)問題等, 算法的破解難度與相應(yīng)的所解數(shù)學(xué)問題難度成正比。與對稱方法不同, 非對稱方法同時(shí)采用私鑰和公鑰。公鑰可以對所有用戶公開, 發(fā)送方用公鑰加密, 接收方用私鑰解密。這種方法安全性高、密鑰管理方便, 在商業(yè)系統(tǒng)中有廣泛的應(yīng)用前景。
SIM卡是在GSM用做承載用戶識(shí)別信息的智能卡。智能卡是一種計(jì)算能力相對較弱的小設(shè)備, 它通常采用DES、3DES、RSA 等加/ 解密算法來提高系統(tǒng)安全性能。對于DES 和3DES對稱密鑰算法其主要是做簡單的移位操作, 因此用普通智能卡就可以很好地實(shí)現(xiàn)。而在實(shí)現(xiàn)RSA 算法時(shí)要進(jìn)行對運(yùn)算速度要求很高的大指數(shù)模運(yùn)算, 8 位CPU難以勝任。因此,在一些高安全性加密微控制器卡芯片中( 如AT90SC1616C) ,均設(shè)置有專用加/ 解密運(yùn)算的協(xié)處理器CAU。圖2 給出了一種帶有協(xié)處理器的智能卡芯片結(jié)構(gòu)圖[ 3]。隨著非對稱密鑰算法研究的深入和32 位CPU卡的推出, 在沒有協(xié)處理器的智能卡上也可以很好地實(shí)現(xiàn)ECC 等公鑰算法[ 4] 。
圖2 具有協(xié)處理器的智能卡
利用智能卡上這些可實(shí)現(xiàn)的加密算法, 可以對智能卡的輸入/ 輸出數(shù)據(jù)進(jìn)行加密以及相應(yīng)的密鑰協(xié)商。以下將對智能卡上的加密算法進(jìn)行分析, 選擇出適合端到端短信加密的算法。
3 基于智能卡的短消息安全機(jī)制設(shè)計(jì)
端到端的短消息安全通信機(jī)制要解決安全短消息的數(shù)據(jù)格式設(shè)計(jì)、基于智能卡的密鑰協(xié)商機(jī)制、消息加密算法的選擇以及通過智能卡對短消息編輯、加密、發(fā)送和接收的整個(gè)安全流程的設(shè)計(jì)。
3. 1 安全短消息數(shù)據(jù)包設(shè)計(jì)
短消息可以分為上行和下行短消息兩種。其數(shù)據(jù)格式主要包括協(xié)議數(shù)據(jù)單元參數(shù)和用戶數(shù)據(jù)兩部分。在協(xié)議數(shù)據(jù)參數(shù)部分主要定義了短消息的類型、源地址、目的地址、協(xié)議標(biāo)志、編碼方式以及用戶數(shù)據(jù)頭等信息。其中TP-PID 域可以區(qū)分該短消息是手機(jī)接收還是SIM卡接收, TP-MT 標(biāo)志可以區(qū)分上、下行短消息。用戶數(shù)據(jù)部分最大可用長度為140 Bytes。由于短消息的傳輸協(xié)議數(shù)據(jù)單元的參數(shù)有其固定格式, 要實(shí)現(xiàn)安全短消息, 可以利用的空間只有用戶數(shù)據(jù)的有效載荷部分。在這部分, 可以定義安全短消息的數(shù)據(jù)頭和加密信息以及可選的數(shù)字摘要。其中安全短消息數(shù)據(jù)頭定義了加密短消息的安全參數(shù)等信息, 應(yīng)用程序按要求封裝并根據(jù)數(shù)據(jù)頭解讀短消息。具體數(shù)據(jù)格式如圖3 所示[ 5] 。
圖3 安全短消息數(shù)據(jù)格式
其中, IEI 為信息單元標(biāo)志, 用來標(biāo)志命令包頭和長度以及是否有后續(xù)消息。在命令包頭中定義了一些安全相關(guān)的參數(shù), 即安全參數(shù)標(biāo)志( SPI) 、密鑰標(biāo)志( KIC) 、數(shù)字摘要等密鑰標(biāo)志( KID) 、防止重放攻擊的計(jì)數(shù)器( CNTR) 等。安全數(shù)據(jù)部分為加密的短消息。其具體的格式如下:
3. 2 會(huì)話密鑰協(xié)商協(xié)議
3. 2. 1 系統(tǒng)設(shè)計(jì)的指導(dǎo)原則
由于智能卡設(shè)備自身的特點(diǎn), 如計(jì)算能力低、存儲(chǔ)空間較小等, 在其上實(shí)現(xiàn)短信加密時(shí)必須要在安全強(qiáng)度、協(xié)議的安全性與效率之間有個(gè)折中。在選取加密算法和協(xié)議設(shè)計(jì)時(shí)需要考慮以下兩點(diǎn):
( 1) 智能卡設(shè)備的計(jì)算能力和有限的內(nèi)存。公鑰算法和加密算法的慎重選擇是必要的。
( 2) 短消息的有效載荷。用戶可用部分, 一般為140Bytes。因此協(xié)議設(shè)計(jì)必須盡可能高效。盡管有以上限制因素, 但是設(shè)計(jì)不能以安全為代價(jià)換取效率。安全機(jī)制必須能滿足以下幾個(gè)要求:
( 1) 安全;
( 2) 計(jì)算的復(fù)雜度低;
( 3) 能夠?qū)崿F(xiàn)密鑰兌換;
( 4) 易于實(shí)現(xiàn)和使用。
3. 2. 2 密鑰協(xié)商機(jī)制的算法選擇
在文獻(xiàn)[ 4] 中, 給出了關(guān)于RSA 和ECC 等公鑰算法在8位智能卡上的加/ 解密性能分析, 如表1 所示。
表1 RSA 和ECC 的性能比較
可以看出, 在沒有協(xié)處理卡上實(shí)現(xiàn)RSA 算法還是比較困難的, 但是ECC 在同等安全強(qiáng)度下, 在智能卡上的實(shí)現(xiàn)速度是很快的??梢岳脵E圓加密算法來實(shí)現(xiàn)安全短消息的密鑰協(xié)商機(jī)制, 但是在現(xiàn)有的網(wǎng)絡(luò)下要大規(guī)模使用公鑰算法來進(jìn)行密鑰協(xié)商, 必須布置移動(dòng)PKI 設(shè)施。因此這類算法不適合用于現(xiàn)有的GSM安全短消息的密鑰協(xié)商機(jī)制。
DH算法基于雙方產(chǎn)生一個(gè)隨機(jī)數(shù)作為自身的私鑰, 將由該數(shù)生成的公鑰發(fā)送給對方; 雙方根據(jù)自身的私鑰和對方發(fā)送的公鑰就可以產(chǎn)生公共的會(huì)話密鑰。其實(shí)現(xiàn)具有簡單性、方便性。它在智能卡上的實(shí)現(xiàn)難度也較RSA 算法相對容易, 而且無須在現(xiàn)有的GSM網(wǎng)絡(luò)中布置PKI。所以在該方案中選擇DH算法作為密鑰的協(xié)商算法。
3. 2. 3 基于DH算法的密鑰協(xié)商協(xié)議及其安全性分析
密鑰交換協(xié)議如圖4 所示。
基于智能卡的DH 算法密鑰協(xié)商機(jī)制, 要求在卡內(nèi)預(yù)存一對公開的參數(shù)集T = { g, q} 。其中, q 是素?cái)?shù), g 是生成元, 滿足: g mod q, g2 mod q, ....., gp-1 mod q 是各不相同的整數(shù), 并且以某種排列方式組成了1 ~p - 1 的所有整數(shù)[ 6] 。
密鑰x、y 的大小取決于素?cái)?shù)q 的選取, 待發(fā)送公鑰X、Y 也是小于q 的數(shù)。因此, q 的選取對于算法的性能有較大影響,長度越大算法的安全強(qiáng)度越高, 所占用戶信息長度也越長。GSM用戶A 與B 之間要進(jìn)行一次安全短消息通信, 其密鑰協(xié)議過程可以描述如下:
( 1) A 判斷是否已有與B 通信的會(huì)話密鑰Ks, 是否有效。如果有且有效可以發(fā)送加密短消息; 否則進(jìn)行步驟( 2) 。
( 2) A 通過普通短信發(fā)送一個(gè)隨機(jī)數(shù)給B。
( 3) B 響應(yīng)回送一個(gè)隨機(jī)數(shù), 并附加此次產(chǎn)生密鑰的有效期, 同時(shí)計(jì)算出會(huì)話密鑰。
( 4) A 根據(jù)收到B 的隨機(jī)數(shù)計(jì)算密鑰, 設(shè)置有效期。
協(xié)議安全性分析如下:
( 1) 密鑰的有效期:由于算法在協(xié)議實(shí)現(xiàn)中可以設(shè)置密鑰的有效期以及僅在需要密鑰時(shí)產(chǎn)生新的密鑰。這在很大程度上減小了對密鑰的分析攻擊。
( 2) 中間人攻擊:DH算法最大的風(fēng)險(xiǎn)就是容易受到中間人攻擊: 一個(gè)主動(dòng)的竊聽者可能截取A 發(fā)給B 的消息以及B 發(fā)給A 的消息, 他用自己的消息替換這些消息, 并分別與A 和B 完成一個(gè)DH 密鑰交換, 而且還維持了一種假相———A 和B 直接進(jìn)行了通信。在協(xié)議末, A 實(shí)際上是與C 建立了一個(gè)秘密密鑰, B 與C 建立了一個(gè)秘密密鑰。當(dāng)A 加密一個(gè)消息發(fā)送給B 時(shí), C 能解密它而B 不能; 類似地, 當(dāng)B 加密一個(gè)消息發(fā)送給A 時(shí), C 能解密它而A 不能。如果A 和B 事前真的沒有聯(lián)系, 并因此沒用別的方法相互驗(yàn)證對方的身份, 則很難防止各種假冒攻擊。這種情況在安全短消息中有所緩解。因?yàn)樵诙滔⑼ㄐ诺臋C(jī)制中, 在空口部分要做到消息源地址的假冒是非常難的。消息本身具有一定的認(rèn)證和簽名能力, 短消息的DH 密鑰交換進(jìn)行中間人攻擊是困難的。
3. 3 短消息內(nèi)容的加密
采用AES 算法作為短消息內(nèi)容加密算法, 在同樣的密鑰長度下它具有較DES、3DES 算法更高的安全強(qiáng)度, 而且在現(xiàn)有的各種硬件平臺(tái)( 32 位的x86、Alpha、PowerPC、8 位的Smart-Card、ASIC 等) 都有優(yōu)秀的性能。它在具有協(xié)處理器的智能卡上實(shí)現(xiàn)加/ 解密速度也非??臁T?000 門的協(xié)處理、1 000 Hz的條件下, 其一次加密速度為32 ms, 解密速度為36 ms[ 6] 。因此, 筆者推薦使用AES算法實(shí)現(xiàn)短信內(nèi)容加密。
3. 4 安全短消息操作流程( 圖5)
對于基于智能卡加密短消息的發(fā)送與接收要解決兩個(gè)問題:
( 1) 手機(jī)編寫的短信如何提交給SIM卡, SIM將短信內(nèi)容加密后提交給手機(jī)發(fā)送。
( 2) 手機(jī)收到短消息后, 如何判斷是否是由SIM卡加密過的并交由SIM卡解密。
圖4 DH密鑰協(xié)商協(xié)議
圖5 基于SIM卡的短消息處理流程
圖5 中細(xì)箭頭表示明文短消息, 粗箭頭表示加密后的短消息。為了解決上述問題, 需要設(shè)計(jì)基于SIM卡短消息的加密處理流程機(jī)制: 利用STK卡生成一個(gè)加密短消息菜單, 當(dāng)用戶選中此菜單編寫短消息時(shí), SIM卡利用主動(dòng)式命令接收鍵盤編輯的文字信息, 然后可利用SIM卡的主動(dòng)式命令Send Message來發(fā)送加密后的短信。當(dāng)接收端手機(jī)接收到此信息時(shí), 會(huì)從消息的TPDU中的PID位判斷出是交由SIM卡處理的消息還是手機(jī)終端處理的消息。若是SIM卡加密消息, 則自動(dòng)轉(zhuǎn)由SIM中相應(yīng)應(yīng)用程序來解析、提取短信內(nèi)容, 然后利用主動(dòng)式命令在手機(jī)終端顯示。消息處理流程如圖5 所示。整個(gè)短消息安全通信機(jī)制是在SIM卡上實(shí)現(xiàn)的, 只要該SIM支持OTA 功能, 就可以將該業(yè)務(wù)從服務(wù)器上下載。因此,很易于在現(xiàn)有的GSM網(wǎng)絡(luò)布置實(shí)施。
4 結(jié)束語
基于SIM卡的短消息加密通信方案, 采用了DH密鑰協(xié)商機(jī)制, 可以很好地解決現(xiàn)有GSM明文短消息傳輸所帶來的安全風(fēng)險(xiǎn); 同時(shí)還無須在網(wǎng)絡(luò)側(cè)布置PKI 設(shè)施, 而且對用戶所使用的手機(jī)沒有特殊要求, 可以通過OTA 技術(shù)在現(xiàn)有的STK 卡上實(shí)施。因此, 具有簡單、易用、安全等特點(diǎn)。
作者簡介:
賈凡( 1976- ) , 男, 博士研究生, 主要研究方向?yàn)橐苿?dòng)通信安全、電信智能卡安全及P2P 網(wǎng)絡(luò)、信任管理( fan. jia@ 126. com) ;
楊義先( 1961 - ) , 長江學(xué)者, 教授, 主要研究方向?yàn)楝F(xiàn)代密碼學(xué)、計(jì)算機(jī)網(wǎng)絡(luò)安全、信息處理;
彭俊好( 1973- ) , 男, 博士研究生, 主要研究方向?yàn)樾湃文P?、網(wǎng)絡(luò)安全、現(xiàn)代密碼學(xué).