APP下载

基于小型核心网的LTE鉴权的一种新实现

2014-09-18朱宇霞

电视技术 2014年15期
关键词:鉴权发送给核心网

王 璐,朱宇霞,马 赛

(1.武汉邮电科学研究院,湖北武汉430074;2.北方烽火科技有限公司,北京100085)

在移动通信系统中,为了保证运营业务的安全性,网络侧需要对接入的用户设备(User Equipment,UE)进行鉴权处理,使得非法UE无法得到网络侧提供的服务,保障运营商的利益。同时,UE也需要验证网络侧发送的鉴权信息是否有效,即UE对网络侧进行鉴权处理,防止非法网络侧利用合法网络侧已经使用过的鉴权信息对UE进行重放攻击,使UE相信该非法网络侧合法。LTE移动通信系统采用了3GPP组织建议的AKA协议机制。当UE请求接入时,MME收到初始UE消息后,会发起上下文建立请求。在将此请求消息发送给UE之前,MME会通过鉴权向量AV来进行MME与UE之间的双向鉴权。在实际的LTE核心网中,此过程首先通过MME向HSS获取AV发送到UE端,然后通过UE端对参数的计算,反馈给MME特定的参数,由MME通过对比这些参数来对UE进行鉴权。考虑到工程测试过程中,小型核心网的功能只需满足与基站之间最基本的消息交互。

而对于鉴权的过程,由于HSS的造价很高,为了节约研发成本,本文提出一种将HSS的产生鉴权参数的功能集成到MME的方法。这种方法不仅能满足这种小型核心网对UE的鉴权功能,也简化了实现的流程,实现变得更加灵活。

1 小型核心网的简单介绍

小型核心网在本文中简称为miniEPC,其开发的目的是作为一个测试的产品用于FDD/TDD专网,并且能用于基站的各种测试[1],其模块的划分如图1所示。

miniEPC支持跨平台运行,目前主要支持的操作系统是Windows和Linux。模块划分和各模块的功能描述如表1所示。

表1 miniEPC模块功能的划分

2 鉴权过程的介绍

针对LTE网络中存在的安全问题,根据协议要求,该过程需要HSS服务器的参与,鉴权过程的基本步骤[2]如下:

步骤1,UE发起的附着请求经eNodeB到达MME。

步骤2,MME收到附着请求后,生成鉴权参数请求消息并发送给HSS,消息包含的主要参数有服务网络标识SNID、网络类型(由参数AMF的最高比特位来标识)、UE的身份(指IMSI号,International Mobile Subscriber Identification Number,国际移动用户识别码)、K 值、OP值,MME侧的K、OP值需与终端保持一致,HSS和UE在鉴权过程中的计算都需要这两个参数。

步骤3,HSS收到鉴权参数请求消息后根据SNID、网络类型、UE身份等参数通过计算生成SQN和鉴权向量AV。“AV:=RAND‖XRES‖CK‖IK‖AUTN”,其中CK、IK是基站侧安全相关的密钥;“AUTN:=SQN(AK‖AMF‖MAC”,“‖”为连接符。在每次附着过程之后,HSS中都会保存SQN值,当下次接入的时候HSS就会用之前的SQN来计算出当前的SQN值,第一次附着时SQN初始值为0。接着通过发送鉴权参数响应将这些参数发送给MME。

步骤4,MME收到鉴权参数响应消息后存储SQN和AV值并生成用户鉴权请求消息,消息中包含的主要参数有RAND和AUTN,并将消息经由eNodeB发送给UE。

步骤5,UE收到请求消息后从鉴权向量AUTN中解出AMF、SQN和MAC,先核实AMF和SQN参数。因为UE接入的是LTE网络,AMF参数的分离比特位必须为1。UE收到SQN值以后,就会与之前附着保存的SQN值进行比较,必须保证SQN值的新颖性和有序性,来与网络侧保持同步,收到的SQN值必须比之前保存的最大值要大。否则UE会经由eNodeB给MME回复一个鉴权失败消息,原因是同步失败。核实参数的正确性之后,用OP、K、RAND值通过函数f1计算出XMAC,其中OP与K值同HSS中的值一样。若XMAC不等于收到的MAC值,则UE不接入网络,UE会给MME发送一个鉴权拒绝的消息,原因是MAC值不匹配;若等于,则根据K和RAND值通过函数f2计算出XRES,生成用户鉴权响应并发送给MME,该响应消息中包含的主要参数是XRES。

步骤6,MME收到响应消息之后根据之前保存的鉴权向量AV计算出RES值,若不等于收到的XRES,则给HSS发送鉴权失败上报消息,并保存收到的数据,以防此后再发生这样不合法的UE接入;若相等,则鉴权完成,继续下面的附着流程。

3 改进后鉴权过程的实现及优势

3.1 改进的目的及优势

作为miniEPC来说,它定位用来测试eNodeB的工具,其主要的目的就是可以实现与eNodeB和UE之间简单消息流程的交互,它具有MME的部分功能,可以完成接入、去附着、切换、专用承载管理等一些基本信令流程。为了保护网络不被攻击,加入鉴权过程来验证合法的UE,根据协议规范,鉴权过程需要miniEPC获取鉴权参数,就需要HSS服务器的参与,如图1所示。当UE发起了接入请求时,miniEPC就会向HSS获取一系列的鉴权参数,然后再将鉴权参数通过eNodeB传递给UE,当UE收到这些参数以后就会根据一定的算法计算出结果反馈给miniEPC,收到返回的结果以后,miniEPC会对比自己算得的数据是否和UE一致,若不一致则拒绝接入,若一致则继续往下进行。

若根据协议要求按上述方法来完成鉴权过程,则需要引入HSS服务器。图1中,miniEPC与HSS之间的接口为S6a,二者的消息通信需要Diameter接口协议栈的支持。由此,则需要增加Diameter与SCTP间的层管理相关的配置交互处理、Diameter与SCTP间的数据通信处理、Diameter与NAS间的鉴权参数获取过程处理、NAS需要增加安全相关的协议流程处理等过程的代码。考虑到miniEPC的开发目的和成本,HSS引入需要耗费较多的时间和人力,并且HSS服务器的引进也大大增加了miniEPC的成本。因此,本文提出了一种更为有效、简单的方法来实现鉴权过程,以满足要求。

为了避免引入HSS,本文提出了一种将HSS中计算鉴权参数的功能集成到miniEPC的方法。如图1所示,在miniEPC内部新增一个安全模块(sec模块),模拟HSS计算鉴权参数的过程。在MME收到附着请求之后,向miniEpc的sec模块发送获取鉴权参数的消息,在sec模块中,就会根据MME发来的参数通过一定的函数和算法来计算相应的参数,sec模块通过返回鉴权参数这条消息将计算出来的参数返回给MME,MME再根据这些参数生成鉴权请求发送给UE。通过这种方法来实现鉴权过程,就可以有效地避免繁琐的协议栈代码的编写,并且节约了开发的成本[3]。

3.2 改进后的鉴权过程

改进后,鉴权过程的流程图如图2所示。

具体步骤如下:

步骤1,鉴权过程始于附着过程的上下文建立消息之后。如图2,在NAS收到上下文建立请求消息后,NAS模块将调用SEC模块的计算鉴权参数的主函数,NAS模块传来的参数有操作者为用户规定的算法配置域op,用户安全密钥k,鉴权管理域amf,op类型optype,网络类型snid,UE的imsi number,上一次鉴权结果成功与否的标识Flag(当Flag值为0时表示上一次鉴权失败,第一次鉴权时其值为1)。当第一次鉴权失败,UE会通过上次鉴权的失败消息给MME返回AUTS值,MME会重新发起鉴权,此时Flag值为0,AUTS值有效。

步骤2,在SEC模块收到这个获取鉴权参数的消息之后,SEC模块就会根据这些参数进行一系列的计算[4],如图3所示。

图3 鉴权参数的产生

1)根据UE的imsi号和本地保存的imsi号判断UE是否为新的UE。若是新的,则保存UE的imsi号,初始化SQN值;若不是新的,则从本地保存的信息中提取出该UE最近一次使用的SQN值。

2)如果鉴权结果标识Flag为1,则AUTS值无效。

3)optype值为0时表示给出的为op值,在计算时需经过计算得出opc值;若为1,则表示给出的是opc值,最终参与计算鉴权参数的为opc值。

4)调用miniEpc内部已经写好的系统函数来获取随机值RAND。

5)根据该UE上次鉴权存储的SQN值来计算本次鉴权所需的SQN值,第一次发生鉴权时SQN初值为0。

6)用op_c,k,RAND,SQN,amf值通过函数 f1来获取MAC值。

7)用 op_c,k,RAND 值通过函数 f2,f3,f4,f5 来获取XRES和AK,其中ck和ik是基站安全需要的密钥,于此处鉴权暂无关联。

8)用SQN,amf,mac_a,ak值通过函数AUTNComputeFun(SQN,amf,mac,ak,AUTN)来获取AUTN的值,AUTN的值可以简单写成“AUTN:=SQN(AK||AMF||MAC”,其中“||”是连接符。

步骤3,SEC模块在计算完鉴权参数之后,将RAND、AUTN、XRES、CK、IK 这些参数保存起来,并将 RAND、XRES、AUTN通过获取鉴权参数主函数的返回值传给NAS模块。

步骤4,NAS模块收到返回的鉴权参数之后将其保存,并将带有RAND和AUTN参数的鉴权请求消息经由S1AP模块发送给UE。

步骤5,UE收到鉴权请求之后,通过对消息中参数的解析,来获得 RAND、SQN、AK、AMF、MAC。UE 根据RAND、SQN、AK、AMF值根据相应的函数来计算XMAC值,计算完后与收到的MAC值进行对比,看看是否相等。若相等,则根据以上已知参数来计算RES值,并将其包含在鉴权响应消息中发送给miniEPC。

步骤6,SLAP模块将收到UE发来的鉴权响应消息透传给NAS模块,NAS模块收到消息后将会对比收到的RES和本地保存的XRES进行比较。若相等,则鉴权过程成功完成,继续进行附着的后续过程;若不相等,则下发一个鉴权拒绝消息,告知UE由于RES值不匹配导致鉴权拒绝。

4 结果验证

本文基于以上鉴权流程的设计,给出了在实际环境下该流程的实现结果,如图4所示。

图4 鉴权过程的抓包(截图)

从图4可知在第一次鉴权失败后MME又发起了第二次鉴权过程,并且第二次鉴权成功。图中显示了鉴权请求消息中传递的参数,包括RAND和AUTN,其中AUTN是由SQN、AMF和MAC组成。

综述,通过验证表明,本文提出的此方案,也能实现核心网对UE的鉴权。因此,本文提出的这种新的方法有效地简化了鉴权过程在小型核心网中的实现,并降低了小型核心网的开发成本。

5 结束语

本文针对miniEPC的鉴权实现,提出了一种更为简便的方法。作为小规模环境使用的核心网,可以完成一些基本的信令流程,其设计应该尽量在功能完善的基础上简化实现思路。根据协议标准的规定,鉴权的实现主要在于核心网向HSS服务器申请获得鉴权参数,然后用此鉴权参数来对UE进行鉴权操作。很明显,HSS服务器的引入不论从成本还是研发效率的角度来讲,都是相当不合适的选择。本文提出的这种新的鉴权方法,巧妙地将HSS里计算鉴权参数的过程移植到核心网内部,较好地解决了开发中成本和效率的问题。

:

[1]何爽,王璐,朱宇霞.一种演进分组系统中的小规模核心网及典型应用的方法:中国,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]王璐,朱宇霞,马赛.基于演进分组系统中的小规模核心网的鉴权方法及装置:中国,201310492000.3[P].2014-02-19.

[4] 3GPP TS 33.102,Universal mobile telecommunications system(UMTS);lte;3G security;Security architecture[S].2011.

猜你喜欢

鉴权发送给核心网
GSM-R核心网升级改造方案
5G移动通信核心网关键技术
你说我说大家说
核心网云化技术的分析
公告
VoLTE核心网建设方案
我的录梦机
移动网络用户频繁鉴权问题的优化方案探讨
USIM卡的鉴权需求对GSM/TD-SCDMA/TD-LTE融合网络影响
几种常见的授权和鉴权技术(五)