曹俊华,李小文
(重庆邮电大学计算机科学与技术学院 重庆 400065)
随着移动通信的不断发展,人们对移动通信中的信息安全也提出了更高的要求,从2G到3G,在安全特征与安全服务方面逐步完善。为了进一步推进3G技术,提高频谱效率,降低时延和优化分组数据,作为3G系统长期演进的 LTE(long time evolution,长期演进)应运而生[1],与此同时LTE的演进项目SAE(system architecture evolution,系统架构演进)也同时开展,目标是为LTE的演进开发一个支持多 RAT(radio access technology,无线接入技术)的系统架构。在LTE/SAE中,安全包括AS(access stratum,接入层)和 NAS(non-access stratum,非接入层)两个层次。AS安全是 UE(user equipment,用户设备)与 eNB(evolved node-B,演进型节点B)之间的安全,主要执行 AS信令的加密和完整性保护,UP(user plane,用户平面)数据的机密性保护;NAS的安全是 UE与 MME(mobile management entity,移动管理实体)之间的安全,主要执行NAS信令的机密性和完整性保护。本文主要以协议为基础,重点介绍LTE/SAE的安全架构、安全机制及其终端安全流程的实现。
LTE/SAE在安全功能方面不断得到完善、扩展和加强,参考文献[2]提出网络的安全分为网络接入安全、网络域安全、用户域安全、应用域安全、安全服务的可视性和可配置性等5个域,如图1所示。
由图1可知,LTE/SAE的安全架构和3G的网络安全架构相比,发生了一些变化。参考文献[3]指出:首先是在ME(mobile equipment,移动设备)和 SN(serve network,业务网)之间加入了非接入层的安全,使得非接入层和接入层的安全独立开来便于操作;然后在AN(access network,接入网)和SN之间的通信引入安全;另外,增加了服务网认证,能缩减空闲模式的信令开销。UE是由ME和USIM(universal subscriber identity module,全球用户标识模块)卡组成。
LTE/SAE的安全流程整体上可以分为以下几大部分,如图2所示。
用户开机发起注册,与网络建立连接后发起AKA(authentication and key agreement,鉴权与密钥协商)过程。网络端的MME通过终端发来的IMSI(international mobile subscriber identity,全球移动用户惟一标识)以及相关的参数发起鉴权过程,之后与终端进行密钥协商,发起安全激活命令SMC(security mode command,安全模式过程),其最终目的是要达到终端和网络端密钥的一致性,这样两者之间才能安全地通信。
LTE/SAE鉴权与密钥协商过程的目的是通过AUC(authentication centre,鉴权中心)和USIM卡中所共有的密钥 K来计算密钥 CK(cipher key,加密密钥)和 IK(integrity key,完整性密钥),并由CK和IK作为基本密钥计算一个新的父密钥KASME,随后由此密钥产生各层所需要的子密钥,从而在UE和网络之间建立EPS(evolved packet system,演进型分组系统)安全上下文。LTE和3G在AKA过程中的个别地方是有所不同的,参考文献[2]指出网络端生成的 CK、IK不应该离开 HSS(home subscriber server,归属地用户服务器,存在于归属地环境HE中),而参考文献 [3]指出3G的CK、IK是可以存在于AV(authentication vector,鉴权向量)中的,LTE这样做使主要密钥不发生传输,提高了安全性。AKA过程最终实现了UE和网络侧的双向鉴权,使两端的密钥达成一致,以便能够正常通信。详细的鉴权与密钥协商过程如图3所示。
(1)~(3)MME通过鉴权请求Authentication data request将 IMSI、SN ID(server network identity,服务网标识)和Network Type(服务网类型)传给 HSS,HSS用SN ID对终端进行验证。如果验证通过,HSS将会使用收到的参数生成 AV,它包括参数 RAND(随机数)、AUTN(authentication token,鉴证令牌)、XRES(通过和用户返回的RES比较来达成密钥协商的目的)和密钥KASME,KASME是用来产生非接入层和接入层密钥的总密钥,之后通过鉴权响应Authentication data response将AV传给MME。
(4)~(10)MME 存储好 AV 后,将会通过用户鉴权请求User authentication request这条消息将参数 AUTN、RAND和KSIASME传给终端。KSIASME是用来标识KASMEKASME,目的是为了终端能获得和网络端一样的KASME。随后,参考文献[4]指出终端将会核实收到的AUTN的 AMF(authentication management field,鉴证管理域)。如果可以接受,通过验证,将会进一步生成一个响应RES;如果和XRES匹配的话,表示鉴权成功了。
RES的具体生成方法如图4所示,参考文献[3]指出图中的SQN(sequence number,序列号)是一个计数器。f1和f2为鉴权函数,f3、f4、f5和KDF都是密钥生成函数;茌为异或操作;AK为一个密钥,AK=f5K(RAND),主要用于恢复SQN,具体操作是 SQN=(SQN茌AK)AK;MAC为网络端产生的信息确认码,XMAC为终端生成的信息确认码。当UE收到MME发来的鉴权请求后,通过验证,使用参数K、SQN(恢复的)和AMF通过函数f1生成XMAC,
通过比较XMAC和MAC相等后,才被允许进行下一步动作。
上述过程完成之后,终端和网络端的非接入层和接入层将会由产生的密钥KASME通过KDF获取相应的机密性及完整性保护所需要的密钥。
在LTE中,非接入层和接入层分别都要进行加密和完整性保护,它们是相互独立的,它们安全性的激活都是通过SMC命令来完成的,且发生在AKA之后。网络端对终端的非接入层和接入层的激活顺序是先激活非接入层的安全性,再激活接入层的安全性。
2.4.1 非接入层的安全模式过程
由图5可知,非接入层的安全模式过程是由网络发起的,MME发送的SMC消息是被非接入层完整性保护了的,但是没有被加密。参考文献[4]指出UE在收到SMC消息后,首先要比对消息中的UE security capabilities(安全性能力)是否和自己发送给网络以触发SMC过程的UE security capabilities相同,以确定UE security capabilities未被更改,如果相同,表示可以接受,没有受到攻击,nonceMME和nonceUE用于切换时的安全性激活,本文就不再赘述;其次,进行NAS层密钥的生成,包括KNASenc和KNASint,前者为NAS加密密钥,后者为NAS完整性保护密钥;接着,UE将根据新产生的完整性保护密钥和算法对收到的SMC消息进行完整性校验,校验通过,表示该SMC可以被接受,此安全通道可用;最后,UE发出安全模式完成消息给MME,所有的NAS信令消息都将进行加密和完整性保护。如果安全模式命令的校验没通过的话,将发送安全模式拒绝命令给MME,UE退出连接。如图5中的第3步。
2.4.2 接入层的安全模式过程
在非接入层的安全性激活后,紧接着将要进行接入层的安全性激活,采用AS SMC命令来实现的。如图6所示,网络端通过已经存在的KASME来生成KeNB,利用KeNB生成完整性保护密钥对AS SMC这条消息进行完整性保护,并生成一个信息确认码MAC-I;之后,将AS SMC传给ME。参考文献 [5]指出ME首先利用密钥KASME来生成KeNB,之后利用收到的算法和KeNB通过KDF生成完整性保护密钥,然后对此AS SMC信息进行完整性校验,具体是通过生成一个X-MAC,如果X-MAC和MAC-I相匹配的话,通过校验,之后进一步生成加密密钥,并发送AS SMC完成消息给eNB,此条消息也要进行加密和完整性保护,也要生成一个信息确认码MAC-I,具体用途已介绍,此步骤非常重要,假如校验不通过,UE会向eNB返回一条AS Mode Failure消息,表明此通道不安全,UE是要退出连接的。eNB对AS SMC完成消息进行完整性校验通过后,此时接入层的安全性就激活了,可以开始传输数据了。
在非接入层和接入层的安全性激活之后,将会进一步生成各自机密性和完整性保护所需要的密钥。
图7中的第(1)步在图3中已经介绍过,主要是用于生成密钥KASME,非接入层直接用此密钥获取非接入层信令所用的完整性密钥和加解密密钥,如图中第(2)步所述。接入层还要首先通过此密钥再进一步获取控制平面所需要的完整性和加解密密钥KRRCint、KRRCenc以及用户平面所需的加解密密钥KUpenc。
前面已经介绍过LTE终端非接入层和接入层都要对数据进行机密性和完整性保护。两者相似,本文仅介绍终端接入层的安全性实现。
LTE终端协议栈接入层的安全性的具体功能实现是在 PDCP(packet data convergence protocol,分组数据汇聚协议)中完成的。参考文献[6]指出PDCP在接入层协议栈中的位置位于 RLC(radio link control,无线链路控制)层之上,受RRC(radio resource control,无线资源控制)的调度和控制,将来自上层的用户数据传输到RLC子层。PDCP机密性的对象是C(control,控制)平面的信令以及U(user,用户)平面数据部分,完整性保护的对象仅针对C平面的信令部分,完整性保护在加密之前进行。
LTE中数据的安全性都是基于算法来实现的,机密性和完整性保护的核心算法有两种:AES(advanced encryption standard,高级加密标准)和SNOW 3G算法。参考文献[7]指出AES采用的是128位块加密,参考文献[8]指出SNOW 3G采用的128位流加密。下面将分别介绍数据机密性和完整性的具体实现。
3.2.1 终端数据的机密性实现
机密性均采用AES或SNOW 3G算法,具体采用哪种算法是由RRC配给PDCP,这两种算法的输入密钥均采用128位。具体如图8所示。
如图8所示,算法的输入是IV和KEY,输出为Q[]。IV由4个参数组成:32位COUNT(PDCP的数据计数器)、5位的 BEARER(PDCP的 RB标识)、1位的 DIRECTION(上行或下行数据的方向位)和LENGTH(表示所加解密数据的长度)。KEY是前面所讲的密钥KRRCenc或KUpenc。Q[]是输出的密钥流块。参考文献[2]指出加密过程:图8产生的密钥流块与明文块异或后便产生了密文块,加密过程完成。解密过程与加密过程相反即可。
3.2.2 终端数据的完整性实现
完整性也采用AES或SNOW 3G算法,具体采用哪种算法也是由RRC配给PDCP,这两种算法的输入密钥均采用128位。具体如图9所示。
如图9所示,算法的输入是IV和KEY。IV也由4个参数构成,COUNT、BEARER和DIRECTION这3个参数与机密性所用的参数相同,MESSAGE代表的是实际进行完整性保护或校验的数据;KEY是前面所提到的完整性密钥KRRCenc。参考文献[2]指出完整性保护过程:对输入流IV和KEY的处理后得到MAC-I。完整性校验过程:对输入流IV和KEY的处理后得到X-MAC。MAC-I和X-MAC如果匹配的话,表示完整性校验成功。
LTE系统提供了较高的数据速率,对于这些业务,尤其是某些重要的数据业务,将对网络的安全性提出更高的要求,因此对LTE/SAE安全架构和安全机制的设计显得至关重要。目前3GPP的安全性标准还没有稳定版本,还在不断地更新中,我们将会在今后的研究和开发工作中不断地完善LTE/SAE的安全功能。
1 沈嘉,索士强,金海洋等.3GPP长期演进(LTE)技术原理与系统设计.北京:人民邮电出版社,2008
2 3GPP TS 33.401 V8.6.0、V9.2.0.System architecture evolution,2009 3 3GPP TS 33.102 V8.5.0、V9.1.0.3G security,2009
4 3GPP TS 24.301 V8.4.0.Non-access-stratum (NAS)protocol for evolved packet system(EPS),2009
5 3GPP TS 36.331 V8.8.0.Radio resource control(RRC)protocol specification,2009
6 3GPP TS 36.323 V8.6.0.Packetdata convergence protocol(PDCP)specification,2009
7 National Institute of Standards and Technology(NIST).Federal information processing standards publications (FIPS PUBS)197,advanced encryption standard(AES),Nov 2001
8 European Telecommunications Standards Institute(ETSI)/SAGE.Version:1.1,specification of the 3GPP confidentiality and integrity algorithms UEA2&UIA2,Sep 2006