5G安全:5G-AKA链接攻击及对策

语言: CN / TW / HK

阅读: 3

一、背景介绍

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和隐藏的SQN HN )。在收到RAND和AUTN后,首先,UE使用MAC检查消息的有效性,如果检查失败,则返回MAC_Failure的消息;接下来,UE通过比较SQN HN 和SQN UE 来检验消息的新鲜度(freshness),如果检查失败,则返回Sync_Failure和AUTS消息,UE使用AUTS消息与HN重新同步;最后,当所有检查都通过时,UE计算响应值RES和锚密钥K seaf ,并将响应值RES发送到HN。

接下来本文将具体介绍以上两个阶段,

  • 初始化阶段

图2 5G-AKA的初始化阶段,其中ECIES由ECIES-KEM和ECIES-DEM表现

如图2所示,其中UE、SN和HN下方括号中的内容已知。在初始化过程中,UE侧通过ECIES组件来对SUPI进行加密隐藏得到SUCI,这也是5G系统相对于3G/4G系统对隐私保护的改进。得到SUCI后,UE将(SUCI,ID HN )发送至SN,SN收到之后将自己的ID SN 加入后,将(SUCI,ID HN ,ID SN )发送至HN,HN再通过ECIES组件将SUCI还原成SUPI,到此初始化过程完成。

  • 挑战-响应阶段

图3 5G-AKA中的挑战-响应阶段

如图3,在挑战-响应阶段,UE和HN通过一系列的挑战-响应进行验证,并与SN建立锚密钥(即K seaf ),该阶段包含了TS 33.501[1]所指定的一系列加密函数,接下来简单介绍挑战响应流程:

  • 在初始化阶段完成后,HN侧会生成一个认证四元组(RAND,AUTN,HXRES,K SEAF ),其计算过程如图中四元组上方的方框中所示,其中RAND是一个128比特的随机数,AUTN是一个认证令牌(包含CONC和MAC值,其中CONC是AK和SQN HN 的异或),HXRES是RAND和XRES的哈希。
  • SN收到HN发送的认证四元组后,将(RAND,AUTN)发送给UE。
  • UE收到(RAND,AUTN)后,首先将AUTN拆分成CONC和MAC,再通过共享密钥k和RAND计算AK,进而与CONC进行异或操作得到SQN HN ,最后计算出MAC值与收到的MAC值进行对比。
    • 如果MAC值相同并且UE侧的序列号小于HN侧的序列号,则完成了对HN的认证,UE侧会生成RES和K SEAF ,将响应值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的SQN UE

  • 加密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和SQN HN 的条件语句。

MAC 验证 时的条件语句 为了确定该条件语句是否为链接攻击产生的根本原因,可以通过判断该条件是否会导致相同攻击向量使得不同的UE产生不同的响应,即该条件可以使得目标UE在接收到某个攻击向量时,可以产生与其他UE不同的响应。

分析发现攻击者可以并且只能通过重放包含目标UE长期密钥k生成的有效消息所构成的攻击向量,才可能使得目标UE与其他UE在MAC验证使具有不同的响应。因此,MAC验证时的条件语句是链接攻击形成的原因之一。该条件语句只能够检查接收消息的真实性,而无法检查它的新鲜度,因此可能会遭受到攻击者使用真实有效但不新鲜消息的攻击。

在5G-AKA中,对新鲜度的检查被推迟到检查SQN HN 时的第二个条件语句,这会导致失败消息链接攻击和序列号推理攻击,甚至也会导致加密SUPI重放攻击。这些看似不同的链接攻击实际由同一根本原因引发,因此可以一并修复。

SQN HN 验证的条件语句   在计算第二个条件语句时,假设对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会话建立时所产生的密钥,用于后续的挑战-响应阶段,由于密钥通过KEM ECIES 建立,因此该过程不需要额外的加密操作,且对所有5G网络规范透明,不会改变消息流。

图5 改进的5G-AKA初始化阶段

  • 挑战-响应阶段

该过程为组件间相互身份验证并建立锚密钥的过程。

图6 改进的5G-AKA的挑战-响应阶段

如图6所示,下划线标识的为新增内容。初始化过程中新增的密钥(即K UE 、K HN )被用于这个阶段,相比于改进前的协议,改进之后的协议有如下几点改变:

第一,HN生成的随机挑战RAND将会使用K HN 加密后再进行传输,而只有使用UE端的K UE 对其进行解密才能通过MAC验证。

第二,HN所生成的HXRES更改为由加密后的RAND计算生成。

第三,UE需要使用K UE 对接收的RAND进行解密之后才能够进行身份验证。

第四,HN对UE发送的重新同步消息(AUTS)进行验证时,需使用K HN 将接收到的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.