2. IMS网络架构基础:P-CSCF、S-CSCF、I-CSCF、HSS等核心网元角色

好,咱们进入正题。IMS网络,说白了就是一套让运营商能把语音、视频、消息这些业务,全部跑在IP网络上的架构。你想想看,传统的电话网是电路交换,一条线占死了才能通话。IMS不一样,它用分组交换,资源利用率高得多。

但架构复杂了,问题也来了。信令风暴、DoS攻击,很多都跟这些核心网元的交互有关。所以,咱们得先把这些“角色”认清楚。我个人习惯,把IMS核心网元分成两类:一类是“管信令的”,一类是“管数据的”。今天重点讲管信令的这几个。

2.1 P-CSCF:用户的第一道门

P-CSCF,全称Proxy-CSCF,代理呼叫会话控制功能。你可以把它理解成IMS网络的“前台接待”。用户终端(UE)要接入IMS,第一个找的就是它。

它的核心职责有三点:

  • 信令入口:所有来自UE的SIP信令,都必须经过P-CSCF。它负责把这些信令转发到IMS核心网内部。
  • 安全网关:P-CSCF会建立IPSec安全关联,对UE和网络之间的信令进行加密和完整性保护。我在项目中遇到过,有些攻击者试图绕过P-CSCF直接攻击S-CSCF,结果被P-CSCF的安全策略直接拦下来了。
  • 压缩与解压缩:无线侧带宽有限,SIP消息又比较冗长。P-CSCF支持SigComp(信令压缩),能有效减少传输开销。

避坑指南:我曾经见过一个案例,P-CSCF的IPSec策略配置过于宽松,导致攻击者伪造UE身份发起大量注册请求。嗯,这里要注意,P-CSCF的安全策略一定要“最小权限”原则,只放行经过认证的UE流量。

2.2 S-CSCF:核心的大脑

S-CSCF,服务-CSCF。这是IMS网络里最忙的网元,没有之一。它负责用户的注册、会话控制、业务触发。说白了,所有用户的“状态”和“行为”,都由S-CSCF来管理。

S-CSCF的关键能力:

  • 注册管理:用户开机注册时,S-CSCF会从HSS下载用户的签约数据,并维护用户的注册状态。我记得有一次现网故障,S-CSCF的注册表被撑爆了,原因就是大量僵尸终端反复注册。这就是典型的信令风暴前兆。
  • 会话路由:当用户发起呼叫时,S-CSCF根据初始过滤准则(iFC)决定如何路由。比如,是直接接通,还是先触发一个彩铃业务。
  • 业务触发:S-CSCF是业务触发的核心。它通过iFC判断,把信令交给对应的应用服务器(AS)。

个人经验:我建议你在做S-CSCF容量规划时,一定要考虑“信令风暴”场景。正常情况下一台S-CSCF能处理100万用户,但风暴来临时,信令量可能是正常的10倍。所以,S-CSCF的CPU和内存都要留足余量。

2.3 I-CSCF:网络的“接线员”

I-CSCF,查询-CSCF。它的角色比较特殊,主要负责“寻址”和“隐藏”。

它的主要工作:

  • 查询HSS:当一个呼叫进入IMS网络时,I-CSCF会向HSS查询,找到被叫用户当前注册在哪个S-CSCF上。
  • 网络拓扑隐藏:运营商之间互连时,I-CSCF可以隐藏内部网络拓扑。比如,外部网络只知道I-CSCF的地址,不知道内部S-CSCF的具体IP。这能有效防止针对特定S-CSCF的DoS攻击。

你想想看,如果没有I-CSCF,外部网络直接知道S-CSCF的地址,那攻击者就可以直接对S-CSCF发起洪泛攻击。I-CSCF相当于一个“缓冲层”。

2.4 HSS:用户数据的“大本营”

HSS,归属用户服务器。它存储了所有用户的签约数据、认证信息、位置信息。你可以把它理解成IMS网络的“数据库”。

HSS的核心数据:

数据类型 说明 我的备注
用户签约信息 用户开通了哪些业务,比如VoLTE、视频通话、补充业务 这是HSS最核心的数据,一旦损坏,用户就“失联”了
认证向量 用于IMS AKA认证的密钥和随机数 我曾经遇到过HSS认证向量预生成不足,导致大量用户注册失败
S-CSCF分配信息 记录用户当前注册在哪个S-CSCF上 这个信息必须实时更新,否则呼叫会路由失败

警告:HSS是IMS网络的“心脏”。一旦HSS宕机,所有用户都无法注册、无法呼叫。我建议对HSS做主备容灾,并且定期做数据备份恢复演练。别问我为什么知道,有一次半夜HSS硬盘故障,我们手动恢复数据搞了整整6个小时。

2.5 核心网元交互流程

光说理论不行,咱们画个图看看它们怎么配合的。下面这张图展示了用户注册时,这几个网元的交互过程。

UE (用户终端) P-CSCF I-CSCF HSS S-CSCF 1. REGISTER 2. REGISTER 3. UAR 4. UAA 5. REGISTER 6. MAR 7. MAA 8. 200 OK 9. 200 OK 图例:UAR=User-Auth-Request, UAA=User-Auth-Answer, MAR=Multimedia-Auth-Request, MAA=Multimedia-Auth-Answer

你看这个流程:UE先找P-CSCF,P-CSCF转发给I-CSCF,I-CSCF去HSS查一下该分配哪个S-CSCF,然后把请求转给S-CSCF。S-CSCF再从HSS拉取认证向量,完成双向认证。最后返回200 OK,注册成功。

这个流程里,任何一个环节出问题,都可能导致注册失败。比如,HSS响应慢,S-CSCF就会积压大量注册请求。我在项目里就遇到过,HSS的数据库查询没加索引,结果注册高峰期时,S-CSCF的等待队列直接爆了。

2.6 核心网元与信令风暴的关系

讲完角色,咱们得聊聊它们跟信令风暴的关系。说白了,信令风暴就是“请求太多,处理不过来”。

  • P-CSCF:最容易成为攻击入口。攻击者可以伪造大量UE,向P-CSCF发起注册请求。P-CSCF如果没做限速,信令就会像洪水一样涌入核心网。
  • S-CSCF:风暴的“放大器”。因为S-CSCF要处理每个用户的注册、会话、业务触发。一旦S-CSCF过载,它会向HSS发起大量查询,导致HSS也过载。
  • I-CSCF:相对安全,但也不能忽视。如果I-CSCF被大量查询请求淹没,它就无法正常为合法用户提供服务。
  • HSS:风暴的“终点站”。所有网元最终都要找HSS要数据。HSS一旦扛不住,整个IMS网络就瘫痪了。

核心观点:我个人认为,防御信令风暴的关键,是在P-CSCF和S-CSCF这两层做好“流量整形”和“过载控制”。P-CSCF要能识别并丢弃恶意请求,S-CSCF要能主动降级,拒绝非关键业务,优先保障基础通话。

好了,这一章的内容就到这儿。记住这几个网元的角色和交互,后面讲信令风暴攻击手法时,你就能明白攻击者到底在打哪个点。

专注资料整理