首页 › deep-tech › 5G为何不怕伪基站:三道防线

5G为何不怕伪基站:三道防线图解

一、从一个真实的攻击说起

2017年前后,国内外媒体多次报道过一类设备:一个背包大小的“伪基站”,往人群密集处一放,周围手机信号格突然从4格跌到1格再弹回来,随后手机收到一条“运营商官方号码”发来的钓鱼短信。这类设备有个学名,叫 IMSI Catcher(IMSI捕获器),业内也称"StingRay"(美国某厂商的产品名,后来成了这类设备的代称)。它的工作原理并不复杂,甚至可以说是踩着2G/3G/4G安全设计的三个“历史遗留”缺口走过来的:

  1. 网络从不自证身份:GSM协议里,手机只验证SIM卡在网络面前“是谁”,从不验证网络是不是真网络。伪基站只要装得像,手机就认。
  2. 身份明文裸奔:手机接入网络时要上报IMSI(国际移动用户识别码,相当于你手机在网内的身份证号),2G时代这个号码是明文传输的。伪基站只要“接住”它,就完成了对目标的识别与追踪。
  3. 空口不加密或弱加密:2G的A5/1流密码早已被证明可以在极短时间内破解,而很多伪基站干脆通过拒绝协商,让手机回退到“不加密”模式工作。

要理解5G为什么让这类设备“大面积失业”,最好的办法不是背协议,而是顺着攻击者的思路走一遍,看看5G设计者在这三个缺口的每一个上面,各砌了一堵墙。这就是本文要讲的空口安全三道防线:SUCI身份隐藏、双向认证、强制完整性保护。

二、伪基站是怎么得手的:攻击流程图解

先把2G/4G时代伪基站的典型作案流程画出来,后面每一道防线,都是针对这个流程中某一步的精确反制。

sequenceDiagram
    participant A as 攻击者(伪基站)
    participant U as 受害手机
    participant N as 真实运营商网络

    A->>U: 1. 以超大功率广播"信号很强"的假小区
    Note over U: 手机发现"信号更好"的小区<br/>重选/切换过去
    U->>A: 2. 回复位置更新/接入请求
    A->>U: 3. 发起身份请求(Identity Request)
    U->>A: 4. 明文上报IMSI
    Note over A: 攻击者完成目标识别/追踪<br/>或直接伪造短信下发
    A-->>U: 5. 用假身份下发"10086"钓鱼短信
    Note over N: 全程真实网络毫不知情<br/>手机可能被"吸走"脱离服务

注意几个关键点:伪基站的第一步永远是用功率欺负真基站——广播一个允许重选的更强信号,把手机“吸”过来;而第4步的明文IMSI,是整个攻击链的核心战利品。知道了IMSI,攻击者就能把“空口里那台匿名设备”和“某个具体的人”关联起来,这正是定位追踪类设备存在的意义。

理解了攻击,下面开始逐道拆解5G的防线。

三、第一道防线:SUCI —— 身份的“隐身术”

3.1 从“报身份证号”到“报一次性加密信封”

5G之前的接入流程里,手机第一次出现在一个新网络面前,可能被要求上报SUPI(Subscription Permanent Identifier,用户永久标识,通常就是IMSI)。只要有一次明文上报,攻击就成功了。

5G的设计思路很直接:手机永远不在空口上报明文SUPI,上报的是SUCI(Subscription Concealed Identifier,用户隐藏标识)。SUCI的本质是:用归属运营商网络的公钥,对SUPI做了一次椭圆曲线加密(ECIES方案),只有归属网络手里对应的私钥能解开。

一个直白的类比:

你的身份证号(SUPI)不再直接示人,而是放进一个只有你户籍所在地公安分局能打开的保险箱(SUCI)里。路上任何人——包括你当前所在城市的外地网点——都只能转交这个保险箱,没有开箱能力。

这带来一个非常重要的架构含义:解密用户身份的权力,被唯一地收归归属网络。漫游时,拜访网络(VPLMN)即使拿到了SUCI,也解不开,必须原封不动转交给归属网络(HPLMN)的鉴权服务功能去处理。攻击者截获再多SUCI,拿到的也只是“一堆每次都可能不同的一次性信封”。

3.2 SUCI的结构:一层层拆开看

组成部分 内容 直觉理解
SUPI类型 IMSI / 网络标识等 说明信封里装的是哪种证件
归属网络标识(MCC+MNC) 明文 信封上写着“投递到哪个公安分局”
路由指示符 明文(可选) 分局内部的“收发室分拣号”
保护方案 通常为ECIES方案A/B 声明“这个信封用的是什么锁”
ECIES归属网络公钥标识 明文 声明“用哪把公钥上的锁”
加密后的 concealed 值 密文 真正的“箱内物品”,含临时公钥与密文

对比一下4G时代被诟病的场景,差异一目了然:

维度 4G(LTE)时代 5G时代
空口身份上报 GUTI可用,但首次接入/寻呼不到时可被要求上报明文IMSI 只上报SUCI,协议上不存在明文SUPI上报流程
截获后果 可直接关联到具体用户 得到一次性密文,无法关联
谁能解开身份 服务网络即可 仅归属网络持有私钥
临时身份机制 GUTI(5G中对应5G-GUTI) 5G-GUTI保留,SUCI作为兜底但已加密

3.3 ECIES到底做了什么:三步的直觉

椭圆曲线积分加密方案(ECIES)听起来唬人,拆开就是三步:

  1. 手机生成一把一次性临时密钥对,把临时公钥放进信封;
  2. 用“自己的临时私钥 + 归属网络公钥”通过椭圆曲线运算协商出一个共享秘密,从共享秘密派生出加密密钥和MAC密钥,把MSIN(IMSI中真正标识用户的主体部分)加密并附上完整性校验;

$$ \text{SharedSecret} = d_{UE} \times (k_{HN} \times G) \quad\Rightarrow\quad (K_{enc}, K_{mac}) = \text{KDF}(\text{SharedSecret}) $$

其中 $d_{UE}$ 是手机的一次性私钥,$k_{HN} \times G$ 是归属网络公钥($G$ 为椭圆曲线基点)。椭圆曲线的性质保证:攻击者即使同时看到两个公钥,也算不出共享秘密——这是椭圆曲线离散对数难题在保护你的每一次开机。

  1. 归属网络用自己的长期私钥反向算出同一个共享秘密,解密还原SUPI。

由于每次开机/注册手机都换新的临时密钥对,同一部手机每次注册产生的SUCI都不同——这直接废掉了“通过固定标识追踪特定用户”的攻击手法。

四、第二道防线:双向认证 —— 网络也要“自证清白”

4.1 2G/3G/4G的尴尬:只有单边验票

GSM以来的鉴权,逻辑上是“网络验你”:网络出一道题(随机数RAND),SIM卡用密钥K算出答案(RES),网络比对。整个过程里,手机对网络的身份验证非常有限——LTE时代虽然引入了AUTN令牌让USIM可以验证网络,但对“我当前驻留的这片信号到底是不是我的运营商”这个问题,协议层面始终留有模糊地带。伪基站正是活在这个模糊地带里:它不打算解开你的加密,它只是装得足够像,骗你把身份交出来、把消息收下去。

5G把这件事变成硬性规则:鉴权必须是双向的。以主流的5G-AKA为例,手机侧的USIM在收到网络下发的鉴权五元组后,会做三件事:

  1. 用根密钥K验算AUTN中的消息鉴权码(MAC),确认“这道题真的是归属网络出的,路上没被篡改”;
  2. 检查AUTN中的序列号SQN是否在合理范围内,确认“这道题不是攻击者录下来重放的旧题”;
  3. 任何一步失败,手机会明确拒绝鉴权、不上报身份、不驻留——伪基站连“骗手机说话”的机会都拿不到。

4.2 5G-AKA双向认证时序(简化版)

sequenceDiagram
    participant U as UE(手机+USIM)
    participant S as SEAF(拜访/服务网络)
    participant H as AUSF/UDM(归属网络)

    U->>S: 1. 注册请求(携带SUCI)
    S->>H: 2. 转交SUCI请求鉴权材料
    Note over H: 只有归属网络能解开SUCI<br/>还原出SUPI与根密钥K
    H->>H: 3. 生成RAND+AUTN(含MAC/SQN)
    H-->>S: 4. 下发鉴权向量(RAND,AUTN,XRES等)
    S->>U: 5. 鉴权请求(RAND, AUTN)
    Note over U: 6. USIM验MAC → 网络是真的?<br/>验SQN → 不是重放?
    U->>U: 7. 用K算出RES与锚点密钥
    U->>S: 8. 鉴权响应(RES)
    S->>S: 9. 比对RES与H提供的期望值
    Note over U,S: 10. 双方各自派生出锚点密钥KSEAF<br/>后续NAS/RRC/UP密钥全部由此派生

请把注意力放在第6步的注释框上——这是2G时代完全不存在、伪基站最恨的一步。手机第一次拥有了明确的、可执行的“质疑网络”的能力:验MAC不过→网络是假的;SQN异常→有人在重放旧信令。两种情况都会导致手机拒绝配合。

4.3 为什么5G还要准备第二套鉴权:EAP-AKA'

5G其实规定了两套双向认证方法:5G-AKA和EAP-AKA'。很多刚入行的同事会问:既然5G-AKA是4G-AKA的直系改良,为什么还要多一套EAP方法?理解设计意图比记住结论重要:

维度 5G-AKA EAP-AKA'
比对位置 服务网络(SEAF)比对RES 归属网络主导、端到端比对
UE对成功的确认 间接(安全激活成功即佐证) 显式(收到EAP-Success)
密钥锚定归属网络 是 是(且显式绑定网络名)
对USIM的要求 4G USIM基本可用 4G USIM基本可用
典型取舍 快、信令省 逻辑更严密、归属网络掌控强

运营商现网以5G-AKA为主(省信令、快),EAP-AKA'多见于特定场景。两者都是双向认证——“伪基站能通过鉴权”这条路,无论哪套方法都被堵死了:它没有你的K,既算不出合法RES,也造不出能通过手机验证的AUTN。

五、第三道防线:强制完整性保护 + 全面的空口加密

5.1 LTE留下的那道门缝

很多人不知道,4G空口的用户面加密是可选的,用户面完整性保护则干脆没有——LTE只对信令(RRC/NAS)做完整性保护。这在当年被安全界反复批评:只要攻击者能物理上覆盖某片区域,理论上可以对用户面数据做篡改、注入、选择性丢弃而不被察觉。

5G把门彻底关上:用户面完整性保护成为强制能力,且所有安全激活必须先完整性、后加密。手机和网络的协议栈里,完整性保护开启后每一个PDCP PDU都带着MAC-I,接收方验算不过就丢弃并计数上报——篡改空口数据的代价从“无声无息”变成了“必然被发现”。

5.2 安全是怎么被“打开”的:安全模式命令流程

前面两道防线解决了“你是谁”“网络是真的吗”,第三道防线解决“从什么时候起、用什么算法保护空口”。这个过程由NAS安全模式命令(Security Mode Command)和AS安全模式命令两级流程完成,顺序是精心设计的:先NAS后AS,先完整性后加密。

flowchart TD
    A[鉴权成功<br/>双方持有锚点密钥] --> B[网络根据UE上报的<br/>5G安全能力选择算法]
    B --> C[NAS安全模式命令<br/>携带选中的NIA/NEA算法+重放的完整注册请求]
    C --> D{UE验证NAS-MAC<br/>并核对收到的安全能力与自己发出的一致?}
    D -- 不一致: 疑似中间人篡改<br/>拒绝并释放 --> X[注册失败]
    D -- 一致 --> E[开启NAS完整性保护+加密<br/>上行/下行NAS信令受保护]
    E --> F[AS安全模式命令<br/>RRC层算法激活]
    F --> G{RRC MAC验证通过?}
    G -- 否 --> X
    G -- 是 --> H[RRC完整性+SRB加密开启]
    H --> I[DRB用户面加密开启<br/>UP完整性按需/协商开启]
    I --> J[空口三面受保护:<br/>NAS信令 / RRC信令 / 用户面数据]

这个流程里藏着一个精妙的防中间人细节:NAS安全模式命令中会把UE此前上报的“5G安全能力”(即这台手机支持哪些加密/完整性算法)原样带回来,UE必须核对自己当初发的能力列表和现在收到的是否一致。为什么?因为在没有安全保护的“裸奔窗口期”,攻击者可能篡改能力列表——逼你降级到弱算法甚至“零算法”。带回校验这个动作,把这个降级攻击的口子也焊死了。

5.3 算法菜单:NEA与NIA

5G空口算法成对出现:NEA(加密算法)和NIA(完整性算法),同族编号:

算法 全称 说明
NEA0 / NIA0 空算法 加密为“不加密”(受严格策略限制);完整性无NIA0空转用于受保护面
NEA1 / NIA1 SNOW 3G 3G时代延续的流密码家族,兼容老芯片
NEA2 / NIA2 AES(CMOA/CTR模式组合) 主力算法,现网大多数设备首选
NEA3 / NIA3 ZUC(祖冲之算法) 中国自主设计的流密码,与SNOW 3G同代际强度

网络按“双方都支持的最强算法”原则选择。这里有个现网实战中非常经典的坑,放在后文调试陷阱里讲。

5.4 防重放:COUNT把每包数据都编上号

加密和完整性保护都依赖一个单调递增的计数器——COUNT(NAS层与PDCP层各有,由PDCP序列号加超帧号等高位拼接而成)。它的作用类似快递单号:每一个受保护的PDU都有唯一编号,接收方校验编号的连续性与单调性。

六、把三道防线拼成一张图

flowchart TD
    subgraph 攻击手法
        A1[截获用户身份<br/>定位追踪]
        A2[伪装网络<br/>骗取信任/下发钓鱼]
        A3[篡改/注入/重放<br/>空口数据]
    end
    subgraph 5G三道防线
        B1[SUCI<br/>椭圆曲线一次性加密信封]
        B2[双向认证<br/>5G-AKA / EAP-AKA']
        B3[强制完整性+加密<br/>算法协商+COUNT防重放]
    end
    A1 -.被瓦解.-> B1
    A2 -.被瓦解.-> B2
    A3 -.被瓦解.-> B3
    B1 --> B2 --> B3
    B3 --> Z((伪基站攻击链断裂))

三道防线不是并列选项,而是串联的必要条件:没有SUCI,伪基站至少还能干“追踪器”的老本行;没有双向认证,手机会被吸到假小区里失去服务;没有强制完整性,前两道防线的成果可以被数据层面的篡改绕开一部分。这就是5G安全“纵深防御”设计的直观体现。

七、实战连接:这些原理在现网哪里用得上

1. 抓包看注册流程时,你要能认出SUCI。 用抓包工具分析5G注册(Registration Request)时,常见的“怪现象”是:同一个用户每次注册,身份字段内容都不一样——这不是异常,正是SUCI的一次性临时密钥在起作用。如果你看到某些终端在Registration Request里“意外地”携带了明文形式的标识,那大概率是终端实现问题或特殊类型标识(如使用网络提供的5G-GUTI则本就是临时身份)。

2. 排查“安全模式失败”类接入问题。 现网接入失败中有一类根因是算法协商不匹配:核心网/基站按运营商安全策略只允许NEA2/NIA2起步,而这台终端(常见于行业模组、早期芯片)只实现了NEA1/NIA1,双方找不到交集,安全模式命令被拒或终端直接释放。判定思路:看失败发生在NAS SMC还是AS SMC,再看两侧能力列表的交集——这就是第5.2节那张流程图的工程价值。

3. “先完整性后加密”不是教条,是调试线索。 如果排查中发现在信令能走到安全激活、但激活后立即异常的案例,优先检查完整性保护配置(NIA是否配成无效值、USIM算法能力)再查加密——因为按协议时序,完整性验证失败会直接终止流程,根本轮不到加密生效。

4. USIM的“5G就绪”问题。 部分老卡在5G网络下鉴权异常,本质是卡内算法/鉴权能力问题。这也解释了为什么换5G手机有时还需要换卡——不是营销话术,而是双向认证和SUCI计算都需要USIM具备相应算力与密钥管理能力。

常见调试陷阱: - 把“SUCI每次都变”误判为身份异常,发起不必要的投诉排查; - 在实验室把NEA0(不加密)当调试捷径长期开启,忘了生产网安全策略会直接拒绝降级终端; - 忽略安全能力列表篡改校验这一机制,把终端被拒误诊为无线覆盖问题。

八、必须诚实地讲:5G安全不是“无敌”

教科书式的三道防线讲完了,但一个面向工程师的科普有责任指出边界:

常见问题

Q1: SUCI和5G-GUTI都是“临时身份”,它们是一回事吗? A: 不是,而且区别很关键。5G-GUTI是网络分配的临时标识,用于已注册用户后续交互时避免暴露永久身份,类似4G的GUTI;SUCI是手机自己用归属网络公钥加密生成的,主要用于初始注册、网络拿不到有效GUTI时的场景。GUTI明文传输但本身随机、可被网络随时更换;SUCI连“关联到某个长期固定值”的可能性都被加密消除了,两者是互补而非替代关系。

Q2: 伪基站既然不能通过鉴权,那它广播的信号为什么手机还会看到? A: 广播(小区选择/重选阶段)本来就不需要鉴权——手机读系统消息、比较信号强度是物理层和RRC层的动作,发生在任何安全流程之前。5G防线的意义在于:手机即使驻留上了假小区,后续的注册/鉴权也会失败,手机随即拒绝并重选,攻击者得不到身份、发不出(会被验证的)合法信令。也就是说,5G不能阻止伪基站“喊话”,但能保证手机“不信、不答、不泄露”。

Q3: 用户面完整性保护既然这么好,为什么现网常常默认不启用? A: 它是强制能力、按需启用。原因很实际:完整性校验要求PDCP层对每个用户面包做MAC计算与比对,对基带处理能力有额外开销,而绝大多数空口篡改攻击在运营商组网下威胁有限(空口加密已经覆盖了窃听面)。所以典型策略是:默认开启加密、完整性保护按网络策略对特定5QI(如高安全需求业务)启用。调试时如果发现某业务延迟略高于预期,可以查一下UP完整性是否被开启。

Q4: 5G-AKA和EAP-AKA',运营商会怎么选? A: 主流公网以5G-AKA为主:信令轮次少、时延低,对海量移动宽带用户足够。EAP-AKA'的价值在于归属网络主导性和显式成功确认,常见于对安全等级要求更高的场景(如部分物联网、与企业专线/切片相关的接入)。对工程师来说,两者在抓包中的信令形态完全不同(后者带EAP消息封装),排查鉴权问题时要先分清现网用的是哪套。

Q5: 手机怎么知道该用归属运营商的哪把公钥加密SUCI? A: 卡和网里都存了“钥匙柜清单”:USIM里预置(或由归属网络通过OTA更新)一组“公钥标识→公钥”的映射,网络侧广播的系统中也带有当前使用的保护方案与公钥标识。手机加密时在SUCI头部写明“我用了哪把锁”,归属网络按标识取对应私钥解密。如果两边清单不同步(比如新发卡用户碰到老版本网络配置),就会出现解密失败导致的注册失败——这是5G早期现网真实出现过的联调问题类型。

参考来源

  1. 3GPP官方网站 — 空口安全机制的正式定义出处(安全架构与算法相关工作组文档),本文未引用具体规范编号,原理细节以其为准
  2. 《5G核心网原理与实践》(爱卫生著)— 本文SUCI结构与鉴权流程叙述参考的中文体系化教材

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入