一、背景介绍
3GPP联盟通过技术规范(TS)33.501[1]发布了第五代移动通信系统的身份验证和密钥协议(即5G-AKA),它引入了公钥加密来隐藏用户的SUPI来提高移动用户的隐私性。然而,5G-AKA很容易受到来自主动攻击者的链接攻击,使用户的隐私处于危险之中。
本文介绍一篇来自USENIX SECURITY 2022的文章《Privacy-Preserving and Standard-Compatible AKA Protocol for 5G》[2],针对5G-AKA协议在隐私保护方面易受链接攻击的缺陷,提出了一种基于密钥封装机制的5G-AKA改进方法来保护隐私,同时兼容现有5G标准,能够在不更换用户SIM卡、保持现有的5G服务网络部署的基础上抵御链接攻击。
英文缩写解释:
UE:User Equipment,用户设备
SN:Serving Network,服务网络
HN:Home Network,归属地网络
二、 5G-AKA协议流程
接下来描述5G-AKA的具体过程。
5G-AKA包括初始化阶段和挑战-响应阶段。5G-AKA的整体流程如图1所示。
图1 5G-AKA整体流程
在初始化阶段,UE使用HN的公钥和ECIES加密算法对SUPI进行加密得到SUCI并发给HN。在挑战-响应阶段,HN随机选择一个挑战(RAND),并计算AUTN(其中AUTN包含了MAC和隐藏的SQNHN)。在收到RAND和AUTN后,首先,UE使用MAC检查消息的有效性,如果检查失败,则返回MAC_Failure的消息;接下来,UE通过比较SQNHN和SQNUE来检验消息的新鲜度(freshness),如果检查失败,则返回Sync_Failure和AUTS消息,UE使用AUTS消息与HN重新同步;最后,当所有检查都通过时,UE计算响应值RES和锚密钥Kseaf,并将响应值RES发送到HN。
接下来本文将具体介绍以上两个阶段,
2.1
初始化阶段
图2 5G-AKA的初始化阶段,其中ECIES由ECIES-KEM和ECIES-DEM表现
如图2所示,其中UE、SN和HN下方括号中的内容已知。在初始化过程中,UE侧通过ECIES组件来对SUPI进行加密隐藏得到SUCI,这也是5G系统相对于3G/4G系统对隐私保护的改进。得到SUCI后,UE将(SUCI,IDHN)发送至SN,SN收到之后将自己的IDSN加入后,将(SUCI,IDHN,IDSN)发送至HN,HN再通过ECIES组件将SUCI还原成SUPI,到此初始化过程完成。
2.2
挑战-响应阶段
图3 5G-AKA中的挑战-响应阶段
如图3,在挑战-响应阶段,UE和HN通过一系列的挑战-响应进行验证,并与SN建立锚密钥(即Kseaf),该阶段包含了TS 33.501[1]所指定的一系列加密函数,接下来简单介绍挑战响应流程:
如果MAC值相同并且UE侧的序列号小于HN侧的序列号,则完成了对HN的认证,UE侧会生成RES和KSEAF,将响应值RES发送给SN进行认证;
如果MAX值相同但是UE侧的序列号大于HN侧的序列号,那么UE会认为产生了序列号不同步的问题,会进行重新同步,UE侧会生成一个数据包(其中包含Sync_Failure消息)经过SN发送到HN,这也是引入链接攻击的一个主要原因;
如果MAC值不同,则认证失败,发送MAC_Failure消息到SN。
三、5G-AKA中的链接攻击
链接攻击指攻击者通过主动发送无线信号(例如,使用流氓基站),重放目标UE之前参与过AKA会话中的消息,进而识别出目标UE,将目标UE的不同AKA会话链接起来。
通过链接攻击,攻击者可以监视或追踪目标UE,甚至从该UE的活动模式中推断出用户的真实身份,甚至能够对目标设备实施跨5G/4G-AKA协议链接攻击进而窃取用户的隐私,即在UE的SIM卡不变时,攻击者可以通过使用目标UE的3G/4G AKA会话链接到5G网络中进行攻击,而目前国内外多个运营商都支持用户在不更换SIM卡的情况下升级5G网络。
图4 通过跨协议的链接攻击跟踪高价值目标用户
具体跨协议链接攻击的过程如图4所示,首先,攻击者捕获目标UE的3G或4G AKA会话,其中包括用户的SUPI标识符等,并使用记录的信息设计一个复杂的攻击向量;接下来,在5G网络中,攻击者利用攻击向量对其攻击区域内所有UE进行链接攻击,目标UE会因为其特有的回应而被攻击者识别。
攻击者不仅可以跟踪高价值的目标用户,还可以获取到5G AKA会话中的SUPI,严重威胁到了5G系统的安全性。
目前在5G-AKA中已经发现了三种类型的链接攻击[2]。
3.1
错误信息链接攻击
攻击者记录HN发送给目标UE的一条(RAND,AUTH)消息,并将其重放给攻击区域中的所有UE。当目标UE收到该消息时,首先检查RAND的有效性,因为该消息本来就是发送给目标UE的,因此有效性检查可以通过,但是由于该消息已经被处理过,因此在检查其新鲜度时会失败,即回复Sync_Failure消息。而其他UE在检查RAND的有效性时就会发生错误,返回MAC_Failure消息。
3.2
序列号推理攻击
与错误信息链接攻击相同,攻击者同样通过重放(RAND,AUTH)消息,但是能够获得更加详细的信息甚至是目标UE确切的序列号。攻击者会多次重放(RAND,AUTH)消息,目标UE都会回复一条同步失败消息(包含Sync_Failure,AUTS,RAND,SUCI),进而推理出UE的SQNUE。
3.3
加密SUPI重放攻击
攻击者首先记录目标UE发送的SUCI,并重新将该SUCI发送给所有UE会话的HN,等待UE响应HN的挑战消息,由于HN使用与目标UE共享的k来计算他们的MAC,因此只有目标UE在进行MAC验证时不会出错,回复的信息将不会带有错误信息,而其他的UE都会回复MAC_Failure消息。
3.4
链接攻击产生的根本原因分析
通过对以上三种攻击方式的分析,我们可以得到链接攻击产生的根本原因,进而针对其根本原因选择相应的对策,如此不仅可以直接抵御现有的所有链接攻击,而且能够防止由同一原因引发的其他隐私安全问题。
链接攻击的根本原因 在典型的链接攻击场景中,在面对同一攻击向量时,目标UE和其他UE将会产生不同的回应,使得主动攻击者可以把目标UE从其他UE中区分开来,然后通过向量和会话之间的关联将目标UE链接到之前参加的会话。触发这种具有区别性的响应唯一的方法是利用UE执行过程中的条件语句。由于SIM身份认证命令是UE在5G-AKA中唯一包含条件语句的过程,因此SIM身份认证命令就是产生链接攻击的根本原因,该命令包含两个分别用于检查MAC和SQNHN的条件语句。
MAC验证时的条件语句为了确定该条件语句是否为链接攻击产生的根本原因,可以通过判断该条件是否会导致相同攻击向量使得不同的UE产生不同的响应,即该条件可以使得目标UE在接收到某个攻击向量时,可以产生与其他UE不同的响应。
分析发现攻击者可以并且只能通过重放包含目标UE长期密钥k生成的有效消息所构成的攻击向量,才可能使得目标UE与其他UE在MAC验证使具有不同的响应。因此,MAC验证时的条件语句是链接攻击形成的原因之一。该条件语句只能够检查接收消息的真实性,而无法检查它的新鲜度,因此可能会遭受到攻击者使用真实有效但不新鲜消息的攻击。
在5G-AKA中,对新鲜度的检查被推迟到检查SQNHN时的第二个条件语句,这会导致失败消息链接攻击和序列号推理攻击,甚至也会导致加密SUPI重放攻击。这些看似不同的链接攻击实际由同一根本原因引发,因此可以一并修复。
SQNHN验证的条件语句在计算第二个条件语句时,假设对MAC的验证已经能够抵御一个重放消息的攻击。在该假设下,要使得不同UE行为不同,唯一方法就是使得目标UE与HN不同步,而其他UE与HN同步。但是,由于只有当前的会话才能通过MAC验证,因此攻击者无法通过使用相同的攻击向量来完成这种攻击。除此之外,由于消息失序及重传也可能会发生重新同步,因此很难确定与HN重新同步的UE是在旧会话中与HN重新同步的UE,还是在旧会话中使用RES响应的UE,攻击者也不可能将与重新同步消息行为不一致的UE链接到其以前参加的会话。
通过上述分析,可以发现所有已知的链接攻击根本原因是:在验证过程中,UE分别使用了两个单独的条件语句来检查消息的有效性和新鲜度。
然而,由于兼容性的要求,必须保留5G-AKA的命令、消息流和数据格式,这也给修复方案的设计增加了难度。
四. 如何使5G-AKA抵御链接攻击
本章主要根据5G-AKA协议遭受链接攻击的根本原因,提出了一些改进建议,使用户隐私在面对主动攻击者的链接攻击时可以得到更好的保护,在对5G-AKA协议修改做到最小的同时,与传统SIM卡和SN兼容。
4.1
针对链接攻击形成的根本原因的对策
通过对链接攻击形成根本原因的分析,文章[2]提出了一种使用one-pass消息建立临时会话密钥保证消息的新鲜度的对策。
其核心思想是重用由ECIES建立的对称密钥作为“会话密钥”来完成对身份验证挑战(RAND)的加密和解密。UE在将RAND作为身份验证的输入之前使用密钥进行解密,避免了修改命令。由于该密钥已经被UE和HN在SUPI的加密和解密中建立,因此该过程不需要额外操作。由于加密后的RAND无需被SN解密,因此以上过程对SN透明。
以上对策允许在验证MAC的真实性和有效性的同时完成对新鲜度的检查,从根本上抵御了现存的链接攻击。
基于以上对策,UE接收到一个不属于当前会话的加密(或明文)RAND可能有以下三种来源:
1、消息链接攻击中的重放,因为只有被正确密钥加密的RAND才能够在解密后通过验证。
2、序列号推理攻击中的重放,原因同上。
3、加密SUPI重放攻击中,当HN接收到一个重放的SUCI后也会生成一个错误的RAND,由于RAND没有正确的密钥加密,解密算法最终输出的RAND将于之前不同,因此也无法通过MAC验证。
4.2
对策如何使用于5G-AKA中
4.2.1
初始化阶段
此阶段是UE向HN初始化的过程,如图5所示,为改进的5G-AKA初始化阶段,与图2相比较,图中有下划线所标识的为新增的内容。
改进之后的初始化阶段要求UE与HN存储每次5G-AKA会话建立时所产生的密钥,用于后续的挑战-响应阶段,由于密钥通过KEMECIES建立,因此该过程不需要额外的加密操作,且对所有5G网络规范透明,不会改变消息流。
图5 改进的5G-AKA初始化阶段
4.2.2
挑战-响应阶段
该过程为组件间相互身份验证并建立锚密钥的过程。
图6 改进的5G-AKA的挑战-响应阶段
如图6所示,下划线标识的为新增内容。初始化过程中新增的密钥(即KUE、KHN)被用于这个阶段,相比于改进前的协议,改进之后的协议有如下几点改变:
第一,HN生成的随机挑战RAND将会使用KHN加密后再进行传输,而只有使用UE端的KUE对其进行解密才能通过MAC验证。
第二,HN所生成的HXRES更改为由加密后的RAND计算生成。
第三,UE需要使用KUE对接收的RAND进行解密之后才能够进行身份验证。
第四,HN对UE发送的重新同步消息(AUTS)进行验证时,需使用KHN将接收到的RAND进行解密之后再进行验证。
以上四点就是对5G-AKA协议提出的改进,与原始的5G-AKA协议相比,改进的协议只增加了AES-128对RAND的加解密,因此对于通信的效率影响很小。文中对改进后协议的效率进行了实验加以验证,结果表示,在UE侧,改进的协议只多出了0.03%的耗时,HN侧耗时只增加了0.02%-0.03%,在带宽方面实现了零增长,易于标准化和应用部署。
五. 总结
本文首先介绍了5G-AKA的认证流程及其可能面临的链接攻击,然后分析了5G-AKA协议中链接攻击形成的根本原因,最后针对链接攻击介绍了5G-AKA协议的改进方法。文章的主要内容来源于对USENIX SECURITY 2022的文章《Privacy-Preserving and Standard-Compatible AKA Protocol for 5G》[2]的理解。
参考文献
[1] 3GPP TS 33.501 V17.6.0 (2022-06)
[2] Privacy-Preserving and Standard-Compatible AKA Protocol for 5G,USENIX Security 2022.
内容编辑:创新研究院 程 章
责任编辑:创新研究院 陈佛忠
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。