(浙江大學 計算機科學與技術學院, 浙江 杭州 310027)
摘 要:簡要分析了GSM/UMTS的安全機制以及缺陷,針對這些問題提出了基于端到端安全機制的高強度的移動通信安全中間件架構。介紹了架構的組成和安全機制,設計了所需的鑒權和密鑰協商機制,同時介紹和分析了架構的安全機制中所需的加密算法和完整性控制方案。
關鍵詞:智能移動終端; 歸屬安全環境; 端到端的安全機制; 認證和密鑰協商; 完整性控制
中圖法分類號:TP393.08文獻標識碼:A
文章編號:1001-3695(2006)08-0091-04
Mobile Security Middleware Architecture in High Strength
MAO Hai xia, CHEN Tian zhou, DAI Hong jun
(College of Computer Science Technology, Zhejiang University, Hangzhou Zhejiang 310027, China)
Abstract:This article briefly analyses the security mechanisms of GSM and UMTS and finds the faults in them. To solve these faults, a mobile security middleware architecture in high strength based on end to end security mechanism is proposed.This article introduces the middleware architecture and its security mechanism,including the design of authentication and key agreement, discusses the encryption algorithm and the scheme of integrity control.
Key words:Intelligent Mobile Equipment; Hold Security Environment; End to End Security Mechanism; Authentication and Key Agreement; Integrity Control
1引言
隨著第三代移動通信系統在全球的部署,以WCDMA等技術為代表的3G業務將帶來最高可達2Mbps的帶寬。目前用于手機的CPU主頻也達到了400MHz~800MHz。如此令人樂觀的帶寬和CPU速度將使移動通信系統能夠承載更多的數據業務。隨著移動通信所涉及業務的拓展,其安全性要求亦將越來越重要。本文將基于高性能的智能移動終端實現一個高強度的移動通信安全中間件架構(Mobile Security Middleware Architecture,MSMA)。
我國現有的GSM/GPRS等系統限于設計和硬件性能的原因,在安全性方面不盡如人意。雖然UMTS等3G系統在安全性方面已有明顯提高,但是同樣存在安全缺陷。另外2G,2.5G,3G必將在相當長的時間內共存,2G/2.5G/3G移動通信系統在抵御外來惡意攻擊方面具有較大的風險。
本文提出的MSMA能夠較好地抵御各種惡意攻擊,滿足特殊部門和領域對于安全性的高要求。對于涉及高度機密的部門和領域,數據的安全性是首要的,MSMA將能夠滿足他們的要求。另外MSMA的設計獨立于具體的移動通信系統,從而可在各種移動通信系統上布署。
2UMTS/ GSM系統的安全性分析
2.1GSM的安全機制 [1]
GSM的安全機制主要體現在對無線信道的保護上,即基于手機與服務網絡之間的認證與密鑰協商過程。認證與密鑰協商過程按如下步驟進行:①移動臺MS向MSC/VLR發出接入請求;②MSC/VLR向HLR/AUC發送認證數據請求;③HLR/AUC先產生一個隨機數RAND,然后由Ki 和RAND經A3算法產生簽名響應SRES,經A8算法產生加密密鑰 Kc,然后將認證向量三元組{RAND,SRES, Kc}發回給MSC/VLR;④MSC/VLR向MS提供對應的安全參數組,其中包括128bits的隨機數RAND;⑤MS收到RAND后分別用A3和A8算法計算出鑒別響應SRES′和加密密鑰Kc并將SRES′送回MSC/VLR;⑥MSC/VLR對收到的SRES′和參數組中的SRES進行比較,若相同則認證成功。用戶每次登記、呼叫建立嘗試、位置更新以及在補充業務的激活、去活、登記或刪除之前均需要鑒權。在連接后,無線信道的兩側MS和BTS均利用A5算法,以Kc和TDMA的幀號為參數,產生一對密鑰流 S1和S2,S2 用于加密將要進入無線信道的信息數據流,S1用于解密從無線信道上傳來的加密信息數據流。在基站子系統BSS端同樣根據c和幀號產生S1和S2,與移動臺相反,S1用于解密,S2用于加密。
2.2UMTS的安全機制 [2,3]
UMTS中,無線信道兩側的認證與密鑰協商過程按如下步驟進行:①MS向VLR/SGSN發出接入請求;②VLR/SGSN向HE/HLR發送認證數據請求;③HE/HLR產生一個包括隨機數RAND、認證令牌AUTN、響應數RES等的五元組AV發回給VLR/SGSN;④VLR/SGSN向MS提供RAND和AUTN;⑤MS收到RAND后利用f1,f5算法驗證AUTN,用f2算法計算出期望響應XRES、用f3和f4算法計算出加密密鑰CK和完整性密鑰IK,并將XRES送回VLR/SGSN;⑥VLR/SGSN對收到的XRES和五元組中的RES進行比較,若相同則認證成功。
f8算法類似于GSM中的A5算法,以CK等為參數,生成密鑰流用于對進入無線信道的信息數據流進行加解密。同GSM有所不同的是,UMTS還提供了完整性保護,以IK等為參數輸入f9算法,可以得到信息完整性認證碼MAC I。在無線信道的兩端,發送方計算出MAC I附加在信息流上送出,接收方計算一個預期的信息完整性認證碼XMAC I和收到的MAC I進行比較,從而確定完整性是否得到了保護。
2.3GSM和UMTS的安全缺陷
GSM系統存在著下列安全缺陷:①單向身份認證。只有網絡認證用戶,用戶不認證網絡,無法防止偽造基站和HLR的攻擊。②Kc和SRES在網絡子系統NSS中明文傳輸,易被竊取,為竊聽對應的手機帶來便利。Kc的長度為64bits,已不能承受強力攻擊,敵對的MSC/VLR獲得Kc后可以利用Kc竊聽用戶的語音。③基站和基站之間均是明文,無加密和認證措施。BTS把從無線信道上收到的加密信息數據流、TDMA幀號和Kc經過A5算法解密后得到明文,然后直接將明文傳送BSC。④盡管Ki長達128bits,但破譯Ki已成為可能。事實上2002年5月,IBM研究人員已經發現新的快速獲取密鑰Ki的方法。⑤無數據完整性認證以及用戶無法選擇安全性級別。
由于GSM系統存在諸多的缺陷,近年來對于GSM安全性不利的事件相應發生。1998年4月SIM卡上的A3,A8算法被加州大學伯克利分校的研究者攻破,并且伯克利研究小組可以使用給定的SIM,利用一臺PC在八小時之內能夠提取到Ki。1999年12月,一定條件下A5/1算法能被攻破,隨后破解A5/1算法的方法以論文的形式被公布[4]。2003年8月,A5/2算法被攻破。
UMTS與GSM相比,在安全性方面有了很大的提高,但仍存在一些安全缺陷,表現在以下幾個方面:①當服務網絡無法從TMSI獲得IMSI時,用戶會以純文本的形式回答網絡向用戶發送的IMSI請求,易造成用戶IMSI信息的泄漏。②UMTS的完整性保護機制只用在MS與RNC之間信令數據傳輸中,沒有提供用戶數據的完整性保護。當然,用戶數據沒有得到完整性保護并不表明完全不能抵抗攻擊者的惡意竄改,差錯控制機制能夠檢測和糾正數據中的一些更改。③Iu和Iur接口上傳輸的數據缺乏保護措施,在Iu接口上系統以明文方式傳輸保密參數(如完整性密鑰IK),一旦攻擊者通過Iu接口和Iur接口獲得密鑰,用戶的通信將沒有安全性而言。
從以上的分析可以看出,UMTS雖然較GSM在安全體制上有了顯著的提高,但是仍然無法提供高度安全的服務,更何況在由2G向3G演進過程中通信系統的安全性是由更薄弱的2G安全機制決定的。對于話音和一般的數據業務,UMTS/GSM的安全性缺陷不會造成大的影響。但對類似于網上銀行、網上證券或者其他有特殊安全要求的業務,現有的安全機制無法保證通信的安全,所以我們必須提供強有力的端到端的安全機制,以此為目標我們設計了能夠提供端到端安全的MSMA。
3MSMA的體系結構和安全機制
MSMA可基于不同的移動通信系統,如GSM,GPRS,UMTS等。MSMA僅以移動通信系統為傳輸層,再輔以特定設備來實現。一個魯棒、安全的通信機制,必須提供鑒權認證、保密、完整性控制。MSMA的安全機制正是基于這三點來設計的,它包括了鑒權認證和密鑰協商機制、數據加密以及完整性控制。
3.1MSMA的體系結構
(1)智能移動終端IME(IntelligentMobileEquipment)。MSMA需對數據進行加密和完整性控制等處理,而這些均要求終端具有較強的處理能力和較大的內存空間,否則低效的硬件將導致響應時間過長、處理效率過低等。另外我們還推薦將USIM/SIM卡固化在IME上,因為USIM/SIM卡的丟失會導致整個安全機制作出的努力毫無意義。本文的IME特指基于MSMA的智能終端。
(2)安全中心SC(SecurityCenter)。它對應于服務網絡的HLR存在,用于處理IME的所有請求。IME和SC的歸屬關系由IME的USIM/SIM唯一確定,USIM/SIM的HLR對應的SC正是該IME的歸屬SC。SC上存儲了它所屬的每個IME的兩把密鑰,即IME的公開密鑰以及IME和SC共享的對稱密鑰。SC和HE/HLR/AuC通過統一接口相連。
(3)認證中心CA(CertificationAuthority)。它用于對SC所屬的IME進行鑒權,并頒發相應的證書。IME憑該證書訪問SC。我們將CASC稱作IME的歸屬安全環境。
3.2鑒權認證和密鑰協商機制AKA(AuthenticationandKeyAgreement)[5]
MSMA為會話的IMEs相互認證提供了一個基于公開密鑰加密算法的AKA。會話雙方能夠利用公鑰加密算法互相認證的一個重要的前提是互相知道對方的公開密鑰,但終端IMEi不可能同時擁有其他所有IMEs的公開密鑰。當IMEi需要另一終端的公開密鑰時,它首先檢查另一終端的公開密鑰是否在本地存儲單元上,如果不存在,IMEi需向歸屬安全環境CASC請求。因此MSMA還需要提供用戶(IMEs)訪問歸屬安全環境(CASC)的AKA,這個AKA基于對稱加密算法來實現。
3.2.1使用對稱加密算法的用戶訪問歸屬安全環境AKA
IMEi向SC發起數據請求時,IMEi都需要獲得CA頒發的證書。本小節的AKA實現了用戶訪問歸屬安全環境時雙方的互相認證且為用戶和其歸屬安全環境建立會話密鑰。
圖1描述了用戶接入安全環境時的認證和密鑰協商過程。Kprvi代表IMEi和SC共享的密鑰,Kt表示臨時密鑰,Kca代表CA的密鑰,Ksc代表SC的密鑰。Ki代表IMEi和SC會話的密鑰,T,T+1代表時間戳。K(a,b)表示將內容a和內容b用密鑰K經過對稱加密算法加密后的密文。Noi表示IMEi的代號,能夠標志IMEi的身份。整個鑒權流程解釋如下:
(1)IMEi向CA發出Noi,請求與歸屬安全環境會話。
(2)CA收到Noi,根據Noi找到IMEi和CA共享的密鑰Kprvi后,向IMEi發出Kprvi(Kt,Kca(Noi,Kca))。
IMEi用Kprvi解密CA發來的密文,可得到Kt和Kca(Noi,Kca)。Kt是短期內使用的臨時密鑰,Kca(Noi,Kca)其實是訪問CA的證書。IMEi若能通過解密獲得Kca(Noi,Kca)并將其發回CA,CA就認定其為合法用戶IMEi。
(3)IMEi發回Kt(Kca(Noi,Kca),T),IMEi通過返回證書Kca(Noi,Kca)向CA表明自己的確是IMEi,并伴隨著時間戳T,使得竊聽者無法利用重發密文攻擊。
CA用Kt解密Kt(Kca(Noi,Kca),T),得到了Kca(Noi,Kca)和T,CA看到了本方先前發出的證書Kca(Noi,Kca),則認定IMEi為合法用戶。
(4)CA發出Kt(Ki,Ksc(IMEi,Ki))給IMEi。IMEi收到Kt(Ki,Ksc(IMEi,Ki))后用Kt解密,獲得Ki和Ksc(IMEi,Ki)。Ki是用于和SC會話的密鑰。Ksc(IMEi,Ki)是CA頒發給IMEi的另一張證書,這張證書用于訪問SC。
(5)IMEi發出Ki(Ksc(IMEi,Ki),T)給SC。SC用Ki解密Ki(Ksc(IMEi,Ki),T),獲得Ksc(IMEi,Ki)和時間戳T。證書Ksc(IMEi,Ki)使得SC相信對方就是IMEi,因為只有IMEi才能從CA處獲取Ksc(IMEi,Ki)。SC用Ksc解密Ksc(IMEi,Ki)獲得Ki,這是SC和IMEi會話的共享密鑰。
(6)SC發送Ki(T+1)給IMEi。這條消息可向IMEi證明自己是真正的SC,非法入侵者既無法知道T也無法知道Ki,所以無法假造Ki(T+1)來回復IMEi。從而,不但CASC認證了IMEi,IMEi也認證了CASC。
除此之外,我們對Noi,Kprvi,Kca,Ksc作一些說明。在MSMA模型中,Noi我們選擇使用手機號碼,IMEi的Kprvi長度為128bits,并且根據需要可以更長。IMEi具有一個初始的Kprvi,這個Kprvi為IMEi和其歸屬安全環境CASC共享,并且Kprvi可變。我們為Kprvi設置一個壽命,每使用一次Kprvi,其壽命值減1,壽命值存放在CASC端,初始化為如2,4,8,16,…的任意數值。我們給出一種可行的Kprvi替換算法,在IMEi和CASC建立會話后,CASC檢查Kprvi的壽命值,若為0則向SC發出更改Kprvi的指示:Kprvi(Change,Kprvi′),Kprvi′將替代原有的Kprvi。IMEi如能收到此密文,則需無條件響應:Kprvi(OK,Kprvi′),表示確認了更新,此后雙方會話的對稱密鑰就改為Kprvi′。
臨時密鑰Kt是SC在某次鑒權會話中任意選取的值,該密鑰和具體的鑒權會話無關,是隨機產生的。為了確保強度,Kt選擇128bits以上。Kca密鑰只被CA持有,故密鑰Kca相對安全,但也可以定期替換或隨機產生。Ksc代表SC的密鑰,Ksc僅為SC和CA所共享。我們同樣可以選擇多種方式替換Ksc,替換Ksc只要由SC或CA的一方發起。T,T+1代表時間戳。
3.2.2使用公開密鑰加密算法的端到端的AKA
IME1希望能夠與IME2會話,會話之前必須經過兩個步驟:①證實對方是自己所希望的會話對象,即認證;②進行密鑰協商。對照圖2我們分析一下認證和密鑰協商流程。Ei(A)即用IMEi的公鑰將內容A加密,Di(B)即IMEi用自己的私鑰將密文B解密,故有A=Di(Ei(A))。
(1)IME1發出消息E2(No1,R1,T),即IME1用IME2的公開密鑰加密IME1的代號No1,IME1生成的隨機數R1以及時間戳T。
IME2用私鑰將密文解密,得到(No1,R1,T)=D2(E2(No1,R1,T))。IME2獲知的信息有:對方聲稱是IME1,隨機數R1。IME2接下來既要證明自己是IME2,也要確認對方是否是IME1。
(2)IME2發回消息E1(R1,R2,Ks,T+1),IME2用IME1的公開密鑰加密對方的隨機數R1以及本方的隨機數R2,并伴隨著時間戳和會話密鑰。
當IME1收到E1(R1,R2,Ks,T+1)后,解密得到R1和T+1。IME1確認對方就是IME2,因為只有IME2能解密E2(No1,R1,T)從而獲得R1和T并將其發回。IME1接下來要做的就是讓IME2相信自己就是IME1,因為此時IME2還未確定IME1的身份。
(3)IME1發出消息E1(R2,Ks,T+2)。IME2用私鑰解密E1(R2,Ks,T+2),得到R2,Ks和T+2,從而確認對方是IME1。因為如果對方不是IME1,就無法解密E1(R1,R2,Ks,T+1)獲得R2,從而就無法向IME2發回R2。
至此,IME1和IME2互相認證完成并建立了一個以Ks為密鑰的會話,發送方IME將先對數據進行完整性控制處理(第3.3.2節),再以Ks為密鑰用對稱加密算法(第3.3.1節)加密后得到密文交給具體的移動通信系統處理,具體的移動通信系統通過電路交換或者分組交換將密文數據交給接收方IME,接收方IME先解密后檢查數據的完整性。
總之,基于以上兩個認證和密鑰協商機制,IMEs之間得以進行鑒權和安全會話。流程如下:如IME1希望與IME2建立會話時,IME1先在本地存儲單元上尋找IME2的公鑰,如有則直接使用,如沒有則需向CASC請求,因為SC保存有歸屬于它的所有IMEs的公鑰;IME1向SC請求IME2的公鑰則需建立IME1與CASC之間的會話,此會話將基于用戶訪問歸屬安全環境AKA來建立;當IME1從CASC獲得了IME2的公開密鑰后,IME1和IME2再基于端到端的AKA來建立會話。
3.3加密和完整性控制
安全機制的各個組成部分并沒有嚴格的界限,而是互相依存的有機整體。鑒權是安全機制的基石,因為它是建立會話密鑰的前提,而鑒權的實現又依賴于各種加密算法和完整性控制。這一節分析MSMA中使用的各種加密算法以及所采取的完整性控制措施,以及它們在MSMA中的應用場合。
3.3.1加密算法的選用[6]
加密技術往往基于一個眾所周知的加密模型和易于改變的密鑰,其中真正保密的是密鑰。密鑰越長,破譯系統的工作因子成指數級增長。前文分析可知,UMTS/GSM系統中所采用的128bits和64bits的密鑰已不足以提供高強度的安全,因此我們需要選擇一個強有力的加密算法以及足夠長度的密鑰。
對稱加密算法又稱為保密密鑰算法,加密密鑰和解密密鑰相同。MSMA選用3DES(TripleDES)作為其所需的對稱加密算法,3DES是DES改進的加密算法,它使用三把密鑰對報文進行三次DES加密,效果相當于將DES密鑰的長度加倍。3DES克服了DES算法56bits短密鑰的顯著缺點,達到了168bits。
公開密鑰加密算法也稱為非對稱加密算法,它使用兩把非對稱的密鑰:公共密鑰和私有密鑰,前者公開且用于加密,后者保密且用于解密。MSMA選用RSA算法作為其所需的公開密鑰加密算法。自從RSA算法發明以來,雖然已經發現了不少有效的因數分解方法,在一定程度上降低了破譯RSA算法的難度,但至今還沒有出現動搖RSA算法根基的方法。目前129bits甚至155bits的RSA加密勉強可解,但目前大多數加密程序均采用231bits,308bits甚至616bits的RSA算法,因此RSA加密還是相當安全的。據預測,攻破512bits密鑰RSA算法大約需要八個月時間;而一個768bits密鑰RSA算法在2004年之前還是無法攻破的。現在,在技術上還無法預測攻破具有2048bits密鑰的RSA加密算法需要多少時間。
MSMA之所以選擇這兩個算法是因為RSA和3DES都具有相當的強度并且密鑰長度可變,適合在不同的安全性要求下作出不同的選擇。在目前的應用環境下,3DES選擇使用168bits的密鑰長度,RSA選擇512bits的密鑰長度足以抵抗高強度的攻擊。但隨著密碼學和破譯技術的發展,MSMA可以對3DES和RSA的密鑰長度作出調整,以滿足更高的安全要求。
3.3.2MSMA的完整性控制
到目前為止MSMA雖已實現鑒權和加密,但安全機制尚未完善。在前面的鑒權和加密所涉及的幾次數據傳送(圖1、圖2)中,如果一個主動的入侵者截獲一方的消息,竄改成同樣的長度后,再發給另一方,那么就有可能帶來巨大的麻煩。比如正在鑒權時,入侵者竄改了發送方的Kprvi(Kca,Kca(Noi,Kca)),接收方會認為發送方是個非法的用戶;雙方會話時,入侵者竄改了發送方的密文Ki(Msg),接收方對竄改后的消息解密后看到的可能是很荒謬的數據,但是接收方并不知密文已經被竄改過。因此我們必須提供一種完整性控制機制來保證接收方能夠知道接收的密文有沒有被竄改過。
MSMA選用報文摘要MD5(Message Digest)來實現其完整性控制。MD5是一個單向散列Hash函數,該函數從一段可不定長的明文中計算出一個固定長度的比特串。它具有三個重要的屬性:給出 P 就易于計算出MD5( P );只給出MD5( P),幾乎無法找出P; 無法找到具有同樣報文摘要的兩個報文。
基于MD5,MSMA的完整性控制過程如下:①發送方使用MD5編碼將明文PLAINTEXT加密產生128bits的數字摘要MD5(PLAINTEXT);②發送方將明文和摘要連接,作為MSMA的加密算法的輸入;③接收方用對稱密鑰解密得到預期的明文xPLAINTEXT和預期的摘要xMD5(PLAINTEXT);④接收方生成MD5(xPLAINTEXT)來對比xMD5(PLAINTEXT),如果兩者一致,則說明傳送過程中信息沒有破壞和竄改,否則則說明信息已失去其安全性及保密性。
在MSMA中,認證和密鑰協商過程均使用上述的機制進行完整性控制。當用戶間認證完成會話建立后,用戶可以自行選擇是否對話音或其他業務數據進行完整性控制。
4結果與討論
本文通過對UMTS/GSM安全機制缺陷的分析,提出了能夠滿足高強度安全需要的移動安全中間件架構,并根據需要設計了兩種不同的AKA機制。端到端的AKA為IMEs之間提供了相互認證和建立會話;用戶訪問歸屬安全環境AKA保證了IMEs訪問CASC的安全性,是IMEs獲取其他IMEs公開密鑰的前提。
在加密算法中,基于3DES的快速特點選用其加密端到端的數據流;RSA用于端到端的AKA,幫助IMEs之間進行密鑰協商。正因為端到端的AKA是IDEs之間保密會話的先決條件,所以我們選擇了雖然慢但是更安全的RSA算法。完整性控制機制選擇了MD5,同時允許用戶自行選擇是否應用完整性控制,即速度更快但是不安全或者安全但是速度較慢。
總之,基于MSMA的每次會話雙方實現相互認證,并建立新的密鑰來防止重放攻擊,通過完整性控制機制保證了數據的完整性防止中間者竄改攻擊。MSMA已在2G/2.5G的移動通信系統局部范圍進行了實驗性配置,體現出了良好的獨立性并且發揮了其高強度的特性。經過驗證,配置了MSMA的移動通信系統安全性上得到了大幅度提高,同時在響應延遲方面表現較好,能夠滿足特殊部門和領域在內部進行移動通信時高強度安全性的要求。
參考文獻:
[1]3GPP Organizational Partners. 3GPP TS 03.20 v9.0.0, Security Related Network Functions[EB/OL]. http://www.3gpp.org/ftp/Specs/archive/03_series/03.20/0320 900.zip,2001-01.
[2]3GPP Organizational Partners. 3GPP TS 33.102 v6.3.0, Security Architecture[EB/OL]. http://www.3gpp.org/ftp/Specs/archive/33_series/33.102/33102 2630.zip,2004-12.
[3]3GPP Organizational Partners. 3GPP TS 33.105 v6.0.0, Cryptographic Algorithm Requirements[EB/OL]. http://www.3gpp.org/ftp/Specs/archive/33_series/33.105/33105-600.zip, 2004-06.
[4]Alex Biryukov, Adi Shamir, David Wagner. Fast Software Encryption[C]. New York: The 7th International Workshop Proceedings, London: Springer Verlag GmbH,2001.1-19.
[5]張方舟,葉潤國,馮彥君,等.3G接入技術中認證鑒權的安全性研究[J].微電子學與計算機,2004,21(9):33-37.
[6]劉蘇東,韋寶典,王新梅.改進的3G認證與密鑰分配協議[J].通信學報,2002,23(5):119-122.
作者簡介:冒海霞(1981-),男,江蘇如皋人,碩士研究生,主要研究方向為嵌入式系統、通信保密;陳天洲(1970-),男,浙江麗水人,副教授,博士,主要研究方向為嵌入式系統、虛擬現實、科學計算可視化;戴鴻君(1981-),男,山東泰安人,博士研究生,主要研究方向為嵌入式系統。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。