移動通信的無線已接入安全機制
隨著移動通信的普及以及移動互聯(lián)網(wǎng)業(yè)務(wù)的迅猛發(fā)展,移動網(wǎng)絡(luò)成為黑客關(guān)注的目標(biāo),竊聽、偽裝、破壞完整性、拒絕服務(wù)、非授權(quán)訪問服務(wù)、否認(rèn)使用/提供、資源耗盡等形形色色的潛在安全犯罪威脅著正常的通信服務(wù)。為了使人們隨時隨地享受便捷無線服務(wù)的同時能得到信息安全的保障,無線接入網(wǎng)提出了認(rèn)證、鑒權(quán)、加密等一系列安全措施加以應(yīng)對。
3GPP系統(tǒng)的無線接入安全
GSM/GPRS/EDGE系統(tǒng)的無線接入安全
在GSM/GPRS/EDGE系統(tǒng)中,用戶的SIM卡和歸宿網(wǎng)絡(luò)的HLR/AuC共享一個安全密鑰Ki(128bit),基于該密鑰,網(wǎng)絡(luò)可以對用戶進行認(rèn)證,但用戶無法認(rèn)證網(wǎng)絡(luò),另外基站和手機間可以對無線鏈路進行加密。
GSM/GPRS系統(tǒng)的認(rèn)證和加密是基于(RAND,SRES,Kc)三元組實現(xiàn)的,基本過程如下。
1.當(dāng)需要對用戶進行認(rèn)證時,服務(wù)網(wǎng)絡(luò)的MSC/VLR(對電路域業(yè)務(wù))或者SGSN(對分組域業(yè)務(wù))會向用戶歸屬的HLR/AuC請求認(rèn)證向量。
2.HLR/AuC首先產(chǎn)生一個隨機數(shù)RAND,然后基于這個RAND和用戶的根密鑰Ki根據(jù)A3算法計算出移動臺應(yīng)返回的認(rèn)證響應(yīng)SRES,并基于RAND和用戶的根密鑰Ki用A8算法計算出后續(xù)用于加密的密鑰Kc,HLR/AuC也可能產(chǎn)生多組這樣的認(rèn)證向量。
3.HLR/AuC將一個或多個(RAND,SRES,Kc)三元組返回給服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN。
4.服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN通過NAS(非接入子層)信令向用戶的手機發(fā)起認(rèn)證請求,參數(shù)中包含步驟3中所收到的某個RAND。
5.手機將認(rèn)證請求通過RunGSMAlgorithm指令轉(zhuǎn)給SIM卡,SIM卡基于RAND和自己安全保存的根密鑰Ki用A3算法計算認(rèn)證響應(yīng)SRES’,同時基于RAND和Ki用A8算法計算加密密鑰Kc。
6.SIM卡將SRES’和Kc返回給手機,同時也將Kc保存在卡上的一個可讀文件EF(Kc)中。
7.終端將SRES’返回給服務(wù)網(wǎng)絡(luò),服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN將它與在步驟3收到的SRES進行比較,相同則用戶認(rèn)證成功,否則失敗。服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN將Kc轉(zhuǎn)發(fā)給基站。
8.當(dāng)需要對空口通信進行加密時,終端和服務(wù)地的接入網(wǎng)協(xié)商加密算法,這通常稱為A5算法協(xié)商。標(biāo)準(zhǔn)要求2G終端必須支持A5/1算法和推薦實現(xiàn)A5/3算法。
9.接入網(wǎng)從服務(wù)地的核心網(wǎng)獲得加密密鑰Kc,終端從卡上讀取Kc,各自用它作為密鑰,用所協(xié)商的A5算法計算隨機數(shù),然后用于空口消息/數(shù)據(jù)的加、解密。
3GUMTS系統(tǒng)的無線接入安全
2G接入安全具有如下不足。
1.只能實現(xiàn)網(wǎng)絡(luò)對用戶的認(rèn)證,無法實現(xiàn)用戶對網(wǎng)絡(luò)的認(rèn)證,可能存在惡意網(wǎng)絡(luò)誘騙用戶登陸/使用、然后盜取用戶信息和傳播垃圾/病毒信息的威脅。
2.通過PIN碼校驗(而這是非常容易實現(xiàn)的)后,對所有的RunGSMAlgorithm指令,SIM卡都會根據(jù)指令中輸入的隨機數(shù)計算相應(yīng)的SRES認(rèn)證響應(yīng),攻擊者很容易利用它進行窮舉攻擊(特別是結(jié)構(gòu)性列舉攻擊),以反推用戶密鑰Ki。
3.沒有完整性保護,存在消息/數(shù)據(jù)在中途被攔截和篡改的威脅。
4.一些老算法可以被安全級別更高的新算法替換。
3G系統(tǒng)對以上不足進行了有針對性的改進,在3GUMTS(包括WCDMA和TD-SCMDMA)系統(tǒng)中,用戶的USIM卡和歸宿網(wǎng)絡(luò)的HLR/AuC共享一個安全密鑰K(128bit),基于該密鑰,網(wǎng)絡(luò)可以對用戶進行認(rèn)證,用戶也可以認(rèn)證網(wǎng)絡(luò),另外基站和手機間可以對無線鏈路進行加密和完整性保護。
3GUMTS系統(tǒng)的雙向認(rèn)證、加密和完整性保護是基于(RAND,XRES,CK, IK, AUTN)五元組實現(xiàn)的,基本過程如下。
圖1 五元組生成方法
1.當(dāng)需要對用戶進行認(rèn)證時,服務(wù)網(wǎng)絡(luò)的MSC/VLR(對電路域業(yè)務(wù))或者SGSN(對分組域業(yè)務(wù))會向用戶歸屬的HLR/AuC請求認(rèn)證向量。
2.HLR/AuC首先產(chǎn)生一個隨機數(shù)RAND和一個SQN,然后基于這個RAND、SQN和用戶的根密鑰K按圖1所示進行如下計算:用f2算法生成移動臺應(yīng)返回的認(rèn)證響應(yīng)XRES,用f3算法生成加密密鑰CK,用f4算法生成完整性保護密鑰IK,用f1和f5算法生成網(wǎng)絡(luò)對應(yīng)的認(rèn)證響應(yīng)AUTN,HLR/AuC也可能產(chǎn)生多組這樣的認(rèn)證向量。
3.HLR/AuC將一個或多個(RAND,XRES,CK,IK, AUTN)五元組返回給服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN。
4.服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN通過NAS(非接入子層)信令和用戶的手機/UISM卡執(zhí)行AKA(認(rèn)證和密鑰協(xié)定)過程。
5.當(dāng)需要對空口通信進行加密或者完整性保護時,終端和服務(wù)地的接入網(wǎng)(RNC)協(xié)商并激活安全模式。
6.接入網(wǎng)從服務(wù)地的核心網(wǎng)獲得CK和IK,終端從步驟4獲得或者從卡上讀取CK和IK,各自用它們作為密鑰,然后用f8、f9算法進行加/解密和完整性保護。終端和接入網(wǎng)間也可以借完整性保護(IK和f9算法)實現(xiàn)簡單的本地認(rèn)證功能。
以上過程也可以用圖2表示。
圖2? 3G UMTS系統(tǒng)的接入安全
2G/3G互通時的無線接入安全
當(dāng)2GSIM卡接入3G網(wǎng)絡(luò)時,為了避免要求2G用戶必須換卡才能接入3G網(wǎng)絡(luò)和使用3G業(yè)務(wù),運營商通常選擇允許用戶用2GSIM卡接入3G網(wǎng)絡(luò),為此需要終端和網(wǎng)絡(luò)支持如下附加功能。
1.3G終端能支持2GSIM卡接口。
2.3G服務(wù)網(wǎng)絡(luò)的MSC/VLR與SGSN能和2GHLR/AuC互通,能接受三元組認(rèn)證向量。
3.3G終端和3G接入網(wǎng)支持Kc到CK和IK的密鑰轉(zhuǎn)換。
此時的認(rèn)證過程和2G系統(tǒng)基本相同,有區(qū)別的地方是:3G服務(wù)網(wǎng)絡(luò)的MSC/VLR或者SGSN需要通過標(biāo)準(zhǔn)的轉(zhuǎn)換函數(shù)將Kc轉(zhuǎn)換為CK和IK,然后將CK和IK傳給3G服務(wù)基站;終端從SIM卡得到Kc后,也需要通過同樣的轉(zhuǎn)換函數(shù)將Kc轉(zhuǎn)換為CK和IK;后續(xù)終端和3G服務(wù)基站間可以用3G的f8、f9算法,以及CK、IK進行加密和完整性保護。
當(dāng)3GUSIM卡接入2G網(wǎng)絡(luò)時,為了利用2G對3G的覆蓋補充和支持更廣泛的漫游,運營商也會選擇允許用戶用3GUSIM卡接入2G網(wǎng)絡(luò),為此需要USIM卡和網(wǎng)絡(luò)支持如下附加功能。
1.3GUSIM卡支持轉(zhuǎn)換函數(shù),能將XRES’轉(zhuǎn)為SRES’,將CK和IK轉(zhuǎn)為Kc。
2.3GUSIM卡支持2GSIM接口,從而能被只支持SIM卡的2G終端使用,這樣的卡通常被稱為USIM/SIM混合卡?;旌峡ㄉ系腟IM接口安全算法是基于USIM安全算法+轉(zhuǎn)換函數(shù)實現(xiàn)的。
3.3GHLR/AuC能支持五元組到三元組的轉(zhuǎn)換,從而可以向服務(wù)地的2GMSC/VLR或者SGSN返回三元組認(rèn)證向量。
4.服務(wù)網(wǎng)絡(luò)如果采用2G接入網(wǎng)+3G核心網(wǎng)(即BS是2G的,但MSC/VLR與SGSN為3G的)的組網(wǎng)方式,MSC/VLR與SGSN應(yīng)支持CK+IK到Kc的轉(zhuǎn)換。
當(dāng)用戶用的是3G/2G混合終端或者是支持USIM的高版本2G終端時,此時使用的是混合卡上的USIM功能,認(rèn)證實現(xiàn)分以下兩種情況。
1.當(dāng)服務(wù)地的核心網(wǎng)是3G時,認(rèn)證過程和3GUMTS系統(tǒng)的描述基本相同,有區(qū)別的地方是:服務(wù)網(wǎng)絡(luò)的3GMSC/VLR或者SGSN需要通過標(biāo)準(zhǔn)的轉(zhuǎn)換函數(shù)將CK和IK轉(zhuǎn)換為Kc,然后將Kc傳給2G服務(wù)基站;除了CK和IK,混合卡還會將用轉(zhuǎn)換函數(shù)依據(jù)CK和IK生成的Kc也返回給終端。終端會忽略CK和IK,而只用Kc;后續(xù)如果需要,終端和服務(wù)地2G基站間能用所協(xié)商的A5算法和Kc進行加密傳輸,但不能進行完整性保護。
2.當(dāng)服務(wù)地的核心網(wǎng)是2G時,認(rèn)證過程和2G系統(tǒng)的描述基本相似,有區(qū)別的地方是:收到服務(wù)地網(wǎng)絡(luò)的認(rèn)證向量請求后,用戶歸屬的3GHLR/AuC首先生成五元組,然后將它們通過標(biāo)準(zhǔn)轉(zhuǎn)換函數(shù)轉(zhuǎn)為三元組,再將三元組返回給服務(wù)網(wǎng)絡(luò);終端向卡發(fā)送的是帶GSM安全上下文的Authenticate指令;混合UISM卡首先生成XRES、CK和IK,然后將XRES轉(zhuǎn)換為SRES’,將CK+IK轉(zhuǎn)換為Kc,最后只將SRES’和Kc返回給終端。
當(dāng)用戶用的是不支持USIM的低版本2G終端時,此時使用的是混合卡上的SIM功能,認(rèn)證實現(xiàn)也分為兩種情況。
1.當(dāng)服務(wù)地的核心網(wǎng)是3G時,認(rèn)證過程和2G系統(tǒng)相似,有區(qū)別的地方是:收到服務(wù)地網(wǎng)絡(luò)的認(rèn)證向量請求后,用戶歸屬的3GHLR/AuC生成的是五元組,返回的也是五元組;服務(wù)網(wǎng)絡(luò)的3GMSC/VLR或者SGSN需要通過標(biāo)準(zhǔn)的轉(zhuǎn)換函數(shù)將XRES轉(zhuǎn)換為SRES、將CK和IK轉(zhuǎn)換為Kc,然后將Kc傳給2G服務(wù)基站;服務(wù)網(wǎng)絡(luò)用戶認(rèn)證請求消息中的AUTN參數(shù)會被2G終端忽略,2G終端僅將RAND參數(shù)通過RunGSM Algorithm指令發(fā)給混合卡;混合卡用RAND和K首先生成XRES’、CK和IK,然后將XRES’轉(zhuǎn)換為SRES’,將CK+IK轉(zhuǎn)換為Kc,最后只將SRES’和Kc返回給終端。
2.當(dāng)服務(wù)地的核心網(wǎng)是2G時,認(rèn)證過程和2G系統(tǒng)基本相同,有區(qū)別的地方是:收到服務(wù)地網(wǎng)絡(luò)的認(rèn)證向量請求后,用戶歸屬的3GHLR/AuC首先生成五元組,然后將它們通過標(biāo)準(zhǔn)轉(zhuǎn)換函數(shù)轉(zhuǎn)為三元組,再將三元組返回給服務(wù)網(wǎng)絡(luò);混合卡首先生成XRES’、CK和IK,然后將XRES’轉(zhuǎn)換為SRES’,將CK+IK轉(zhuǎn)換為Kc,最后只將SRES’和Kc返回給終端。
3 GPP2系統(tǒng)的接入安全
cdma20001x系統(tǒng)的接入安全
在cdma20001x系統(tǒng)中,用戶的RUIM卡和歸宿網(wǎng)絡(luò)的HLR/AC會共享一個安全密鑰A-key(64bit),基于該密鑰,網(wǎng)絡(luò)可以對用戶進行認(rèn)證,基站和手機間也可以對信令消息、語音和數(shù)據(jù)應(yīng)用不同的加密方式。
cdma20001x系統(tǒng)支持兩種認(rèn)證觸發(fā)方式。
1.通過層2功能實現(xiàn)的全局挑戰(zhàn)(GlobalChallenge):服務(wù)網(wǎng)絡(luò)可以將在尋呼信道上廣播的接入?yún)?shù)消息中的AUTH字段置為‘01’,從而要求所有終端在使用反向接入信道發(fā)送消息時(Order消息、AuthenticationChallengeResponse消息、Status Response消息和Extended Status Response消息除外),必須在消息的層2參數(shù)域攜帶基于SSD(共享安全數(shù)據(jù))的前64bit、隨機數(shù)和消息中特定信息域計算的認(rèn)證簽名AUTHR。
2.通過層3功能實現(xiàn)的獨特挑戰(zhàn)(UniqueChallenge):當(dāng)需要時,服務(wù)網(wǎng)絡(luò)可以向特定終端發(fā)送AuthenticationChallenge消息,終端中的卡基于消息中的隨機數(shù)RANDU,用SSD的前64bit計算AUTHU,再用AuthenticationChallenge Response消息返回,網(wǎng)絡(luò)然后檢查終端返回的AUTHR或AUTHU是否正確。如果HLR/AC向服務(wù)網(wǎng)絡(luò)共享了SSD,這個檢查由服務(wù)網(wǎng)絡(luò)完成,否則需請求HLR/AC進行。
SSD(128bit)是cdma20001x認(rèn)證中的一個特有設(shè)計,引入SSD是為了避免過度使用用戶的根密鑰A-key和避免需要將A-key共享給服務(wù)網(wǎng)絡(luò)。SSD的生成和后續(xù)更新只能在HLR/AC和RUIM卡之間進行,HLR/AC可以選擇將某個SSD共享給服務(wù)網(wǎng)絡(luò)并可以設(shè)定該SSD的生命周期,但RUIM卡不會把SSD透露給終端。SSD更新過程通過網(wǎng)絡(luò)向終端/卡發(fā)送SSDUpdate消息觸發(fā),消息中包含一個隨機數(shù)RNADSSD。為了防止虛假服務(wù)網(wǎng)絡(luò)惡意更新SSD,卡會產(chǎn)生一個隨機數(shù)RANDBS然后由終端通過BSChallenge Order消息發(fā)送給網(wǎng)絡(luò),僅當(dāng)網(wǎng)絡(luò)返回的AUTHBS響應(yīng)是正確的,卡才會用CAVE算法根據(jù)A-Key、RANDSSD、UIMID等計算出的值更新SSD。SSD的前64bit用于各種認(rèn)證運算,包括AUTHR/AUTHU/AUTHBS的計算和檢驗,它們都使用CAVE算法根據(jù)相應(yīng)的隨機數(shù)輸入計算得到。
基于SSD的后64bit可以用CAVE生成私有長碼掩碼(PrivateLCM)、消息加密密鑰SMEKey和數(shù)據(jù)加密密鑰。cdma20001x用私有長碼掩碼加擾的方式實現(xiàn)語音加密;用SMEKey密鑰和CMEA(或者ECMEA)算法實現(xiàn)信令消息加密;用數(shù)據(jù)密鑰和ORYX算法實現(xiàn)用戶數(shù)據(jù)加密。終端和服務(wù)網(wǎng)絡(luò)間可以通過層3消息協(xié)商是否使用加密。
cdma20001xEV-DO系統(tǒng)的接入安全
為了支持標(biāo)準(zhǔn)的cdma20001xEV-DO接入認(rèn)證,用戶需要用更高版本的RUIM卡(至少是C.S0023Rev.B以后版本的卡),用戶的RUIM卡和歸屬AN-AAA間會共享一個HRPD SS(HRPD共享密鑰,為可變長度,常取128bit),卡還要能支持MD5算法和存儲用戶在EV-DO中的ID(稱之為HRPD NAI)?;谠揌RPD SS,網(wǎng)絡(luò)可以對用戶進行認(rèn)證,基站和手機間也可以對消息和數(shù)據(jù)進行加密。
當(dāng)用戶需要建立EV-DO會話時,在終端和AN(即EV-DO基站)進行PPP和LCP協(xié)商期間,AN會向終端發(fā)送CHAPChallenge,消息中包含CHAPID和一個隨機數(shù),終端把這個挑戰(zhàn)轉(zhuǎn)給RUIM卡,卡用MD5算法根據(jù)HRPDSS和隨機數(shù)計算響應(yīng),響應(yīng)被卡/終端通過CHAP Response返回給AN,AN再通過A12接口把它傳給AN-AAA,AN-AAA基于自己存儲的該用戶HRPD SS驗證這個響應(yīng)是否正確。
終端通過了A12認(rèn)證并建立了EV-DO會話后,后續(xù)當(dāng)終端需要請求EV-DO無線連接時,可以僅執(zhí)行較簡單、快捷的EV-DO空口認(rèn)證簽名過程:終端和網(wǎng)絡(luò)先通過Diffie-Hellman算法建立一個共享的會話密鑰;終端利用SHA-1算法,用該會話密鑰和時間戳對接入信道上的分組進行簽名。
EV-DO系統(tǒng)采用AES算法標(biāo)準(zhǔn)對用戶數(shù)據(jù)和信令信息進行加密保護;用SHA-1算法實行完整性保護。EV-DO用基于時間、計數(shù)器的安全協(xié)議產(chǎn)生密碼系統(tǒng),以產(chǎn)生變化的加密掩碼。
1x/EV-DO互通時的接入安全用
當(dāng)EV-DORUIM卡接入1x網(wǎng)絡(luò)時,支持DO接入認(rèn)證的RUIM卡也會同時支持1xCAVE認(rèn)證,并且隱秘保存有A-key。EV-DORUIM卡在1x網(wǎng)絡(luò)中將使用CAVE認(rèn)證,這如同1x RUIM卡在1x網(wǎng)絡(luò)中一樣。
當(dāng)用1xRUIM卡接入EV-DO網(wǎng)絡(luò)時,為了讓1x用戶不需要換卡就能接入EV-DO網(wǎng)絡(luò)和使用EV-DO服務(wù),需要EV-DO終端和網(wǎng)絡(luò)支持如下附加功能。
為了計算CHAPResponse,終端需要能向1xRUIM卡發(fā)送RunCave指令,即CHAP中實際使用的是CAVE認(rèn)證算法。終端還要能根據(jù)卡中的1x ID信息生成HRPD NAI。
網(wǎng)絡(luò)側(cè)的AN-AAA能識別卡使用的是CAVE算法;提供附加的、連向卡所對應(yīng)的HLR/AC的接口,并能將自己模擬為VLR向HLR請求認(rèn)證結(jié)果和/或SSD。
評論
查看更多