盧毓岑 程 方 張治中
(重慶郵電大學(xué)通信網(wǎng)測(cè)試工程研究中心 重慶 400065)
?
LTE-A空口監(jiān)測(cè)儀NAS消息解密的研究與實(shí)現(xiàn)
盧毓岑 程 方 張治中
(重慶郵電大學(xué)通信網(wǎng)測(cè)試工程研究中心 重慶 400065)
隨著LTE(Long Term Evolution)網(wǎng)絡(luò)的成熟和商業(yè)化,運(yùn)營(yíng)商迫切需要測(cè)量?jī)x器進(jìn)行LTE網(wǎng)絡(luò)狀況分析。基于此進(jìn)行LTE-A空口監(jiān)測(cè)儀表的研發(fā)。LTE-Advance系統(tǒng)對(duì)非接入層NAS(Non-access stratum)部分消息進(jìn)行了加密處理。以LTE安全層次和NAS加密/解密原理為基礎(chǔ),研究獲取關(guān)鍵參數(shù)如KASME和加密算法類型的方法。通過(guò)編寫C++程序?qū)崿F(xiàn)參數(shù)的獲取,并匹配相應(yīng)算法函數(shù)完成解密。最后對(duì)Wireshark抓取的實(shí)際數(shù)據(jù)進(jìn)行解密,完成程序有效性的驗(yàn)證,根據(jù)結(jié)果可以得出解密成功的結(jié)論。
LTE-A NAS 加密解密 解密參數(shù)
LTE-A網(wǎng)絡(luò)是3G以及LTE的研究。在系統(tǒng)的架構(gòu)演進(jìn)中,LTE網(wǎng)絡(luò)架構(gòu)不再采用接入網(wǎng)中的無(wú)線網(wǎng)絡(luò)控制器RNC(Radio Network Controller),演進(jìn)節(jié)點(diǎn)BeNodeB(Evolved Node B)繼承部分RNC的功能,直接與分組核心演進(jìn)EPC(Evolved Packet Core)進(jìn)行數(shù)據(jù)交換。
LTE-A空口監(jiān)測(cè)儀表對(duì)于運(yùn)營(yíng)商來(lái)說(shuō),可以在LTE網(wǎng)絡(luò)的建設(shè)、測(cè)量、網(wǎng)絡(luò)優(yōu)化和網(wǎng)絡(luò)維護(hù)中發(fā)揮重要作用。在網(wǎng)絡(luò)建設(shè)初始階段,LTE-A空口監(jiān)測(cè)儀表可以幫助運(yùn)營(yíng)商進(jìn)行協(xié)議一致性測(cè)試和驗(yàn)證工作,運(yùn)營(yíng)商也可以通過(guò)該儀表的幫助進(jìn)行網(wǎng)絡(luò)規(guī)劃;在網(wǎng)絡(luò)建成之后,可以將儀表用于網(wǎng)絡(luò)優(yōu)化,將其作為傳統(tǒng)路測(cè)儀表的功能補(bǔ)充;儀表在LTE網(wǎng)絡(luò)中,通過(guò)串接上下層協(xié)議,提供跨層智能關(guān)聯(lián)分析功能,將其作為移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)支撐和分析工具。而儀表的這些分析功能是下層的解碼結(jié)果為基礎(chǔ)進(jìn)行的擴(kuò)展,本文的主要研究?jī)?nèi)容即LTE-A空口監(jiān)測(cè)儀表NAS層消息解密的實(shí)現(xiàn)。
1.1 LTE-A空口監(jiān)測(cè)儀簡(jiǎn)介
LTE空口監(jiān)測(cè)分析儀表采用TTCN 和基帶平臺(tái)融合的架構(gòu),可通過(guò)上位機(jī)的人機(jī)交互環(huán)境進(jìn)行網(wǎng)絡(luò)流程的增減修改及傳輸參數(shù)的靈活配置。通過(guò)網(wǎng)絡(luò)爬蟲、DPI 和標(biāo)準(zhǔn)接口等方式從數(shù)據(jù)源上獲取數(shù)據(jù)信息,將非結(jié)構(gòu)化數(shù)據(jù)以結(jié)構(gòu)化方式存儲(chǔ)到本地?cái)?shù)據(jù)文件。LTE 空口監(jiān)測(cè)儀表接收下來(lái)數(shù)據(jù)以后,首先需要對(duì)控制信令和數(shù)據(jù)進(jìn)行解密,然后進(jìn)行數(shù)據(jù)信道的解密。
1.2 LTE安全層次
LTE/SAE在安全架構(gòu)中引入了層次的概念[4],分為接入層AS(Access Stratum)和非接入層NAS(Non-Access Stratum)兩層。安全架構(gòu) 在AS 和NAS 信令之間相隔離,無(wú)線鏈路和核心網(wǎng)各自有不同的密鑰,用戶層的安全在eNodeB 處終止,如圖1所示。
圖1 LTE 安全層次
接入網(wǎng)安全:接入層加密與完整性保護(hù)由PDCP協(xié)議層負(fù)責(zé)實(shí)現(xiàn);安全處理對(duì)象是演進(jìn)接入網(wǎng)中的RRC信令的安全和用戶面數(shù)據(jù),使用協(xié)商一致的算法對(duì)RRC信令和用戶面數(shù)據(jù)的加密,對(duì)RRC信令進(jìn)行完整性保護(hù);
非接入網(wǎng)安全:處理對(duì)象是演進(jìn)核心網(wǎng)中的NAS信令,UE和MME使用協(xié)商得到的密鑰和算法對(duì)NAS信令進(jìn)行安全保護(hù);NAS層安全功能由EPS移動(dòng)性管理EMM(EPS Mobility Management)負(fù)責(zé)實(shí)現(xiàn)。
1.3 NAS加密/解密原理
NAS層加密是用戶鑒權(quán)成功之后進(jìn)行。加密的方法是使用已有的加密密鑰流和明文數(shù)據(jù)經(jīng)過(guò)加密算法就將可協(xié)議解碼的明文數(shù)據(jù)轉(zhuǎn)變?yōu)榱嗣芪拇a流數(shù)據(jù)。解密操作位于接收端,接收解密數(shù)據(jù)之前應(yīng)當(dāng)驗(yàn)證數(shù)據(jù)的完整性,驗(yàn)證成功以后再進(jìn)行解密操作,本文研究時(shí)默認(rèn)為完整性驗(yàn)證通過(guò)。其中加密/解密用到的參數(shù),大部分和上述的完整性保護(hù)算法的運(yùn)算參數(shù)相同,密鑰參數(shù)KEY為密鑰KNASenc。加密/解密過(guò)程如圖2所示。
圖2 加密解密過(guò)程
由圖2得知解密的參數(shù)如下:
1) EEA:選擇的加密算法,包括EEA0,EEA1,EEA2;
2) KEY:NAS機(jī)密密鑰,此處應(yīng)當(dāng)為KNASenc。長(zhǎng)度128 bit,可由KASME推導(dǎo)得出;
3) COUNT:NAS 位計(jì)數(shù)器;
4) BEARER:5 位的承載ID,在此處全為0;
5) DIRECTION:方向指示符,占1位,上行為0,下行為1;
6) LENGTH:對(duì)于NAS 加密算法128-EEA1、128-EEA2來(lái)講,固定為128 bits;
7) ⊕表示按位異或運(yùn)算。
其中,由表達(dá)式COUNT=0x00 || NAS OVERFLOW || NAS SQN可計(jì)算出COUNT。具體方法是利用NAS SQN的低有效位和NAS OVERFLOW的高有效位,同時(shí)結(jié)合S1AP緩存消息中安全模式命令消息中的安全頭類型、方向指示符的值等計(jì)算COUNT。解密過(guò)程中所需的其他參數(shù)包括密鑰KEY和加密算法類型的獲取方法會(huì)在后面的解密實(shí)現(xiàn)方案中介紹。
本文解密的實(shí)質(zhì)是在研究LTE-A安全過(guò)程的前提下,通過(guò)獲取部分消息中的有效信息,進(jìn)行密文的解密:S1接口中的EPS-AV向量中含有密鑰推演過(guò)程中的關(guān)鍵信息;S6a接口中的消息包含加密算法類型,通過(guò)密鑰推演可以得到最終密鑰;獲取到了加密算法類型后配以最終密鑰可以對(duì)密文進(jìn)行解密得出明文。具體獲取密鑰和加密算法類型的方法如下:
2.1 獲取密鑰Key
2.1.1 密鑰推演
LTE-A網(wǎng)絡(luò)中安全密鑰體系[8]每一級(jí)之間的關(guān)系如圖3所示,密鑰之間的推演通過(guò)密鑰推演函數(shù)KDF(key deduction function)得到。
圖3 LTE/SAE密鑰層次
由上文得知NAS解密中密鑰KEY即為KNASenc,因此需要關(guān)注如何由KASME得到KNASenc,這里用的到KDF表達(dá)式為:
KNASenc=HMAC-SHA-256(KASME,S),式中各參數(shù)名稱具體如下:
HMAC-SHA-256(Key,S):KDF算法,標(biāo)準(zhǔn)的256位相關(guān)密鑰算法,Key為所求密鑰的上一級(jí)密鑰;
S:輸入字節(jié)串,表達(dá)式為S:= FC‖P0‖L0‖P1‖L1;
FC = 0x10,推導(dǎo)標(biāo)識(shí);
P0 = SN id,由MCC和MNC組成的長(zhǎng)度為8位的服務(wù)網(wǎng)絡(luò)標(biāo)識(shí),用于解密的值是0x01;
L0 = 0x00 0x03;參數(shù) P0 的長(zhǎng)度;
P1 = SQN⊕AK,Authentication Request 消息中 AUTN 參數(shù)的前6個(gè)字節(jié);
L1 = 0x00 0x06,即參數(shù)P1的長(zhǎng)度。
根據(jù)KDF得到的KNASenc是256位的密鑰,但NAS加密算法要求輸入密鑰為128 bit,所以取其中的低128 位作為實(shí)際KNASenc值。
2.1.2 獲取KASME
由圖3得知,單純地通過(guò)密鑰推演由密鑰K推導(dǎo)得到密鑰KNASenc需要進(jìn)行三步密鑰推演,運(yùn)算量大且復(fù)雜。本文通過(guò)對(duì)AKA過(guò)程進(jìn)行研究得出AIA消息中的EPS-AV向量中包含有KASME的信息。只需進(jìn)行一步密鑰推演就可以從KASME得到KNASenc,極大地簡(jiǎn)化了獲取最終密鑰Key的過(guò)程。AKA過(guò)程如圖4所示。
圖4 EPS AKA過(guò)程圖
如圖4所示,UE發(fā)起“NAS初始消息”來(lái)觸發(fā)AKA過(guò)程,此處的消息采用Diameter協(xié)議。初始消息都是從網(wǎng)絡(luò)側(cè)發(fā)出,位于S6a接口。當(dāng)MME收到UE發(fā)來(lái)的NAS消息后,MME通過(guò)認(rèn)證數(shù)據(jù)請(qǐng)求消息AIR(Authentication Info Request)向HSS請(qǐng)求認(rèn)證矢量,HSS收到后發(fā)送認(rèn)證響應(yīng)消息AIA(Authentication Info Answer)返還給MME。AIR包括含有UE的IMSI,服務(wù)網(wǎng)絡(luò)標(biāo)識(shí)(MCC+MNC),網(wǎng)絡(luò)類型(E-UTRAN)。認(rèn)證成功后的AIA包含成功的結(jié)果消息以及此時(shí)的鑒權(quán)向量EPS-AV。此向量中包含了KASME、校驗(yàn)鑒權(quán)令牌AUTN、隨機(jī)數(shù)RAND和XRES,其中KASME是解密的關(guān)鍵。
MME將認(rèn)證矢量和鑒權(quán)請(qǐng)求發(fā)送給UE,鑒權(quán)成功則繼續(xù)進(jìn)行后續(xù)過(guò)程。MME將RAND和AUTN發(fā)送到UE中的USIM。UE收到此消息后通過(guò)存在的MAC值和收到的MAC值進(jìn)行比較來(lái)檢驗(yàn)AUTN的合法性。此處的消息位于S1接口,由S1-AP Downlink NAS Transport消息承載。
2.2 獲取加密算法類型
2.2.1 安全交互過(guò)程
通常情況下,即使在已知KNASenc的情況下進(jìn)行解密運(yùn)算需要對(duì)密文和加密算法進(jìn)行遍歷匹配,匹配成功后再進(jìn)行解密運(yùn)算。本文通過(guò)對(duì)SMC過(guò)程的研究發(fā)現(xiàn),此過(guò)程中的消息含有加密信息的加密算法類型。本文通過(guò)獲取此消息中的算法信息省去了遍歷匹配過(guò)程,直接對(duì)密文進(jìn)行解密。
鑒權(quán)成功過(guò)后會(huì)執(zhí)行NAS層的安全交互過(guò)程SMC(Security Mode Command),加密消息使用的加密算法類型可以在此處進(jìn)行獲取。當(dāng)SMC驗(yàn)證成功后,UE將會(huì)把SMC消息返還給MME。此時(shí)的SMC消息承載了數(shù)據(jù)安全保護(hù)使用的算法類型標(biāo)識(shí),所使用的加密以及完整性保護(hù)算法類型都在此標(biāo)識(shí)中。數(shù)據(jù)的加密和完整性保護(hù)在此消息過(guò)后進(jìn)行。只有對(duì)這些消息進(jìn)行解密才能獲取其攜帶的信息。該消息格式如圖5所示。
圖5 NAS安全算法IE
如圖6所示:控制過(guò)程開始時(shí),UE首先要校驗(yàn)收到的SMC消息數(shù)據(jù)是否完整,待校驗(yàn)完成,UE回應(yīng)給MME一個(gè)包含安全模式命令完成消息的上行數(shù)據(jù),并且該消息已經(jīng)被加密并同時(shí)被完整保護(hù)。若SMC消息沒(méi)有能夠通過(guò)驗(yàn)證,UE回應(yīng)一條拒絕消息。
圖6 安全模式控制過(guò)程
2.2.2 加密算法簡(jiǎn)介
加密算法有三種類型:EEA0、EEA1和EEA2[3];完整性保護(hù)算法有三種類型:EIA0、EIA1和EIA2。本文實(shí)際程序設(shè)計(jì)時(shí)不考慮完整性算法,只作簡(jiǎn)單介紹。并且設(shè)計(jì)時(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è)計(jì)
程序流程如圖7所示。
圖7 解密程序流程圖
依照本文的解密方法,首先需要獲取S1接口和S6a接口的相關(guān)數(shù)據(jù),并存入預(yù)先初始化的哈希表中。具體操作方式如圖7所示:在完成哈希表的初始化后,需要兩個(gè)函數(shù)來(lái)分別獲取和存儲(chǔ)S1接口和S6a接口的數(shù)據(jù)。這兩個(gè)函數(shù)先將CDR中的IMSI信息關(guān)聯(lián)或復(fù)制到哈希表中然后進(jìn)行檢測(cè),消息存在則進(jìn)行下一步。如果哈希表沒(méi)有檢測(cè)到這個(gè)消息則需要建立中間節(jié)點(diǎn),將消息復(fù)制到中間節(jié)點(diǎn)后再映射到哈希表中。
在對(duì)密文進(jìn)行解密前,需要計(jì)算出COUNT的值。COUNT由以下幾個(gè)部分拼接而成:
COUNT= 00x0||NAS OVERFLOW ||NAS SQN;因此需要對(duì)COUNT本身NAS溢出量NAS OVERFLOW和NAS SQN(包含上下行)進(jìn)行定義。COUNT運(yùn)算之前需要進(jìn)行上下行清零,具體運(yùn)算方式如下:
當(dāng)NAS SQN消息與NAS_SQN上一次序列號(hào)變量之差的絕對(duì)值大于等于128,則表明有溢出,將NAS OVERFLOW加一;再將此時(shí)變量當(dāng)前序列號(hào)NAS SQN賦值給上一次的序列號(hào)變量;得到溢出計(jì)數(shù)NAS OVERFLOW后通過(guò)串聯(lián)NAS SQN的高有效位和NAS OVERFLOW的低有效位來(lái)獲得計(jì)數(shù)器COUNT值,并用于后面的解密運(yùn)算。
完成COUNT計(jì)算之后,通過(guò)前面獲取的KASME和相應(yīng)的KDF函數(shù)推導(dǎo)出KNASenc。再將之前獲得的算法類型信息匹配對(duì)應(yīng)的函數(shù)進(jìn)行解密,得到最終的結(jié)果。
3.2 結(jié)果分析
圖8和圖9分別是通過(guò)wireshark采集到的S1接口和S6a接口的數(shù)據(jù)。可以看到獲取到的KASME和加密算法類型。
圖8 S6a接口KASME消息
圖9 S1接口算法類型消息
圖10和圖11分別是消息解密前和解密后的狀態(tài)。如圖所示,標(biāo)號(hào)為11號(hào)的消息中加密消息,經(jīng)過(guò)解密運(yùn)算后變?yōu)槊魑南ⅲ硎窘饷艹晒?,解密程序有效性得到?yàn)證。
圖10 加密消息
圖11 解密消息
本文針對(duì)LTE-A空口監(jiān)測(cè)儀NAS層中的加密信息,運(yùn)用C++編程實(shí)現(xiàn)了加密信息的解密。本文首先敘述LTE-A空口監(jiān)測(cè)儀、LTE安全層次和NAS中加密/解密過(guò)程,并介紹了實(shí)現(xiàn)解密需要的參數(shù)。然后描述了NAS密鑰獲取方式,具體介紹了密鑰推演過(guò)程和KASME的獲取方法。在介紹從S1接口獲取加密算法類型方法的同時(shí)也對(duì)SNOW3G和AES兩種加密算法進(jìn)行了概述。完成了程序的流程設(shè)計(jì),并對(duì)流程中的關(guān)鍵點(diǎn)進(jìn)行了文字說(shuō)明。最后給出了在Wireshark軟件中獲取KASME、加密算法類型以及加密消息解密前后變化的實(shí)例圖,得出解密通過(guò)的結(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].計(jì)算機(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] 聞?dòng)⒂?陳書義,趙大哲,等.3GPP 框架下的 UMTS 核心網(wǎng)安全體系研究[J].計(jì)算機(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。國(guó)家科技重大專項(xiàng)(2015ZX03001013);重慶高校創(chuàng)新團(tuán)隊(duì)項(xiàng)目(KJTD201312)。盧毓岑,碩士生,主研領(lǐng)域:通信網(wǎng)測(cè)試。程方,教授。張治中,教授。
TN914.53
A
10.3969/j.issn.1000-386x.2016.11.068