想象一下寄快递的完整旅程。你把贵重物品交给快递员时,当面核对身份、封箱贴防拆条——这一步做得很严。但如果快递公司只在“你到网点”这一段负责,上了高速公路之后,箱子敞着口在车厢里颠簸几百公里,你会放心吗?
移动网络里你的数据就是这么旅行的。手机到基站之间那段“空口”,安全做得非常严密:身份认证、加密、完整性校验一层不缺(这个话题此前几期已经拆过:空口的流密码怎么做到一字一密、认证时怎么互相对暗号)。可是数据出了基站,情况完全变了——它变成普通的IP包,跑在光纤上。而这段光纤,往往不是运营商自己埋的。
这就是本文的主角:回传安全。它是移动网络安全体系里的“第二段保护”,标准上叫“网络域安全”。对1-3年的无线/传输工程师来说,这也是现网排障时最容易被忽略的一段:信令都通了,业务就是不通,问题很可能藏在这条看不见的隧道里。
先理解安全体系的一个基本思想:加密是分段交付的,不是一保到底的。
空口加密的密钥,是手机和基站之间协商出来的,只有这两端知道。数据到达基站时,空口加密就被解开了——基站必须看到明文IP包,因为它要做调度、路由、头压缩。解密之后,这个包就以“裸奔”状态离开基站。
在2G/3G时代,这不是问题。那时候基站到控制器之间用的是运营商自建的E1专线、微波链路,物理上就是封闭的,想窃听得爬到线路上去。运营商默认:“出了空口,都是自家地盘。”
4G以后,前提条件崩塌了。基站全面IP化,回传流量跑在以太网和光纤上,而这些光缆资源大量是租用的——裸纤、波分通道、甚至跑在第三方运营商的传输环里。在光网络里“分光窃听”是个成熟手段:一个耦合器夹进光缆,不需要中断业务,所有流量就被镜像走了。你的语音包、短信、上网数据,就这么明文跑过一段不属于你的路。
于是安全体系必须回答一个问题:两个互相不信任、或者不完全信任的网络域之间,怎么安全地传数据? 答案就是给回传这段,再套一层独立的保护——IPSec隧道。
flowchart TD
UE["手机"] -->|第一段保护: 空口加密| GNB["基站"]
GNB -->|IPSec隧道加密| RT["回传光传输网"]
RT --> GW["核心网安全网关"]
GW -->|解密还原| CN["核心网"]
RT -.->|第三方或租用光缆| THIRD["可能被分光窃听"]
要强调的是:这第二段保护和空口那段是完全独立的。密钥不同、算法可能不同、加密的范围也不同(空口加密只保护用户数据,回传IPSec连内层IP头一起藏起来)。安全设计上这叫“纵深防御”——攻击者攻破任何一段,拿到的都只是密文。
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包的解剖结构:
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本身,没有钥匙也算不出合法值。
现在到了整个体系最精妙的部分。基站和安全网关往往是第一次见面,中间隔着完全不可信的传输网。它们要在这样的信道上,商量出只有彼此知道的加密钥匙——这可能吗?
可能,靠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把这些步骤编排成两阶段。看整个流程:
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不现实,而证书可以自动化签发、轮换、吊销。代价是引入了新的故障模式,后文排障部分会看到。
从4G开始,标准就要求基站侧支持IPSec保护回传接口;到了5G,这套“网络域安全”框架进一步收紧:基站与核心网之间的接口、基站与基站之间的接口、以及5G特有的集中单元与分布单元之间的接口,都纳入了强制支持范围;运营商之间的漫游接口则是历来最严格的——IPSec不带商量。运营商自己网络内部的那段是否启用,标准留了弹性给运营策略,但趋势非常明确:明文回传正在被逐步淘汰。
这里有个常见疑问:前传那段(基站内部单元之间的超短距离连接)怎么反而不常用IPSec?因为它有硬约束——时延预算极紧,协议里为加密预留的时间根本不够,每包加密的开销会直接吃掉前传的毫秒级预算。工程上更常用的是另一个工具:MACsec(二层链路加密),在网卡硬件里逐跳加密,时延确定、吞吐无损,代价是只保护单跳而非端到端。一跳一锁的链条锁,和一把通到头的隧道锁,各有各的适用位置。
理解了原理,再看现网那些“玄学故障”,很多就通透了。下面这棵决策树是回传排障的通用路线:
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: 不是多余,是必需。因为两段保护的对象和威胁模型完全不同:空口加密防的是“无线环境里的窃听者”,且密钥在基站处就终结了;回传威胁来自“有物理机会碰光缆的人”,包括租用光缆上的第三方。纵深防御的意义正在于此——任何单段被攻破或被配置遗漏(比如某段接口忘了开保护),另一段仍然兜底。安全设计里,假设任何一段保护都可能有失效的一天。
本文由「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 等场景全覆盖。
