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