盧毓岑 程 方 張治中
(重慶郵電大學(xué)通信網(wǎng)測試工程研究中心 重慶 400065)
?
LTE-A空口監(jiān)測儀NAS消息解密的研究與實現(xiàn)
盧毓岑 程 方 張治中
(重慶郵電大學(xué)通信網(wǎng)測試工程研究中心 重慶 400065)
隨著LTE(Long Term Evolution)網(wǎng)絡(luò)的成熟和商業(yè)化,運營商迫切需要測量儀器進行LTE網(wǎng)絡(luò)狀況分析?;诖诉M行LTE-A空口監(jiān)測儀表的研發(fā)。LTE-Advance系統(tǒng)對非接入層NAS(Non-access stratum)部分消息進行了加密處理。以LTE安全層次和NAS加密/解密原理為基礎(chǔ),研究獲取關(guān)鍵參數(shù)如KASME和加密算法類型的方法。通過編寫C++程序?qū)崿F(xiàn)參數(shù)的獲取,并匹配相應(yīng)算法函數(shù)完成解密。最后對Wireshark抓取的實際數(shù)據(jù)進行解密,完成程序有效性的驗證,根據(jù)結(jié)果可以得出解密成功的結(jié)論。
LTE-A NAS 加密解密 解密參數(shù)
LTE-A網(wǎng)絡(luò)是3G以及LTE的研究。在系統(tǒng)的架構(gòu)演進中,LTE網(wǎng)絡(luò)架構(gòu)不再采用接入網(wǎng)中的無線網(wǎng)絡(luò)控制器RNC(Radio Network Controller),演進節(jié)點BeNodeB(Evolved Node B)繼承部分RNC的功能,直接與分組核心演進EPC(Evolved Packet Core)進行數(shù)據(jù)交換。
LTE-A空口監(jiān)測儀表對于運營商來說,可以在LTE網(wǎng)絡(luò)的建設(shè)、測量、網(wǎng)絡(luò)優(yōu)化和網(wǎng)絡(luò)維護中發(fā)揮重要作用。在網(wǎng)絡(luò)建設(shè)初始階段,LTE-A空口監(jiān)測儀表可以幫助運營商進行協(xié)議一致性測試和驗證工作,運營商也可以通過該儀表的幫助進行網(wǎng)絡(luò)規(guī)劃;在網(wǎng)絡(luò)建成之后,可以將儀表用于網(wǎng)絡(luò)優(yōu)化,將其作為傳統(tǒng)路測儀表的功能補充;儀表在LTE網(wǎng)絡(luò)中,通過串接上下層協(xié)議,提供跨層智能關(guān)聯(lián)分析功能,將其作為移動互聯(lián)網(wǎng)業(yè)務(wù)支撐和分析工具。而儀表的這些分析功能是下層的解碼結(jié)果為基礎(chǔ)進行的擴展,本文的主要研究內(nèi)容即LTE-A空口監(jiān)測儀表NAS層消息解密的實現(xiàn)。
1.1 LTE-A空口監(jiān)測儀簡介
LTE空口監(jiān)測分析儀表采用TTCN 和基帶平臺融合的架構(gòu),可通過上位機的人機交互環(huán)境進行網(wǎng)絡(luò)流程的增減修改及傳輸參數(shù)的靈活配置。通過網(wǎng)絡(luò)爬蟲、DPI 和標(biāo)準(zhǔn)接口等方式從數(shù)據(jù)源上獲取數(shù)據(jù)信息,將非結(jié)構(gòu)化數(shù)據(jù)以結(jié)構(gòu)化方式存儲到本地數(shù)據(jù)文件。LTE 空口監(jiān)測儀表接收下來數(shù)據(jù)以后,首先需要對控制信令和數(shù)據(jù)進行解密,然后進行數(shù)據(jù)信道的解密。
1.2 LTE安全層次
LTE/SAE在安全架構(gòu)中引入了層次的概念[4],分為接入層AS(Access Stratum)和非接入層NAS(Non-Access Stratum)兩層。安全架構(gòu) 在AS 和NAS 信令之間相隔離,無線鏈路和核心網(wǎng)各自有不同的密鑰,用戶層的安全在eNodeB 處終止,如圖1所示。
圖1 LTE 安全層次
接入網(wǎng)安全:接入層加密與完整性保護由PDCP協(xié)議層負責(zé)實現(xiàn);安全處理對象是演進接入網(wǎng)中的RRC信令的安全和用戶面數(shù)據(jù),使用協(xié)商一致的算法對RRC信令和用戶面數(shù)據(jù)的加密,對RRC信令進行完整性保護;
非接入網(wǎng)安全:處理對象是演進核心網(wǎng)中的NAS信令,UE和MME使用協(xié)商得到的密鑰和算法對NAS信令進行安全保護;NAS層安全功能由EPS移動性管理EMM(EPS Mobility Management)負責(zé)實現(xiàn)。
1.3 NAS加密/解密原理
NAS層加密是用戶鑒權(quán)成功之后進行。加密的方法是使用已有的加密密鑰流和明文數(shù)據(jù)經(jīng)過加密算法就將可協(xié)議解碼的明文數(shù)據(jù)轉(zhuǎn)變?yōu)榱嗣芪拇a流數(shù)據(jù)。解密操作位于接收端,接收解密數(shù)據(jù)之前應(yīng)當(dāng)驗證數(shù)據(jù)的完整性,驗證成功以后再進行解密操作,本文研究時默認為完整性驗證通過。其中加密/解密用到的參數(shù),大部分和上述的完整性保護算法的運算參數(shù)相同,密鑰參數(shù)KEY為密鑰KNASenc。加密/解密過程如圖2所示。
圖2 加密解密過程
由圖2得知解密的參數(shù)如下:
1) EEA:選擇的加密算法,包括EEA0,EEA1,EEA2;
2) KEY:NAS機密密鑰,此處應(yīng)當(dāng)為KNASenc。長度128 bit,可由KASME推導(dǎo)得出;
3) COUNT:NAS 位計數(shù)器;
4) BEARER:5 位的承載ID,在此處全為0;
5) DIRECTION:方向指示符,占1位,上行為0,下行為1;
6) LENGTH:對于NAS 加密算法128-EEA1、128-EEA2來講,固定為128 bits;
7) ⊕表示按位異或運算。
其中,由表達式COUNT=0x00 || NAS OVERFLOW || NAS SQN可計算出COUNT。具體方法是利用NAS SQN的低有效位和NAS OVERFLOW的高有效位,同時結(jié)合S1AP緩存消息中安全模式命令消息中的安全頭類型、方向指示符的值等計算COUNT。解密過程中所需的其他參數(shù)包括密鑰KEY和加密算法類型的獲取方法會在后面的解密實現(xiàn)方案中介紹。
本文解密的實質(zhì)是在研究LTE-A安全過程的前提下,通過獲取部分消息中的有效信息,進行密文的解密:S1接口中的EPS-AV向量中含有密鑰推演過程中的關(guān)鍵信息;S6a接口中的消息包含加密算法類型,通過密鑰推演可以得到最終密鑰;獲取到了加密算法類型后配以最終密鑰可以對密文進行解密得出明文。具體獲取密鑰和加密算法類型的方法如下:
2.1 獲取密鑰Key
2.1.1 密鑰推演
LTE-A網(wǎng)絡(luò)中安全密鑰體系[8]每一級之間的關(guān)系如圖3所示,密鑰之間的推演通過密鑰推演函數(shù)KDF(key deduction function)得到。
圖3 LTE/SAE密鑰層次
由上文得知NAS解密中密鑰KEY即為KNASenc,因此需要關(guān)注如何由KASME得到KNASenc,這里用的到KDF表達式為:
KNASenc=HMAC-SHA-256(KASME,S),式中各參數(shù)名稱具體如下:
HMAC-SHA-256(Key,S):KDF算法,標(biāo)準(zhǔn)的256位相關(guān)密鑰算法,Key為所求密鑰的上一級密鑰;
S:輸入字節(jié)串,表達式為S:= FC‖P0‖L0‖P1‖L1;
FC = 0x10,推導(dǎo)標(biāo)識;
P0 = SN id,由MCC和MNC組成的長度為8位的服務(wù)網(wǎng)絡(luò)標(biāo)識,用于解密的值是0x01;
L0 = 0x00 0x03;參數(shù) P0 的長度;
P1 = SQN⊕AK,Authentication Request 消息中 AUTN 參數(shù)的前6個字節(jié);
L1 = 0x00 0x06,即參數(shù)P1的長度。
根據(jù)KDF得到的KNASenc是256位的密鑰,但NAS加密算法要求輸入密鑰為128 bit,所以取其中的低128 位作為實際KNASenc值。
2.1.2 獲取KASME
由圖3得知,單純地通過密鑰推演由密鑰K推導(dǎo)得到密鑰KNASenc需要進行三步密鑰推演,運算量大且復(fù)雜。本文通過對AKA過程進行研究得出AIA消息中的EPS-AV向量中包含有KASME的信息。只需進行一步密鑰推演就可以從KASME得到KNASenc,極大地簡化了獲取最終密鑰Key的過程。AKA過程如圖4所示。
圖4 EPS AKA過程圖
如圖4所示,UE發(fā)起“NAS初始消息”來觸發(fā)AKA過程,此處的消息采用Diameter協(xié)議。初始消息都是從網(wǎng)絡(luò)側(cè)發(fā)出,位于S6a接口。當(dāng)MME收到UE發(fā)來的NAS消息后,MME通過認證數(shù)據(jù)請求消息AIR(Authentication Info Request)向HSS請求認證矢量,HSS收到后發(fā)送認證響應(yīng)消息AIA(Authentication Info Answer)返還給MME。AIR包括含有UE的IMSI,服務(wù)網(wǎng)絡(luò)標(biāo)識(MCC+MNC),網(wǎng)絡(luò)類型(E-UTRAN)。認證成功后的AIA包含成功的結(jié)果消息以及此時的鑒權(quán)向量EPS-AV。此向量中包含了KASME、校驗鑒權(quán)令牌AUTN、隨機數(shù)RAND和XRES,其中KASME是解密的關(guān)鍵。
MME將認證矢量和鑒權(quán)請求發(fā)送給UE,鑒權(quán)成功則繼續(xù)進行后續(xù)過程。MME將RAND和AUTN發(fā)送到UE中的USIM。UE收到此消息后通過存在的MAC值和收到的MAC值進行比較來檢驗AUTN的合法性。此處的消息位于S1接口,由S1-AP Downlink NAS Transport消息承載。
2.2 獲取加密算法類型
2.2.1 安全交互過程
通常情況下,即使在已知KNASenc的情況下進行解密運算需要對密文和加密算法進行遍歷匹配,匹配成功后再進行解密運算。本文通過對SMC過程的研究發(fā)現(xiàn),此過程中的消息含有加密信息的加密算法類型。本文通過獲取此消息中的算法信息省去了遍歷匹配過程,直接對密文進行解密。
鑒權(quán)成功過后會執(zhí)行NAS層的安全交互過程SMC(Security Mode Command),加密消息使用的加密算法類型可以在此處進行獲取。當(dāng)SMC驗證成功后,UE將會把SMC消息返還給MME。此時的SMC消息承載了數(shù)據(jù)安全保護使用的算法類型標(biāo)識,所使用的加密以及完整性保護算法類型都在此標(biāo)識中。數(shù)據(jù)的加密和完整性保護在此消息過后進行。只有對這些消息進行解密才能獲取其攜帶的信息。該消息格式如圖5所示。
圖5 NAS安全算法IE
如圖6所示:控制過程開始時,UE首先要校驗收到的SMC消息數(shù)據(jù)是否完整,待校驗完成,UE回應(yīng)給MME一個包含安全模式命令完成消息的上行數(shù)據(jù),并且該消息已經(jīng)被加密并同時被完整保護。若SMC消息沒有能夠通過驗證,UE回應(yīng)一條拒絕消息。
圖6 安全模式控制過程
2.2.2 加密算法簡介
加密算法有三種類型:EEA0、EEA1和EEA2[3];完整性保護算法有三種類型:EIA0、EIA1和EIA2。本文實際程序設(shè)計時不考慮完整性算法,只作簡單介紹。并且設(shè)計時只考慮了SNOW 3G算法和AES算法(即EEA1和EEA2)的解密。
本文中EEA1解密函數(shù):
void f8( u8 *key,u32 count,u32 bearer,u32 dir,u8 *data,u32 length )
本文中EEA2解密函數(shù):
int aes_crypt_ctr( aes_context *ctx,size_t length,size_t *nc_off,unsigned char nonce_counter[16],unsigned char stream_block[16],const unsigned char *input,unsigned char *output )
3.1 程序設(shè)計
程序流程如圖7所示。
圖7 解密程序流程圖
依照本文的解密方法,首先需要獲取S1接口和S6a接口的相關(guān)數(shù)據(jù),并存入預(yù)先初始化的哈希表中。具體操作方式如圖7所示:在完成哈希表的初始化后,需要兩個函數(shù)來分別獲取和存儲S1接口和S6a接口的數(shù)據(jù)。這兩個函數(shù)先將CDR中的IMSI信息關(guān)聯(lián)或復(fù)制到哈希表中然后進行檢測,消息存在則進行下一步。如果哈希表沒有檢測到這個消息則需要建立中間節(jié)點,將消息復(fù)制到中間節(jié)點后再映射到哈希表中。
在對密文進行解密前,需要計算出COUNT的值。COUNT由以下幾個部分拼接而成:
COUNT= 00x0||NAS OVERFLOW ||NAS SQN;因此需要對COUNT本身NAS溢出量NAS OVERFLOW和NAS SQN(包含上下行)進行定義。COUNT運算之前需要進行上下行清零,具體運算方式如下:
當(dāng)NAS SQN消息與NAS_SQN上一次序列號變量之差的絕對值大于等于128,則表明有溢出,將NAS OVERFLOW加一;再將此時變量當(dāng)前序列號NAS SQN賦值給上一次的序列號變量;得到溢出計數(shù)NAS OVERFLOW后通過串聯(lián)NAS SQN的高有效位和NAS OVERFLOW的低有效位來獲得計數(shù)器COUNT值,并用于后面的解密運算。
完成COUNT計算之后,通過前面獲取的KASME和相應(yīng)的KDF函數(shù)推導(dǎo)出KNASenc。再將之前獲得的算法類型信息匹配對應(yīng)的函數(shù)進行解密,得到最終的結(jié)果。
3.2 結(jié)果分析
圖8和圖9分別是通過wireshark采集到的S1接口和S6a接口的數(shù)據(jù)??梢钥吹将@取到的KASME和加密算法類型。
圖8 S6a接口KASME消息
圖9 S1接口算法類型消息
圖10和圖11分別是消息解密前和解密后的狀態(tài)。如圖所示,標(biāo)號為11號的消息中加密消息,經(jīng)過解密運算后變?yōu)槊魑南ⅲ硎窘饷艹晒?,解密程序有效性得到驗證。
圖10 加密消息
圖11 解密消息
本文針對LTE-A空口監(jiān)測儀NAS層中的加密信息,運用C++編程實現(xiàn)了加密信息的解密。本文首先敘述LTE-A空口監(jiān)測儀、LTE安全層次和NAS中加密/解密過程,并介紹了實現(xiàn)解密需要的參數(shù)。然后描述了NAS密鑰獲取方式,具體介紹了密鑰推演過程和KASME的獲取方法。在介紹從S1接口獲取加密算法類型方法的同時也對SNOW3G和AES兩種加密算法進行了概述。完成了程序的流程設(shè)計,并對流程中的關(guān)鍵點進行了文字說明。最后給出了在Wireshark軟件中獲取KASME、加密算法類型以及加密消息解密前后變化的實例圖,得出解密通過的結(jié)論。
[1] 3GPP TS33.401 V12.9.0 Group Services and System Aspects;3GPP System Architecture Evolution (SAE);Security architecture[S].2013.09.
[2] Yu D,Wen W.Non-access-stratum request attack in E-UTRAN[C]//Computing,Communications and Applications Conference (ComComAp),IEEE,2012:48-53.
[3] Bikos A N,Sklavos N.LTE/SAE security issues on 4G wireless networks[J].Security & Privacy,IEEE,2013,11(2):55-62.
[4] Orhanou G,El Hajji S,Bentaleb Y,et al.EPS Confidentiality and Integrity mechanisms Algorithmic Approach[J].International Journal of Computer Science Issues (IJCSI),2010,7(4):12-14.
[5] 張金輝,郭曉彪,符鑫.AES 加密算法分析及其在信息安全中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2011(5):31-33.
[6] Orhanou G,El Hajji S,Bentaleb Y.EPS AES-based confidentiality and integrity algorithms:Complexity study[C]//Multimedia Computing and Systems,2011 International Conference on.IEEE,2011:1-4.
[7] 3GPP TS33.401 V12.9.0 Group Services and System Aspects;3GPP System Architecture Evolution (SAE);Security architecture[S].2013.9.
[8] 張文建,彭建華,黃開枝.一種基于空中接口和核心網(wǎng)協(xié)同的 LTE 系統(tǒng)密鑰推演方法[J].計算機應(yīng)用研究,2013,30(9):2755-2758.
[9] Abdo J B,Chaouchi H,Aoude M.Ensured confidentiality authentication and key agreement protocol for EPS[C]//Broadband Networks and Fast Internet (RELABIRA),2012 Symposium on.IEEE,2012:73-77.
[10] 聞英友,陳書義,趙大哲,等.3GPP 框架下的 UMTS 核心網(wǎng)安全體系研究[J].計算機工程,2007,33(20):153-155.
[11] 李文峰,杜彥輝.密碼學(xué)在網(wǎng)絡(luò)安全中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2009,4(4):1-4.
[12] 張金輝,郭曉彪,符鑫.AES加密算法分析及其在信息安全中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2011(5):31-33.
RESEARCH AND IMPLEMENTATION OF NAS MESSAGE DECRYPTION IN LTE-A AIR INTERFACE MONITORING INSTRUMENT
Lu Yucen Cheng Fang Zhang Zhizhong
(Communication Networks Testing Technology Engineering Research Center,Chongqing University of Post and Telecommunications,Chongqing 400065,China)
With the maturity and commercialisation of LTE (Long-Term Evolution) networks,operators urgently need measuring instruments to analyse the network status in LTE networks.On this basis we carried out the research and development of LTE-A air interface monitoring instrument.The LTE-Advanced system makes encryption processing on part of messages in NAS (non-access stratum).Based on LTE security level and the encryption/decryption principle in NAS,we studied the approach for obtaining the key parameters such as KASME and the encryption algorithm types.By writing C++ program we implemented the acquisition of parameters,and matched the corresponding algorithm function to achieve the decryption.At last,we carried through the verification on the validity of the program by decrypting actual data fetched in Wireshark.According to the results,we could conclude that it is a successful decryption.
LTE-A NAS Encryption/decryption Decryption parameters
2015-07-02。國家科技重大專項(2015ZX03001013);重慶高校創(chuàng)新團隊項目(KJTD201312)。盧毓岑,碩士生,主研領(lǐng)域:通信網(wǎng)測試。程方,教授。張治中,教授。
TN914.53
A
10.3969/j.issn.1000-386x.2016.11.068