胡鑫鑫,刘彩霞,彭亚斌,柏 溢,陈 强
(1.中国人民解放军战略支援部队信息工程大学,河南 郑州 450002; 2.中国人民解放军61516部队,北京 100071)
鉴权认证协议作为移动通信网络安全的第一道防线,其安全性研究一直是业界关注的重要领域[1],并伴随移动通信网的发展史。Myrto等人[2]在3G鉴权认证协议中发现了可链接性攻击,并提出了解决此问题的方案。相关方案增强了3G鉴权认证协议的安全性,修复了可链接性攻击,但方案所需的通信开销、计算开销和存储开销很大。Ravishankar等人[3]发现了AKA协议的逻辑漏洞,该漏洞利用AUTS计算中的XOR操作来破解用户的同步序列号值,攻击者利用该逻辑漏洞可以对用户实施位置跟踪并分析用户通信行为,为了弥补该漏洞,作者提出了3种可能的解决方案。Changhee等人[4]发现LTE网络存在可链接性攻击威胁,并提出了解决该威胁的方案,所提方案同时需要额外增加信令流程实现LTE系统的同步故障恢复问题。文献[5]对5G用户注册请求消息交互流程存在的安全问题进行了研究,并提出了解决方案,相关方案需要对5G密钥层次进行较大的更改。5G AKA是5G网络采用的身份鉴权认证协议,其安全脆弱性研究是保证5G网络和用户安全通信的重要基础。
本文对5G AKA协议的安全性进行了研究,发现了5G AKA协议的2个缺陷:一个会带来可链接性攻击威胁,另一个会带来SUCI(5G网络用户身份标识的一种加密格式)窃听攻击威胁。基于5G网络的安全架构,对所发现缺陷提出了修复方案,在不需增加额外密钥的情况下,实现对认证结果消息的加密,使攻击者无法从认证结果反馈消息中获取所需信息。本文使用形式化分析工具TAMARIN来分析所提方案的安全性。
与4G LTE网络类似,5G网络主要由用户终端设备、接入网和核心网组成,核心网又包括服务域网络和归属域网络。用户的鉴权认证功能主要由终端设备、服务网络和归属网络完成。5G网络的终端设备种类很多,不再局限于传统的个人通信终端,还包括众多的物联网终端、垂直行业用户终端等;服务网络主要实现用户的接入管理、会话管理等功能,包括AMF,SEAF,SMF等网元。归属网络主要负责用户身份认证和身份信息管理。简化的5G网络如图1所示。
图1 简化的5G网络Fig.1 Simplified 5G network
5G网络自设计之初,就增强了安全功能,其中最典型的是增强了用户身份标识订阅永久标识符(SUbscription Permanent Identifier,SUPI)在空中接口的安全性,需要在空中接口传递SUPI的场景,终端使用非对称加密机制对SUPI进行加密,产生订阅隐藏标识符(SUbscription Concealed Identifier,SUCI),并用SUCI代替SUPI在空中接口传递,防止用户身份信息在空中接口泄漏,相关加密机制如图2所示,具体可参考文献[6]。此外,5G网络明确规定采用5G AKA和EAP-AKA′两种协议实现网络和用户的双向认证功能,所有5G终端必须同时支持。本文重点介绍5G AKA协议。
图2 SUPI加密/解密方案Fig.2 SUPI encryption/decryption scheme
根据5G安全标准[6],5G AKA协议的交互过程如下,协议在不同交互过程传递的安全参数加图3所示。协议执行过程如下:
① 归属地网络HN产生认证向量AV(RAND,AUTN,HXRES*,KAUSF)并将其发送给服务网络SN;
② 服务网络将AV(RAND,AUTN,HXRES*,KAUSF)中的2个参数RAND,AUTN和另外2个参数ngKSI和ABBA组合成鉴权请求发送给UE;
③ UE进行消息认证码MAC校验和同步序列号SQN校验,若二者都校验成功,则计算生成响应消息RES*发送给SN,并由SN传递给HN进行校验;
④ 若HN和SN都校验成功,则鉴权成功,UE和网络可以进行后面的正常业务;
⑤ 若SQN校验失败,则UE明文返回同步失败消息并附上AUTS;
⑥ 若MAC校验失败,则UE明文返回MAC校验失败。
EAP-AKA′协议类似于5G AKA,也依赖于基于共享根密钥的质询/响应机制实现网络和用户的双向身份认证,采用同步序列号以防止重放攻击,SQN、MAC检查机制和同步故障恢复机制也相似。二者之间的主要区别是某些信令消息和密钥计算方法不同。
本文主要对5G AKA协议 SQN、MAC验证机制和同步故障恢复过程的安全性进行研究,因此,在5G AKA中发现的安全缺陷及和修复方案也适用于EAP-AKA′协议。
图3 5G AKA协议Fig.3 5G AKA protocol
本节分析5G AKA协议的2种安全缺陷,以及由此可能导致的攻击威胁。
图3所示的5G AKA协议执行过程中,步骤⑤和步骤⑥包含了终端给网络反馈的身份认证响应消息。经研究,该消息在空中接口以明文形式传输,如果攻击者通过某种技术手段在空中接口窃听该消息,就可以基于认证结果信息(成功或失败)以及失败原因等信息分析终端当前所处的状态,具体包括目标用户收到的鉴权向量是否与其匹配,如果不匹配则会得到匹配失败原因。
攻击者利用5G AKA协议的上述安全缺陷发起的攻击过程及信息分析过程如图4所示。结合5G AKA协议交互流程及消息参数具体说明如下:
① 攻击者将嗅探工具放置在目标UE附近,并从空中接口窃听目标UE的明文认证请求消息。此消息包含RAND和AUTN的2个关键数据,攻击者将消息保存在本地。
② 攻击者使用在步骤①中捕获的RAND和AUTN构建认证请求消息。然后在目标用户可能出现的任何地方广播伪造的认证请求消息,恶意gNodeB附近的所有UE将收到身份验证请求消息。
③ UE收到消息后,将进行消息认证码检查和序列号检查。验证完成后,由于密钥协商过程尚未完成,UE以明文形式返回认证响应。仅当从AUTN获得的xMAC与使用SQNHN重新计算的MAC相等时,MAC检查才能成功。当执行SQN检查时,UE将确定SQNHN是否在正确的范围内,如果SQNHN>SQNUE,则SQN检查成功。当以上2个检查均成功时,UE将返回RES*=Response(K,RAND,SNN),其中Response( )表示复杂的密钥推导函数,SNN表示服务网络名称。如果MAC和xMAC不相等,则UE以MAC验证失败来回应网络。如果MAC检查成功,但是SQNHN不在正确的范围内,则UE将以同步失败来回应网络,步骤②中接收到的重播认证请求消息将通过目标UE的MAC检查,但SQN检查将不会通过,因为SQNHN 攻击者可能利用此漏洞来判定目标用户是否在某个具体位置。例如,如果在目标用户可能出现的办公区域、家庭或大型活动场地附近实施攻击,则可以判断当前用户的特定位置而不会被用户感知。 SUCI请求认证向量的安全缺陷归根结底也是由空中接口的开放性导致的。5G终端用户接入网络之前,需要按图3所示流程与网络进行双向身份认证,在这个过程中,用户使用SUCI向网络发起注册请求,由于明文传递,这一信息容易被攻击者捕获。当攻击者在目标用户附近或者运营商更新SUCI间隔太长,攻击者容易利用捕获的用户注册请求消息请求网络的真实认证向量。这个缺陷如果被攻击者利用,则可以构造用户位置嗅探攻击,具体攻击步骤说明如图5所示。 (1) 对手假设 攻击者拦截目标用户的真实注册请求消息(包括SUCI),并且构建恶意UE以及正确配置的恶意gNodeB。恶意UE和恶意gNodeB之间可以存在专用通信信道。 (2) 攻击流程 在攻击的第一阶段,攻击者在目标用户可能出现的小区中连续监听,以获得目标用户的真实注册请求消息,该消息中包含用户SUCI。此消息是为随后的重放攻击准备的,因为请求消息包含目标用户的标识信息。在第二阶段,攻击者利用更强的信号在目标小区附近部署恶意基站。受害UE将释放先前的RRC连接并连接到具有最强信号功率的gNodeB,即恶意gNodeB。然后,攻击者将注销请求的第三比特位置为“1”,并发送给受害者UE,随即UE将发起注册请求。在第三阶段,当受害者UE发起注册请求时,攻击者通过恶意gNodeB丢弃该消息,并将先前截获的注册请求消息发送给恶意UE。恶意UE通过空中接口将消息发送给合法的gNodeB。根据正常的认证过程,网络将向受害UE发起认证请求(包括AUTN和RAND等),恶意UE通过恶意gNodeB将该消息发送给受害UE。在接收到消息之后,受害UE将执行MAC验证并返回认证响应消息。由于响应消息是明文的,因此攻击者可以通过观察消息的内容来判断认证是否成功。如果认证响应内容是RES*,则认证成功,并且受害UE是目标UE;如果认证响应内容是Mac_failure,则证明受害UE不是目标UE。 (3) 可能后果 通过此攻击,攻击者可以验证目标用户是否在当前小区中。每当攻击者想要确定目标用户的位置时,攻击者就可以启动攻击以实现目标用户的位置跟踪。此外,如果受害UE是目标UE,则攻击者可以允许目标UE完成后续注册过程。当目标UE的所有流量都通过攻击者伪造的网络(恶意gNodeB和恶意UE)时,攻击者可以分析流量以构建目标用户服务使用习惯简档(例如电话呼叫、文本消息和数据服务)。 通过第2节介绍的缺陷及相应的攻击可以发现,5G AKA协议消息明文传递容易被攻击者利用,而5G AKA协议运行时UE和网络尚未完成密钥协商,因此又难以对消息内容进行加密。而5G网络采用PKI机制来保护用户永久身份信息,其中使用的公私钥对和临时公私钥对可以被用来修复前文介绍的缺陷。基于这一思想,本文提出改进的5G AKA方案,使得协议中2种身份认证失败消息对攻击者无法区分,方案如图6所示。 图6 本文提出的5G AKA协议修复方案Fig.6 5G AKA protocol proposed scheme 具体说明如下: ① UE收到认证请求消息(RAND,AUTN)后,验证MAC和SQN。如果二者均通过,则UE将根据3GPP TS33.501[6]中的A.4计算RES→f2(K,R)并从RES计算出RES*。否则,UE生成新的随机数rand,并转到步骤②。 其中,“||”表示2个操作数的串联。 ④ 将RES*发送到SN / HN。 在上述修复方案中,MAC-S被包含在认证失败消息中以证明该消息源自真实UE。在MAC-S计算中使用新的随机数rand来防止可能的链接攻击:如果使用了AV中的RAND,则攻击者会在短时间内重播相同的0身份验证请求2次(SQNUE不变)。2次获得相同的MAC-S,并据此捕获目标用户。此外,随机数rand还可以被用来使用公共密钥加密SQNUE,以防止彩虹表攻击。 为证明所提出方案能够修复第2节发现的2种协议缺陷,本文使用TAMARIN证明器[7]进行形式化验证。TAMARIN证明器是用于安全协议符号建模和分析的强大工具,它以安全协议模型为输入,并在其中指定了以不同角色运行协议的代理(例如,协议发起者、响应者和受信任密钥服务器)所采取的操作,攻击者的能力以及协议的规范、所需的安全属性。然后,使用TAMARIN自动构建证据,即使任意多个协议角色实例以及攻击者的动作并行交错,该协议也能实现其指定的属性。TAMARIN中的观测等效属性通过证明入侵者无法区分这2个系统来对2个系统进行推理,如果满足了认证响应消息的观察等效性,则攻击者无法区分鉴权协议中的用户响应消息,从而无法据此确定用户位置。 提出修复方案的形式化描述如下所示: 1.ruleue_receive_authReq_mac_or_sqn_check_fail: 2. let 3. MACS=f1_star(~k, 4. Rst_syn= 5. Rst_mac= 6. RES_star_syn_fail= 7. RES_star_mac_fail= 8. in 9. [!Pk(~idHN,pk_HN), 10. Fr(~rand), 11. Fr(~Sqn_UE), 12. Fr(~RES_star_syn_fail), 13. Fr(~RES_star_mac_fail)] 14. --[ Secret(~RES_star_syn_fail) ]-> 15. [ Out(pk_HN), 16. Out( ~RES_star_mac_fail ), 17. Out(aenc( diff(~RES_star_syn_fail,~RES_star_mac_fail),pk_HN ) )] 18.lemmaB_is_secret: 19. " All B #i.( 20. Secret(B) @ #i ==> 21. not( Ex #j.K(B) @ #j ) )" 第1~17行描述了协议改进方案的认证响应消息,即图6改进方案中使用网络公钥pk_HN对身份验证失败消息进行加密的过程。为证明观测的等效性,在TAMARIN中使用了diff(,)运算符,第18~21行描述了期望验证的安全性质,即响应消息对攻击者的不可分辨属性。验证结果如图7所示,实验结果表明攻击者无法区分2种错误消息,这证明了所提出方案的安全性。 图7 安全性质分析结果Fig.7 Security property analysis result 对于安全协议而言,除了需要满足所需的安全性外,还需要考虑效率问题,即通信开销、存储开销和计算开销需要在用户设备和网络可接受的范围内。通信开销指UE需要通过无线电发送的数据的长度,计算开销是指针对安全协议运行所需要的计算量,存储开销是指在安全协议运行过程中所需存储空间。因此,本文对所提5G AKA协议修复方案进行了效率分析,分析结果如表1所示。可以看到3GPP提出的解决方案和本文所提方案各有优缺点。3GPP方案所需通信开销为Lfail_reason+LCONC+LMACS,本文所提解决方案通信开销为Lfail_reason+LSQN+Lrand+LMACS,由于LCONC=LSQN,因此相比于3GPP方案,本文方案增加了Lrand,因此通信开销有所增加。计算开销方面,5G AKA需要运行6次的伪随机函数,即6H,而改进方案需要5次的伪随机函数和1次非对称加密,即5H+ENCAsy,二者基本相当。存储开销方面,3GPP方案需要存储AK,AK*,MAC,MACS,RES*,pbN,而本文方案为AK,MAC,MACS,RES*,pbN,可见本文方案小于3GPP标准中的方案。 表1 效率分析结果 开销5G AKA本文方案通信开销Lfail_reason+LCONC+LMACSLfail_reason+LSQN+Lrand+ LMACS计算开销6H5H+ENCAsy存储开销AK,AK*,MAC,MACS,RES*,pbNAK,MAC,MACS,RES*,pbN 本文发现了5G网络鉴权认证协议中的2个安全缺陷。借助鉴权认证响应消息明文传递的安全缺陷,攻击者可以根据用户终端响应消息来确定目标用户是否在特定小区;借助鉴权协议中用户利用SUCI请求认证向量的安全缺陷,攻击者可以嗅探用户位置。为修复所发现的2个缺陷,本文提出了5G AKA安全性增强方案,该方案利用现有的5G网络PKI机制而无需添加密钥,重新设计了认证失败消息,并分析了该方案的安全性以及通信、计算和存储的开销。分析结果表明,本文所提方案提高了5G网络通信安全性,在减少存储开销的同时,仅增加了较小的通信开销和计算开销。2.2 SUCI请求认证向量的安全缺陷
3 修复方案及分析
3.1 5G AKA安全性改进方案
3.2 改进方案的安全性和效率分析
Tab.1 Efficiency analysis result4 结束语