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