LTE-A空口监测仪NAS消息解密的研究与实现
2016-12-26卢毓岑张治中
卢毓岑 程 方 张治中
(重庆邮电大学通信网测试工程研究中心 重庆 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 加密解密 解密参数
0 引 言
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 LTE-A系统安全
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和加密算法类型的获取方法会在后面的解密实现方案中介绍。
2 解密实现方案
本文解密的实质是在研究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 程序设计与结果分析
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 解密消息
4 结 语
本文针对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