<!-- title: 出了基站，谁在护送你的数据 -->

# 出了基站，谁在护送你的数据：回传安全与IPSec原理

## 一个被忽略的空档

想象一下寄快递的完整旅程。你把贵重物品交给快递员时，当面核对身份、封箱贴防拆条——这一步做得很严。但如果快递公司只在“你到网点”这一段负责，上了高速公路之后，箱子敞着口在车厢里颠簸几百公里，你会放心吗？

移动网络里你的数据就是这么旅行的。手机到基站之间那段“空口”，安全做得非常严密：身份认证、加密、完整性校验一层不缺（这个话题此前几期已经拆过：空口的流密码怎么做到一字一密、认证时怎么互相对暗号）。可是数据出了基站，情况完全变了——它变成普通的IP包，跑在光纤上。而这段光纤，往往不是运营商自己埋的。

这就是本文的主角：**回传安全**。它是移动网络安全体系里的“第二段保护”，标准上叫“网络域安全”。对1-3年的无线/传输工程师来说，这也是现网排障时最容易被忽略的一段：信令都通了，业务就是不通，问题很可能藏在这条看不见的隧道里。

## 为什么空口加密“管不到”这一段

先理解安全体系的一个基本思想：**加密是分段交付的，不是一保到底的。**

空口加密的密钥，是手机和基站之间协商出来的，只有这两端知道。数据到达基站时，空口加密就被解开了——基站必须看到明文IP包，因为它要做调度、路由、头压缩。解密之后，这个包就以“裸奔”状态离开基站。

在2G/3G时代，这不是问题。那时候基站到控制器之间用的是运营商自建的E1专线、微波链路，物理上就是封闭的，想窃听得爬到线路上去。运营商默认：“出了空口，都是自家地盘。”

4G以后，前提条件崩塌了。基站全面IP化，回传流量跑在以太网和光纤上，而这些光缆资源大量是**租用的**——裸纤、波分通道、甚至跑在第三方运营商的传输环里。在光网络里“分光窃听”是个成熟手段：一个耦合器夹进光缆，不需要中断业务，所有流量就被镜像走了。你的语音包、短信、上网数据，就这么明文跑过一段不属于你的路。

于是安全体系必须回答一个问题：**两个互相不信任、或者不完全信任的网络域之间，怎么安全地传数据？** 答案就是给回传这段，再套一层独立的保护——IPSec隧道。

```mermaid
flowchart TD
    UE["手机"] -->|第一段保护: 空口加密| GNB["基站"]
    GNB -->|IPSec隧道加密| RT["回传光传输网"]
    RT --> GW["核心网安全网关"]
    GW -->|解密还原| CN["核心网"]
    RT -.->|第三方或租用光缆| THIRD["可能被分光窃听"]
```

要强调的是：这第二段保护和空口那段是**完全独立**的。密钥不同、算法可能不同、加密的范围也不同（空口加密只保护用户数据，回传IPSec连内层IP头一起藏起来）。安全设计上这叫“纵深防御”——攻击者攻破任何一段，拿到的都只是密文。

## IPSec的两个组件：管事的和干活的

IPSec不是单一协议，它是一个工具箱，里面最重要的两件东西经常被混为一谈：

| 对比项 | ESP（封装安全载荷） | AH（认证头） |
|---|---|---|
| 干什么 | 加密＋完整性校验 | 只做完整性校验，不加密 |
| 校验范围 | ESP头到尾部 | 包括外层IP头的不变字段 |
| 过NAT设备 | 配合NAT-T可以 | 不行，NAT改IP头会导致校验失败 |
| 现网地位 | 绝对主流 | 基本弃用 |

AH为什么死了？它的设计是把外层IP头的一些字段也纳入防篡改校验。这本是优点（连源地址造假都能防），但NAT设备的工作恰恰就是**改**IP头——改端口、改地址。包头一改，AH的校验值对不上，包直接被丢弃。而现实中回传网络里NAT随处可见，AH寸步难行。ESP把“能变的”放外面、“要保护的”放里面，反而活了下来。这个案例值得记住：**把校验范围画得越大，协议对环境的适应性就越差。**

## 隧道模式的封箱艺术

ESP有两种工作模式，理解它们的差别，关键是想清楚“封箱封到哪一层”：

| 对比项 | 传输模式 | 隧道模式 |
|---|---|---|
| 保护对象 | IP包的载荷 | 整个原始IP包 |
| 原始IP头 | 保留在明文区 | 被整体加密藏起来 |
| 外层新IP头 | 无，还是原头 | 有，新增一层 |
| 隐藏通信双方身份 | 不能 | 能（只暴露隧道两端） |
| 典型用途 | 主机对主机 | 网关对网关（回传场景） |

回传场景清一色用**隧道模式**：基站把原始IP包整个塞进保险箱，外面贴一张新标签——收件人是核心网安全网关。沿途所有传输设备只能看到“基站到网关有条隧道”，看不到里面跑的是谁的流量、去往哪个核心网元。

拆开看一个隧道模式ESP包的解剖结构：

```mermaid
flowchart TD
    A["外层IP头: 明文, 供沿途路由"] --> B["ESP头: SPI门牌号 + 序号"]
    B --> C["密文区: 完整的原始IP包"]
    subgraph ENC["这一整段被加密"]
      C
      D["填充 + 类型标记"]
    end
    D --> E["ICV完整性校验值"]
```

三个细节值得停下来想：

**SPI是什么？** 一台安全网关可能同时维护着几千条到不同基站的隧道，收到一个ESP包，它怎么知道该用哪把钥匙解密？靠SPI（安全参数索引）——它就是隧道快递单上的“门牌号”。发送方给每条隧道编号，接收方拿着这个号去查自己的安全关联数据库（SAD），找到对应的算法和密钥。

**序号是干什么的？** 防重放。攻击者虽然解不开你的密文，但他可以把截获的合法包**原样再发一遍**——比如重发一条“释放承载”的信令包，照样能搞破坏。所以每个ESP包带一个递增序号，接收方维护一个滑动窗口（典型宽度64），窗口外的太新没见过就推进窗口，窗口内没见过的标记已收，**见过的一律丢弃**。这就是为什么重放攻击在IPSec面前基本无效。

**ICV怎么算的？** 完整性校验值是对“受保护区域”用带密钥的哈希函数算出来的指纹：

$$ICV = \mathrm{HMAC}(K_{int},\; SPI \,\|\, 序号 \,\|\, 密文 \,\|\, 尾部)$$

注意密钥$K_{int}$和加密密钥是**两把不同的钥匙**，都从IKE协商的主密钥派生。改密文一个比特，ICV对不上；连改ICV本身，没有钥匙也算不出合法值。

## IKEv2：两个陌生机器怎么隔空换钥匙

现在到了整个体系最精妙的部分。基站和安全网关往往是第一次见面，中间隔着完全不可信的传输网。它们要在这样的信道上，商量出只有彼此知道的加密钥匙——这可能吗？

可能，靠**Diffie-Hellman密钥交换**。用一个经典的调色类比：两人各自秘密选一种颜色（私有数$a$和$b$），先公开混合一种底色（公开的$g$和$p$），交换各自混好的中间色，然后各自再混入自己的秘密色——最终两人得到完全相同的颜色。而窃听者全程只看到中间色，想从中间色反推秘密色，数学上等价于解离散对数问题，计算上不可行：

$$A = g^{a} \bmod p, \quad B = g^{b} \bmod p$$
$$K_{AB} = B^{a} \bmod p = A^{b} \bmod p = g^{ab} \bmod p$$

但DH交换有个致命漏洞：它防窃听，不防**冒充**。中间人可以分别跟基站和网关各做一次DH，两头骗。所以DH之外必须还有一步：**证明“你就是你”**——用预共享密钥、数字证书或EAP认证给整个交换签名。

IKEv2把这些步骤编排成两阶段。看整个流程：

```mermaid
sequenceDiagram
    participant B as 基站
    participant G as 安全网关
    B->>G: 第一阶段: 我的DH公钥和随机数
    G->>B: 第一阶段: 我的DH公钥和随机数
    Note over B,G: 各自算出相同的隧道根密钥
    B->>G: 第二阶段: 身份和证书, 全程加密
    G->>B: 第二阶段: 验签通过, 回身份和证书
    Note over B,G: 彼此确认对方是真的
    B->>G: 派生加密和校验两把子钥匙
    G->>B: 隧道就绪, 业务可以跑了
```

这里最值得体会的是**顺序设计**：身份和证书是在加密信道里交换的。为什么？如果在明文阶段就亮明身份，任何扫描者都能枚举全网有哪些基站、哪个厂家的网关——这些信息对攻击者是金矿。先建加密信道、再验明正身，让“这个网络长什么样”本身也成为机密。顺带一提，早期版本曾有一种简化协商模式，把身份放在明文里换速度，结果预共享密钥可以被离线暴力破解，新版本直接砍掉了这种模式——**省下的那一次往返，代价是整个身份体系的暴露。**

隧道建成后也不是一劳永逸。密钥有生命周期，到期前双方要重新走一遍DH（叫重协商或rekey），让旧密钥作废。这样即使某把钥匙日后被破解，泄露的也只是那一段时间的流量，历史流量依然安全。

## 认证凭据三选一：现网怎么选

| 凭据方式 | 原理 | 优点 | 软肋 |
|---|---|---|---|
| 预共享密钥 | 两端预配同一口令 | 配置简单、无PKI依赖 | 千站千钥管理爆炸；口令弱可爆破 |
| 数字证书 | 网关做CA，给每站发证 | 单台设备可自动验证全网 | 需建证书体系；过期即批量故障 |
| EAP扩展认证 | 复用类似空口的挑战响应 | 可对接集中认证体系 | 部署复杂度最高 |

万级站点规模的现网，几乎必然走向证书方案——手工给一万台基站配PSK不现实，而证书可以自动化签发、轮换、吊销。代价是引入了新的故障模式，后文排障部分会看到。

## 5G把要求收紧了

从4G开始，标准就要求基站侧支持IPSec保护回传接口；到了5G，这套“网络域安全”框架进一步收紧：基站与核心网之间的接口、基站与基站之间的接口、以及5G特有的集中单元与分布单元之间的接口，都纳入了强制支持范围；运营商之间的漫游接口则是历来最严格的——IPSec不带商量。运营商**自己网络内部**的那段是否启用，标准留了弹性给运营策略，但趋势非常明确：明文回传正在被逐步淘汰。

这里有个常见疑问：前传那段（基站内部单元之间的超短距离连接）怎么反而不常用IPSec？因为它有硬约束——时延预算极紧，协议里为加密预留的时间根本不够，每包加密的开销会直接吃掉前传的毫秒级预算。工程上更常用的是另一个工具：**MACsec**（二层链路加密），在网卡硬件里逐跳加密，时延确定、吞吐无损，代价是只保护单跳而非端到端。一跳一锁的链条锁，和一把通到头的隧道锁，各有各的适用位置。

## 现网排障：隧道死法大全

理解了原理，再看现网那些“玄学故障”，很多就通透了。下面这棵决策树是回传排障的通用路线：

```mermaid
flowchart TD
    P["隧道已建但业务不通"] --> Q1{"小包ping通吗"}
    Q1 -->|通| Q2{"大包也通吗"}
    Q1 -->|不通| K1{"SCTP信令能建吗"}
    Q2 -->|大包丢| F1["怀疑MTU分片黑洞"]
    F1 --> F2["核对两端MTU与MSS钳位"]
    Q2 -->|都通| F3["查加密引擎与QoS标记"]
    K1 -->|能建| F4["查SPI与流量选择器"]
    K1 -->|不能建| F5["查IKE认证与证书有效期"]
```

**第一个经典陷阱：MTU黑洞。** ESP封箱要在原始包外面加外层IP头、ESP头、校验值，典型开销七十余字节。内层1500字节的满载包，封完就超过链路MTU，必须分片。而UDP业务包默认不带“禁止分片”之外的协商，中间某台设备丢弃分片，结果就是：**小包ping全通，大包全丢**——网页打不开、文件传不动、语音却正常。这是回传IPSec最著名的手筋，解法是两端钳制TCP MSS、或调低隧道内接口MTU。记住这个症状组合，能帮你少走两天弯路。

**第二个：rekey失败导致的静默死亡。** IKE重协商在密钥到期时自动发生，如果那一刻因为NTP时间漂移、证书刚过期、瞬时丢包而失败，隧道不会报错退出，而是**流量悄悄变黑洞**——信令看一切正常，业务就是不通。所以成熟网络一定配死亡对端检测（DPD）：定期发探测包，若干次无响应就拆除重建。用机制对抗静默失败，这是所有高可用系统的共同哲学。

**第三个：证书过期引发的批量雪崩。** 几百台基站同一天集中掉线、重连后又掉？先查安全网关下发的证书链有效期。更隐蔽的是**时间错误**：某站NTP失联后时钟漂回过去，证书在它眼里“尚未生效”，IKE直接拒绝。证书体系把信任自动化了，也把对**全网时间同步**的依赖埋进了每一台设备。

**第四个：性能与QoS的隐形税。** 加密是有算力的代价的，大流量站点要看设备加密引擎的吞吐规格，超出就丢包。另外外层头会“遮住”内层的QoS优先级标记，需要在隧道入口把内层的优先级字段**复制到外层**，否则你精心规划的调度策略在传输网里全部失效——表现为：拥塞时段，走IPSec的业务先劣化。

## 常见问题

**Q: IPSec和TLS都是加密，区别到底在哪？**
A: 工作的层不同。TLS在传输层之上，保护的是“某个应用连接”（比如网页），底层必须是TCP；IPSec在网络层，保护的是“所有IP包”——不管里面是SCTP信令、UDP用户面还是PING。基站到核心网要保护的是一整箱协议混杂的流量，所以选IPSec这种“网络层保险箱”；手机App访问网站只保护一条连接，TLS更轻量。一个保网，一个保流。

**Q: 隧道模式下外面那层新IP头，暴露了什么信息？**
A: 只暴露隧道两端——基站的回传地址和安全网关的地址。原始包里的真实源（哪个核心网元）、真实目的地（哪个PLMN）全在密文里。攻击者能画出“基站到网关”的拓扑，但画不出里面的业务拓扑。这就是用暴露最小化换路由可行性的经典折中：外层头必须明文，否则沿途设备根本不知道往哪转。

**Q: IKE和ESP是什么关系？为什么需要两个协议？**
A: 一个管钥匙，一个干活。IKE负责“见面、验身份、商量密钥”；ESP负责“用商量好的密钥真正加解密每个包”。分开的好处是各司其职：换密钥时（rekey）业务不中断——新ESP密钥生效瞬间切换，旧密钥延迟销毁。如果加解密和密钥管理搅在一个协议里，每次换钥匙都要断流。

**Q: 抗重放窗口为什么通常是64，不是越大越好？**
A: 窗口越大，越能容忍乱序，但状态表也越大，且窗口内“已收标记”越多，误判新包为重放的风险越低、可重放的余地反而越大。64是在典型网络乱序程度（轻微）和内存开销之间的工程平衡点。回传网络乱序一般不严重，64足够； satellite之类的长肥管道场景才会调大。

**Q: 空口已经有加密了，回传IPSec是不是多余的双保险？**
A: 不是多余，是必需。因为两段保护的对象和威胁模型完全不同：空口加密防的是“无线环境里的窃听者”，且密钥在基站处就终结了；回传威胁来自“有物理机会碰光缆的人”，包括租用光缆上的第三方。纵深防御的意义正在于此——任何单段被攻破或被配置遗漏（比如某段接口忘了开保护），另一段仍然兜底。安全设计里，假设任何一段保护都可能有失效的一天。

## 参考来源

1. [IPsec - Wikipedia](https://en.wikipedia.org/wiki/IPsec) — ESP封装结构、传输/隧道模式、抗重放窗口与AH弃用原因的权威综述
2. [Internet Key Exchange - Wikipedia](https://en.wikipedia.org/wiki/Internet_Key_Exchange) — IKEv2两阶段协商流程与认证机制
3. [Diffie–Hellman key exchange - Wikipedia](https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange) — DH密钥交换的数学原理与调色类比出处
4. [What is IPsec? - Cloudflare Learning](https://www.cloudflare.com/learning/network-layer/what-is-ipsec/) — 面向工程师的IPSec通俗讲解
5. [IEEE 802.1AE (MACsec) - Wikipedia](https://en.wikipedia.org/wiki/IEEE_802.1AE) — 前传场景逐跳链路加密的替代方案

---
> 本文由「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)
