一文看懂LTE的鉴权

今天,我们来说说LTE的鉴权。

对于任何通信系统,安全都是至关重要的。

我们经常听说的复制卡、伪基站,都是对通信系统的威胁,对我们信息安全的威胁。

所谓鉴权,就是鉴别终端或网络的真伪,保证通信数据的安全(不被截取、不被篡改、不被伪造)。

我们就以LTE系统为例,说明一下移动通信网络的鉴权方法。

一个简单的LTE网络架构,是下面这样的:

LTE控制面的协议栈,如下图:

正如上图所示,LTE是一个分层的通信系统。UE和eNodeB之间,是RRC信令。UE和MME之间,是更上层的NAS信令。

正因为如此,针对不同信令,就要采取不同的安全管理层级,就是针对AS层的AS安全,以及针对NAS层NAS安全

AS(Access Stratum,接入层)安全

UE和eNB之间的安全,包括RRC信令的机密性保护和完整性保护,用户面机密性保护。

NAS(Non Access Stratum,非接入层)安全

UE和MME之间的安全,包括NAS信令的机密性保护和完整性保护。

说到鉴权,就一定要先知道什么是鉴权向量(Authentication Vector)

鉴权向量,就是一组用于鉴权的参数组。

这个参数组,包括4个参数,分别是:

RAND(RandomChallenge,随机数)

RAND是网络提供给UE的不可预知的随机数。

AUTN(AuthenticationToken,鉴权令牌)

AUTN的作用是提供信息给UE,使UE可以用它来对网络进行鉴权。

XRES(ExpectedResponse,预期响应)

XRES是期望的UE鉴权响应参数。用于和UE产生的RES(或RES+RES_EXT)进行比较,以决定鉴权是否成功。

KASME

KASME是根据CK/IK以及ASME的PLMNID推演得到的一个根密钥。

说明:

1 XRES里面的X,就是Expected,“预期的”的意思。后面会提到的好几个词,都带有这个X。“X某某某”就是和“某某某”进行比较用的。

2 什么是ASME?

ASME,接入安全管理实体。该实体是接入网从HSS接收最高级(top-level)密钥的实体。在LTE网络下,MME扮演ASME的角色。

上面这4个参数,也就是通常我们所说的LTE鉴权四元组

我们还是直接看看完整的LTE鉴权流程,在流程中解释吧。

参与认证和密钥协商的有这三个主体:UE、MME 和 HSS

我们把它们拎出来:

▶第①步

①:UE 向 MME 发送自己的 IMSI 与 HSS 的 IDHSS标识等身份信息,请求接入;

▶第②步

②:MME 根据请求 IDHSS,向对应的 HSS 发送鉴权数据请求,在请求中包括有用户的身份信息 IMSI 与本服务网的身份信息 SNID;

▶第③步

③:HSS 收到鉴权请求后,在自己的数据库中查找 IMSI 与 SNID,验证这 2 个实体的合法性。如果验证通过,则生成鉴权向量组 AV(1,…,n)。

▶第④步

④:HSS将生成的鉴权向量组 AV(1,…,n)作为鉴权数据响应,发回给 MME。

生成鉴权向量的算法如下:

SQN是啥?

为了抵御重放攻击,UE 和 HSS 都各自维持一个序列号计数器 SQN。

其中 HSS 维持的是SQNHSS负责为每一个生成的 AV 产生一个新的序列号 SQN。UE 维持的是SQNUE用于保存已接收 AV 中的最大 SQN 值。

KDF是啥?

密钥生成函数,Key derivation functions。KDF用于生成 Security各种算法的输入密钥。

▶第⑤步

⑤:MME 收到应答后,存储 AV(1,…,n),再从中选择一个 AV(i),提取出 RAND(i)、AUTN(i)、KASME(i)等数据,同时为 KASME(i)分配一个密钥标识KSIASME(i)。

▶第⑥步

⑥:MME向 UE 发送用户认证请求,带有RAND(i)、AUTN(i)、KASME(i)等数据;

▶第⑦步

⑦:UE 收到认证请求后,通过提取和计算 AUTN(i)中的 MAC 等信息,计算XMAC,比较 XMAC 和 MAC 是否相等,同时检验序列号 SQN 是否在正常的范围内,以此来认证所接入的网络;

算法如下:

如果认证通过,则计算 RES(i)与 KASME (i)。

▶第⑧步

⑧:UE给MME发用户鉴权请求响应消息,将计算出的RES(i)传输给 MME。

▶第⑨步

⑨:MME 将收到的 RES(i)与 AV(i)中的 XRES(i)进行比较,如果一致,则通过认证;

▶第⑩步

⑩:在双向认证都完成后,MME 与 UE 将KASME(i)作为基础密钥,根据约定的算法推演出加密密钥CK完整性保护密钥IK,随后进行保密通信。

至此,EPS-AKA鉴权过程结束。

我们再看一遍整个过程(动图):

参数比较多哈!大家可能会比较晕。。。

其实,大家看到的K***什么的,都是从根密钥K里逐级生成的。不同的K***,存在于不同的地方,用于不同的目的。

各个密钥之间的关系如下图:

继续往下说,刚才①~⑩,是鉴权的过程。

鉴权之后,是完整性保护和加密过程。

首先我们介绍一下:安全模式控制(Security Mode Control,简称SMC)

  • SMC用于激活终端和网络侧间信息的安全交互,包括NAS SMC和AS SMC两部分。
  • 安全模式控制主要包括网络侧发给UE的 Security Mode Command和UE回复给网络侧的Security Mode Complete两条信令。
  • SMC流程主要完成终端和网络侧对所使用的安全算法的协商,并以KASME或KeNB为基础, 生成相应安全算法所需的密钥,初始网络侧和终端间消息的安全交互。

其实,消息安全交互的连接建立主要包括以下几个过程:

1、建立RRC连接,同时也建立起SRB1(SRB,Signalling Radio Bearer);

2、建立NAS连接;

3、发起AKA过程,完成UE和网侧进行双向鉴权和共同基础密钥KASME的协商(上文中的①~⑩);

4、发起NAS安全模式控制(SMC)流程,激活NAS安全机制,随后交互的NAS消息都进行安全保护。

5、发起AS安全模式控制(SMC)流程,激活AS安全机制,随后交互的RRC消息都进行安全保护。

我们来分别看一下4和5的流程。

▶NAS安全模式控制流程

①:MME发送NAS Security Mode Command消息给UE,包括重放(replayed)UE安全性能,所选择的NAS算法,标识KASME的eKSI,以及在空闲移动状态下建立一个映射环境时所需的NONCEUE 和 NONCEMME。这条消息需要进行完整性保护(但不需要加密),所使用的NAS完整性保护密钥KNAS int基于消息中eKSI所标识(indicated)的KASME。

②:UE需要验证NAS Security Mode Command消息的完整性。包括确保MME发送的UE安全性能与UE中储存的UE安全性能相匹配,以确保UE安全性能不会被“攻击者”修改,并且使用所指示的NAS完整性保护算法和基于eKSI所标识的KASME生成的NAS完整性保护密钥KNAS int验证其完整性保护。

③:MME使用NAS Security Mode Command消息中标识的密钥和算法对NAS Security Mode Complete消息进行解密和检查完整性保护。

此时,可以认为NAS层的安全性已经激活,可以进行安全的NAS层对话。

注意:

MME在发送NAS security mode command消息后,开始进行再该安全环境下的NAS上行解密。

MME在接收到NAS security mode complete消息后,开始进行在该安全环境下的NAS下行加密。

④:如果ME中NAS Security Mode Command消息的验证不成功,ME应回复一条NAS Security Mode Reject消息。

▶AS安全模式控制流程

①:eNB发送AS Security Mode Command消息给UE,包括所选的AS算法。并且该消息使用当前KASME生成的完整性保护密钥KRRC int保护。

②:UE发送AS Security Mode Complete消息给eNB,使用AS Security Mode Command消息中所选择的AS算法和使用当前KASME生成的完整性保护密钥KRRC int保护。

此时,可以认为AS层的安全性已经激活,可以进行安全的AS层对话。

注意:

eNB中,发送AS Security Mode Command后开始RRC和UP的下行加密。

接收到AS Security Mode Complete并验证其完整性成功后开始上行解密。

UE中,接收到AS Security Mode Command并验证其完整性成功后开始下行解密。

发送AS Security Mode Complete后开始RRC和UP的上行加密。

③:如果在UE中AS Security Mode Command消息的任何控制都没有成功,ME将回复一条Security Mode Failure消息。

总之,NAS/AS安全模式控制流程,就是包装NAS/AS层面的完整性和加密安全。在这之后,一个安全的连接就算是真正建立起来了。

好啦,LTE的鉴权流程,就介绍到这里。

如果没有听明白,也没关系,LTE安全管理专题课程即将上线(更新入“从零开始学LTE课程”),老师的视频讲解,一定能让你彻底搞懂滴!

原文发布于微信公众号 - 鲜枣课堂(xzclasscom)

原文发表时间:2017-10-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券