盧毓岑 程 方 張治中
(重慶郵電大學通信網測試工程研究中心 重慶 400065)
?
LTE-A空口監測儀NAS消息解密的研究與實現
盧毓岑 程 方 張治中
(重慶郵電大學通信網測試工程研究中心 重慶 400065)
隨著LTE(Long Term Evolution)網絡的成熟和商業化,運營商迫切需要測量儀器進行LTE網絡狀況分析。基于此進行LTE-A空口監測儀表的研發。LTE-Advance系統對非接入層NAS(Non-access stratum)部分消息進行了加密處理。以LTE安全層次和NAS加密/解密原理為基礎,研究獲取關鍵參數如KASME和加密算法類型的方法。通過編寫C++程序實現參數的獲取,并匹配相應算法函數完成解密。最后對Wireshark抓取的實際數據進行解密,完成程序有效性的驗證,根據結果可以得出解密成功的結論。
LTE-A NAS 加密解密 解密參數
LTE-A網絡是3G以及LTE的研究。在系統的架構演進中,LTE網絡架構不再采用接入網中的無線網絡控制器RNC(Radio Network Controller),演進節點BeNodeB(Evolved Node B)繼承部分RNC的功能,直接與分組核心演進EPC(Evolved Packet Core)進行數據交換。
LTE-A空口監測儀表對于運營商來說,可以在LTE網絡的建設、測量、網絡優化和網絡維護中發揮重要作用。在網絡建設初始階段,LTE-A空口監測儀表可以幫助運營商進行協議一致性測試和驗證工作,運營商也可以通過該儀表的幫助進行網絡規劃;在網絡建成之后,可以將儀表用于網絡優化,將其作為傳統路測儀表的功能補充;儀表在LTE網絡中,通過串接上下層協議,提供跨層智能關聯分析功能,將其作為移動互聯網業務支撐和分析工具。而儀表的這些分析功能是下層的解碼結果為基礎進行的擴展,本文的主要研究內容即LTE-A空口監測儀表NAS層消息解密的實現。
1.1 LTE-A空口監測儀簡介
LTE空口監測分析儀表采用TTCN 和基帶平臺融合的架構,可通過上位機的人機交互環境進行網絡流程的增減修改及傳輸參數的靈活配置。通過網絡爬蟲、DPI 和標準接口等方式從數據源上獲取數據信息,將非結構化數據以結構化方式存儲到本地數據文件。LTE 空口監測儀表接收下來數據以后,首先需要對控制信令和數據進行解密,然后進行數據信道的解密。
1.2 LTE安全層次
LTE/SAE在安全架構中引入了層次的概念[4],分為接入層AS(Access Stratum)和非接入層NAS(Non-Access Stratum)兩層。安全架構 在AS 和NAS 信令之間相隔離,無線鏈路和核心網各自有不同的密鑰,用戶層的安全在eNodeB 處終止,如圖1所示。

圖1 LTE 安全層次
接入網安全:接入層加密與完整性保護由PDCP協議層負責實現;安全處理對象是演進接入網中的RRC信令的安全和用戶面數據,使用協商一致的算法對RRC信令和用戶面數據的加密,對RRC信令進行完整性保護;
非接入網安全:處理對象是演進核心網中的NAS信令,UE和MME使用協商得到的密鑰和算法對NAS信令進行安全保護;NAS層安全功能由EPS移動性管理EMM(EPS Mobility Management)負責實現。
1.3 NAS加密/解密原理
NAS層加密是用戶鑒權成功之后進行。加密的方法是使用已有的加密密鑰流和明文數據經過加密算法就將可協議解碼的明文數據轉變為了密文碼流數據。解密操作位于接收端,接收解密數據之前應當驗證數據的完整性,驗證成功以后再進行解密操作,本文研究時默認為完整性驗證通過。其中加密/解密用到的參數,大部分和上述的完整性保護算法的運算參數相同,密鑰參數KEY為密鑰KNASenc。加密/解密過程如圖2所示。

圖2 加密解密過程
由圖2得知解密的參數如下:
1) EEA:選擇的加密算法,包括EEA0,EEA1,EEA2;
2) KEY:NAS機密密鑰,此處應當為KNASenc。長度128 bit,可由KASME推導得出;
3) COUNT:NAS 位計數器;
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的高有效位,同時結合S1AP緩存消息中安全模式命令消息中的安全頭類型、方向指示符的值等計算COUNT。解密過程中所需的其他參數包括密鑰KEY和加密算法類型的獲取方法會在后面的解密實現方案中介紹。
本文解密的實質是在研究LTE-A安全過程的前提下,通過獲取部分消息中的有效信息,進行密文的解密:S1接口中的EPS-AV向量中含有密鑰推演過程中的關鍵信息;S6a接口中的消息包含加密算法類型,通過密鑰推演可以得到最終密鑰;獲取到了加密算法類型后配以最終密鑰可以對密文進行解密得出明文。具體獲取密鑰和加密算法類型的方法如下:
2.1 獲取密鑰Key
2.1.1 密鑰推演
LTE-A網絡中安全密鑰體系[8]每一級之間的關系如圖3所示,密鑰之間的推演通過密鑰推演函數KDF(key deduction function)得到。

圖3 LTE/SAE密鑰層次
由上文得知NAS解密中密鑰KEY即為KNASenc,因此需要關注如何由KASME得到KNASenc,這里用的到KDF表達式為:
KNASenc=HMAC-SHA-256(KASME,S),式中各參數名稱具體如下:
HMAC-SHA-256(Key,S):KDF算法,標準的256位相關密鑰算法,Key為所求密鑰的上一級密鑰;
S:輸入字節串,表達式為S:= FC‖P0‖L0‖P1‖L1;
FC = 0x10,推導標識;
P0 = SN id,由MCC和MNC組成的長度為8位的服務網絡標識,用于解密的值是0x01;
L0 = 0x00 0x03;參數 P0 的長度;
P1 = SQN⊕AK,Authentication Request 消息中 AUTN 參數的前6個字節;
L1 = 0x00 0x06,即參數P1的長度。
根據KDF得到的KNASenc是256位的密鑰,但NAS加密算法要求輸入密鑰為128 bit,所以取其中的低128 位作為實際KNASenc值。
2.1.2 獲取KASME
由圖3得知,單純地通過密鑰推演由密鑰K推導得到密鑰KNASenc需要進行三步密鑰推演,運算量大且復雜。本文通過對AKA過程進行研究得出AIA消息中的EPS-AV向量中包含有KASME的信息。只需進行一步密鑰推演就可以從KASME得到KNASenc,極大地簡化了獲取最終密鑰Key的過程。AKA過程如圖4所示。

圖4 EPS AKA過程圖
如圖4所示,UE發起“NAS初始消息”來觸發AKA過程,此處的消息采用Diameter協議。初始消息都是從網絡側發出,位于S6a接口。當MME收到UE發來的NAS消息后,MME通過認證數據請求消息AIR(Authentication Info Request)向HSS請求認證矢量,HSS收到后發送認證響應消息AIA(Authentication Info Answer)返還給MME。AIR包括含有UE的IMSI,服務網絡標識(MCC+MNC),網絡類型(E-UTRAN)。認證成功后的AIA包含成功的結果消息以及此時的鑒權向量EPS-AV。此向量中包含了KASME、校驗鑒權令牌AUTN、隨機數RAND和XRES,其中KASME是解密的關鍵。
MME將認證矢量和鑒權請求發送給UE,鑒權成功則繼續進行后續過程。MME將RAND和AUTN發送到UE中的USIM。UE收到此消息后通過存在的MAC值和收到的MAC值進行比較來檢驗AUTN的合法性。此處的消息位于S1接口,由S1-AP Downlink NAS Transport消息承載。
2.2 獲取加密算法類型
2.2.1 安全交互過程
通常情況下,即使在已知KNASenc的情況下進行解密運算需要對密文和加密算法進行遍歷匹配,匹配成功后再進行解密運算。本文通過對SMC過程的研究發現,此過程中的消息含有加密信息的加密算法類型。本文通過獲取此消息中的算法信息省去了遍歷匹配過程,直接對密文進行解密。
鑒權成功過后會執行NAS層的安全交互過程SMC(Security Mode Command),加密消息使用的加密算法類型可以在此處進行獲取。當SMC驗證成功后,UE將會把SMC消息返還給MME。此時的SMC消息承載了數據安全保護使用的算法類型標識,所使用的加密以及完整性保護算法類型都在此標識中。數據的加密和完整性保護在此消息過后進行。只有對這些消息進行解密才能獲取其攜帶的信息。該消息格式如圖5所示。

圖5 NAS安全算法IE
如圖6所示:控制過程開始時,UE首先要校驗收到的SMC消息數據是否完整,待校驗完成,UE回應給MME一個包含安全模式命令完成消息的上行數據,并且該消息已經被加密并同時被完整保護。若SMC消息沒有能夠通過驗證,UE回應一條拒絕消息。

圖6 安全模式控制過程
2.2.2 加密算法簡介
加密算法有三種類型:EEA0、EEA1和EEA2[3];完整性保護算法有三種類型:EIA0、EIA1和EIA2。本文實際程序設計時不考慮完整性算法,只作簡單介紹。并且設計時只考慮了SNOW 3G算法和AES算法(即EEA1和EEA2)的解密。
本文中EEA1解密函數:
void f8( u8 *key,u32 count,u32 bearer,u32 dir,u8 *data,u32 length )
本文中EEA2解密函數:
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 程序設計
程序流程如圖7所示。

圖7 解密程序流程圖
依照本文的解密方法,首先需要獲取S1接口和S6a接口的相關數據,并存入預先初始化的哈希表中。具體操作方式如圖7所示:在完成哈希表的初始化后,需要兩個函數來分別獲取和存儲S1接口和S6a接口的數據。這兩個函數先將CDR中的IMSI信息關聯或復制到哈希表中然后進行檢測,消息存在則進行下一步。如果哈希表沒有檢測到這個消息則需要建立中間節點,將消息復制到中間節點后再映射到哈希表中。
在對密文進行解密前,需要計算出COUNT的值。COUNT由以下幾個部分拼接而成:
COUNT= 00x0||NAS OVERFLOW ||NAS SQN;因此需要對COUNT本身NAS溢出量NAS OVERFLOW和NAS SQN(包含上下行)進行定義。COUNT運算之前需要進行上下行清零,具體運算方式如下:
當NAS SQN消息與NAS_SQN上一次序列號變量之差的絕對值大于等于128,則表明有溢出,將NAS OVERFLOW加一;再將此時變量當前序列號NAS SQN賦值給上一次的序列號變量;得到溢出計數NAS OVERFLOW后通過串聯NAS SQN的高有效位和NAS OVERFLOW的低有效位來獲得計數器COUNT值,并用于后面的解密運算。
完成COUNT計算之后,通過前面獲取的KASME和相應的KDF函數推導出KNASenc。再將之前獲得的算法類型信息匹配對應的函數進行解密,得到最終的結果。
3.2 結果分析
圖8和圖9分別是通過wireshark采集到的S1接口和S6a接口的數據。可以看到獲取到的KASME和加密算法類型。

圖8 S6a接口KASME消息

圖9 S1接口算法類型消息
圖10和圖11分別是消息解密前和解密后的狀態。如圖所示,標號為11號的消息中加密消息,經過解密運算后變為明文消息,表示解密成功,解密程序有效性得到驗證。

圖10 加密消息

圖11 解密消息
本文針對LTE-A空口監測儀NAS層中的加密信息,運用C++編程實現了加密信息的解密。本文首先敘述LTE-A空口監測儀、LTE安全層次和NAS中加密/解密過程,并介紹了實現解密需要的參數。然后描述了NAS密鑰獲取方式,具體介紹了密鑰推演過程和KASME的獲取方法。在介紹從S1接口獲取加密算法類型方法的同時也對SNOW3G和AES兩種加密算法進行了概述。完成了程序的流程設計,并對流程中的關鍵點進行了文字說明。最后給出了在Wireshark軟件中獲取KASME、加密算法類型以及加密消息解密前后變化的實例圖,得出解密通過的結論。
[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 加密算法分析及其在信息安全中的應用[J].信息網絡安全,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] 張文建,彭建華,黃開枝.一種基于空中接口和核心網協同的 LTE 系統密鑰推演方法[J].計算機應用研究,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 核心網安全體系研究[J].計算機工程,2007,33(20):153-155.
[11] 李文峰,杜彥輝.密碼學在網絡安全中的應用[J].信息網絡安全,2009,4(4):1-4.
[12] 張金輝,郭曉彪,符鑫.AES加密算法分析及其在信息安全中的應用[J].信息網絡安全,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);重慶高校創新團隊項目(KJTD201312)。盧毓岑,碩士生,主研領域:通信網測試。程方,教授。張治中,教授。
TN914.53
A
10.3969/j.issn.1000-386x.2016.11.068