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