阅读: 30
一、背景介绍
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 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,到此初始化过程完成。
- 挑战-响应阶段
图3 5G-AKA中的挑战-响应阶段
如图3,在挑战-响应阶段,UE和HN通过一系列的挑战-响应进行验证,并与SN建立锚密钥(即Kseaf),该阶段包含了TS 33.501[1]所指定的一系列加密函数,接下来简单介绍挑战响应流程:
- 在初始化阶段完成后,HN侧会生成一个认证四元组(RAND,AUTN,HXRES,KSEAF),其计算过程如图中四元组上方的方框中所示,其中RAND是一个128比特的随机数,AUTN是一个认证令牌(包含CONC和MAC值,其中CONC是AK和SQNHN的异或),HXRES是RAND和XRES的哈希。
- SN收到HN发送的认证四元组后,将(RAND,AUTN)发送给UE。
- UE收到(RAND,AUTN)后,首先将AUTN拆分成CONC和MAC,再通过共享密钥k和RAND计算AK,进而与CONC进行异或操作得到SQNHN,最后计算出MAC值与收到的MAC值进行对比。
- 如果MAC值相同并且UE侧的序列号小于HN侧的序列号,则完成了对HN的认证,UE侧会生成RES和KSEAF,将响应值RES发送给SN进行认证;
- 如果MAX值相同但是UE侧的序列号大于HN侧的序列号,那么UE会认为产生了序列号不同步的问题,会进行重新同步,UE侧会生成一个数据包(其中包含Sync_Failure消息)经过SN发送到HN,这也是引入链接攻击的一个主要原因;
- 如果MAC值不同,则认证失败,发送MAC_Failure消息到SN。
- SN在收到RES后进行哈希,并与HN发送的哈希值相比,如果相同则完成认证。认证成功后需要将其发送给HN,防止恶意的SN。
- HN收到SN发送的RES并进行对比,如果相同,HN则返回SUPI到SN并完成对UE的认证,整个挑战-响应流程结束。
三、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]。
- 错误信息链接攻击
攻击者记录HN发送给目标UE的一条(RAND,AUTH)消息,并将其重放给攻击区域中的所有UE。当目标UE收到该消息时,首先检查RAND的有效性,因为该消息本来就是发送给目标UE的,因此有效性检查可以通过,但是由于该消息已经被处理过,因此在检查其新鲜度时会失败,即回复Sync_Failure消息。而其他UE在检查RAND的有效性时就会发生错误,返回MAC_Failure消息。
- 序列号推理攻击
与错误信息链接攻击相同,攻击者同样通过重放(RAND,AUTH)消息,但是能够获得更加详细的信息甚至是目标UE确切的序列号。攻击者会多次重放(RAND,AUTH)消息,目标UE都会回复一条同步失败消息(包含Sync_Failure,AUTS,RAND,SUCI),进而推理出UE的SQNUE。
- 加密SUPI重放攻击
攻击者首先记录目标UE发送的SUCI,并重新将该SUCI发送给所有UE会话的HN,等待UE响应HN的挑战消息,由于HN使用与目标UE共享的k来计算他们的MAC,因此只有目标UE在进行MAC验证时不会出错,回复的信息将不会带有错误信息,而其他的UE都会回复MAC_Failure消息。
- 链接攻击产生的根本原因分析
通过对以上三种攻击方式的分析,我们可以得到链接攻击产生的根本原因,进而针对其根本原因选择相应的对策,如此不仅可以直接抵御现有的所有链接攻击,而且能够防止由同一原因引发的其他隐私安全问题。
链接攻击的根本原因 在典型的链接攻击场景中,在面对同一攻击向量时,目标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兼容。
- 针对链接攻击形成的根本原因的对策
通过对链接攻击形成根本原因的分析,文章[2]提出了一种使用one-pass消息建立临时会话密钥保证消息的新鲜度的对策。
其核心思想是重用由ECIES建立的对称密钥作为“会话密钥”来完成对身份验证挑战(RAND)的加密和解密。UE在将RAND作为身份验证的输入之前使用密钥进行解密,避免了修改命令。由于该密钥已经被UE和HN在SUPI的加密和解密中建立,因此该过程不需要额外操作。由于加密后的RAND无需被SN解密,因此以上过程对SN透明。
以上对策允许在验证MAC的真实性和有效性的同时完成对新鲜度的检查,从根本上抵御了现存的链接攻击。
基于以上对策,UE接收到一个不属于当前会话的加密(或明文)RAND可能有以下三种来源:
- 消息链接攻击中的重放,因为只有被正确密钥加密的RAND才能够在解密后通过验证。
- 序列号推理攻击中的重放,原因同上。
- 加密SUPI重放攻击中,当HN接收到一个重放的SUCI后也会生成一个错误的RAND,由于RAND没有正确的密钥加密,解密算法最终输出的RAND将于之前不同,因此也无法通过MAC验证。
- 对策如何使用于5G-AKA中
- 初始化阶段
此阶段是UE向HN初始化的过程,如图5所示,为改进的5G-AKA初始化阶段,与图2相比较,图中有下划线所标识的为新增的内容。
改进之后的初始化阶段要求UE与HN存储每次5G-AKA会话建立时所产生的密钥,用于后续的挑战-响应阶段,由于密钥通过KEMECIES建立,因此该过程不需要额外的加密操作,且对所有5G网络规范透明,不会改变消息流。
图5 改进的5G-AKA初始化阶段
- 挑战-响应阶段
该过程为组件间相互身份验证并建立锚密钥的过程。
图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.
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。