<!-- title: 手机出国了，钥匙留在家里 -->

飞机落地，打开手机的那一刻，屏幕左上角跳出一家外国运营商的名字。你大概觉得，所谓漫游就是手机连上了外国的基站——真正的故事比这复杂得多，也有趣得多：**这家外国网络根本不认识你**。它要为你服务，必须向远在千里之外的归属运营商“讨要凭证”；而你凭什么敢把通信交给一个陌生国家的网络？两家运营商之间，凭什么敢互相调用对方的核心网？

这三个问题，就是移动网络安全里最特别的一章：漫游安全。5G 把这段跨国关系彻底重新设计了一遍，核心思想一句话就能说完：**访客可以拿房卡，但永远拿不走主钥匙。**

## 一、酒店前台不会给你保险柜钥匙

先讲一个类比。你出差住酒店，前台要看你的身份证件，确认你确实预订了房间——这叫认证。确认之后，前台给你写一张房卡，房卡只能开你这个房间，退房即失效。整个过程里，酒店从头到尾没有机会碰到你家保险柜的主钥匙。

漫游的信任模型和这个场景几乎一模一样。拜访网络（VPLMN）就是酒店，归属网络（HPLMN）是你办卡的那家运营商，而那张“主钥匙”K，就是你 USIM 卡里那把和归属网络一对一约定的根密钥——它从出厂那天起就没离开过卡片，任何网络、任何时候都拿不到。

拜访网络为你服务所需要的一切——验证你的凭证、推导空口加密钥匙——都由归属网络“现场制作”后递过来，每一份都绑定本次会话、限定用途、用完即废。房卡是派生物，主钥匙才是资产。为什么坚持这样设计？因为拜访网络处在另一个国家的司法与运维环境里，泄密风险天然比归属网络高。钥匙体系只让“最坏情况”局限于一张房卡，而不是整个用户档案。

## 二、漫游安全的特殊之处：两点变三点

非漫游场景的安全是一个“点对点”问题：你和网络互相认证（这是双向认证要解决的事）。漫游场景把两点关系变成了三点，凭空多出三条信任缺口：

```mermaid
flowchart TD
    UE["你的手机"]
    V["拜访网络"]
    H["归属网络"]
    UE -->|出示加密化名身份| V
    V -->|我不认识你 代为求证| H
    H -->|发一次性考卷与房卡| V
    H -->|只认答对考卷的人| UE
```

第一道缺口：拜访网不认识你，需要归属网代为背书。第二道缺口：你不认识外国基站，但你会拿着归属网发的“考卷”去校验它——伪造的基站答不出归属网出的题。第三道缺口最微妙：**两家运营商既是合作伙伴，又是商业竞争者**，它们之间的信令链路要承载调用对方核心网服务的请求，这条链路凭什么可信？

5G 让第三道缺口变得格外尖锐。5G 核心网采用服务化架构，网元之间用 HTTP/2 接口互相调用——本质上就是把核心网内部 API 开放出来。如果漫游信令直接把内部 API 暴露给外国网络，等于把自家机房的 REST 接口挂在了国际链路上。这个架构上的变化，逼着 5G 把“运营商之间的边界”当成一个正式的安全部件来设计。

## 三、历史包袱：SS7 时代为什么出事

要理解 5G 为什么这样设计，得先看上一代设计怎么出的事。

2G/3G 时代运营商之间的信令网叫七号信令（SS7），上世纪七十年代为固定电话网设计、1980 年前后国际标准化。它的信任假设非常朴素：**能接进信令网的，都是持牌运营商，都是自己人。**所以整套协议没有对等认证、没有加密、没有消息级完整性保护——消息内容近乎明文，谁在路上都能读。

后果在几十年后集中爆发：

- 2008 年，研究者第一次公开演示了用 SS7 信令定位手机位置；
- 据《华盛顿邮报》2014 年报道，利用 SS7 漏洞从世界上任何角落追踪全球手机用户，成功率约七成；同年德国研究者演示了通过信令转发通话、诱骗运营商交出临时加密密钥实现窃听；
- 2016 年，挪威最大的运营商 Telenor 因“来自另一家欧洲运营商的异常 SS7 信令”导致约三成网络不稳——那甚至不是蓄意攻击，只是说明信令网脆弱到别人发错包都能伤到你；
- 2017 年，德国 O2 Telefónica 确认攻击者利用 SS7 漏洞绕过银行短信二次验证，盗取用户银行资金——收不到验证码的你，和攻击者登录的是同一个账户；
- 据《金融时报》2026 年 7 月报道，在今年的战争中，一方仍利用 SS7 漏洞定位对方军事人员的手机。

教训浓缩成一句话：**互联互通不等于信任。**4G 换用 Diameter 协议并加了边界代理和过滤规则，但消息本体对中间传输网仍然是可读的，保护以“边界防火墙式规则”为主。下表把三代互联架构放在一起看：

| 维度 | SS7（2G/3G） | Diameter（4G） | SEPP+N32（5G） |
| --- | --- | --- | --- |
| 信任假设 | 网内皆自己人 | 边界过滤为主 | 默认互不信任 |
| 对等认证 | 基本没有 | 网络层为主 | 证书双向认证 |
| 消息加密 | 无 | 可选 | 强制 TLS |
| 消息级保护 | 无 | 无 | 可逐字段保护 |
| 拓扑隐藏 | 无 | 有限 | 强制能力 |
| 典型攻击面 | 定位、短信拦截 | 信息泄露、欺诈 | 证书与配置管理 |

## 四、SEPP：运营商之间的海关

5G 给这段跨国关系配了一个正式的“海关”——安全边界保护代理，缩写 SEPP。按照 3GPP 安全工作组对其漫游安全架构的定义：每个运营商网络在边界部署一台 SEPP，所有跨网信令必须经过它，两台 SEPP 之间的接口叫 N32，目标是让两个国家的网元之间实现**端到端**的安全通信。

它干五件事：对等认证（两边出示证书验明正身）、加密、完整性保护、拓扑隐藏（把自家网元的真实地址和内部名字改写成化名，不让对端摸清自家布局）、消息过滤（不符合漫游协议的请求直接拦下记日志）。一台代理身兼海关的报关、铅封、查验、保密四项职能：

```mermaid
flowchart TD
    subgraph VPLMN["拜访国网络"]
        BS["外国基站"] --> AMF["AMF 与 SEAF"]
        AMF --> VSEPP["拜访侧 SEPP"]
    end
    subgraph HPLMN["归属国网络"]
        HSEPP["归属侧 SEPP"] --> AUSF["AUSF 与 UDM"]
        AUSF --> UPF["UPF 会话锚点"]
    end
    VSEPP <-->|N32 双向认证加密封装| HSEPP
```

一个容易忽略的细节：N32 其实拆成了两个子接口。N32-c 是**协商通道**，两台 SEPP 先用它互验证书、建立信任、商量后面用什么保护模式；N32-f 是**转发通道**，真正承载漫游信令。为什么拆开？因为信任的建立和信任的使用是两回事——先谈拢规则，再按规则跑业务，而且规则可以按对端能力和双方漫游协议逐条链路选择。工程上这也是排障的关键：N32-c 不通，后面一切免谈。

## 五、只锁车厢，还是把货箱也封起来

有工程师会问：两台 SEPP 之间既然跑了 TLS，链路已经加密了，还缺什么？

缺的是对“中间人”的精细控制。跨国信令的传输网往往不是两家运营商直连，而是经过第三方交换商（IPX）转发。TLS 保护的是两台 SEPP 之间这根“管道”，但一旦引入中间转接商，保护在哪终结就变成了部署问题；而消息里不同字段的敏感度完全不同——用户身份、认证向量、钥匙料是绝密；位置、计费参数是机密但可让中转方查阅；路由头则必须允许中转方改写，否则它没法转发。

于是标准提供了两种保护模式，可在 N32 上协商选用：

| 维度 | TLS 模式 | PRINS 模式 |
| --- | --- | --- |
| 保护位置 | 传输层整条管道 | 应用层逐条消息、逐字段 |
| 敏感字段 | 中转方一概不可见 | 加密加签，中转方不可见 |
| 可读字段 | 不可细分 | 仅完整性保护，可读不可改 |
| 可改字段 | 不可细分 | 明确列出，允许中转方修改 |
| 复杂度 | 低 | 高（逐消息签名加密） |
| 典型场景 | 轻量互联、经转接商转发 | 大流量漫游伙伴直连 |

PRINS 的做法借用了 Web 世界的 JOSE 机制（就是签发 JSON Web 签名和加密的那套）：把一条漫游信令里的字段分成三类——加密并保签、仅保签、明文可改。类比就是集装箱运输：车厢照常走、照常中转，但每个货箱贴封条，最敏感的箱子干脆焊死。行业文章提到，早期 5G 漫游为了省事常常只开 TLS 模式、跳过 PRINS——安全性取决于两端的最弱一环，这正是现网评估漫游安全时要盯住的配置项。

## 六、一场跨国认证：考卷和房卡的旅行

现在把镜头对准一次漫游注册。下面这张时序图只讲“东西怎么流”，不展开认证算法本身：

```mermaid
sequenceDiagram
    participant U as 手机
    participant V as 拜访网SEAF
    participant VS as 拜访SEPP
    participant HS as 归属SEPP
    participant H as 归属AUSF
    U->>V: 请求入网 自报化名
    V->>VS: 帮我向归属网讨凭证
    VS->>HS: N32 加密封装
    HS->>H: 拆封 转发请求
    H->>H: 用根密钥现做一份考卷
    H-->>HS: 考卷与标准答案的指纹
    HS-->>VS: N32 加密封装回传
    VS-->>V: 拆封 交付考卷
    V-->>U: 请作答
    U-->>V: 提交答案
    V->>VS: 答案指纹对上了 请发房卡
    VS->>HS: N32 加密封装
    HS->>H: 与原始答案最终核对
    H-->>V: 房卡经原路送达
    Note over U,V: 空口密钥由拜访网用房卡现场派生
    Note over H: 根密钥始终锁在卡与归属网两侧
```

这场旅行里有三处精心设计，值得逐个问“为什么”。

**其一，考卷家里现做、一次一份。**拜访网每次发起认证，都要向归属网讨一份一次性凭证：题目、防伪水印、流水号（防重放）齐备，用过即废。没人囤积考卷，旧考卷也答不了新题。

**其二，标准答案永远不出国门。**归属网下发的不是答案本身，而是答案的哈希指纹；拜访网只能核对“指纹对不对”，最终与原始答案的核对仍由归属网完成。即使拜访网被攻破，攻击者拿到的也只是指纹，反推不出能通过下次认证的答案。

**其三，房卡在认证成功之后才发。**归属网确认你答对后，才从自家保管的中间钥匙现场派生出房卡（示意）：

$$K_{SEAF} = KDF(K_{AUSF},\ \text{本次认证成功上下文})$$

房卡送到拜访网后，拜访网在本地继续向下派生空口和信令所需的全部会话钥匙（示意）：

$$K_{AMF} \rightarrow \{K_{NASint},\ K_{NASenc},\ K_{RRCint},\ K_{RRCenc},\ K_{UP}\}$$

于是熟悉的密钥家谱在漫游时有了一个特殊性质：**这棵树被从房卡处劈成两半**——树根和上半截留在归属侧，下半截在拜访国现场生长。拜访网拿到的房卡只对这一次入网、这一台 AMF、这一种接入类型有效，离开这个上下文就是一张废卡。这就是“访客只拿房卡”的完整含义。

## 七、流量走哪条路：归属路由与本地分流

信令安全解决了，还有一个选择摆在面前：你上网的数据包，是从外国基站直接进当地互联网，还是绕回归属国再出去？这就是归属路由（HR）与本地分流（LBO）之争：

| 维度 | 归属路由 HR | 本地分流 LBO |
| --- | --- | --- |
| 会话锚点 | 归属国 UPF | 拜访国 UPF |
| 时延 | 高（流量绕道回国） | 低 |
| 归属网可见性 | 流量全程可见 | 只见信令不见流量 |
| 策略控制权 | 归属网主导 | 拜访网主导 |
| 典型驱动 | 计费合规、反欺诈、语音漫游 | 上网体验、流量成本 |

这不是纯技术选择，而是主权与合规选择。归属路由下，归属运营商对自己的用户保持完整控制：策略、计费、反欺诈都在自己手里，代价是时延。本地分流下，流量在拜访国直接落地，体验好，但归属网对你的数据包一无所知——它的内容级安全策略全部失效。不同国家的监管要求和商业协议会强制或倾向其中一种，两种模式因此长期共存。理解这一点，你就明白为什么漫游谈判桌上，路由方式常常是和安全条款一起谈的。

## 八、现网实战：这套知识用在哪

**排障顺序有讲究。**漫游用户起不来，先查 N32-c，再查其他——这是有原因的：协商通道是信任之母。检查顺序建议是：TLS 握手是否成功、证书链是否完整、证书是否临近到期；然后是 N32-f 的保护模式两侧是否一致、消息过滤策略是否误杀合法请求；之后才轮到归属侧是否正常下发认证向量；最后才是空口和 AMF 侧。把顺序反过来，常会在错误的方向上耗一整天。

**抓包要换预期。**排查内网 SBI 问题时，工程师习惯了看 HTTP/2 明文；但在 N32 上，你看到的是受保护的消息和拓扑隐藏后的化名，内部网元的真实名字和地址根本不出现——设计如此，它防的既包括外面的窃听者，也包括包括你在内的好奇者。想看明文，只能在自己一侧的 SEPP 内部日志里找。

**几种高频故障模式。**证书到期是最经典的漫游大面积中断根因，证书生命周期监控应当作为 roaming IOT 的必查项；两侧拓扑隐藏配置不一致，会让对端解析消息失败，表现为“握手成功但业务全挂”；过滤策略配得过严，会把伙伴网络的合法服务请求也拦下，日志里表现为成片的拒绝记录。

**常见误解三条。**误解一：“漫游时连的是外国基站，所以没有归属网背书的加密。”——错，空口密钥正是从归属网背书的房卡派生的。误解二：“SEPP 就是运营商防火墙。”——防火墙过滤边界流量，SEPP 还做对等认证和逐字段保护，职责重一个量级。误解三：“既然 LBO 更快，漫游就该全上 LBO。”——快只是半张考卷，另外半张是控制权与合规。

## 常见问题

**Q: SEPP 和 4G 时代的 Diameter 边界代理有什么本质区别？**
A: 4G 的边界代理以规则过滤为主，消息本体对中间传输网可读，加密是可选项。SEPP 的本质区别有三点：默认互不信任（强制双向证书认证）、强制 TLS、并且能把保护做到应用层逐字段（PRINS）。它是从“守大门”到“管每一封信”的升级。

**Q: N32 走专线转接商还是公网互联网？**
A: 两种都允许，前提都是两台 SEPP 之间完成证书双向认证并协商出保护模式。走转接商时要额外想清楚保护模式的取舍——这正是 TLS 模式与 PRINS 模式的分野所在。

**Q: 拜访网拿不到根密钥，凭什么能正常为我服务？**
A: 因为服务所需的每一件东西都是“派生物”：验证你用一次性考卷，加密空口用房卡派生的会话钥匙。根密钥在整套体系里只有两个职责——在归属侧生成考卷、与卡片一起核对答案，从不需要交给任何网络。

**Q: 漫游上网一定要绕回国内吗？延迟怎么办？**
A: 不一定，HR 与 LBO 并存。要看业务对控制权和时延的权衡：语音和敏感业务传统上倾向归属路由，大流量上网常走本地分流。这也是漫游协议里运营商博弈的条款之一。

**Q: NSA 组网的手机漫游也有 SEPP 保护吗？**
A: 没有。NSA 模式锚定在 4G 核心网上，漫游信令走的仍是传统 Diameter 互联；SEPP 与 N32 是 5G 独立组网服务化架构的产物。只有终端和归属网络都以 5G SA 方式接入，跨国信令才会进入这套新体系。

## 参考来源

1. [Signalling System No. 7 - Wikipedia](https://en.wikipedia.org/wiki/Signalling_System_No._7) — SS7 安全漏洞事件年表：2008 定位演示、2014 华盛顿邮报报道、2016 Telenor 事件、2017 德国银行盗刷案
2. [5G Roaming Security - 3GPP](https://www.3gpp.org/technologies/roaming-security-sa3) — 3GPP 官方对 SEPP 与 N32 漫游安全架构的定位说明
3. [SEPP in 5G: How Security Edge Protection Proxy Secures Roaming - 5G/6G Academy](https://www.5g6gacademy.com/learn/sepp-roaming-security) — N32-c/N32-f 子接口划分、PRINS 字段级保护机制与过滤策略详解
4. [Roaming (SEPP / N32) - 5GC Textbook](https://5gctextbook.com/en/level5/roaming/) — SEPP 位于 PLMN 边界、保护跨网服务化接口的架构概览
5. [PRINS or TLS on N32 - P1 Security](https://www.p1sec.com/blog/prins-or-tls-n32-5g-roaming-security-negotiation-sepp) — 两种 N32 保护模式的协商机制与部署实务

---
> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
