一、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架构演进脉络,你一看就明白:
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