一、IMS核心网概述

各位同学好,我是老周。在电信安全这个行当摸爬滚打了十几年,今天咱们聊聊IMS核心网。说实话,IMS这玩意儿刚出来那会儿,我也觉得它就是个过渡方案。但后来发现,它其实是整个通信网络向全IP化演进的关键一环。

嗯,咱们先从最基础的讲起。IMS,全称IP Multimedia Subsystem,说白了就是一套基于IP的多媒体会话控制系统。你想想看,现在的VoLTE、VoWiFi、5G语音,底层跑的都是IMS。所以搞懂IMS,就等于抓住了现代通信网络的命脉。

1.1 IMS架构演进

IMS的架构不是一天建成的。我记得2004年3GPP R5版本刚提出IMS时,那架构简单得像个玩具。后来随着需求增加,架构越来越复杂。

从3GPP R5到R16,IMS经历了几个关键阶段:

  • R5(2002年):IMS初版,只支持GPRS接入,功能很基础
  • R6(2004年):增加了Presence、Group管理等业务能力
  • R7(2007年):支持固定宽带接入,IMS开始走向固移融合
  • R8(2008年):引入LTE/EPC架构,IMS成为VoLTE的核心
  • R10+:支持WiFi接入、增强型业务,架构逐渐成熟

我在项目里遇到过最头疼的事,就是运营商网络里同时跑着R8和R10的网元。不同版本的协议栈对SIP消息的处理有细微差别,稍不注意就会出兼容性问题。

核心观点:IMS架构的演进本质上是"从封闭走向开放,从专有走向通用"。早期IMS网元都是专用硬件,现在基本都跑在虚拟化平台上了。

下面这张图是我自己画的IMS架构演进脉络,你一看就明白:

IMS架构演进脉络图 3GPP R5 2002年 仅GPRS接入 基础会话控制 3GPP R6 2004年 增加Presence 群组管理 3GPP R7 2007年 固定宽带接入 固移融合 3GPP R8 2008年 LTE/EPC集成 VoLTE核心 R10+ 至今 WiFi接入 虚拟化/云化 架构演进方向:封闭 → 开放,专有硬件 → 通用平台

1.2 核心网元功能

IMS核心网里网元不少,但真正关键的也就那么几个。我习惯把它们分成三类:会话控制类、用户数据类、业务应用类。

网元 全称 核心功能 安全关注点
CSCF Call Session Control Function SIP信令路由、会话控制 SIP劫持、信令风暴
P-CSCF Proxy CSCF 用户接入点、信令压缩、安全网关 接入认证绕过
S-CSCF Serving CSCF 会话状态管理、业务触发 会话劫持、DoS攻击
I-CSCF Interrogating CSCF 网间路由、S-CSCF分配 拓扑隐藏泄露
HSS Home Subscriber Server 用户签约数据、鉴权向量 数据泄露、注入攻击
MGCF Media Gateway Control Function 与PSTN互通控制 协议转换漏洞
MRF Media Resource Function 媒体资源处理(会议、录音) 媒体流劫持

这里我特别想说说P-CSCF。它其实是IMS网络的第一道防线。我在做安全评估时发现,很多攻击者首先盯上的就是P-CSCF。为什么?因为它直接暴露在用户侧,攻击面最大。

个人经验:我曾经在某运营商的IMS网络里发现,P-CSCF对SIP REGISTER消息的校验不够严格,攻击者可以伪造源IP地址发起注册请求。这个漏洞如果被利用,后果很严重。

1.3 SIP协议基础

SIP协议是IMS的"灵魂"。说白了,IMS里所有的会话建立、修改、拆除,都是通过SIP消息来完成的。

SIP协议有几个核心概念:

  • 用户代理(UA):终端设备,发起或接收会话
  • 代理服务器(Proxy):路由SIP请求,相当于信令的中转站
  • 注册服务器(Registrar):处理用户注册,维护位置信息
  • 重定向服务器(Redirect):告诉UA去别处找目标

一个典型的SIP会话流程是这样的:

UE1 --INVITE--> P-CSCF --INVITE--> S-CSCF --INVITE--> UE2
UE1 <--100 Trying-- P-CSCF <--100 Trying-- S-CSCF <--100 Trying-- UE2
UE1 <--180 Ringing-- P-CSCF <--180 Ringing-- S-CSCF <--180 Ringing-- UE2
UE1 <--200 OK----- P-CSCF <--200 OK----- S-CSCF <--200 OK----- UE2
UE1 --ACK--------> P-CSCF --ACK--------> S-CSCF --ACK--------> UE2
// 媒体流建立,RTP开始传输
UE1 --BYE--------> P-CSCF --BYE--------> S-CSCF --BYE--------> UE2
UE1 <--200 OK----- P-CSCF <--200 OK----- S-CSCF <--200 OK----- UE2

嗯,这里要注意的是,SIP消息的格式其实和HTTP很像。都是文本协议,都有请求行、头部、消息体。但SIP比HTTP复杂得多,因为它要处理会话状态。

避坑指南:我曾经在测试中遇到过,某个厂商的S-CSCF对SIP Via头域的解析有bug。攻击者可以在Via头域中插入恶意内容,导致S-CSCF崩溃。所以对SIP消息的输入校验,再怎么严格都不为过。

1.4 IMS安全域划分

IMS网络的安全域划分,说白了就是"把不同信任级别的网络隔离开"。我参与过好几个运营商的IMS安全规划,这个环节做不好,后面全是漏洞。

按照3GPP TS 33.203的定义,IMS安全域主要分为:

  • 用户域:UE和USIM,信任级别最低
  • 接入域:UE到P-CSCF之间的网络,需要加密和认证
  • 网络域:IMS核心网元之间的网络,信任级别较高
  • 互通域:IMS与其他网络(PSTN、Internet)的边界

每个安全域之间的接口,都有对应的安全机制:

接口 连接对象 安全机制 常见风险
Gm UE ↔ P-CSCF IPSec/TLS, AKA认证 中间人攻击
Mw CSCF之间 网络域安全(NDS/IP) 信令篡改
Cx CSCF ↔ HSS Diameter安全(TLS/DTLS) 用户数据泄露
Mg MGCF ↔ CSCF SIP over IPSec 协议转换漏洞
Mb 媒体流传输 SRTP加密 媒体流窃听

我个人习惯把IMS安全域想象成一个"洋葱模型"。最外层是用户域,最内层是核心网域。每一层都有对应的防护措施。攻击者要想打到核心网,必须一层层突破。

关键认知:IMS安全的核心在于"信任边界"的划分。你想想看,如果P-CSCF和S-CSCF之间的Mw接口没有加密,攻击者只要接入这个网络段,就能看到所有SIP信令。这在运营商网络里是绝对不能接受的。

好了,第一章的内容就到这里。IMS核心网是个大话题,咱们后面会一步步深入。记住我今天讲的这几个关键点:架构演进看趋势,网元功能抓重点,SIP协议是基础,安全域划分定边界。这些东西搞明白了,后面分析漏洞的时候你就有底了。


公众号:蓝海资料掘金营,微信deep3321