王 璐,朱宇霞,馬 賽
(1.武漢郵電科學(xué)研究院,湖北武漢430074;2.北方烽火科技有限公司,北京100085)
在移動通信系統(tǒng)中,為了保證運營業(yè)務(wù)的安全性,網(wǎng)絡(luò)側(cè)需要對接入的用戶設(shè)備(User Equipment,UE)進行鑒權(quán)處理,使得非法UE無法得到網(wǎng)絡(luò)側(cè)提供的服務(wù),保障運營商的利益。同時,UE也需要驗證網(wǎng)絡(luò)側(cè)發(fā)送的鑒權(quán)信息是否有效,即UE對網(wǎng)絡(luò)側(cè)進行鑒權(quán)處理,防止非法網(wǎng)絡(luò)側(cè)利用合法網(wǎng)絡(luò)側(cè)已經(jīng)使用過的鑒權(quán)信息對UE進行重放攻擊,使UE相信該非法網(wǎng)絡(luò)側(cè)合法。LTE移動通信系統(tǒng)采用了3GPP組織建議的AKA協(xié)議機制。當(dāng)UE請求接入時,MME收到初始UE消息后,會發(fā)起上下文建立請求。在將此請求消息發(fā)送給UE之前,MME會通過鑒權(quán)向量AV來進行MME與UE之間的雙向鑒權(quán)。在實際的LTE核心網(wǎng)中,此過程首先通過MME向HSS獲取AV發(fā)送到UE端,然后通過UE端對參數(shù)的計算,反饋給MME特定的參數(shù),由MME通過對比這些參數(shù)來對UE進行鑒權(quán)??紤]到工程測試過程中,小型核心網(wǎng)的功能只需滿足與基站之間最基本的消息交互。
而對于鑒權(quán)的過程,由于HSS的造價很高,為了節(jié)約研發(fā)成本,本文提出一種將HSS的產(chǎn)生鑒權(quán)參數(shù)的功能集成到MME的方法。這種方法不僅能滿足這種小型核心網(wǎng)對UE的鑒權(quán)功能,也簡化了實現(xiàn)的流程,實現(xiàn)變得更加靈活。
小型核心網(wǎng)在本文中簡稱為miniEPC,其開發(fā)的目的是作為一個測試的產(chǎn)品用于FDD/TDD專網(wǎng),并且能用于基站的各種測試[1],其模塊的劃分如圖1所示。
miniEPC支持跨平臺運行,目前主要支持的操作系統(tǒng)是Windows和Linux。模塊劃分和各模塊的功能描述如表1所示。
表1 miniEPC模塊功能的劃分
針對LTE網(wǎng)絡(luò)中存在的安全問題,根據(jù)協(xié)議要求,該過程需要HSS服務(wù)器的參與,鑒權(quán)過程的基本步驟[2]如下:
步驟1,UE發(fā)起的附著請求經(jīng)eNodeB到達MME。
步驟2,MME收到附著請求后,生成鑒權(quán)參數(shù)請求消息并發(fā)送給HSS,消息包含的主要參數(shù)有服務(wù)網(wǎng)絡(luò)標(biāo)識SNID、網(wǎng)絡(luò)類型(由參數(shù)AMF的最高比特位來標(biāo)識)、UE的身份(指IMSI號,International Mobile Subscriber Identification Number,國際移動用戶識別碼)、K 值、OP值,MME側(cè)的K、OP值需與終端保持一致,HSS和UE在鑒權(quán)過程中的計算都需要這兩個參數(shù)。
步驟3,HSS收到鑒權(quán)參數(shù)請求消息后根據(jù)SNID、網(wǎng)絡(luò)類型、UE身份等參數(shù)通過計算生成SQN和鑒權(quán)向量AV?!癆V:=RAND‖XRES‖CK‖IK‖AUTN”,其中CK、IK是基站側(cè)安全相關(guān)的密鑰;“AUTN:=SQN(AK‖AMF‖MAC”,“‖”為連接符。在每次附著過程之后,HSS中都會保存SQN值,當(dāng)下次接入的時候HSS就會用之前的SQN來計算出當(dāng)前的SQN值,第一次附著時SQN初始值為0。接著通過發(fā)送鑒權(quán)參數(shù)響應(yīng)將這些參數(shù)發(fā)送給MME。
步驟4,MME收到鑒權(quán)參數(shù)響應(yīng)消息后存儲SQN和AV值并生成用戶鑒權(quán)請求消息,消息中包含的主要參數(shù)有RAND和AUTN,并將消息經(jīng)由eNodeB發(fā)送給UE。
步驟5,UE收到請求消息后從鑒權(quán)向量AUTN中解出AMF、SQN和MAC,先核實AMF和SQN參數(shù)。因為UE接入的是LTE網(wǎng)絡(luò),AMF參數(shù)的分離比特位必須為1。UE收到SQN值以后,就會與之前附著保存的SQN值進行比較,必須保證SQN值的新穎性和有序性,來與網(wǎng)絡(luò)側(cè)保持同步,收到的SQN值必須比之前保存的最大值要大。否則UE會經(jīng)由eNodeB給MME回復(fù)一個鑒權(quán)失敗消息,原因是同步失敗。核實參數(shù)的正確性之后,用OP、K、RAND值通過函數(shù)f1計算出XMAC,其中OP與K值同HSS中的值一樣。若XMAC不等于收到的MAC值,則UE不接入網(wǎng)絡(luò),UE會給MME發(fā)送一個鑒權(quán)拒絕的消息,原因是MAC值不匹配;若等于,則根據(jù)K和RAND值通過函數(shù)f2計算出XRES,生成用戶鑒權(quán)響應(yīng)并發(fā)送給MME,該響應(yīng)消息中包含的主要參數(shù)是XRES。
步驟6,MME收到響應(yīng)消息之后根據(jù)之前保存的鑒權(quán)向量AV計算出RES值,若不等于收到的XRES,則給HSS發(fā)送鑒權(quán)失敗上報消息,并保存收到的數(shù)據(jù),以防此后再發(fā)生這樣不合法的UE接入;若相等,則鑒權(quán)完成,繼續(xù)下面的附著流程。
作為miniEPC來說,它定位用來測試eNodeB的工具,其主要的目的就是可以實現(xiàn)與eNodeB和UE之間簡單消息流程的交互,它具有MME的部分功能,可以完成接入、去附著、切換、專用承載管理等一些基本信令流程。為了保護網(wǎng)絡(luò)不被攻擊,加入鑒權(quán)過程來驗證合法的UE,根據(jù)協(xié)議規(guī)范,鑒權(quán)過程需要miniEPC獲取鑒權(quán)參數(shù),就需要HSS服務(wù)器的參與,如圖1所示。當(dāng)UE發(fā)起了接入請求時,miniEPC就會向HSS獲取一系列的鑒權(quán)參數(shù),然后再將鑒權(quán)參數(shù)通過eNodeB傳遞給UE,當(dāng)UE收到這些參數(shù)以后就會根據(jù)一定的算法計算出結(jié)果反饋給miniEPC,收到返回的結(jié)果以后,miniEPC會對比自己算得的數(shù)據(jù)是否和UE一致,若不一致則拒絕接入,若一致則繼續(xù)往下進行。
若根據(jù)協(xié)議要求按上述方法來完成鑒權(quán)過程,則需要引入HSS服務(wù)器。圖1中,miniEPC與HSS之間的接口為S6a,二者的消息通信需要Diameter接口協(xié)議棧的支持。由此,則需要增加Diameter與SCTP間的層管理相關(guān)的配置交互處理、Diameter與SCTP間的數(shù)據(jù)通信處理、Diameter與NAS間的鑒權(quán)參數(shù)獲取過程處理、NAS需要增加安全相關(guān)的協(xié)議流程處理等過程的代碼??紤]到miniEPC的開發(fā)目的和成本,HSS引入需要耗費較多的時間和人力,并且HSS服務(wù)器的引進也大大增加了miniEPC的成本。因此,本文提出了一種更為有效、簡單的方法來實現(xiàn)鑒權(quán)過程,以滿足要求。
為了避免引入HSS,本文提出了一種將HSS中計算鑒權(quán)參數(shù)的功能集成到miniEPC的方法。如圖1所示,在miniEPC內(nèi)部新增一個安全模塊(sec模塊),模擬HSS計算鑒權(quán)參數(shù)的過程。在MME收到附著請求之后,向miniEpc的sec模塊發(fā)送獲取鑒權(quán)參數(shù)的消息,在sec模塊中,就會根據(jù)MME發(fā)來的參數(shù)通過一定的函數(shù)和算法來計算相應(yīng)的參數(shù),sec模塊通過返回鑒權(quán)參數(shù)這條消息將計算出來的參數(shù)返回給MME,MME再根據(jù)這些參數(shù)生成鑒權(quán)請求發(fā)送給UE。通過這種方法來實現(xiàn)鑒權(quán)過程,就可以有效地避免繁瑣的協(xié)議棧代碼的編寫,并且節(jié)約了開發(fā)的成本[3]。
改進后,鑒權(quán)過程的流程圖如圖2所示。
具體步驟如下:
步驟1,鑒權(quán)過程始于附著過程的上下文建立消息之后。如圖2,在NAS收到上下文建立請求消息后,NAS模塊將調(diào)用SEC模塊的計算鑒權(quán)參數(shù)的主函數(shù),NAS模塊傳來的參數(shù)有操作者為用戶規(guī)定的算法配置域op,用戶安全密鑰k,鑒權(quán)管理域amf,op類型optype,網(wǎng)絡(luò)類型snid,UE的imsi number,上一次鑒權(quán)結(jié)果成功與否的標(biāo)識Flag(當(dāng)Flag值為0時表示上一次鑒權(quán)失敗,第一次鑒權(quán)時其值為1)。當(dāng)?shù)谝淮舞b權(quán)失敗,UE會通過上次鑒權(quán)的失敗消息給MME返回AUTS值,MME會重新發(fā)起鑒權(quán),此時Flag值為0,AUTS值有效。
步驟2,在SEC模塊收到這個獲取鑒權(quán)參數(shù)的消息之后,SEC模塊就會根據(jù)這些參數(shù)進行一系列的計算[4],如圖3所示。
圖3 鑒權(quán)參數(shù)的產(chǎn)生
1)根據(jù)UE的imsi號和本地保存的imsi號判斷UE是否為新的UE。若是新的,則保存UE的imsi號,初始化SQN值;若不是新的,則從本地保存的信息中提取出該UE最近一次使用的SQN值。
2)如果鑒權(quán)結(jié)果標(biāo)識Flag為1,則AUTS值無效。
3)optype值為0時表示給出的為op值,在計算時需經(jīng)過計算得出opc值;若為1,則表示給出的是opc值,最終參與計算鑒權(quán)參數(shù)的為opc值。
4)調(diào)用miniEpc內(nèi)部已經(jīng)寫好的系統(tǒng)函數(shù)來獲取隨機值RAND。
5)根據(jù)該UE上次鑒權(quán)存儲的SQN值來計算本次鑒權(quán)所需的SQN值,第一次發(fā)生鑒權(quán)時SQN初值為0。
6)用op_c,k,RAND,SQN,amf值通過函數(shù) f1來獲取MAC值。
7)用 op_c,k,RAND 值通過函數(shù) f2,f3,f4,f5 來獲取XRES和AK,其中ck和ik是基站安全需要的密鑰,于此處鑒權(quán)暫無關(guān)聯(lián)。
8)用SQN,amf,mac_a,ak值通過函數(shù)AUTNComputeFun(SQN,amf,mac,ak,AUTN)來獲取AUTN的值,AUTN的值可以簡單寫成“AUTN:=SQN(AK||AMF||MAC”,其中“||”是連接符。
步驟3,SEC模塊在計算完鑒權(quán)參數(shù)之后,將RAND、AUTN、XRES、CK、IK 這些參數(shù)保存起來,并將 RAND、XRES、AUTN通過獲取鑒權(quán)參數(shù)主函數(shù)的返回值傳給NAS模塊。
步驟4,NAS模塊收到返回的鑒權(quán)參數(shù)之后將其保存,并將帶有RAND和AUTN參數(shù)的鑒權(quán)請求消息經(jīng)由S1AP模塊發(fā)送給UE。
步驟5,UE收到鑒權(quán)請求之后,通過對消息中參數(shù)的解析,來獲得 RAND、SQN、AK、AMF、MAC。UE 根據(jù)RAND、SQN、AK、AMF值根據(jù)相應(yīng)的函數(shù)來計算XMAC值,計算完后與收到的MAC值進行對比,看看是否相等。若相等,則根據(jù)以上已知參數(shù)來計算RES值,并將其包含在鑒權(quán)響應(yīng)消息中發(fā)送給miniEPC。
步驟6,SLAP模塊將收到UE發(fā)來的鑒權(quán)響應(yīng)消息透傳給NAS模塊,NAS模塊收到消息后將會對比收到的RES和本地保存的XRES進行比較。若相等,則鑒權(quán)過程成功完成,繼續(xù)進行附著的后續(xù)過程;若不相等,則下發(fā)一個鑒權(quán)拒絕消息,告知UE由于RES值不匹配導(dǎo)致鑒權(quán)拒絕。
本文基于以上鑒權(quán)流程的設(shè)計,給出了在實際環(huán)境下該流程的實現(xiàn)結(jié)果,如圖4所示。
圖4 鑒權(quán)過程的抓包(截圖)
從圖4可知在第一次鑒權(quán)失敗后MME又發(fā)起了第二次鑒權(quán)過程,并且第二次鑒權(quán)成功。圖中顯示了鑒權(quán)請求消息中傳遞的參數(shù),包括RAND和AUTN,其中AUTN是由SQN、AMF和MAC組成。
綜述,通過驗證表明,本文提出的此方案,也能實現(xiàn)核心網(wǎng)對UE的鑒權(quán)。因此,本文提出的這種新的方法有效地簡化了鑒權(quán)過程在小型核心網(wǎng)中的實現(xiàn),并降低了小型核心網(wǎng)的開發(fā)成本。
本文針對miniEPC的鑒權(quán)實現(xiàn),提出了一種更為簡便的方法。作為小規(guī)模環(huán)境使用的核心網(wǎng),可以完成一些基本的信令流程,其設(shè)計應(yīng)該盡量在功能完善的基礎(chǔ)上簡化實現(xiàn)思路。根據(jù)協(xié)議標(biāo)準(zhǔn)的規(guī)定,鑒權(quán)的實現(xiàn)主要在于核心網(wǎng)向HSS服務(wù)器申請獲得鑒權(quán)參數(shù),然后用此鑒權(quán)參數(shù)來對UE進行鑒權(quán)操作。很明顯,HSS服務(wù)器的引入不論從成本還是研發(fā)效率的角度來講,都是相當(dāng)不合適的選擇。本文提出的這種新的鑒權(quán)方法,巧妙地將HSS里計算鑒權(quán)參數(shù)的過程移植到核心網(wǎng)內(nèi)部,較好地解決了開發(fā)中成本和效率的問題。
:
[1]何爽,王璐,朱宇霞.一種演進分組系統(tǒng)中的小規(guī)模核心網(wǎng)及典型應(yīng)用的方法:中國,201310492418.4[P].2014-02-19.
[2] 3GPP TS 24.301,Non-access-stratum(NAS)protocol for evolved packet system(EPS):stage 3[S].2010.
[3]王璐,朱宇霞,馬賽.基于演進分組系統(tǒng)中的小規(guī)模核心網(wǎng)的鑒權(quán)方法及裝置:中國,201310492000.3[P].2014-02-19.
[4] 3GPP TS 33.102,Universal mobile telecommunications system(UMTS);lte;3G security;Security architecture[S].2011.